ECS : Configuration de BOTO pour ECS
Sommaire: Comment configurer BOTO pour ECS.
Instructions
Comment configurer BOTO pour ECS.
BOTO est un SDK AWS (Amazon Web Services) pour Python, qui permet aux développeurs d’écrire des applications orientées objet pour les services S3 et EC2 tout en permettant un accès direct aux services de bas niveau si nécessaire.
Pour configurer la dernière version - boto3 - à utiliser avec ECS, assurez-vous d’utiliser l’adresse absolue du système hôte, y compris le schéma et le port de services S3, par exemple :
01.ecs_endpoint=http://8.8.4.4:9020 02.ecs_access_key_id = 'ecs_user' 03.ecs_secret_key = 'secret'
Fournissez-les à la session S3 et aux constructeurs de ressources.
01.session = Session(aws_access_key_id=ecs_access_key_id, aws_secret_access_key=ecs_secret_key) 02.s3 = session.resource('s3', endpoint_url=ecs_endpoint, verify=False, 03. config=Config(signature_version='s3', s3={'addressing_style': 'path'}))
Veillez à importer la session et la configuration pour éviter tout conflit au moment de l’exécution :
01.from boto3.session import Session, Config
En ce qui concerne les options supplémentaires :
- Spécifier s3 comme signature_version implique l’utilisation de l’authentification AWS v2, ce qui offre une meilleure compatibilité avec ECS que la version d’authentification par défaut utilisée par boto3.
- L’indication d’un adressage basé sur un chemin élimine la nécessité d’une configuration particulière sur l’ECS ou le DNS.
- L’option verify=False est uniquement nécessaire lors de l’utilisation de HTTPS et peut être omise lors de l’utilisation d’ECS Test Drive (https://object.ecstestdrive.com) comme point de terminaison cible.
- Si vous utilisez HTTPS, il est recommandé d’utiliser la commande -W pour nettoyer la sortie (par exemple, python -W une fois boto3_ecs.py).
Renseignements supplémentaires
Une autre façon d’effectuer cette configuration consiste à utiliser directement le fichier de configuration AWS :
~/.aws/config: [default] aws_access_key_id = <access id> aws_secret_access_key = <access secret> s3 = signature_version = s3 addressing_style = path
Cela permet à l’API de boto3 d’accéder à ces informations d’identification, ce qui nous permet de faire :
s3 = boto3.client('s3', endpoint_url = <ecs_endpoint>, verify = False)
Nous pouvons également créer des profils par connexion dans votre fichier de configuration si nous gérons plusieurs points de terminaison.
[profile acme] aws_access_key_id = <acme user access id> aws_secret_access_key = <acme access secret>