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 关注
- 100 浏览
添加回答
举报