Apache Airflow 変数の AWS Secrets Manager におけるシークレットキーの使用 - Amazon Managed Workflows for Apache Airflow

Apache Airflow 変数の AWS Secrets Manager におけるシークレットキーの使用

以下のサンプルは、Amazon Managed Workflows for Apache Airflow の Apache Airflow 変数のシークレットキーを取得するために AWS Secrets Manager を呼び出します。Apache Airflow 接続を秘密 AWS Secrets Manager を使用して構成する でのステップを完了していることが前提となります。

バージョン

このページのコード例は、Python 3.10Apache Airflow v2 および Python 3.11Apache Airflow v3 で使用可能です。

前提条件

このページのサンプルコードを使用するには、以下が必要です。

アクセス許可

要件

このコード例を Apache Airflow v2 以降で使用する場合、追加の依存関係は必要ありません。aws-mwaa-docker-images を使用して、Apache Airflow をインストールします。

コードサンプル

以下の手順では、Secrets Manager を呼び出してシークレットを取得する DAG コードを作成する方法について説明します。

  1. コマンドプロンプトで、DAG コードが保存されているディレクトリに移動します。例:

    cd dags
  2. 以下のコードサンプルの内容をコピーし、ローカルに 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 の追加と更新 を参照してください。