Airflow ECSRegisterTaskOperator传递环境变量时出现参数错误
解决ECSRegisterTaskOperator传递环境变量的错误
你遇到的错误是因为**environment参数不能直接放在register_task_kwargs的顶层**,ECS任务定义的环境变量必须嵌套在containerDefinitions数组的容器配置中,这才符合Boto3 register_task_definition API的参数结构要求。
修正后的代码示例:
register_task_kwargs={ "cpu": "256", "memory": "512", "networkMode": "awsvpc", "containerDefinitions": [ { "name": "你的容器名称", # 必须指定容器名称 "image": "你的容器镜像地址", # 必须指定容器镜像 "environment": [ { "name": "REDSHIFT_HOST", "value": redshift_cluster_test_connection.host }, { "name": "REDSHIFT_USER", "value": redshift_cluster_test_connection.user }, { "name": "REDSHIFT_PW", "value": redshift_cluster_test_connection.password } ] } ] }
注意点:
containerDefinitions是必填参数,里面至少要包含容器的name和image字段- 所有环境变量都要放在对应容器的
environment列表下,而不是顶层参数中
内容的提问来源于stack exchange,提问作者luke33
相关产品推荐
相关产品推荐

