je suis nouveau à un framework sans serveur et je veux obtenir le statut d'une instance, donc j'ai utilisé boto3 describe-instance-status()
mais je continue d'obtenir erreur que je ne suis pas autorisé à effectuer ce genre d'opération bien que j'ai un accès administrateur à tous les services aws; S'il vous plaît aider, ai-je besoin de changer ou d'ajouter quelque chose à être reconnuutiliser serverless pour obtenir le statut de l'instance
voici mon code:
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
et voici mon fichier 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
et est ici la message d'erreur que je reçois:
"errorType": "ClientError", "errorMessage": « Une erreur est survenue (Unautho rizedOperation) lors de l'appel de l'opération DescribeInstanceStatus : Vous n'êtes pas autorisé à effectuer cette opération. "
Vous utilisez lambda? Quel est le rôle IAM de votre lambda? Ce rôle IAM a-t-il l'autorisation d'exécuter la ressource EC2? double vérifier l'autorisation de ce rôle. –
Je n'ai pas spécifié de rôle, est-ce que je pourrais le faire dans serverless.yml? Le rôle de sorcière est le plus pratique pour travailler avec la bibliothèque boto3 – ner
Veuillez partager votre politique IAM attachée avec le rôle. –