翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Apache Airflow 変数 AWS Secrets Manager の でのシークレットキーの使用
次のサンプル は AWS Secrets Manager 、Amazon Managed Workflows for Apache Airflow で Apache Airflow 変数のシークレットキーを取得するために を呼び出します。AWS Secrets Manager シークレットを使用した Apache Airflow 接続の設定 でのステップを完了していることが前提となります。
バージョン
-
このページのサンプルコードは、Python 3.7
の Apache Airflow v1 で使用できます。
-
このページのコード例は、Python 3.10
の Apache Airflow v2 と共に使用可能です。
前提条件
このページのサンプルコードを使用するには、以下が必要です。
-
Secrets Manager バックエンドを Apache Airflow 構成オプションとして使用する方法は、AWS Secrets Manager シークレットを使用した Apache Airflow 接続の設定 で示されています。
-
AWS Secrets Manager シークレットを使用した Apache Airflow 接続の設定 に示すように、Secrets Manager の Apache Airflow 変数文字列。
アクセス許可
-
Secrets Manager の権限 (AWS Secrets Manager シークレットを使用した Apache Airflow 接続の設定 を参照)。
要件
-
このコード例を Apache Airflow v1 で使用する場合、追加の依存関係は必要ありません。このコードでは、ご使用の環境にある Apache Airflow v1 のベースインストール
を使用します。
-
このコード例を Apache Airflow v2 で使用する場合、追加の依存関係は必要ありません。このコードでは、お使いの環境にある Apache Airflow v2 のベースインストール
を使用します。
コードサンプル
以下の手順では、Secrets Manager を呼び出してシークレットを取得する DAG コードを作成する方法について説明します。
-
コマンドプロンプトで、DAG コードが保存されているディレクトリに移動します。以下に例を示します。
cd dags
-
以下のコードサンプルの内容をコピーし、ローカルに
secrets-manager-var.py
として保存します。from airflow import DAG from airflow.operators.python_operator import PythonOperator from airflow.models import Variable from airflow.utils.dates import days_ago from datetime import timedelta import os DAG_ID = os.path.basename(__file__).replace(".py", "") DEFAULT_ARGS = { 'owner': 'airflow', 'depends_on_past': False, 'email': ['airflow@example.com'], 'email_on_failure': False, 'email_on_retry': False, } def get_variable_fn(**kwargs): my_variable_name = Variable.get("test-variable", default_var="undefined") print("my_variable_name: ", my_variable_name) return my_variable_name with DAG( dag_id=DAG_ID, default_args=DEFAULT_ARGS, dagrun_timeout=timedelta(hours=2), start_date=days_ago(1), schedule_interval='@once', tags=['variable'] ) as dag: get_variable = PythonOperator( task_id="get_variable", python_callable=get_variable_fn, provide_context=True )
次のステップ
-
この例の DAG コードを Amazon S3 バケットの
dags
フォルダにアップロードする方法については、DAG の追加と更新 を参照してください。