我正在为测试在上设置一个气流环境。我在命名空间中添加了一些秘密,它们显示得很好。
secret_token = secret.Secret(
deploy_type='env',
deploy_target='SQL_CONN',
secret='m-secrets',
key='token')
YESTERDAY = datetime.datetime.now() - datetime.timedelta(days=1)
with models.DAG(
dag_id='composer_set_controlm_secret_kubernetes_pod',
schedule_interval=datetime.timedelta(days=1),
start_date=YESTERDAY) as dag:
kubernetes_secret_vars_ex = kubernetes_pod_operator.KubernetesPodOperator(
task_id='ex-kube-secrets',
name='ex-kube-secrets',
image='eu.gcr.io/$PROJECT/$DOCKER_IMG:latest',
namespace='default',
cmds=['python'],
arguments=['call_api.py'],
secrets=[secret_token]
)由于您可以在上面查看,我正在运行一个名为call_api.py程序的对接者映像,我想将通过KubernetesPodOperator传递的秘密打印如下:
call_api.py
if __name__ == '__main__':
print($secret_token) ====> how can I do this ?在文件上找不到任何有价值的资源..。
发布于 2020-11-17 08:37:38
因为您将deploy_type指定为env,所以气流将将您选择的秘密添加到容器的环境中。
您有多个从环境读取的选项。通过默认库的方法是os.environ,它为您提供了当前环境变量的字典。
导入操作系统
但是,如果要以这种方式进行配置,还可以使用print(os.environ‘’SQL_CONN‘)。我们使用dynaconf进行气流部署,这为您提供了一个设置对象,只要环境变量是用DYNACONF_前缀创建的,就可以读取它们。
https://stackoverflow.com/questions/64843567
复制相似问题