首先检查airflow是否有权限访问变量。在AWS控制台中的IAM角色里加入以下Permission并且关联至Airflow:"Action": [ "ssm:GetParameter" ], "Effect": "Allow", "Resource": "arn:aws:ssm:your-region:your-aws-account-id:parameter/airflow/variables/*"
在Airflow中设定你自己的AWS Credentials。这些Credentials可以被用来访问你AWS资源并且取得变量值。请使用以下方式进行设定:
from airflow.models import Variable
import boto3
aws_access_key = Variable.get("aws_access_key")
aws_secret_key = Variable.get("aws_secret_key")
session = boto3.Session(
aws_access_key_id=aws_access_key,
aws_secret_access_key=aws_secret_key,
)
# 然后就可以调用相应的AWS Service了,例如:
# ssm = session.client('ssm')
get
方法来取得相应的变量:variable_value = Variable.get("variable_key")
这么做就可以很容易的取得变量啦!