AWS Cloud9
ユーザーガイド

AWS Cloud9 の Python サンプル

このサンプルを使用して AWS Cloud9 開発環境 でいくつかの Python スクリプトを実行できます。

このサンプルを作成すると、AWS アカウントに課金される場合があります。これには、Amazon EC2 や Amazon S3 などのサービスで発生する可能性がある料金も含まれます。詳細については、「Amazon EC2 料金表」および「Amazon S3 料金表」を参照してください。

前提条件

このサンプルを使用する前に、以下の前提条件を満たしていることを確認します。

  • 既存の AWS Cloud9 EC2 開発環境 がある。 このサンプルでは、Amazon Linux または Ubuntu Server を実行する Amazon EC2 インスタンスに接続された EC2 環境 が既にあることを前提としています。別のタイプまたはオペレーティングシステムの 環境 がある場合、このサンプルの手順を調整して関連ツールをセットアップする必要がある場合があります。詳細については、「AWS Cloud9 で 環境 を作成する」を参照してください。

  • 既存の環境に既に開いている AWS Cloud9 IDE がある。 環境 を開くと、AWS Cloud9 によってその 環境 の IDE がウェブブラウザで開かれます。詳細については、「AWS Cloud9 で環境を開く」を参照してください。

ステップ 1: 必要なツールをインストールする

このステップでは Python をインストールして設定します。このサンプルを実行するために必要なものです。

  1. AWS Cloud9 IDE のターミナルセッションで、python --version コマンドを実行して Python がインストール済みであるかどうかを確認します。(新しいターミナルセッションを開始するには、メニューバーで、[Window (ウィンドウ)]、[New Terminal (新しいターミナル)] の順に選択します。) 成功すると、出力に Python のバージョン番号が表示されます。Python がインストール済みである場合は、ステップ 2: コードを追加する に進んでください。

  2. yum update for (Amazon Linux) または apt update (for Ubuntu Server) コマンドを実行して、最新のセキュリティ更新プログラムおよびバグ修正がインストールされていることを確認します。

    複数 Amazon Linux:

    sudo yum -y update

    Ubuntu Server の場合:

    sudo apt update
  3. 以下の install コマンドの 1 つ以上を実行して Python をインストールします。

    複数 Amazon Linux:

    sudo yum -y install python27 # Installs Python 2.7. sudo yum -y install python36 # Installs Python 3.6.

    Ubuntu Server の場合:

    sudo apt -y install python # Installs Python 2.7. sudo apt -y install python3 # Installs Python 3.6.

    注記

    Python 2 と 3 がインストール済みで、Python 3 を使用したいが python --version コマンドを実行して出力されたバージョンが Python 2 である場合は、以下のいずれかの方法で Python 3 に切り替えることができます。

    • IDE で組み込みの Python 2 ランナーを使用する代わりに、組み込みの Python 3 ランナーを使用します。詳細については、「ステップ 3: コードを実行する」を参照してください。

    • IDE のターミナルセッションで python コマンドを実行する代わりに、python3 コマンドを実行します。

    • python コマンドを設定して Python 3 を使用するには、virtualenv などのツールを使用して Python 3 の仮想環境を作成し、新しい仮想環境をアクティブにします。たとえば、次のようなコマンドを実行して、仮想環境を作成してからアクティブにすることができます。

      virtualenv --version # If a version number is not output, see https://virtualenv.pypa.io/en/stable/installation/. which python # If the 'python' command is aliased to something like '/usr/bin/python27', prepare to unalias it. unalias python # If the 'python' command is aliased to something like '/usr/bin/python27', unalias it. python --version # Output the current Python version, for example 'Python 2.7.12'. python3 --version # Output the current version of Python 3, for example 'Python 3.6.2'. which python36 # Output the path to the python36 binary, for example '/usr/bin/python36'. cd ~/environment/ # Prepare to create a virtual environment in this path. virtualenv -p /usr/bin/python36 vpy36 # Create a virtual environment for Python 3.6 in this path. source vpy36/bin/activate # Switch to use Python 3.6 instead of Python 2.7.12 when you run the 'python --version' command. python --version # Output the current Python version, for example 'Python 3.6.2'. deactivate # If and when you are done using Python 3.6, prepare to make Python 2.7.12 active again. alias python=/usr/bin/python27 # Switch back to outputting '/usr/bin/python27' when you run the 'which python' command.

      詳細については、virtualenv ウェブサイトの「Installation」および「Usage」を参照してください。

    詳細については、Python ウェブサイトの「Download Python」および Python Packaging User Guide の「パッケージのインストール」を参照してください。

