本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Secrets Manager 對於 Apache 氣流變量使用秘密密鑰
下列範例呼叫, AWS Secrets Manager 以取得 Apache 氣流變數在 Amazon 管理工作流程中用於 Apache 氣流變數的秘密金鑰。它假設您已完成中的步驟使用 AWS Secrets Manager 秘密設定 Apache Airflow 連線。
版本
-
此頁面上的示例代碼可以與 Apache 氣流 V1 在 Python 3.7
中使用。
-
您可以使用此頁面上的代碼示例與 Python 3.10
中的阿帕奇氣流 V2。
必要條件
若要使用此頁面上的範例程式碼,您需要下列項目:
-
Secrets Manager 後端做為 Apache 氣流組態選項,如所示使用 AWS Secrets Manager 秘密設定 Apache Airflow 連線。
-
Secrets Manager 中的 Apache 氣流變量字符串,如圖所示使用 AWS Secrets Manager 秘密設定 Apache Airflow 連線。
許可
-
Secrets Manager 權限,如所示使用 AWS Secrets Manager 秘密設定 Apache Airflow 連線。
要求
-
若要將此程式碼範例與 Apache Airflow v1 搭配使用,不需要額外的相依性。此程式碼會在您的環境中使用 Apache 氣流 v1 基本安裝
。
-
若要將此程式碼範例與 Apache Airflow v2 搭配使用,不需要額外的相依性。該代碼使用 Apache 氣流 v2 基本安裝
在您的環境。
範例程式碼
下列步驟說明如何建立呼叫 Secret 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
資料夾新增或更新 DAGs。