从一句话到 Terraform:华为云 AI DevSpace 里跑 AI Shell 的实践记录

举报
yd_245773411 发表于 2026/11/03 07:57:40 2026/11/03
【摘要】 记录一次在华为云 AI DevSpace 体验版里使用 AI Shell 的过程:从自然语言描述需求,到拿到可运行的 Terraform 代码,以及容器生命周期、代码校验、敏感信息管理三个容易踩的坑。

为什么试用 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。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。