标签: amazon-web-services

AWS Code Build 抛出错误“CLIENT_ERROR:未找到主要源和源版本的参考增量”

我正在使用 aws codebuild,它工作正常,我只有一个分支 master,并且构建正在从代码提交存储库的 master 分支获取代码,但突然构建失败并出现错误“CLIENT_ERROR:未找到主要的参考增量”源和源版本”。

这是我的构建规范文件代码

version: 0.2
phases:
  install:
    commands:
      - python -V
      - node -v
      - npm install serverless -g
      - sls plugin install -n serverless-python-requirements
      - npm install serverless-pseudo-parameters
      - npm install --save-dev serverless-step-functions
 
  build:
    commands:
      - SLS_DEBUG=* sls deploy --stage dev --region us-east-2
Run Code Online (Sandbox Code Playgroud)

预期日志, 预期日志

日志来了
错误发生后的日志

amazon-web-services aws-codecommit aws-codebuild serverless

5
推荐指数
0
解决办法
1287
查看次数

ECS 任务是否有办法检索其(任务)部署位置的 ec2 元数据?

有没有办法让 ECS 任务能够获取其部署位置的 EC2 元数据?

ec2 实例元数据的 AWS 文档中,当我位于 ec2 实例本身内部时,我可以检索 EC2 实例元数据。我对获取实例 ID更感兴趣,可以通过命令来实现

curl http://169.254.169.254/latest/meta-data/instance-id
Run Code Online (Sandbox Code Playgroud)

只有当我直接转到 ec2 实例并执行查询/命令时才能实现这一点,但是如果我想在 EC2 实例上运行的 ECS 任务中获取 ec2 元数据,这将如何实现?根据任务元数据的AWS文档,我只能获取ECS任务本身的详细信息,但无法获取任务运行时的ec2元数据。

这可能吗?

设置:

  • ec2实例位于ecs集群中
  • ecs任务随机部署在集群内的任何ec2实例上

amazon-ec2 amazon-web-services amazon-ecs

5
推荐指数
1
解决办法
2245
查看次数

尝试在 AWS Lambda 函数中下载文件时如何修复“ClientError:调用 HeadObject 操作时发生错误 (403):禁止”

"errorMessage": "An error occurred (403) when calling the HeadObject operation: Forbidden"在尝试打电话时收到消息s3.download_file(请参阅下面的代码)。

我看过很多帖子,但似乎没有一个是从 AWS Lambda 调用的,而这正是我的问题所在。

我的代码在我的机器上本地运行,所以我猜测问题涉及 Lambda。这个Lambda函数最终会被S3事件触发,但在测试过程中,它不起作用。

我的 IAM 用户拥有对 S3 和 Lambda 的完全访问权限。

AWS Lambda函数代码:

import json
import boto3
import logging

log = logging.getLogger()
log.setLevel(logging.INFO)

s3 = boto3.client('s3')


def lambda_handler(event, context):
    document_name = event['Records'][0]['s3']['object']['key']
    bucket = event['Records'][0]['s3']['bucket']['name']

    log.info('Performing stuff on {}/{}'.format(bucket, document_name))

    # download the file
    s3.download_file(
        Bucket=bucket,
        Key=document_name,
        Filename=document_name
    )

    log.info('here it is!')

    return event

Run Code Online (Sandbox Code Playgroud)

(我什至尝试显式输入信息s3.download_file而不是从 中获取信息event,但无济于事。日志消息确认它是正确的路径。)

测试事件配置中传递的参数:

...
"s3": …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services amazon-iam boto3 aws-lambda

5
推荐指数
1
解决办法
7323
查看次数

JedisConnectionException - 读取超时错误

我正在尝试使用 Spring Data Redis + Jedis 组合连接到 AWS ElastiCache Redis。[Redis 集群已启用,因此它具有集群配置端点,具有 3 个分片 - 每个分片有 1 个主节点 + 2 个副本节点]

我收到读取超时错误。

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out

AWS Redis 服务器版本:5.0.3 / 集群模式:已启用 / SSL:已启用 / 身份验证:已启用(通过密码)

库 -- Spring-data-redis : 2.1.6.Release / jedis : 2.9.0

Telnet 适用于 AWS Redis 所有节点和 6379 端口上的集群配置端点。

我单独尝试了Redisson,它连接到AWS Redis,没有任何问题。

因此,Redis 本身没有问题,Spring Data Redis 与 Jedis 结合使用会出现问题。

我的代码看起来像这样 -

        RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration();
        redisClusterConfiguration.setClusterNodes(listOfRedisNode);
        redisClusterConfiguration.setPassword(passwordString);


        JedisClientConfiguration.JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration.builder();
        jedisClientConfiguration.connectTimeout(Duration.ofSeconds(60));
        jedisClientConfiguration.useSsl();
        jedisClientConfiguration.usePooling();


        JedisConnectionFactory jedisConnectionFactory …
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services jedis spring-data-redis redis-cluster

5
推荐指数
1
解决办法
6243
查看次数

`aws 记录 list-tags-log-group` 时出错

