amazon-web-services - 资源处理程序返回消息:“为函数定义的角色不能由 Lambda 承担”
问题描述
这是我的 lambda ctf,当我将它部署到 cloudformation 时,我收到了这个错误,我用谷歌搜索了它,但没有找到解决我问题的答案,谁能帮我解决这个问题?
资源处理程序返回消息:“Lambda 无法承担为函数定义的角色。(服务:Lambda,状态代码:400,请求 ID:b1484f34-b9b3-4000-af95-5a483649fb40,扩展请求 ID:null)”(RequestToken : 9da1e852-6e03-80c5-e72c-cb978a6bce0f, HandlerErrorCode: InvalidRequest)
ConfigurationLambdaRole:
Type: "AWS::IAM::Role"
Properties:
RoleName: 'configuration-sqs-lambda1'
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service:
- events.amazonaws.com
- s3.amazonaws.com
Action:
- sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonSQSFullAccess
- arn:aws:iam::aws:policy/CloudWatchLogsFullAccess
ConfigurationLambdaFunction:
Type: AWS::Lambda::Function
Properties:
Description: 'configuration service with lambda'
FunctionName: 'configuration-lambda1'
Handler: lambda.handler.EventHandler::handleRequest
Runtime: java8
MemorySize: 128
Timeout: 120
Code:
S3Bucket: configurationlambda
S3Key: lambda-service-1.0.0-SNAPSHOT.jar
Role: !GetAtt ConfigurationLambdaRole.Arn
ConfigurationLambdaInvokePermission:
Type: AWS::Lambda::Permission
Properties:
FunctionName:
Fn::GetAtt:
- ConfigurationLambdaFunction
- Arn
Action: 'lambda:InvokeFunction'
Principal: "sqs.amazonaws.com"
SourceArn: 'arn:aws:s3:::configurationlambda'
解决方案
您的角色不允许 Lambda 服务代入它。和锡纸上写的差不多。
一个简单的解释是 Lambda 服务在您的函数执行环境中担任 IAM 角色,并且该环境在执行函数代码时将具有必要的权限和访问密钥。更多详细信息:https ://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html
因此处理程序角色AssumeRolePolicyDocument
应该有类似的布局:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
推荐阅读
- node.js - 如何将文档从一个集合复制到另一个集合?
- javascript - 为什么我无法访问数组内的对象值?
- django - django在存储前加密文件
- javascript - 反应地图功能
- r - 如何在特定条件下粘贴带有破折号的两列
- xamarin.forms - Xamarin.Forms:列表变得比列表视图中的项目长
- python - Django嵌套重组
- java - android.app.ActivityManager.AppTask 访问静态类的非静态方法
- r - 上传文件并在闪亮中使用summarytools
- arrays - 如何使用 Laravel 将 JSON 元素保存为数据库中的记录?