从一句话到 Terraform:华为云 AI DevSpace 里跑 AI Shell 的实践记录
为什么试用 AI DevSpace
写 Terraform 最费时间的不是敲代码,而是把「业务想法」翻译成「资源清单」:哪台机器、什么规格、挂哪张网、开哪个端口。华为云 AI DevSpace 里的 AI Shell 把这一步变成了对话式,所以这次专门抽出半小时,用体验版跑了一遍完整链路。
进入体验版:三小时容器
从开发者成长中心的实践任务入口点进去,选择「体验版 → 立即进入」,平台会拉起一个全新的云开发容器,右上角显示剩余时长约 3 小时。整个过程不需要本地装任何环境,浏览器打开就能用。
需要提醒的是:容器是按会话计时的,用完后在容器页点释放,否则下次进去还是旧实例,剩余时长会被继续消耗。
第一句对话
打开容器里的 /aishell 页面,输入的第一句是「请用一句话说明你能帮我做什么」,回复如下:
我是你的华为云基础设施即代码(IaC)架构伙伴,能帮你把云架构想法变成可运行的 Terraform 代码并按需执行部署,同时解释每段代码对应的云资源、主动标记风险反模式。
随后给了一句真实需求:「创建一台 2U4G 的 ECS(按需),再配一条安全组规则放行 22 端口」。AI Shell 会先加载自己的技能说明,然后按「确认资源清单 → 估算费用 → 用户确认 → 生成代码 → validate/plan」的顺序推进,而不是直接甩一段代码过来。
对应的 Terraform 骨架
把上面这段需求落到代码,核心就是三块:provider、ECS、安全组规则。下面这份是我按华为云 provider 语法校对过的写法,可以直接放进 main.tf:
terraform {
required_providers {
huaweicloud = {
source = "huaweicloud/huaweicloud"
version = ">= 1.60.0"
}
}
}
variable "ak" { sensitive = true }
variable "sk" { sensitive = true }
provider "huaweicloud" {
region = "cn-southwest-2"
access_key = var.ak
secret_key = var.sk
}
data "huaweicloud_vpc" "default" {
name = "vpc-default"
}
data "huaweicloud_vpc_subnet" "default" {
vpc_id = data.huaweicloud_vpc.default.id
name = "subnet-default"
}
resource "huaweicloud_compute_instance" "demo" {
name = "demo-ecs"
flavor_id = "s6.medium.2"
image_id = "<镜像ID>"
availability_zone = "cn-southwest-2a"
security_groups = [huaweicloud_networking_secgroup.demo.id]
network {
uuid = data.huaweicloud_vpc_subnet.default.id
}
}
resource "huaweicloud_networking_secgroup" "demo" {
name = "sg-demo"
description = "allow ssh"
}
resource "huaweicloud_networking_secgroup_rule" "ssh" {
security_group_id = huaweicloud_networking_secgroup.demo.id
direction = "ingress"
ethertype = "IPv4"
protocol = "tcp"
port_range_min = 22
port_range_max = 22
remote_ip_prefix = "0.0.0.0/0"
}
三个实践中的注意点
1. 容器与会话有生命周期
体验版的容器有时长上限,任务脚本里如果长期挂着一个旧容器,平台侧不会重新计时。正确做法是用完释放,下次从实践任务入口重新拉起,看到剩余时长约 3 小时再开始。
2. AI 生成的代码必须自己 validate
对话式生成的 Terraform 语法大多没问题,但资源字段名会随 provider 版本变化。落地前固定跑一遍 terraform fmt -check 和 terraform validate,比盲信输出更省时间。
3. 凭据一律走变量
AK/SK 不要写进 main.tf。用 variable 声明并标 sensitive = true,运行时用环境变量注入(TF_VAR_ak / TF_VAR_sk),仓库里只保留 terraform.tfvars.example。
小结
这次体验最大的价值不是「AI 帮我写了多少行」,而是它把「资源清单确认 → 费用估算 → 生成 → 校验」这条流程固化下来了。对于偶尔要起一套环境的场景,比自己翻文档拼参数要快;但代码最终能否落地,仍然取决于你手里的 validate 和 plan。
- 点赞
- 收藏
- 关注作者
评论(0)