用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-terraform --skill terraform-workspace命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | terraform-workspace |
| description | Terraform workspace management for multi-environment deployments |
| sasmp_version | 1.3.0 |
| version | 2.0.0 |
| bonded_agent | 03-terraform-state |
| bond_type | SECONDARY_BOND |
Manage multiple environments with Terraform workspaces.
# List workspaces
terraform workspace list
# Create workspace
terraform workspace new dev
terraform workspace new staging
terraform workspace new prod
# Switch workspace
terraform workspace select prod
# Show current
terraform workspace show
# Delete workspace
terraform workspace delete dev
locals {
env_config = {
dev = {
instance_type = "t3.micro"
min_size = 1
max_size = 2
}
staging = {
instance_type = "t3.small"
min_size = 2
max_size = 4
}
prod = {
instance_type = "t3.medium"
min_size = 3
max_size = 10
}
}
config = local.env_config[terraform.workspace]
}
resource "aws_autoscaling_group" "app" {
min_size = local.config.min_size
max_size = local.config.max_size
# ...
}
locals {
name_prefix = "${var.project}-${terraform.workspace}"
}
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
tags = {
Name = "${local.name_prefix}-vpc"
Environment = terraform.workspace
}
}
resource "aws_cloudwatch_alarm" "cpu" {
count = terraform.workspace == "prod" ? 1 : 0
alarm_name = "${local.name_prefix}-cpu-alarm"
# ...
}
resource "aws_db_instance" "main" {
multi_az = terraform.workspace == "prod"
deletion_protection = terraform.workspace == "prod"
# ...
}
terraform {
backend "s3" {
bucket = "company-terraform-state"
key = "app/terraform.tfstate"
region = "us-east-1"
workspace_key_prefix = "workspaces"
dynamodb_table = "terraform-locks"
}
}
# State paths:
# - workspaces/dev/app/terraform.tfstate
# - workspaces/prod/app/terraform.tfstate
infrastructure/
├── modules/
│ └── app/
├── environments/
│ ├── dev/
│ │ ├── main.tf
│ │ ├── backend.tf
│ │ └── terraform.tfvars
│ ├── staging/
│ │ └── ...
│ └── prod/
│ └── ...
# environments/prod/main.tf
module "app" {
source = "../../modules/app"
environment = "prod"
instance_type = "t3.medium"
min_size = 3
}
| Approach | Use Case | Pros | Cons |
|---|---|---|---|
| Workspaces | Simple environments | Single codebase | Same config |
| Directories | Complex differences | Full customization | Code duplication |
| Hybrid | Mixed needs | Flexible | More complexity |
| Error | Cause | Solution |
|---|---|---|
Workspace not found | Not created | terraform workspace new |
State mismatch | Wrong workspace | Check terraform workspace show |
Cannot delete | Has resources | Destroy first or use -force |
Skill("terraform-workspace")