4
在AWS上,我们实现了AWS lambda将消息推送到AWS队列的功能;AWS安全组规则部署(lambda-> SQS)
但是在这个实现过程中,我不得不手动授予AWS lambda的权限才能将消息添加到特定队列。这个手动点击的应用程序对于产品部署来说不是很好。
任何建议如何自动化AWS服务(主要是lambda和SQS)之间添加权限的过程,以及创建用于prod env的“良好”部署包?
在AWS上,我们实现了AWS lambda将消息推送到AWS队列的功能;AWS安全组规则部署(lambda-> SQS)
但是在这个实现过程中,我不得不手动授予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-
开始。
我在zip文件中有一个lambda代码。问题是如何在AWS控制台中手动应用此策略(或者它可能是部署的一部分)? – user1459144
您不能创建没有角色的Lambda函数。因此,首先创建角色,然后在创建lambda函数期间选择它,或者在创建Lambda函数时创建角色,然后前往IAM添加权限。这可以使用控制台或API。 –