,意味着Lambda函数在执行时没有权限访问其他AWS服务或资源。在AWS Serverless Application Model (SAM) 中,可以使用资源属性 "Policies" 来定义Lambda函数执行所需的权限策略。
Lambda角色是一个IAM角色,它允许Lambda函数在执行期间访问其他AWS服务或资源。在SAM模板中,可以通过 "Properties" 部分的 "Role" 属性来定义Lambda角色。在定义Lambda角色时,可以为其附加适当的IAM策略以授予所需的访问权限。
如果SAM模板中未定义Lambda角色的策略,Lambda函数将使用默认的执行角色。默认执行角色是在创建Lambda函数时自动创建的,通常具有有限的权限,仅允许Lambda函数访问基本的AWS服务,如CloudWatch日志。
为了定义Lambda角色的策略,可以通过以下步骤来修改SAM模板:
例如:
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: .
Handler: index.handler
Runtime: nodejs14.x
Role: <lambda_role_arn>
例如,在AWS管理控制台上创建一个名为 "LambdaExecutionPolicy" 的策略,授予访问DynamoDB表的权限,然后将该策略附加到Lambda角色上。
例如:
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: .
Handler: index.handler
Runtime: nodejs14.x
Role: arn:aws:iam::123456789012:role/LambdaExecutionRole
完成以上步骤后,Lambda函数将具有在策略中定义的访问权限,并且可以执行对应的操作。
云+社区沙龙online第6期[开源之道]
技术创作101训练营
企业创新在线学堂
Elastic 中国开发者大会
Techo Day
腾讯技术创作特训营第二季
云+社区技术沙龙第33期
领取专属 10元无门槛券
手把手带您无忧上云