[Python / Lambda] 用boto3 sqs客户端时遇到botocore.exception.ClientError(Access Denied)错误。

0

【以下的问题经过翻译处理】 [ENV] 触发 Lambda -> ap-northeast-2 SQS 队列 -> ap-northeast-1 爬虫 EC2 -> ap-northeast-1

[流水线] 触发 Lambda -> 发送消息 -> SQS 队列 -> 爬虫 EC2

[权限] 触发 Lambda -> 队列授予发送消息权限(trigger_lambda) 爬虫 EC2 -> 队列授予消费消息权限(crawler_cluster_worker)

[所有者] 所有 -> 根帐户

[触发 Lambda 中的 Python 代码] sqs_client.send_message( QueueUrl=CRAWLER_SQS_MESSAGE_QUEUE_URL, MessageBody=json.dumps(sqs_message) )

[触发 Lambda 的错误详情] [ERROR] ClientError: An error occurred (AccessDenied) when calling the SendMessage operation: Access to the resource https://sqs.ap-northeast-1.amazonaws.com/ is denied. Traceback (most recent call last): File "/var/task/main.py", line 136, in lambda_handler raise e File "/var/task/main.py", line 116, in lambda_handler sqs_client.send_message( File "/var/task/botocore/client.py", line 530, in _api_call return self._make_api_call(operation_name, kwargs) File "/var/task/botocore/client.py", line 960, in _make_api_call raise error_class(parsed_response, operation_name)

[问题] 触发 Lambda 失败,但发送 SQS 消息总是成功的。权限和区域都没有问题。判断这是暂时性错误。能告诉我暂时性错误可能的原因吗?

profile picture
전문가
질문됨 5달 전35회 조회
1개 답변
0

【以下的回答经过翻译处理】 如果您一直看到这个错误,则Lambda函数没有权限发送到该SQS队列。检查IAM权限和分配给Lambda函数的角色。

如果您间歇性地看到此错误,则可能有问题,请联系我们的支持团队以进行调查。在re:Post这边,我们无法访问您的详细信息、账户和您正在使用的服务。这是提供一般建议的论坛;支持团队可以帮助解决这些问题。

profile picture
전문가
답변함 5달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인