ステップ 2: コードを追加する

AWS Cloud9 IDE で、以下の内容のファイルを作成し、hello.py という名前で保存します。(ファイルを作成するには、メニューバーで [File (ファイル)]、[New File (新規ファイル)] の順に選択します。)ファイルを保存するには、[File (ファイル)]、[Save (保存)] の順に選択します。

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))

注記

上記のコードは、カスタム Python モジュールやパッケージに依存していません。ただし、Python のカスタムモジュールやカスタムパッケージをインポートした後で、それらのモジュールやパッケージを AWS Cloud9 で使用して入力時にコード補完を行うようにする場合は、[Preferences (設定)] で [Project (プロジェクト)]、[Python Support (Python のサポート)]、[Enable Python code completion (Python コード補完を有効にする)] 設定を有効にし、それらのモジュールまたはパッケージへのパスを [Project (プロジェクト)]、[Python Support (Python のサポート)] [PYTHONPATH (Python のパス)] 設定に追加します。(設定を表示および変更するには、メニューバーで、[AWS Cloud9]、[設定] の順に選択します。)

ステップ 3: コードを実行する

  1. AWS Cloud9 IDE のメニューバーで、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)] の順に選択します。

  2. [[New] - Idle ([新規] - アイドル)] タブで [Runner: Auto (ランナー: 自動)] を選択し、使用する Python のバージョンに応じて [Python 2] または [Python 3] を選択します。

    注記

    [Python 2] または [Python 3] が使用できない場合は、環境 にインストールされているバージョンの Python に対してカスタムランナーを作成できます。

    1. [[New] - Idle ([新規] - アイドル)] タブで、[Runner: Auto (ランナー: 自動)] を選択し、[New Runner (新しいランナー)] を選択します。

    2. [My Runner.run] タブで、タブの内容を以下のコードに置き換えます。

      { "cmd" : ["python", "$file", "$args"], "info" : "Running $project_path$file_name...", "selector" : "source.py" }
    3. メニューバーで [File (ファイル)]、[Save As (名前を付けて保存)] の順に選択し、ファイルを Python.run として /.c9/runners フォルダに保存します。

    4. [[New] - Idle ([新規] - アイドル)] タブで、[Runner: Auto (ランナー: 自動)] を選択し、[Python] を選択します。

    5. [hello.py] タブを選択し、アクティブにします。

    環境 にインストールされている特定のバージョンの Python を使用するには、python を前のカスタムランナー定義内の Python 実行可能ファイルのパスに変更します (例: /usr/bin/python27/usr/bin/python36)。

  3. [Command (コマンド)] に「hello.py 5 9」と入力します。コード内の 5sys.argv[1] を、9sys.argv[2] を表します。

  4. [Run (実行)] ボタンを選択して、出力を比較します。

    Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.

ステップ 4: AWS SDK for Python (Boto) をインストールして設定する

このサンプルを強化して AWS SDK for Python (Boto) を使用し、Amazon S3 バケットの作成、利用可能なバケットの一覧表示、さらに作成したバケットの削除を行うことができます。

このステップでは、AWS SDK for Python (Boto) をインストールして設定します。これを使用すると、Amazon S3 などの AWS のサービスを Python コードから簡単に操作できます。AWS SDK for Python (Boto) をインストールする前に、pip をインストールする必要があります。AWS SDK for Python (Boto) をインストールしたら、環境 に認証情報管理をセットアップする必要があります。これらの認証情報は、AWS SDK for Python (Boto) が AWS のサービスとやり取りするために必要です。

