我是無服務器框架的新手,我想獲取實例的狀態,所以我用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策略附加的角色。 –