新規のお客様への AWS Cloud9 の提供は終了しました。AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら
AWS Cloud9 の Python チュートリアル
このチュートリアルでは、AWS Cloud9 開発環境で Python コードを実行する方法を示します。
このチュートリアルを完了すると、AWS アカウントに料金が発生する可能性があります。これには、Amazon Elastic Compute Cloud (Amazon EC2) や Amazon Simple Storage Service (Amazon S3) などのサービスに対して発生しうる料金が含まれます。詳細については、「Amazon EC2 料金表
トピック
前提条件
このチュートリアルを使用する前に、以下の前提条件を満たしていることを確認します。
-
AWS Cloud9 EC2 開発環境がある
このチュートリアルでは、EC2 環境があり、環境が Amazon Linux または Ubuntu Serverを実行している Amazon EC2 インスタンス に接続されているという前提を立てています。詳細については、「EC2 環境を作成する」を参照してください。
別のタイプの環境またはオペレーティングシステムを使用している場合は、このチュートリアルの手順の調整が必要になる場合があります。
-
その環境用の AWS Cloud9 IDE を開いている
環境を開くと、AWS Cloud9 によってその環境の IDE がウェブブラウザで開かれます。詳細については、「AWS Cloud9 で環境を開く」を参照してください。
ステップ 1: Python をインストールする
-
AWS Cloud9 IDE のターミナルセッションで、
python --version
コマンドを実行して Python がインストール済みであるかどうかを確認します。(新しいターミナルセッションを開始するには、メニューバーで、[Window (ウィンドウ)]、[New Terminal (新しいターミナル)] の順に選択します。) Python がインストール済みである場合は、ステップ 2: コードを追加する に進んでください。 -
yum update
(Amazon Linux 用) またはapt update
(Ubuntu Server 用) コマンドを実行して、最新のセキュリティ更新プログラムおよびバグ修正がインストールされていることを確認します。Amazon Linux の場合:
sudo yum -y update
Ubuntu Server の場合:
sudo apt update
-
install
コマンドを実行して Python をインストールします。Amazon Linux の場合:
sudo yum -y install python3
Ubuntu Server の場合:
sudo apt-get install python3
ステップ 2: コードを追加する
AWS Cloud9 IDEで、以下の内容のファイルを作成し、hello.py
という名前でファイルを保存します。(ファイルを作成するには、メニューバーでファイル、New File (新しいファイル)を選択します。 ファイルを保存するには、ファイル,保存を選択します。)
import sys print('Hello, World!') print('The sum of 2 and 3 is 5.') sum = int(sys.argv[1]) + int(sys.argv[2]) print('The sum of {0} and {1} is {2}.'.format(sys.argv[1], sys.argv[2], sum))
ステップ 3: コードを実行する
-
AWS Cloud9 IDE のメニューバーで、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)] の順に選択します。
-
[新規]- 停止タブ、コマンドに、
hello.py 5 9
を入力します。コード内の5
はsys.argv[1]
を、9
はsys.argv[2]
を表します。 -
[Run (実行)] を選択して、出力を比較します。
Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.
-
デフォルトでは、AWS Cloud9 はコードのランナーを自動的に選択します。ランナーを変更するには、[Runner (ランナー)] を選択し、[Python 2] または [Python 3] を選択します。
注記
特定のバージョンの Python 用にカスタムランナーを作成できます。詳細については、「ビルダーまたはランナーを作成する」を参照してください。
ステップ 4: AWS SDK for Python (Boto3) をインストールして設定する
AWS SDK for Python (Boto3) は、Python コードを使用して Amazon S3 などの AWS のサービスとのやり取りを有効にします。たとえば、SDK を使用して Amazon S3 バケットを作成し、利用可能なバケットを一覧表示して、作成したばかりのバケットを削除できます。
pip をインストールします。
AWS Cloud9 IDE で、 python -m pip --version
コマンドを実行して、pip
を実行することにより、Python のアクティブなバージョン用にインストールされているかどうかを確認します。pip
がインストール済みである場合は、次のセクションに進みます。
次のコマンドを実行して pip
をインストールします。sudo の環境はユーザーの環境と異なるため、使用する Python のバージョンが現在のエイリアスバージョンと異なる場合は、バージョンを指定する必要があります。
curl -O https://bootstrap.pypa.io/get-pip.py # Get the install script. sudo python3 get-pip.py # Install pip for Python 3. python -m pip --version # Verify pip is installed. rm get-pip.py # Delete the install script.
詳細については、pip
ウェブサイトの「インストール
AWS SDK for Python (Boto3) のインストール
pip
をインストールした後、 pip install
コマンドを実行して AWS SDK for Python (Boto3) を実行します。
sudo python3 -m pip install boto3 # Install boto3 for Python 3. python -m pip show boto3 # Verify boto3 is installed for the current version of Python.
詳細については、の「
ステップ 2: 環境 で認証情報管理を設定する
AWS SDK for Python (Boto3) を使用して AWS のサービスを呼び出すたびに、呼び出しに一連の認証情報を指定する必要があります。これらの認証情報により、呼び出しに必要なアクセス許可が SDK にあるかどうかを判断します。認証情報に必要なアクセス許可がない場合、呼び出しは失敗します。
認証情報を環境に保存するには、AWS Cloud9 の環境から AWS のサービス の呼び出し の手順を実行してから、このトピックに戻ります。
詳細については、『』の「
ステップ 5: AWS SDK コードを追加する
Amazon S3 を使用してバケットを作成するコードを追加し、使用可能なバケットを一覧表示して、任意でバケットを削除します。
AWS Cloud9 IDEで、以下の内容のファイルを作成し、s3.py
という名前でファイルを保存します。
import sys import boto3 from botocore.exceptions import ClientError def list_my_buckets(s3_resource): print("Buckets:\n\t", *[b.name for b in s3_resource.buckets.all()], sep="\n\t") def create_and_delete_my_bucket(s3_resource, bucket_name, keep_bucket): list_my_buckets(s3_resource) try: print("\nCreating new bucket:", bucket_name) bucket = s3_resource.create_bucket( Bucket=bucket_name, CreateBucketConfiguration={ "LocationConstraint": s3_resource.meta.client.meta.region_name }, ) except ClientError as e: print( f"Couldn't create a bucket for the demo. Here's why: " f"{e.response['Error']['Message']}" ) raise bucket.wait_until_exists() list_my_buckets(s3_resource) if not keep_bucket: print("\nDeleting bucket:", bucket.name) bucket.delete() bucket.wait_until_not_exists() list_my_buckets(s3_resource) else: print("\nKeeping bucket:", bucket.name) def main(): import argparse parser = argparse.ArgumentParser() parser.add_argument("bucket_name", help="The name of the bucket to create.") parser.add_argument("region", help="The region in which to create your bucket.") parser.add_argument( "--keep_bucket", help="Keeps the created bucket. When not " "specified, the bucket is deleted " "at the end of the demo.", action="store_true", ) args = parser.parse_args() s3_resource = ( boto3.resource("s3", region_name=args.region) if args.region else boto3.resource("s3") ) try: create_and_delete_my_bucket(s3_resource, args.bucket_name, args.keep_bucket) except ClientError: print("Exiting the demo.") if __name__ == "__main__": main()
ステップ 6: AWS SDK コードを実行する
-
メニューバーで、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)]の順に選択します。
-
[Command (コマンド)] に「
s3.py my-test-bucket us-west-2
」と入力します。my-test-bucket
は作成するバケットの名前、us-west-2
はバケットを作成する先の AWS リージョンの ID です。デフォルトでは、バケットはスクリプトが終了する前に削除されます。バケットを保持するには、コマンドに--keep_bucket
を追加します。AWS リージョン ID のリストについては、「AWS 全般のリファレンス」の「Amazon Simple Storage Service のエンドポイントとクォータ」を参照してください。注記
Amazon S3 バケット名は AWS アカウント内で一意であるだけでなく、 AWS で一意である必要があります。
-
[Run (実行)] を選択して、出力を比較します。
Buckets: a-pre-existing-bucket Creating new bucket: my-test-bucket Buckets: a-pre-existing-bucket my-test-bucket Deleting bucket: my-test-bucket Buckets: a-pre-existing-bucket
ステップ 7: クリーンアップする
このチュートリアルの終了後に引き続き AWS アカウントに課金されないように、AWS Cloud9 環境を削除します。手順については、AWS Cloud9 で環境を削除する を参照してください。