gpt4 book ai didi

terraform - 在 terraform 变量中设置多行值

转载 作者:行者123 更新时间:2023-12-04 16:25:04 25 4
gpt4 key购买 nike

我正在尝试部署 bean 茎并将其用作 aws_elastic_beanstalk_environment 的一部分地形资源:

  setting {
namespace = "aws:elb:policies:PublicKey"
name = "PublicKey"
value = var.PUBLICKEY
的值var.PUBLICKEY 应该是这种格式:
-----BEGIN PUBLIC KEY-----
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
asdhjasd
-----END PUBLIC KEY-----
请问你有没有试过用这种格式设置变量?或者 terraform 是否允许使用这种格式作为 tfvars 部分的变量?

最佳答案

尽管这种情况的答案是使其成为单行字符串,但这里的问题似乎很可能会吸引对 Terraform 变量中的多行字符串的一般搜索,因此这个答案适用于最终在以下情况下的任何人不能只是使它成为单行字符串。
在 Terraform 语言本身(在 module 块内)或在 .tfvars files 中设置变量时,您可以使用 Heredoc Strings写一个多行字符串值:

example = <<-EOT
-----BEGIN PUBLIC KEY-----
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
asdhjasd
-----END PUBLIC KEY-----
EOT
设置变量值时 on the command linevia environment variables , Terraform 只使用它从字面上接收到的值,因此解决方案是学习如何在 shell 的语法中或使用其他一些编程语言编写一个包含换行符的字符串,以便在设置环境变量的情况下运行 Terraform。对于典型的 Unix 风格的 shell,你可以写引号 '围绕多行字符串,以便按字面解释换行符:
export TF_VAR_example='-----BEGIN PUBLIC KEY-----
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
sajldlkuewindasmASL/aisudoiasumasdnowqeuoi@kajsdlkausKJDolkejpwr
asdhjasd
-----END PUBLIC KEY-----
'
...但无论哪种方式,这最终都会成为您启动 Terraform 的任何 shell 或其他程序的问题,而不是 Terraform 本身,因此不可能给出适用于所有情况的通用答案。写一篇 .tfvars file 是最可预测的方法,因为 Terraform 本身负责解析它。

关于terraform - 在 terraform 变量中设置多行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66609641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com