ホームページ >バックエンド開発 >Python チュートリアル >LocalStack でのサックのセットアップ

LocalStack でのサックのセットアップ

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 22:54:30922ブラウズ

Setting Up an Sucket in LocalStack

導入

クラウド ストレージ ソリューションでは Amazon S3 を使用するのが一般的ですが、ローカル テストの場合、AWS との対話は非効率的でコストがかかる可能性があります。 LocalStack は、AWS サービスをエミュレートする、完全に機能するローカル AWS クラウド スタックです。このガイドでは、macOS 上の LocalStack で S3 バケットを設定する方法を説明し、この設定を使用する利点について説明し、完全なコード例を示します。

S3 に LocalStack を使用する理由

LocalStack を使用して S3 をシミュレートすると、次のような重要な利点が得られます。

  • コスト効率: AWS からの料金を回避できます。
  • 速度: テストはローカルで実行されるため、高速になります。
  • オフライン テスト: インターネット接続は必要ありません。
  • 分離: 実際の AWS リソースに誤って影響を与えるリスクを軽減します。

前提条件

それぞれの OS に以下がインストールされていることを確認してください:

  1. Docker (LocalStack に必要) - ここからダウンロードします。
  2. Python と pip (AWS CLI と boto3 に必要)。
  3. pip または Docker 経由の LocalStack

ステップ 1: LocalStack をインストールして起動する

  • LocalStack をインストールします。
brew install localstack
  • LocalStack を Docker コンテナとして実行します。
localstack start

注: 権限の問題が発生した場合は、コマンドの先頭に sudo を追加してください。

ステップ 2: LocalStack 用に AWS CLI をセットアップする

  • AWS CLI をインストールします。
brew install awscli

注: 上記のコマンドは macOS 用です。 awscli のインストール方法に関する完全なドキュメントを検索してください。

  • AWS CLI を設定します (LocalStack の使用に必要):
aws configure

プレースホルダー値を使用します:

  • AWS アクセス キー ID: テスト
  • AWS シークレット アクセス キー: テスト
  • リージョン: us-east-1
  • 出力形式: json

  • LocalStack エンドポイント URL を設定します:

export LOCALSTACK_ENDPOINT=http://localhost:4566

ステップ 3: LocalStack で S3 バケットを作成する

  • 新しい S3 バケットを作成するには:
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 mb s3://my-local-bucket

ステップ 4: バケットを確認する

  • すべてのバケットをリストしてバケットを確認します。
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 ls

ステップ 5: ファイルのアップロードとダウンロード

  • サンプル ファイルを作成します。
echo "Hello LocalStack!" > testfile.txt
  • ファイルをバケットにアップロードします。
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 cp testfile.txt s3://my-local-bucket
  • ファイルをダウンロードします:
aws --endpoint-url=$LOCALSTACK_ENDPOINT s3 cp s3://my-local-bucket/testfile.txt downloaded_testfile.txt

ステップ 6: S3 操作に Python と Boto3 を使用する

  • Boto3 をインストールする
pip install boto3
  • バケット操作用の Python コード 次の Python スクリプトは、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.")

スクリプトを実行します:

brew install localstack

ステップ 7: リソースをクリーンアップする

  • バケットとその内容を削除するには:
localstack start

結論

この記事では、LocalStack で S3 バケットをセットアップするための段階的なチュートリアルを提供しました。このセットアップはローカル開発に最適であり、コストをかけたりインターネット接続を必要とせずに、AWS S3 の機能を安全にテストできます。

以上がLocalStack でのサックのセットアップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。