【问题标题】: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 中运行 python 脚本并传递值 - 或者运行 terraform output ... 以从状态中获取输出值

标签: 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-29
    • 2019-08-30
    • 2021-11-11
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多