gpt4 book ai didi

aws-cloudformation - 使用 cfn-init 中的命令模块在 cloudformation 中设置环境变量

转载 作者:行者123 更新时间:2023-12-03 07:17:10 27 4
gpt4 key购买 nike

我正在尝试通过 cfn-init 中的命令模块设置环境变量。

"commands": {
"set-env": {
"env": {
"HOSTNAME": "fb-iaas.elevatebilling.com"
},
"cwd": "~",
"command": "echo \"$HOSTNAME\" > test.txt"
}
},

这是我在 cfn-init.log 中看到的输出

2016-09-22 10:26:53,638 DEBUG Running command set-env
2016-09-22 10:26:53,639 DEBUG No test for command set-env
2016-09-22 10:26:53,655 INFO Command set-env succeeded
2016-09-22 10:26:53,655 DEBUG Command set-env output:

但是环境变量 HOSTNAME 没有更新。有人可以解释一下我做错了什么吗?

谢谢

最佳答案

当你说变量没有更新时,你是怎么发现的?您是否打开“test.txt”并读取通过管道传送给它的内容,或者是否通过 ssh 进入实例并运行“echo $HOSTNAME”?我之所以问这个问题,是因为关于使用 cfn-init ( http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html ) 运行命令的 AWS 文档对于“env”选项是这样说的:

env - Optional. Sets environment variables for the command. This property overwrites, rather than appends, the existing environment.

根据我对此的解释和我的经验,使用“env”设置的环境变量仅存在于它所在的命令中。如果您在“test.txt”文件中读到该变量已设置为您想要的值,但在运行“echo $HOSTNAME”时却没有,这是因为该变量仅针对该命令而存在。我建议,如果您希望环境变量持续存在,请使用 Cloudformation 模板的 UserData 部分中的“导出”来设置它们。

关于aws-cloudformation - 使用 cfn-init 中的命令模块在 cloudformation 中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39637229/

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