Utilisation d'une clé secrète AWS Secrets Manager pour une variable Apache Airflow - Amazon Managed Workflows for Apache Airflow

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation d'une clé secrète AWS Secrets Manager pour une variable Apache Airflow

Les exemples d'appels suivants AWS Secrets Manager pour obtenir une clé secrète pour une variable Apache Airflow sur Amazon Managed Workflows for Apache Airflow. Cela suppose que vous avez terminé les étapes deConfiguration d'une connexion Apache Airflow à l'aide d'un secret AWS Secrets Manager.

Version

Vous pouvez utiliser l'exemple de code présenté sur cette page avec Apache Airflow v2 en Python 3.10 et Apache Airflow v3 en Python 3.11.

Prérequis

Pour utiliser l'exemple de code présenté sur cette page, vous aurez besoin des éléments suivants :

Autorisations

Prérequis

Pour utiliser cet exemple de code avec Apache Airflow v2 et versions ultérieures, aucune dépendance supplémentaire n'est requise. aws-mwaa-docker-imagesÀ utiliser pour installer Apache Airflow.

Exemple de code

Les étapes suivantes décrivent comment créer le code DAG qui appelle Secrets Manager pour obtenir le secret.

  1. Dans votre invite de commande, accédez au répertoire dans lequel votre code DAG est stocké. Exemples :

    cd dags
  2. Copiez le contenu de l'exemple de code suivant et enregistrez-le localement soussecrets-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 )

Quelle est la prochaine étape ?

  • Découvrez comment télécharger le code DAG dans cet exemple dans le dags dossier de votre compartiment Amazon S3 dansAjouter ou mettre à jour DAGs.