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

时间:2017-09-25 12:16:39

标签: amazon-web-services amazon-ec2 serverless-framework

我想将一个现有角色附加到我的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

请帮忙。

谢谢。

1 个答案:

答案 0 :(得分:5)

根据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等,否则您将无法登录。