我正在尝试将列表参数从主模板传递到子模板,但是我遇到了两个错误.这些是我在主模板上的当前参数.
"Parameters": {
"ELBSubnets": {
"Default": "subnet-5d8fea67,subnet-3e35cf15",
"Type": "CommaDelimitedList"
},
"LCKeyPair": {
"Default": "key-master",
"Type": "String"
},
"LCSecurityGroups": {
"Default": "sg-10a15c74,sg-880e5fec",
"Type": "CommaDelimitedList"
}
},
Run Code Online (Sandbox Code Playgroud)
传递给子模板时,它们在同一模板上的此方法中被引用.
"ChildTempate1": {
"Properties": {
"Parameters": {
"ELBSubnets": {
"Ref": "ELBSubnets"
},
"KeyPair": {
"Ref": "LCKeyPair"
},
"LCSecurityGroups": {
"Ref": "LCSecurityGroups"
}
},
Run Code Online (Sandbox Code Playgroud)
在子模板上,它们被声明完全相同.
"Parameters": {
"ELBSubnets": {
"Type": "CommaDelimitedList"
},
"LCKeyPair": {
"Type": "String"
},
"LCSecurityGroups": {
"Type": "CommaDelimitedList"
}
},
Run Code Online (Sandbox Code Playgroud)
并且它们在子模板中的此方法中被引用.
"KeyName": {
"Ref": "LCKeyPair"
},
"SecurityGroups": {
"Fn::Join": [
",",
[
{ …Run Code Online (Sandbox Code Playgroud) package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/route53"
)
func main() {
sess := session.Must(session.NewSession())
client := route53.New(sess)
zones, err := client.ListHostedZones(&route53.ListHostedZonesInput{
MaxItems: aws.String("100"),
})
if err != nil {
fmt.Printf("Error occurred")
}
fmt.Printf("%v", zones)
if zones.IsTruncated {
fmt.Printf("%v", zones.NextMarker)
}
}
Run Code Online (Sandbox Code Playgroud)
由于以下条件,上面的代码失败。
if zones.IsTruncated {
fmt.Printf("%v", zones.NextMarker)
}
Run Code Online (Sandbox Code Playgroud)
结果是
non-bool zones.IsTruncated (type *bool) used as if condition
Run Code Online (Sandbox Code Playgroud)
我想知道的是为什么常规类型(bool)和类型(*bool)之间存在差异。我知道一个是指针值,但是条件应该仍然有用。
这是一个没有条件的输出的尾部片段
IsTruncated: true,
MaxItems: "100",
NextMarker: "Wouldn'tYouLikeToKnow"
}
Run Code Online (Sandbox Code Playgroud)