【问题标题】:resource handler returned message: "The role defined for the function cannot be assumed by Lambda"资源处理程序返回消息:“为函数定义的角色不能由 Lambda 承担”
【发布时间】:2021-09-17 12:09:26
【问题描述】:

这是我的 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'

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-cloudformation


    【解决方案1】:

    您的角色不允许 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"
        }
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 2023-04-06
      • 2016-09-26
      • 1970-01-01
      • 2017-05-12
      • 2021-08-30
      • 2019-12-17
      • 2021-10-24
      • 2023-02-19
      相关资源
      最近更新 更多