在AWS上,我们实现了AWS lambda将消息推送到AWS队列的功能;
但是,在此实现过程中,我必须为AWS lambda配置授予权限,以便将消息添加到特定队列.这个手动点击的用户不太适合prod部署.
有关如何自动化在AWS服务(主要是lambda和SQS)之间添加权限以及为prod env创建“良好”部署包的过程的建议吗?
最佳答案 每个Lambda函数都有一个附加角色,您可以在IAM仪表板中指定其权限.如果你赋予Lambda函数角色推送到SQS队列的权限,那么你就可以了.例如,将此
JSON作为自定义角色附加(请参阅
http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html):
{
"Version": "2012-10-17",
"Id": "Queue1_Policy_UUID",
"Statement":
{
"Sid":"Queue1_SendMessage",
"Effect": "Allow",
"Principal": {
"AWS": "111122223333"
},
"Action": "sqs:SendMessage",
"Resource": "arn:aws:sqs:us-east-1:444455556666:queue1"
}
}
您可以使用星号来授予多个队列的权限,例如:
"Resource": "arn:aws:sqs:us-east-1:444455556666:production-*"
为所有以production-开头的队列赋予sendMessage权限.