【问题标题】:How to attach an existing role to serverless.yml?如何将现有角色附加到 serverless.yml?
【发布时间】:2018-03-06 09:55:37
【问题描述】:

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

请帮忙。

谢谢。

【问题讨论】:

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


    【解决方案1】:

    根据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 等,否则您将无法获得日志记录。

    【讨论】:

    • 你好,我确实使用角色附加了我现有的角色:arn:aws:iam::0123456789:role//my/default/path/roleInMyAccount 但不断收到相同的错误 {"message":"内部服务器错误"}
    • 所以进入管理控制台并检查角色是否实际附加到 lambda。如果不是,则附加它有问题。如果是,那就是角色本身的权限问题。
    • 感谢兄弟的帮助,我的代码现在可以正常工作了,我刚刚调整了json正文。
    • 我更喜欢第二个选项,它对我来说真的很棒。
    猜你喜欢
    • 2020-03-14
    • 2019-06-22
    • 2021-10-21
    • 2021-03-01
    • 2017-05-17
    • 2021-02-19
    • 2021-07-01
    • 2018-01-03
    • 2020-10-31
    相关资源
    最近更新 更多