有人可以向我展示使用 AWS CLI 命令的示例吗aws logs list-tags-log-group

我可以将它与名称没有斜杠的日志组一起使用(例如fooTestLogGroup),但是当我对名称有正斜杠的任何日志组使用相同的命令时(例如/aws/codebuild/logGroup1,或者/ecs/logGroup2然后我收到此错误

An error occurred (ServiceUnavailableException) when calling the 
ListTagsLogGroup operation (reached max retries: 4): The server failed to 
fulfill the request. Please try again.
Run Code Online (Sandbox Code Playgroud)

我使用的命令是:

$ aws logs list-tags-log-group --log-group-name fooTestLogGroup
Run Code Online (Sandbox Code Playgroud)

我在网上搜索并查找了AWS CLI 文档,但找不到答案

amazon-web-services aws-cli

5
推荐指数
1
解决办法
1329
查看次数

内部AWS ELB IP地址是否发生变化

如果我在AWS中有以下VPC:

10.0.0.0/16,我配置了一个应用程序负载均衡器(内部),AWS 在我选择的子网内为我选择以下 IP 地址 10.0.0.9 和 10.0.0.12。

问题:在负载均衡器的生命周期内,选择的内部地址(10.0.0.9 和 10.0.0.12)是否会发生变化?

我知道如果我删除负载均衡器,它会选择新的。我还了解到互联网应用程序负载均衡器 IP 会定期更改(这就是人们使用网络负载均衡器作为静态 ip 的原因),但关于与负载均衡器关联的私有内部 ip 却没有太多提及。

任何信息都会很棒。

amazon-web-services amazon-elb

5
推荐指数
1
解决办法
4434
查看次数

在 NodeJS 中获取来自 AWS SQS 的所有消息

我有以下函数从 aws SQS 获取消息,问题是我一次获取一条消息,并且希望获取所有消息,因为我需要检查每条消息的 ID:

function getSQSMessages() {

    const params = {
        QueueUrl: 'some url',
    };

    sqs.receiveMessage(params, (err, data) => {
        if(err) {
            console.log(err, err.stack)
            return(err);
        }
        return data.Messages;
    });

};

function sendMessagesBack() {

    return new Promise((resolve, reject) => {
        if(Array.isArray(getSQSMessages())) {
            resolve(getSQSMessages());
        } else {
            reject(getSQSMessages());
        };
    });

};
Run Code Online (Sandbox Code Playgroud)

函数sendMessagesBack()用于另一个 async/await 函数。我不确定如何获取所有消息,因为我正在寻找如何获取它们,人们提到了循环,但我不知道如何在我的情况下实现它。我假设我必须将 sqs.receiveMessage()放入循环中,但随后我对需要检查什么以及何时停止循环以便获取每条消息的 ID 感到困惑?

如果有人有任何提示,请分享。谢谢。

amazon-sqs amazon-web-services node.js

5
推荐指数
2
解决办法
8956
查看次数

加密 EBS:有哪些缺点?

我想知道对 EBS 存储进行加密的缺点。为什么这个选项不是默认选项?我加密了当前的 EBS,一切似乎都工作正常,性能方面我也没有遇到任何减速。

amazon-ec2 amazon-web-services aws-ebs

5
推荐指数
1
解决办法
492
查看次数

AWS Lambda - 当我的请求远低于发布的 6MB 限制时,为什么它会拒绝我的请求并出现 413 内容太长错误?

使用 Amplify,我设置了 API Gateway 和 Lambda。API Gateway 已发布 10MB 的有效负载限制,Lambda 已发布 6MB 的有效负载限制。我的请求由 FormData 和其他元数据组成,大小略高于 3MB。

我正在使用 Express 和 http-proxy-middleware 来路由我的请求。

amazon-web-services aws-lambda

5
推荐指数
0
解决办法
2053
查看次数

如何在aws ec2中安装带有nss后端的libcurl?(Python 3.6 64 位亚马逊 Linux)

我在 AWS 中有一个运行 Python3.6 (Amazon Linux/2.8.3) 的 ec2 实例,我需要在其中安装 pycurl 和 NSS ssl backend

pycurl==7.43.0 --global-option="--with-nss"首先,我通过添加到我的文件中进行尝试requirement.txt,但出现错误安装错误。因此,我最终通过添加一个.config文件.ebextensions(在部署期间运行)来完成此操作:

container_commands:
  09_pycurl_reinstall:
    # the upgrade option is because it will run after PIP installs the requirements.txt file.
    # and it needs to be done with the virtual-env activated
    command: 'source /opt/python/run/venv/bin/activate && PYCURL_SSL_LIBRARY=nss pip3 install pycurl --global-option="--with-nss" --upgrade --no-cache-dir --compile --ignore-installed'
Run Code Online (Sandbox Code Playgroud)


Pycurl 似乎已正确安装,但 celery 工作程序未运行。芹菜工人日志显示:

__main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file …
Run Code Online (Sandbox Code Playgroud)

python libcurl amazon-ec2 pycurl amazon-web-services

5
推荐指数
1
解决办法
3485
查看次数