我是无服务器框架的新手,我想得到一个实例的状态,所以我使用了boto3 getClass()
,但我一直得到错误,我没有被授权执行这种操作,尽管我有管理员访问权限服务;请帮助,我需要更改,或添加要识别的内容
这是我的代码:
describe-instance-status()
这是我的serverless.yml文件
import json
import boto3
import logging
import sys
#setup simple logging for INFO
logger = logging.getLogger()
logger.setLevel(logging.INFO)
from botocore.exceptions import ClientError
def instance_status(event, context):
"""Take an instance Id and return its status"""
#print "ttot"
body = {}
status_code = 200
client = boto3.client('ec2')
response = client.describe_instance_status(InstanceIds=['i-070ad071'])
return response
以下是我收到的错误消息:
“errorType”:“ClientError”,“errorMessage”:“发生错误 (UnauthorizedOperation)调用DescribeInstanceStatus时 操作:您无权执行此操作。“
答案 0 :(得分:1)
...我拥有所有aws服务的管理员权限......
请注意,Lambda函数未在您的用户帐户下运行。您应该在YAML中定义其角色和权限。
在provider
的{{1}}部分中,添加以下内容:
serverless.yaml
参考:https://serverless.com/framework/docs/providers/aws/guide/iam/
答案 1 :(得分:0)
您无权执行此操作
这表示您无权执行此操作client.describe_instance_status
。
有一些方法可以让你的功能得到正确的许可:
从此http://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html
了解详情