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

ner*_*ner 5 amazon-ec2 amazon-web-services serverless-framework

我想将现有角色附加到我的serverless.yml文件中,我已经在aws控制台中创建了一个角色,当我在aws控制台中对其进行测试时,我的代码工作正常,但是当我尝试使用http端点对其进行测试时,它给了我以下:

{"message": "Internal server error"}
Run Code Online (Sandbox Code Playgroud)

我认为是因为我没有在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
Run Code Online (Sandbox Code Playgroud)

请帮忙。

谢谢。

小智 7

根据文档,有几种方法可以将现有角色附加到功能(或整个堆栈)上

角色定义为无服务器资源

resources:
  Resources:
    myCustRole0:
      Type: AWS::IAM::Role
      # etc etc
functions:
  func0:
    role: myCustRole0
Run Code Online (Sandbox Code Playgroud)

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

functions:
  func0:
    role: arn:aws:iam::0123456789:role//my/default/path/roleInMyAccount
Run Code Online (Sandbox Code Playgroud)

请注意,您使用的角色必须具有其他权限才能登录到cloudwatch等,否则您将不会获得日志记录。