Ich habe versucht, eine Verbindung zu Amazon Boto SDK herzustellen, um einen Connector zu Amazon MWS-Dienst zu erstellen.Amazon Boto.mws-Verbindung mit IAM-Rollen und -Profilen
Wie auch immer, die einzige Möglichkeit, meine Anmeldeinformationen für die MWSConnection-Klasse von boto.mws.connection anzugeben, besteht in der Festcodierung im Zugriffs- und geheimen Schlüssel. Dies ist eindeutig nicht für den Einsatz geeignet.
Wenn ich andere Amazon-Dienste wie SQS verwendet habe, konnte ich mich mithilfe einer IAM-Rolle und eines IAM-Profils verbinden. Zum Beispiel, hier einiger Beispiel-Code, den ich verwendet habe, um SQS mit einem Profil zu verbinden:
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)
Allerdings habe ich nicht in der Lage gewesen, ein Verfahren zur Verbindung über profile_name für MWS zu finden. Ich habe durch die Methoden MWSConnection Klasse gesucht, und das ist, wie es eine Verbindung instanziiert:
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)
Es ist klar, den Zugang/geheime Schlüssel sind Keyword-Parameter zu akzeptieren. Gibt es trotzdem eine Verbindung zu MWS mit Amazon Boto SDK mit Profilen und IAM-Rollen?