PythonでBoto3を用いて作成したAmazon S3バケットの削除する

PythonでBoto3を用いて作成したAmazon S3バケットの削除を行っていきます。前回、PythonでBoto3を用いてAmazon S3バケットからファイルを削除するという記事を公開しましたが、今回はその続きとなります。

ちなみに、今回はBoto3を用います。このライブラリ・モジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。また、Boto3を用いる場合には、クレデンシャル(資格情報)などの設定が必要になりますので、こちらを参考にしていただければと思います。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■作成したAmazon S3バケットを確認する

Amazon S3バケットの削除を試みますが、その前に作成したS3バケットを確認します。以前、S3に「kobayashi-test-cloud-a」というバケットを作成しています。

AWSにログインし、コンソール上の検索窓(サービス、特徴、ブログ、およびドキュメントなどを検索)から「S3」と検索。検索結果から「Amazon S3」を選択し、「Amazon S3」左側メニューから「バケット」をクリックしてみます。すると、作成したバケットである「kobayashi-test-cloud-a」を確認することができました。

■Boto3を用いて作成したAmazon S3バケットの削除する

作成したバケットの確認ができましたので、Boto3を用いて作成したAmazon S3バケットの削除するスクリプトを書いていきます。

■コード

import boto3

AWS_REGION ="us-east-2"

client = boto3.client('s3',region_name=AWS_REGION)

bucket_name = "kobayashi-test-cloud-a"

client.delete_bucket(Bucket=bucket_name)

print("s3バケットの削除が完了しました")

importでboto3を呼び出します。その後、AWS_REGIONという変数を定義し、その中で、特定のAWSリージョンを指定し格納します。今回は「us-east-2」とします。Amazon S3サービスでの作業中に様々な例外を回避します。

格納後、clientという変数を定義し、その中でboto3.client()を用います。括弧内には第1の引数,パラメータとしてs3を渡します。その後、第2の引数,パラメータとして「region_name=AWS_REGION」を渡します。これで低レベルのサービスクライアントが作成されます。

その後、bucket_nameという変数を定義し、その中に以前作成したバケットの名前を格納します。

格納後、client.delete_bucket()を用います。括弧内に引数,パラメータとして「Bucket=bucket_name」を渡します。これで引数,パラメータとして渡したバケットが削除されます。

削除後、print()関数を用います。括弧内に引数,パラメータとして、バケットの削除が完了されたという文字列を渡し、出力します。

■実行・検証

このスクリプトを「s3_file_delete.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、「s3バケットの削除が完了しました」と出力されました。これでバケットの削除は完了となります。

完了後、念の為に、AWSにログインし「Amazon S3」から「バケット」をクリックしてみます。クリックすると、バケット内で「バケットはありません」と表示され、バケットが削除されていることが確認できました。

■boto3.resource()を用いてバケットを削除する

確認後、boto3.resource()を用いてバケットを削除することもできますので、これもやってみます。

予めS3バケットには「kobayashi-kobayashi-test-cloud」というバケットを作成しておきます。

作成後、boto3.resource()を用いてバケットを削除するスクリプトを書いていきます。

■コード

import boto3

AWS_REGION ="us-east-2"

resource = boto3.resource('s3',region_name=AWS_REGION)

bucket_name = "kobayashi-kobayashi-test-cloud"

s3_bucket = resource.Bucket(bucket_name)

s3_bucket.delete()

print("s3バケットの削除が完了しました")

boto3.resource()を用い、パラメータ,引数として「s3」を渡し、s3のリソースを使用可能にします。その後、Bucket()を用い、パラメータ,引数として作成したバケットを渡します。

最後にdelete()を用いて、バケットの削除を行います。

■実行・検証

このスクリプトを「s3_bucket_delete_r.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると「バケットの削除が完了しました」と出力され、AWSからAmazon S3の「バケット」を確認すると、作成したバケットが削除されていることが確認できました。

コメント

タイトルとURLをコピーしました