本文指导您如何使用 Go 语言和 Pulumi 管理火山引擎的基础设施。更多信息和示例请参考 Pulumi Go SDK 文档 和 Volcengine Pulumi SDK 。
创建一个新的项目文件夹并进入该目录,然后使用 Pulumi 初始化一个新项目。
mkdir my-volcengine-project cd my-volcengine-project // 以Go语言为例 pulumi new go
在项目中,执行以下命令安装 Volcengine 的 Pulumi SDK。
go get github.com/volcengine/pulumi-volcengine/sdk/go
编写 代码创建火山引擎ECS。
package main import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" "github.com/volcengine/pulumi-volcengine/sdk/go/volcengine/ecs" "github.com/volcengine/pulumi-volcengine/sdk/go/volcengine/vpc" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { fooZones, err := ecs.Zones(ctx, nil, nil) if err != nil { return err } fooVpc, err := vpc.NewVpc(ctx, "fooVpc", &vpc.VpcArgs{ VpcName: pulumi.String("acc-test-vpc"), CidrBlock: pulumi.String("172.16.0.0/16"), }) if err != nil { return err } fooSubnet, err := vpc.NewSubnet(ctx, "fooSubnet", &vpc.SubnetArgs{ SubnetName: pulumi.String("acc-test-subnet"), CidrBlock: pulumi.String("172.16.0.0/24"), ZoneId: pulumi.String(fooZones.Zones[0].Id), VpcId: fooVpc.ID(), }) if err != nil { return err } fooSecurityGroup, err := vpc.NewSecurityGroup(ctx, "fooSecurityGroup", &vpc.SecurityGroupArgs{ SecurityGroupName: pulumi.String("acc-test-security-group"), VpcId: fooVpc.ID(), }) if err != nil { return err } fooImages, err := ecs.Images(ctx, &ecs.ImagesArgs{ OsType: pulumi.StringRef("Linux"), Visibility: pulumi.StringRef("public"), InstanceTypeId: pulumi.StringRef("ecs.g2i.large"), }, nil) if err != nil { return err } _, err = ecs.NewInstance(ctx, "fooInstance", &ecs.InstanceArgs{ InstanceName: pulumi.String("acc-test-ecs"), Description: pulumi.String("acc-test"), HostName: pulumi.String("tf-acc-test"), ImageId: pulumi.String(fooImages.Images[0].ImageId), InstanceType: pulumi.String("ecs.g2i.large"), Password: pulumi.String("93f0cb0614A****"), InstanceChargeType: pulumi.String("PostPaid"), SystemVolumeType: pulumi.String("ESSD_PL0"), SystemVolumeSize: pulumi.Int(40), DataVolumes: ecs.InstanceDataVolumeArray{ &ecs.InstanceDataVolumeArgs{ VolumeType: pulumi.String("ESSD_PL0"), Size: pulumi.Int(50), DeleteWithInstance: pulumi.Bool(true), }, }, SubnetId: fooSubnet.ID(), SecurityGroupIds: pulumi.StringArray{ fooSecurityGroup.ID(), }, ProjectName: pulumi.String("default"), Tags: ecs.InstanceTagArray{ &ecs.InstanceTagArgs{ Key: pulumi.String("k1"), Value: pulumi.String("v1"), }, }, }) if err != nil { return err } return nil }) }
部署基础设施。
在终端中,执行以下命令部署您的基础设施。
pulumi up
回显将要创建的资源,输入yes
确认。
管理和更新基础设施。
pulumi up
命令。pulumi destroy
命令。查看状态和历史,即当前资源的状态和历史变更。
pulumi stack pulumi stack history