在 AWS 上,我们实现了 AWS lambda 将消息推送到 AWS 队列的功能;
但是,在此实施过程中,我必须手动授予 AWS lambda 权限以将消息添加到特定队列。而且这种手动点击的方法对于产品部署不太好。
关于如何在 AWS 服务(主要是 lambda 和 SQS)之间自动添加权限并为 prod env 创建“好”部署包的任何建议?
在 AWS 上,我们实现了 AWS lambda 将消息推送到 AWS 队列的功能;
但是,在此实施过程中,我必须手动授予 AWS lambda 权限以将消息添加到特定队列。而且这种手动点击的方法对于产品部署不太好。
关于如何在 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-*"
为所有以 . 开头的队列授予 sendMessage 权限production-
。