pip をインストールするには

  1. AWS Cloud9 IDE で、pip --version コマンドを実行して pip がインストール済みであるかどうかを確認します。成功すると、出力に pip のバージョン番号が表示されます。それ以外の場合は、エラーメッセージが出力されます。pip がインストールされている場合は、次の手順「AWS SDK for Python (Boto) をインストールするには」に進みます。

  2. pip をインストールするには、以下のコマンドを 1 つずつ実行します。

    curl -O https://bootstrap.pypa.io/get-pip.py # Get the install script. sudo python get-pip.py # Install pip. rm get-pip.py # Delete the install script.

    詳細については、pip ウェブサイトの「pip Installation」を参照してください。

AWS SDK for Python (Boto) をインストールするには

pip をインストールしたら、Python を使用して pip install コマンドを実行します。

sudo python -m pip install boto3

詳細については、AWS SDK for Python (Boto 3) の使用開始 の「クイックスタート」セクションの「インストール」を参照してください。

環境 で認証情報管理を設定するには

AWS SDK for Python (Boto) を使用して AWS のサービスを呼び出すたびに、呼び出しに一連の認証情報を指定する必要があります。これらの認証情報は AWS SDK for Python (Boto) にその呼び出しを行う適切なアクセス許可があるかどうかを判別します。認証情報に適切なアクセス権限がない場合は、呼び出しは失敗します。

このステップでは、環境 内に認証情報を保存します。これを行うには、AWS Cloud9 の環境から AWS のサービスを呼び出すの手順を実行してから、このトピックに戻ります。

詳細については、AWS SDK for Python (Boto 3) の使用開始 の「認証情報」を参照してください。

ステップ 5: AWS SDK コードを追加する

このステップでは、今度は Amazon S3 を操作してバケットを作成し、利用できるバケットのリストを表示した後、作成したバケットを削除するコードをいくつか追加します。このコードは後で実行します。

AWS Cloud9 IDE で、以下の内容のファイルを作成し、s3.py という名前で保存します。

import boto3 import sys import botocore if len(sys.argv) < 3: print('Usage: python s3.py <the bucket name> <the AWS Region to use>\n' + 'Example: python s3.py my-test-bucket us-east-2') sys.exit() bucket_name = sys.argv[1] region = sys.argv[2] s3 = boto3.client( 's3', region_name = region ) # Lists all of your available buckets in this AWS Region. def list_my_buckets(s3): resp = s3.list_buckets() print('My buckets now are:\n') for bucket in resp['Buckets']: print(bucket['Name']) return list_my_buckets(s3) # Create a new bucket. try: print("\nCreating a new bucket named '" + bucket_name + "'...\n") s3.create_bucket(Bucket = bucket_name, CreateBucketConfiguration = { 'LocationConstraint': region } ) except botocore.exceptions.ClientError as e: if e.response['Error']['Code'] == 'BucketAlreadyExists': print("Cannot create the bucket. A bucket with the name '" + bucket_name + "' already exists. Exiting.") sys.exit() list_my_buckets(s3) # Delete the bucket you just created. print("\nDeleting the bucket named '" + bucket_name + "'...\n") s3.delete_bucket(Bucket = bucket_name) list_my_buckets(s3)

ステップ 6: AWS SDK コードを実行する

  1. メニューバーで、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)] の順に選択します。

  2. [[New] - Idle ([新規] - アイドル)] タブで [Runner: Auto (ランナー: 自動)] を選択し、使用する Python のバージョンと 環境 にインストールされているバージョンに応じて [Python 2] または [Python 3] を選択します。

  3. [コマンド] に、「s3.py my-test-bucket us-east-2」と入力します。ここで my-test-bucket は作成して削除するバケットの名前、us-east-2 はバケットを作成する AWS リージョンの ID です。他の ID については、アマゾン ウェブ サービス全般のリファレンス の「Amazon Simple Storage Service (Amazon S3)」を参照してください。

    注記

    Amazon S3 バケット名は AWS アカウント内で一意であるだけでなく、AWS— 全体で一意である必要があります。

  4. [Run (実行)] ボタンを選択して、出力を比較します。

    My buckets now are: Creating a new bucket named 'my-test-bucket'... My buckets now are: my-test-bucket Deleting the bucket named 'my-test-bucket'... My buckets now are:

ステップ 7: クリーンアップ

このサンプルを使用し終わった後 AWS アカウントで料金が継続的に発生するのを防ぐには、環境 を削除する必要があります。手順については、「AWS Cloud9 で環境を削除する」を参照してください。