我是无服务器框架的新手,我想获取实例的状态,所以我用boto3 describe-instance-status()
但我不断收到错误,我没有被授权执行这种操作,虽然我有管理员访问权限对所有aws服务;请大家帮忙,我需要改变,或添加什么东西被识别使用无服务器来获取实例的状态
这里是我的代码:
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
,这里是我的serverless.yml文件
service: ec2
provider:
name: aws
runtime: python2.7
timeout: 30
memorySize: 128
stage: dev
region: us-east-1
iamRoleStatements:
- Effect: "Allow"
Action:
- "ec2:DescribeInstanceStatus"
Resource: "*"
functions:
instance_status:
handler: handler.instance_status
description: Status ec2 instances
events:
- http:
path: ''
method: get
这里是我得到的错误消息:
“errorType”:“ClientError”,“errorMessage”:“发生错误 (Unautho rizedOperation)调用DescribeInstanceStatus 操作时:您无权执行此操作。“
您正在使用拉姆达?什么是您的lambda的IAM角色使用? IAM角色是否有权执行EC2的资源?仔细检查此角色的权限。 –
我没有指定角色,我可以在serverless.yml中执行此操作吗?女巫的角色是最方便与boto3图书馆合作 – ner
请分享您的IAM策略附加的角色。 –