如何将现有角色附加到 serverless.yml?

How to attach an existing role to serverless.yml?

我想将现有角色附加到我的 serverless.yml 文件,我在 aws 控制台中创建了一个角色,我的代码在 aws 控制台中测试时运行良好,但是当我尝试使用它为我提供了以下 http 端点:

{"message": "Internal server error"}

我认为是因为我没有在 serverless.yml 文件中指定任何角色,原因很简单,我不知道该怎么做。

这是我的 serverless.yml 文件:


Resources: 
  ec2-dev-instance-status: 
    Properties: 
      Path: "arn:aws:iam::119906431229:role/lambda-ec2-describe-status"
      RoleName: lambda-ec2-describe-status
    Type: "AWS::IAM::Role"
functions: 
  instance-status: 
    description: "Status ec2 instances"
    events: 
      - 
        http: 
          method: get
          path: users/create
    handler: handler.instance_status
    role: "arn:aws:iam::119906431229:role/lambda-ec2-describe-status"
provider: 
  name: aws
  region: us-east-1
  runtime: python2.7
  stage: dev
resources: ~
service: ec2

请帮忙。

谢谢。

根据 the documentation,有几种方法可以将现有角色附加到函数(或整个堆栈)

定义为无服务器资源的角色

resources:
  Resources:
    myCustRole0:
      Type: AWS::IAM::Role
      # etc etc
functions:
  func0:
    role: myCustRole0

在无服务器堆栈之外定义的角色

functions:
  func0:
    role: arn:aws:iam::0123456789:role//my/default/path/roleInMyAccount

请注意,您使用的角色必须具有额外的权限才能登录到 cloudwatch 等,否则您将无法登录。