翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CodeArtifact トークンのリフレッシュ
CodeArtifact を使用して Python の依存関係をインストールする場合、Amazon MWAA にはアクティブなトークンが必要です。Amazon MWAA が実行時に CodeArtifact リポジトリにアクセスできるようにするには、スタートアップスクリプトを使用して トークンPIP_EXTRA_INDEX_URL
次のトピックでは、get_authorization_token
バージョン
このページのコード例は、Python 3.10 の Apache Airflow v2 と Python 3.11 の Apache Airflow v3 で使用できます。 https://peps.python.org/pep-0619/
前提条件
このページのサンプルコードを使用するには、以下が必要です。
-
環境の依存関係を保存する CodeArtifact リポジトリです。
アクセス許可
CodeArtifact トークンを更新して結果を Amazon S3 に書き込むには、Amazon MWAA が実行ロールに以下のアクセス権限を持っている必要があります。
-
codeartifact:GetAuthorizationTokenこのアクションにより、Amazon MWAA は CodeArtifact から新しいトークンを取得することができます。次のポリシーは、作成したすべての CodeArtifact ドメインにアクセス許可を付与します。ステートメントのリソース値を変更し、環境からアクセスさせたいドメインのみを指定することで、ドメインへのアクセスをさらに制限できます。{ "Effect": "Allow", "Action": "codeartifact:GetAuthorizationToken", "Resource": "arn:aws:codeartifact:us-west-2:*:domain/*" } -
sts:GetServiceBearerTokenアクションは、CodeArtifactGetAuthorizationTokenAPIオペレーションを呼び出すために必要です。この操作は、pipなどのパッケージ・マネージャーを CodeArtifact とともに使用するときに使用しなければならないトークンを返します。CodeArtifact リポジトリでパッケージマネージャーを使用するには、次のポリシーステートメントに記載されているsts:GetServiceBearerTokenように、環境の実行ロールロールで を許可する必要があります。{ "Sid": "AllowServiceBearerToken", "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*" }
コード例
以下の手順では、CodeArtifact トークンを更新する起動スクリプトを作成する方法について説明します。
-
以下のコードサンプルの内容をコピーし、ローカルに
code_artifact_startup_script.shとして保存します。#!/bin/sh # Startup script for MWAA, refer to https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html set -eu # setup code artifact endpoint and token # https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-0 # https://docs.aws.amazon.com/mwaa/latest/userguide/samples-code-artifact.html DOMAIN="amazon" DOMAIN_OWNER="112233445566" REGION="us-west-2" REPO_NAME="MyRepo" echo "Getting token for CodeArtifact with args: --domain $DOMAIN --region $REGION --domain-owner $DOMAIN_OWNER" TOKEN=$(aws codeartifact get-authorization-token --domain $DOMAIN --region $REGION --domain-owner $DOMAIN_OWNER | jq -r '.authorizationToken') echo "Setting Pip env var for '--index-url' to point to CodeArtifact" export PIP_EXTRA_INDEX_URL="https://aws:$TOKEN@$DOMAIN-$DOMAIN_OWNER.d.codeartifact.$REGION.amazonaws.com/pypi/$REPO_NAME/simple/" echo "CodeArtifact startup setup complete" -
スクリプトを保存したフォルダに移動します。新しいプロンプトウィンドウで
cpを使用して、スクリプトをバケットにアップロードします。amzn-s3-demo-bucketをお客様の情報に置き換えます。aws s3 cp code_artifact_startup_script.sh s3://amzn-s3-demo-bucket/code_artifact_startup_script.sh成功すると、Amazon S3 はオブジェクトへの URL パスを出力します。
upload: ./code_artifact_startup_script.sh to s3://amzn-s3-demo-bucket/code_artifact_startup_script.sh
スクリプトをアップロードすると、環境が更新され、起動時にスクリプトが実行されます。
次のステップ
-
スタートアップスクリプトを使用して環境をカスタマイズする方法については、Amazon MWAA でのスタートアップスクリプトの使用 を参照してください。
-
この例の DAG コードを Amazon S3 バケットの
dagsフォルダにアップロードする方法については、DAG の追加と更新 を参照してください。 -
この例の
plugins.zipファイルを Amazon S3 バケットにアップロードする方法について詳しくは、カスタムプラグインのインストール をご覧ください。