2017-02-15 7 views
0

J'ai essayé de me connecter au SDK boto d'Amazon pour créer un connecteur au service MWS d'Amazon.Connexion Amazon boto.mws avec des rôles et des profils IAM

Toutefois, à l'heure actuelle, la seule façon dont j'ai pu fournir mes informations d'identification à la classe MWSConnection de boto.mws.connection est de coder en dur dans la clé d'accès et la clé secrète. Clairement, cela ne convient pas au déploiement.

Lorsque j'ai utilisé d'autres services Amazon tels que SQS, j'ai pu me connecter en utilisant un rôle et un profil IAM. Par exemple, voici quelques exemples de code que je l'ai utilisé pour se connecter à SQS avec un profil:

REGION = "us-west-2" 
PROFILE_NAME = 'my_profile' 

class SQSManager(object): 

    def __init__(self): 
     self.conn = boto.sqs.connect_to_region(region_name=REGION, profile_name=PROFILE_NAME) 

Cependant, je n'ai pas été en mesure de trouver une méthode pour se connecter via profile_name pour MWS. Je l'ai cherché à travers les méthodes de la classe MWSConnection, ce qui est la façon dont il instancie une connexion:

class MWSConnection(AWSQueryConnection): 

    ResponseFactory = boto.mws.response.ResponseFactory 
    ResponseErrorFactory = boto.mws.exception.ResponseErrorFactory 

    def __init__(self, *args, **kw): 
     kw.setdefault('host', 'mws.amazonservices.com') 
     self._sandboxed = kw.pop('sandbox', False) 
     self.Merchant = kw.pop('Merchant', None) or kw.get('SellerId') 
     self.SellerId = kw.pop('SellerId', None) or self.Merchant 
     kw = self._setup_factories(kw.pop('factory_scopes', []), **kw) 
     super(MWSConnection, self).__init__(*args, **kw) 

Il est clairement accepter les touches d'accès/secrets sont des paramètres clés. Est-il possible de se connecter à MWS en utilisant le SDK boto d'Amazon en utilisant des profils et des rôles IAM?

Répondre

0

Le service Web du marché (MWS) est Amazon au détail. Je ne pense pas que ce soit lié à AWS et il n'utilise pas du tout IAM. Je suis vraiment surpris de voir qu'il est pris en charge dans boto (c'est not in boto3).