2 回答

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

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 屬性由Ami
id 發送,所以應該足夠了
- 2 回答
- 0 關注
- 127 瀏覽
添加回答
舉報