我想将一个现有角色附加到我的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
请帮忙。
谢谢。
答案 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等,否则您将无法登录。