【问题标题】:Terraform output in python scriptpython脚本中的Terraform输出
【发布时间】:2021-11-23 14:56:48
【问题描述】:
所有,
我是 Terraform 的新手,几乎没有问题。所以 terraform main.tf 文件正在创建 redshift 集群,并且在不同的目录(同一个项目)中有 python 脚本需要使用 jdbc url 的输出。
想知道我们如何在 Python 代码中动态地使用它。在 CI/CD 中,两者将一起运行,并且新创建的 redshift url 的输出必须用作下一个 DAG,它是一个 python 文件。谢谢
【问题讨论】:
标签:
terraform
terraform-provider-aws
【解决方案1】:
在不了解您的特定 CI/CD 环境的情况下,也不知道您是在同一个 CI/CD 步骤中还是在不同的步骤中运行这些环境,很难给出准确的答案。以下是一些一般性建议:
您可以将 Terraform 输出值设置为环境变量,然后由 Python 脚本读取,例如:
export MY_OUTPUT_VARIABLE=$(terraform output my_output_variable)
或者您可以配置您的 Python 脚本以将其作为输入参数,例如:
python my_python_script.py --input-var $(terraform output my_output_variable)
或者您可以将 Terraform 输出通过管道传输到一个文件,如果您将 Terraform 和 Python 作为单独的 CI/CD 步骤运行,这可能会很有帮助。然后 Python 脚本可以直接读取文件,或者您可以将其包装在 shell 脚本中,该脚本从文件中读取值并将其作为输入或环境变量传递给 Python 脚本,例如:
terraform output my_output_variable > terraform_output
然后:
python my_python_script.py --input-var $(cat terraform_output)