チュートリアル: 開発エンドポイントで PyCharm Professional をセットアップする
このチュートリアルでは、ローカルマシンで実行中の PyCharm Professional
開発エンドポイントをインタラクティブに接続するには、PyCharm Professional がインストールされている必要があります。無料版を使用してこれを行うことはできません。
注記
このチュートリアルでは、Amazon S3 をデータソースとして使用します。代わりに JDBC データソースを使用する場合は、Virtual Private Cloud (VPC) で開発エンドポイントを実行する必要があります。SSH を使用して VPC の開発エンドポイントに接続するには、SSH トンネルを作成する必要があります。このチュートリアルには、SSH トンネルを作成する手順は含まれていません。SSH を使用して VPC の開発エンドポイントに接続する方法については、AWS セキュリティブログの「Securely Connect to Linux Instances Running in a Private Amazon VPC
PyCharm Professional を開発エンドポイントに接続する
-
PyCharm に
legislators
という名前の新しい純粋な Python プロジェクトを作成します。 -
プロジェクトに
get_person_schema.py
という名前のファイルを、次の内容で作成します。from pyspark.context import SparkContext from awsglue.context import GlueContext def main(): # Create a Glue context glueContext = GlueContext(SparkContext.getOrCreate()) # Create a DynamicFrame using the 'persons_json' table persons_DyF = glueContext.create_dynamic_frame.from_catalog(database="legislators", table_name="persons_json") # Print out information about this data print("Count: ", persons_DyF.count()) persons_DyF.printSchema() if __name__ == "__main__": main()
-
次のいずれかを行います。
-
AWS Glue バージョン 0.9 の場合、AWS Glue Python ライブラリファイル
PyGlue.zip
をhttps://s3.amazonaws.com/aws-glue-jes-prod-us-east-1-assets/etl/python/PyGlue.zip
から、ローカルマシンの便利な場所にダウンロードします。 -
AWS Glue バージョン 1.0 以降の場合、AWS Glue Python ライブラリファイル
PyGlue.zip
をhttps://s3.amazonaws.com/aws-glue-jes-prod-us-east-1-assets/etl-1.0/python/PyGlue.zip
から、ローカルマシンの便利な場所にダウンロードします。
-
-
PyCharm のプロジェクトのコンテンツルートとして
PyGlue.zip
を追加します。-
PyCharm で、[File] (ファイル)、[Settings] (設定) の順に選択し、[Settings] (設定) ダイアログボックスを開きます。(
Ctrl+Alt+S
キーを押す方法もあります。) -
legislators
プロジェクトを展開し、[Project Structure] (プロジェクト構造) を選択します。次に、右ペインで [+Add Content Root] (+ コンテンツルートの追加) を選択します。 -
PyGlue.zip
を保存した場所に移動して選択し、[Apply] (適用) を選択します。
[Settings] (設定) 画面は以下のようになります。
[Apply] (適用) を選択した後は、[Settings] (設定) ダイアログボックスを開いたままにします。
-
-
デプロイオプションを設定し、SFTP を使用してローカルスクリプトを開発エンドポイントにアップロードします (この機能は、PyCharm Professional でのみ使用できます)。
-
[Settings] (設定) ダイアログボックスで、[Build, Execution, Deployment] (ビルド、実行、デプロイ) セクションを展開します。[Deployment] (デプロイ) サブセクションを選択します。
-
中央のペインの一番上にある [+] アイコンを選択し、新しいサーバーを追加します。[タイプ] を
SFTP
に設定し、名前を付けます。 -
詳細ページにリストされているように、[SFTP ホスト] を開発エンドポイントの [パブリックアドレス] に設定します (詳細ページを表示するには、AWS Glue コンソールで開発エンドポイントの名前を選択します)。VPC で実行されている開発エンドポイントの場合、[SFTP ホスト] をホストアドレスに設定し、SSH トンネルのローカルポートを開発エンドポイントに設定します。
-
[User name] (ユーザー名) を
glue
に設定します。 -
[Auth type] (認証タイプ) を [Key pair (OpenSSH or Putty)] (キーペア、OpenSSH または Putty) に設定します。開発エンドポイントのプライベートキーファイルがある場所を参照し、プライベートキーファイルを設定します。PyCharm は DSA、RSA、ECDSA の OpenSSH キータイプのみをサポートし、Putty のプライベート形式のキーは受け入れないことに注意してください。
ssh-keygen
の最新バージョンを使用して、PyCharm が受け入れるキーペアタイプを以下のような構文で生成できます。ssh-keygen -t rsa -f
<key_file_name>
-C "<your_email_address>
" -
[Test connection (接続のテスト)] を選択し、接続をテストします。接続が成功したら、[Apply] (適用) を選択します。
[Settings] (設定) 画面は以下のようになります。
再び、[Apply] (適用) を選択した後は、[Settings] (設定) ダイアログボックスを開いたままにします。
-
-
ローカルディレクトリをデプロイ用のリモートディレクトリにマッピングします。
-
右のペインの [Deployment] (デプロイ) ページで、[Mappings] (マッピング) と書かれた中央上部のタブを選択します。
-
[Deployment Path] (デプロイパス) 列で、プロジェクトパスのデプロイ用に
/home/glue/scripts/
の下にパスを入力します。例:/home/glue/scripts/legislators
。 -
[Apply] を選択します。
[Settings] (設定) 画面は以下のようになります。
[OK] を選択し、[設定] ダイアログボックスを閉じます。
-
開発エンドポイントにスクリプトをデプロイする
-
[Tools (ツール)]、[Deployment (デプロイ)] の順に選択した後、次の図に示すように、開発エンドポイントをセットアップする名前を選択します。
スクリプトがデプロイされた後、画面の下部は、次のようになります。
-
メニューバーで、[Tools (ツール)]、[Deployment (デプロイ)]、[Automatic Upload (always) (自動アップロード (常時))] の順に選択します。[Automatic Upload (always) (自動アップロード (常時))] の横にチェックマークが表示されていることを確認します。
このオプションを有効にすると、PyCharm は変更されたファイルを開発エンドポイントに自動的にアップロードします。
リモートインタープリタの設定
開発エンドポイントで Python インタプリタを使用するように PyCharm を設定します。
-
[ファイル] メニューの [設定] を選択します。
-
プロジェクトの [legislators (立法者)] を展開し、[Project Interpreter (プロジェクトインタープリタ)] を選択します。
-
[Project Interpreter (プロジェクトインタープリタ)] リストの横にある歯車アイコンを選択し、[追加] を選択します。
-
[Add Python Interpreter (Python インタープリタを追加)] ダイアログボックスの左ペインで、[SSH Interpreter (SSH インタープリタ)] を選択します。
-
[Existing server configuration (既存のサーバー設定)] を選択し、[Deployment configuration (展開設定)] リストで設定を選択します。
これで、画面は以下の図のようになります。
-
[Move this server to IDE settings (このサーバーを IDE 設定に移動する)] を選択し、[次へ] を選択します。
-
[Interpreter (インタプリタ)] フィールドで、Python 2 を使用している場合は、パスを
/usr/bin/gluepython
に変更し、Python 3 を使用している場合は/usr/bin/gluepython3
に変更します。次に、[Finish] (終了) を選択します。
開発エンドポイントでスクリプトを実行する
スクリプティングを実行するには:
-
左ペインでファイル名を右クリックし、[
<filename>
を実行] を選択します。一連のメッセージの後、最終的な出力にはカウントとスキーマが表示されます。
Count: 1961 root |-- family_name: string |-- name: string |-- links: array | |-- element: struct | | |-- note: string | | |-- url: string |-- gender: string |-- image: string |-- identifiers: array | |-- element: struct | | |-- scheme: string | | |-- identifier: string |-- other_names: array | |-- element: struct | | |-- lang: string | | |-- note: string | | |-- name: string |-- sort_name: string |-- images: array | |-- element: struct | | |-- url: string |-- given_name: string |-- birth_date: string |-- id: string |-- contact_details: array | |-- element: struct | | |-- type: string | | |-- value: string |-- death_date: string Process finished with exit code 0
これで開発エンドポイントでスクリプトをリモートでデバッグするためのセットアップができました。