Как получить параметры в шаблоне облачной информации для запуска с помощью Amazon Go SDK? - PullRequest
0 голосов
/ 29 марта 2019

У меня проблемы с написанием скрипта на Голанге для запуска шаблона облачной информации, который имеет несколько параметров.Я новичок в sdk и golang, поэтому я сталкиваюсь с несколькими синтаксическими ошибками.

Я попытался запустить код в VS studio.

func runCFTscript(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    sess, err := session.NewSession(&aws.Config{
        Region: aws.String("us-west-1")},
    )

    // Create Cloudformation service client
    svc := cloudformation.New(sess)

    // Specify the details of the instance that you want to create.
    runResult, err := svc.CreateStack(&cloudformation.CreateStackInput{


        Parameters: []cloudformation.Parameter{
            {
                ParameterKey:   aws.String("Keyname"),
                ParameterValue: aws.String("testXXX"),
                ParameterKey:   aws.String("InstanceType"),
                ParameterValue: aws.String("t2.micro"),
                ParameterKey:   aws.String("SSHLocation"),
                ParameterValue: aws.String("0.0.0.0/0"),
            },
        },
        StackName:   aws.String("test"),
        TemplateURL: aws.String("https://test.com"),
    })
}

Код ошибки:

./cloudformation.go:27:3: cannot use []cloudformation.Parameter literal (type []cloudformation.Parameter) as type []*cloudformation.Parameter in field value
./cloudformation.go:31:5: duplicate field name in struct literal: ParameterKey
./cloudformation.go:32:5: duplicate field name in struct literal: ParameterValue
./cloudformation.go:33:5: duplicate field name in struct literal: ParameterKey
./cloudformation.go:34:5: duplicate field name in struct literal: ParameterValue
./main.go:55:6: main redeclared in this block

1 Ответ

0 голосов
/ 29 марта 2019

Вы пытаетесь предоставить []Parameter, содержащий один Parameter объект с дублирующимися полями (как говорит ошибка), где вам нужно. Вам нужно передать []*Parameter, содержащий указатель для каждого параметра, который вы хотите передать, все в срезе:

    Parameters: []*cloudformation.Parameter{
        &cloudformation.Parameter{
            ParameterKey:   aws.String("Keyname"),
            ParameterValue: aws.String("testXXX"),
        },
        &cloudformation.Parameter{
            ParameterKey:   aws.String("InstanceType"),
            ParameterValue: aws.String("t2.micro"),
        },
        &cloudformation.Parameter{
            ParameterKey:   aws.String("SSHLocation"),
            ParameterValue: aws.String("0.0.0.0/0"),
        },
    },

(Похоже, вы также дважды объявили main в другом файле, но этот источник не отображается и ошибка не связана.)

...