gpt4 book ai didi

amazon-web-services - 如何将资源 ID 导入 Cloudformation 中的 UserData

转载 作者:行者123 更新时间:2023-12-03 07:18:42 29 4
gpt4 key购买 nike

我有一个带有 efs 文件系统和实例启动配置的 cloudformation 模板。我需要在 UserData 脚本中引用 efs 文件系统 ID,因为我想在启动时挂载 efs。我已经用 echo ${!Ref EFSFileSystem} 尝试过了,如下所示:

  EFSFileSystem:
Type: AWS::EFS::FileSystem
Properties:
...


InstanceLc:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
...
UserData:
Fn::Base64: !Sub |
#!/bin/bash -xe
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
aws s3 cp s3://aws-cloudinit/install.sh - | bash
echo ${!Ref EFSFileSystem}

但在日志中我可以看到这给了我一个错误:

/var/lib/cloud/instance/scripts/part-001: line 4: ${Ref EFSFileSystem}: bad substitution

我找到了一些示例(例如 https://github.com/awslabs/aws-cloudformation-templates/blob/master/community/services/EFS/efs_with_automount_to_ec2.json ),但我无法将它们应用到我的 UserData 构造中。

在 UserData 中导入 efs 文件系统 ID 的正确语法是什么?

最佳答案

您有一个!Sub已经在字符串上,所以代替 ${!Ref EFSFileSystem}你只需要做 ${EFSFileSystem} 。这将替换为资源的默认输出,在本例中为 Id .

关于amazon-web-services - 如何将资源 ID 导入 Cloudformation 中的 UserData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67541391/

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