小编Mo *_*Ali的帖子

尝试将参数从Master传递到子模板

我正在尝试将列表参数从主模板传递到子模板,但是我遇到了两个错误.这些是我在主模板上的当前参数.

"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)

json amazon-web-services aws-cloudformation troposphere

10
推荐指数
2
解决办法
8688
查看次数

bool 和 *bool 的区别

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)

go aws-sdk-go

2
推荐指数
1
解决办法
4867
查看次数