下面是SAM模板,
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello-world/
Handler: app.LambdaHandler
Runtime: nodejs8.10
Policies:
- AWSLambdaExecute
为此,以下是为Lambda函数创建的role(JSON):
{
"roleName": "somestack-HelloWorldFunctionRole-AAAAAAAA",
"policies": [
{...}, # AWSLambdaExecute
{...}, # AWSLambdaSQSQueueExecutionRole
{....} # AWSLambdaBasicExecutionRole
],
"trustedEntities": [
"lambda.amazonaws.com"
]
}
此JSON中的trustedEntities
是什么?
答案 0 :(得分:1)
受信任的实体是可以担当此角色的一组实体。如果通过SAM创建功能,则SAM创建的角色和帐户中的Lambda服务之间的信任关系将自动创建,这又意味着您的Lambda函数可以担任此角色。
如果您想将此角色分配给EC2实例,将无法执行,因为您的角色默认情况下不信任EC2服务。您将需要修改信任关系并包括EC2服务。像这样:
"trustedEntities": [
"lambda.amazonaws.com",
"ec2.amazonaws.com"
]
如果您想创建一个可以在多个帐户中担当的角色,可以将其他帐户指定为受信任的实体,以便其他帐户能够担当该角色,这也很有用。
如果trustedEntities
列表为空,则没人能担任这个角色。