算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
terraform-engineer【设计与创意】Use when designing Terraform IaC, reviewing modules, managing state, planning provider upgrades, or improving repeatable infrastructure deployment workflows.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
variable, output, locals 实现参数化和跨模块数据传递。data 源查询已存在或动态生成的云资源。dynamic "block_name" 配合 for_each 处理列表或映射,减少重复冗余。validation 块增强配置健壮性。terraform state mv, rm, import 等命令手动干预状态映射。terraform plan 发现手动修改或自动伸缩导致的实际状态与代码差异。import 块(或旧式 terraform import 命令)将手动创建的资源纳入代码管控。terraform 块中明确指定 Provider 版本,防止自动升级导致的兼容性破坏。alias 管理多区域(Multi-region)或多账号部署。# 初始化并拉取所有模块/插件
terraform init -upgrade
# 生成变更计划并保存到文件(CI/CD 常用)
terraform plan -out=tfplan
# 应用之前保存的计划,跳过确认
terraform apply "tfplan"
# 强行同步特定资源状态
terraform apply -replace="aws_instance.web"
# 图形化展示资源依赖关系
terraform graph | dot -Tsvg > graph.svg
# modules/vpc/main.tf
resource "aws_vpc" "this" {
cidr_block = var.vpc_cidr
tags = {
Name = var.project_name
}
}
resource "aws_subnet" "public" {
for_each = var.public_subnets
vpc_id = aws_vpc.this.id
cidr_block = each.value
map_public_ip_on_launch = true
}
# modules/vpc/variables.tf
variable "vpc_cidr" {
description = "VPC CIDR block"
type = string
}
variable "public_subnets" {
type = map(string)
default = {
"us-east-1a" = "10.0.1.0/24"
"us-east-1b" = "10.0.2.0/24"
}
}
terraform {
required_version = ">= 1.5.0"
backend "s3" {
bucket = "my-tf-state-bucket"
key = "prod/terraform.tfstate"
region = "us-east-1"
dynamodb_table = "terraform-lock"
encrypt = true
}
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
refresh=false 加速检测。