gpt4 book ai didi

amazon-web-services - AWS 云形成 : Combining ImportValue and Sub functions causes error

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

将我的模板上传到 CloudFormation 时,我收到以下验证错误:

Template validation error: Template error: the attribute inFn::ImportValue must not depend on any resources, imported values, orFn::GetAZs

我下面有一个测试模板可以重现该问题:

Resources:
EC2Instance:
Type: "AWS::EC2::Instance"
Properties:
ImageId: ami-3bfab942
InstanceType: t2.micro
KeyName: mykeypair
UserData:
"Fn::Base64":
!Sub |
#!/bin/bash
yum update -y aws-cfn-bootstrap
/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource EC2Instance --configsets testset --region ${AWS::Region}
yum -y update
Metadata:
AWS::CloudFormation::Init:
configSets:
testset:
- "testConfiguration"
testConfiguration:
commands:
CreateTestFile:
cwd: "~"
command:
"Fn::ImportValue":
!Sub |
touch ${myexport}

为了让事情尽可能简单,我基本上尝试使用导出创建一个 bash 命令。因此,在上面的示例中,我想创建一个根据导出值命名的文件。我不明白我正在尝试做的事情的上下文中的错误消息。我已验证导出存在于我创建的另一个堆栈中。

最佳答案

问题不在于 Sub,而是您没有正确使用 ImportValue。您在代码中实际导入的内容不是 myexport,而是 touch ${myexport} 作为一个整体。您应该将 ImportValue 放入 Sub 中。

此外,如果导出值字面上称为 myexport,则不要将其放入 ${} 内;仅当它是您在模板中定义的参数时才执行此操作。

您可以将最后几行更改为:

command: !Sub
- "touch ${filename}"
- filename: !ImportValue myexport

关于amazon-web-services - AWS 云形成 : Combining ImportValue and Sub functions causes error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49507871/

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