小编Gra*_*eme的帖子

AWS SQS不遵守WaitTimeSeconds

我正在使用PHP中的AWS SDK与SQS队列进行通信.目前,队列中只包含简单的测试消息.我试图从队列中读取下10条消息.为此,我将MaximumNumberOfMessages设置为10,并将WaitTimeSeconds设置为20.

我对此的理解应该是SqsClient将连接并消耗来自队列的消息,直到它具有消息数(10)或达到超时(20)秒.

然而,客户端几乎立即返回,只有3-4条消息(现在队列中有+20条消息).当只有4-5条消息时,它只返回一条消息.

我还将VisibilityTimeout设置为1秒,并且没有在循环中运行测试脚本,只是从CLI手动触发.

我传递给SqsClient receiveMessage的数组是:

[
        'QueueUrl' => $this->uri,
        'MaxNumberOfMessages' => 10,
        'VisibilityTimeout' => 1,
        'WaitTimeSeconds' => 20,
]
Run Code Online (Sandbox Code Playgroud)

任何想法为什么呼叫不至少等待整整20秒(对于少量队列消息),而不是返回多于几条消息(对于更完整的队列)?

谢谢

php amazon-sqs amazon-web-services

4
推荐指数
1
解决办法
761
查看次数

AWS STS角色与EC2 AssumeRole

我想将我的代码部署到EC2实例,但我不想在AWS Key和Secret中进行烘焙.AWS提供IAM服务,允许我为我的EC2实例分配一个角色,允许这些实例使用临时密钥进行访问.

我如何让它工作?我已经尝试使用SDK和StsClient来假设角色,但这会引发错误

User:  arn:aws:sts::XXXXXXXXXXXX:assumed-role/ROLE-NAME/INSTANCE No is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::XXXXXXXXXXXX:role/ROLE-NAME
Run Code Online (Sandbox Code Playgroud)

阅读并且似乎STS请求需要使用凭证本身来执行角色分配?但我认为会使用EC2实例密钥?

php amazon-web-services amazon-iam

3
推荐指数
1
解决办法
1021
查看次数

标签 统计

amazon-web-services ×2

php ×2

amazon-iam ×1

amazon-sqs ×1