亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Golang 上使用 Pulumi 創建新的 ec2 實例會出現意外

在 Golang 上使用 Pulumi 創建新的 ec2 實例會出現意外

Go
波斯汪 2022-12-13 10:38:48
我正在嘗試在 Golang 上使用 Pulumi 創建一個新的 AWS EC2 實例。這是我的功能:    ec2, errEc2 := ec2.NewInstance(ctx, name, &ec2.InstanceArgs{    SubnetId:               pulumi.String(subnet.Id),    Ami:                    pulumi.String("ami-0022f774911c1d690"),    AvailabilityZone:       pulumi.String("us-east-1"]),    InstanceType:           pulumi.String("t3.micro"),    VpcSecurityGroupIds:    pulumi.StringArray{secGroup.ID()},    Tags: pulumi.StringMap{        "Project": pulumi.String("projectName"),        "Name": pulumi.String("exampleName"),        "Environment": pulumi.String("staging"),    },})使用此文檔作為參考,輸入參數對我來說看起來不錯但是當我跑步時pulumi up我收到這個奇怪的錯誤    error: 1 error occurred:    * creating EC2 Instance: MissingParameter: The request must contain the parameter ImageId    status code: 400, request id: 91babb9b....在文檔或網絡中的任何地方,我都沒有發現需要使用 ImageId,并且當我嘗試將其提供給 ec2.NewInstance 函數時,出現“未知字段”語法錯誤筆記:我正在使用這些包github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2github.com/pulumi/pulumi/sdk/v3/go/pulumi
查看完整描述

2 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

修復了錯誤——我不知道是什么問題,因為 ID 是相同的,但我修復它的方法是這樣做:


之前使用 LookupAmi 函數:


func GetAmi(ctx *pulumi.Context, Ami map[string]string) (*ec2.LookupAmiResult, error){

ami, amiErr := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{

    NameRegex:  pulumi.StringRef(Ami["Name"]),

    Owners: []string {

        Ami["Owner"],

    },

})

if amiErr != nil {

    log.Fatal("Got error while trying to get ami image!", amiErr)

}

return ami, amiErr

}


然后才使用先前函數中的 ami.Id 字段創建 ec2 實例:


    ec2, errEc2 := ec2.NewInstance(ctx, name, &ec2.InstanceArgs{

    SubnetId:               pulumi.String(subnet.Id),

    Ami:                    pulumi.String(ami.Id),

    AvailabilityZone:       pulumi.String(Ec2["AvailabilityZone"]),

    InstanceType:           pulumi.String(Ec2["InstanceType"]),

    VpcSecurityGroupIds:    pulumi.StringArray{secGroup.ID()},

    Tags: pulumi.StringMap{

        "Project": pulumi.String(Ec2["Name"]),

        "Name": pulumi.String(name),

        "Environment": pulumi.String(environment),

    },

})

if errEc2 != nil {

    log.Fatalln("Got error while trying to create ec2 instance!", errEc2)

}

return ec2, errEc2


查看完整回答
反對 回復 2022-12-13
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

我看到您的代碼有一些錯誤:

AvailabilityZone:       pulumi.String("us-east-1"]),

這里多了一句],應該是:

AvailabilityZone:       pulumi.String("us-east-1"),

除此之外,它us-east-1不是一個有效的可用區,你可能想要us-east-1a,所以最終:

AvailabilityZone:       pulumi.String("us-east-1a"),

關于您的圖像 ID 問題,我會檢查您引用的 AMI 是否確實存在于您的帳戶中。圖像 ID 屬性由Amiid 發送,所以應該足夠了


查看完整回答
反對 回復 2022-12-13
  • 2 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號