![](/img/trans.png)
[英]Serverless error - The CloudFormation template is invalid - during deployment
[英]Add role as CloudFormation template in serverless yml
我正在尝试从另一个调用 lambda,按照这个答案中的示例:
Nodejs - 从另一个 lambda 函数中调用 AWS.Lambda 函数
答案说这两个 lambda 函数都应该具有AWSLambdaExecute和AWSLambdaBasicExecutionRole权限。
使用无服务器,我怎么能这两个角色添加到在CloudFormation模板serverless.yml
?
根据无服务器IAM文档,
默认情况下,您的服务中的所有 Lambda 函数共享一个 IAM 角色。 还会创建 IAM 策略并将其附加到该角色。 此外,默认情况下,您的 Lambda 函数具有创建和写入 CloudWatch 日志的权限,如果您已指定 VPC 安全组和子网供您的函数使用,则通过 ENI 附加到 VPC 所需的 EC2 权限将添加到默认值中IAM 政策。
要向此服务范围的角色添加特定权限,请在
provider.iamRoleStatements
中定义语句,这些语句将合并到生成的策略中。
要从另一个函数调用 Lambda 函数,您只需将"lambda:InvokeFunction"
操作添加到无服务器已提供的现有 IAM 权限。 因此,一个例子serverless.yml
服务应该有一个iamRoleStatements
部分看起来像这样:
service: new-service
provider:
name: aws
iamRoleStatements:
- Effect: "Allow"
Action:
- "lambda:InvokeFunction"
Resource:
- "*"
关于引用的另一个答案:
AWSLambdaBasicExecutionRole
托管策略已包含在默认无服务器策略中;AWSLambdaExecute
是所需托管策略的错误名称(该名称仅提供 S3 get/put 访问,而不是InvokeFunction
); 答案可能意味着AWSLambdaRole
,它提供"lambda:InvokeFunction"
权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.