尝试从 ECS 写入 SQS 时出现区域未提供错误

问题描述 投票:0回答:1

我有一个带有 python 脚本的容器,它每次都会从 RDS 数据库中连续读取数据。每次读取都可以将一些数据发送到 SQS 队列。

import boto3

queue=boto3.resource('sqs')

response = queue.send_message(
            MessageBody={"test":"test"}
)



当我在本地运行脚本时,

boto3
读取我的本地aws配置,一切正常,但是当我部署到我的ecs集群时,我收到“您必须指定一个区域”错误,并且
queue
值是
Null

我尝试过对访问密钥、秘密密钥和区域进行硬编码。这样工作得很好,但我不想在源代码中对配置进行编码。

有没有一种方法可以像在 EC2 实例上一样使用 ecs 提供的凭据?

python amazon-ecs amazon-sqs
1个回答
0
投票

您需要为 ECS 任务分配一个任务 IAM 角色。该角色将可供在任务容器内运行的软件使用,并且您正在使用的 AWS 开发工具包将自动获取并使用它。

请注意,这与任务执行角色不同,您必须定义后者才能允许 ECS 部署您的任务。

如果此后您仍然收到有关该区域的错误,您可能需要在任务定义中定义一个

AWS_DEFAULT_REGION
环境变量。

© www.soinside.com 2019 - 2024. All rights reserved.