【发布时间】:2022-01-27 19:21:53
【问题描述】:
我尝试在 lambda python 中使用 boto 客户端从 sqs 队列中读取消息。
但我面临""errorMessage": "'sqs.ServiceResource' object has no attribute 'receive_message'"," . couldnt find the root cause 的问题。任何人都可以帮助解决这个问题
我在 lambda 中的代码
import json
import boto3
client = boto3.resource('sqs','us-west-2')
queue_url='https://sqs.us-west-2.amazonaws.com/050190852521/MyQueue'
def lambda_handler(event, context):
response = client.receive_message(
QueueUrl=queue_url,
AttributeNames=['SentTimestamp'],
MaxNumberOfMessages=1,
MessageAttributeNames=['All'],
VisibilityTimeout=0,
WaitTimeSeconds=0
)
print('entered')
print('Received %s' % message)
message = response['Messages'][0]
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
【问题讨论】:
-
使用
boto3.client而不是boto3.resource?client = boto3.client('sqs', 'us-west-2') -
谢谢你..但我在 boto3.client ""errorMessage" 之后遇到了问题:"调用 ReceiveMessage 操作时发生错误 (AccessDenied):访问资源 us-west-2.queue.amazonaws.com 被拒绝。" , "errorType": "ClientError"," 在哪里授予权限。在平方?在 lamda 我拥有所有权限
-
添加政策。它的工作。
标签: python amazon-web-services aws-lambda amazon-sqs