Maison > développement back-end > Tutoriel Python > Configuration d'un Sucket dans LocalStack

Configuration d'un Sucket dans LocalStack

Linda Hamilton
Libérer: 2024-10-26 22:54:30
original
923 Les gens l'ont consulté

Setting Up an Sucket in LocalStack

Introduction

Travailler avec Amazon S3 est courant pour les solutions de stockage cloud, mais pour les tests locaux, interagir avec AWS peut s'avérer inefficace et coûteux. LocalStack est une pile cloud AWS locale entièrement fonctionnelle qui émule les services AWS. Dans ce guide, nous expliquerons comment configurer un compartiment S3 dans LocalStack sur macOS, discuterons des avantages de l'utilisation de cette configuration et fournirons un exemple de code complet.

Pourquoi utiliser LocalStack pour S3 ?

L'utilisation de LocalStack pour simuler S3 offre des avantages clés :

  • Efficacité des coûts : vous évitez les frais d'AWS.
  • Vitesse : les tests sont plus rapides car ils s'exécutent localement.
  • Test hors ligne : aucune connexion Internet requise.
  • Isolement : réduit les risques d'affecter accidentellement les ressources AWS réelles.

Conditions préalables

Assurez-vous que les éléments suivants sont installés sur votre système d'exploitation respectif :

  1. Docker (obligatoire pour LocalStack) - Téléchargez ici.
  2. Python & pip (nécessaire pour AWS CLI et boto3).
  3. LocalStack via pip ou Docker.

Étape 1 : Installer et démarrer LocalStack

  • Installer LocalStack :
brew install localstack
Copier après la connexion
Copier après la connexion
  • Exécutez LocalStack en tant que conteneur Docker :
localstack start
Copier après la connexion
Copier après la connexion

Remarque : si vous rencontrez des problèmes d'autorisations, ajoutez sudo à la commande.

Étape 2 : configurer l'AWS CLI pour LocalStack

  • Installez AWS CLI :
brew install awscli
Copier après la connexion

Remarque : la commande ci-dessus est destinée à macOS. Trouvez une documentation complète sur la façon d'installer awscli.

  • Configurer AWS CLI (nécessaire pour l'utilisation de LocalStack) :
aws configure
Copier après la connexion

Utiliser des valeurs d'espace réservé :

  • ID de clé d'accès AWS : tester
  • Clé d'accès secrète AWS : tester
  • Région : us-east-1
  • Format de sortie : json

  • Définir l'URL du point de terminaison LocalStack :

export LOCALSTACK_ENDPOINT=http://localhost:4566
Copier après la connexion

Étape 3 : Créer un compartiment S3 dans LocalStack

  • Pour créer un nouveau bucket S3 :
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 mb s3://my-local-bucket
Copier après la connexion

Étape 4 : Vérifier le compartiment

  • Vérifiez votre bucket en répertoriant tous les buckets :
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 ls
Copier après la connexion

Étape 5 : Télécharger et télécharger des fichiers

  • Créez un exemple de fichier :
echo "Hello LocalStack!" > testfile.txt
Copier après la connexion
  • Téléchargez le fichier dans votre bucket :
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 cp testfile.txt s3://my-local-bucket
Copier après la connexion
  • Téléchargez le fichier :
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 cp s3://my-local-bucket/testfile.txt downloaded_testfile.txt
Copier après la connexion

Étape 6 : utiliser Python et Boto3 pour les opérations S3

  • Installer Boto3
pip install boto3
Copier après la connexion
  • Code Python pour les opérations de bucket Le script Python suivant montre la création d'un compartiment, le téléchargement d'un fichier, la liste des objets et le téléchargement d'un fichier à l'aide de Boto3 :
import boto3
from botocore.config import Config

# Configuration for LocalStack
localstack_config = Config(
    region_name='us-east-1',
    retries={'max_attempts': 10, 'mode': 'standard'}
)

# Initialize the S3 client with LocalStack endpoint
s3_client = boto3.client(
    's3',
    endpoint_url="http://localhost:4566",
    aws_access_key_id="test",
    aws_secret_access_key="test",
    config=localstack_config
)

bucket_name = "my-local-bucket"

# Create the bucket
s3_client.create_bucket(Bucket=bucket_name)
print(f"Bucket '{bucket_name}' created.")

# Upload a file
s3_client.upload_file("testfile.txt", bucket_name, "testfile.txt")
print("File uploaded.")

# List objects in the bucket
objects = s3_client.list_objects_v2(Bucket=bucket_name)
for obj in objects.get('Contents', []):
    print("Found file:", obj['Key'])

# Download the file
s3_client.download_file(bucket_name, "testfile.txt", "downloaded_testfile.txt")
print("File downloaded.")
Copier après la connexion

Exécutez le script :

brew install localstack
Copier après la connexion
Copier après la connexion

Étape 7 : Nettoyer les ressources

  • Pour supprimer le bucket et son contenu :
localstack start
Copier après la connexion
Copier après la connexion

Conclusion

Cet article fournit une procédure pas à pas pour configurer un compartiment S3 dans LocalStack. Cette configuration est idéale pour le développement local, vous permettant de tester la fonctionnalité AWS S3 en toute sécurité sans encourir de frais ni avoir besoin d'une connexion Internet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal