Loading...
Loading...
Compare original and translation side by side
terraform importimporthttps://registry.terraform.io/providers/aliyun/alicloud/latest/docsreferences/terraform importimporthttps://registry.terraform.io/providers/aliyun/alicloud/latest/docsreferences/aliyun vpc describe-vpcs --biz-region-id cn-shanghai --page-size 50--biz-region-id--region--page-size--vpc-id--instance-idsaliyun <product> <command> --helpaliyun ossutil ls oss://aliyun vpc describe-vpcs --biz-region-id cn-shanghai --page-size 50--biz-region-id--region--page-size--vpc-id--instance-idsaliyun <product> <command> --helpaliyun ossutil ls oss://echo "=== aliyun CLI ===" && aliyun --version 2>&1 || echo "NOT_INSTALLED"
echo "=== terraform ===" && terraform --version 2>&1 || echo "NOT_INSTALLED"
echo "=== python3 ===" && python3 --version 2>&1 || echo "NOT_INSTALLED"
echo "=== OS ===" && uname -s 2>&1brew install aliyun-clicurl -sSL --connect-timeout 10 --max-time 120 https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz | tar xz && sudo mv aliyun /usr/local/bin/brew tap hashicorp/tap && brew install hashicorp/tap/terraformundefinedecho "=== aliyun CLI ===" && aliyun --version 2>&1 || echo "NOT_INSTALLED"
echo "=== terraform ===" && terraform --version 2>&1 || echo "NOT_INSTALLED"
echo "=== python3 ===" && python3 --version 2>&1 || echo "NOT_INSTALLED"
echo "=== OS ===" && uname -s 2>&1brew install aliyun-clicurl -sSL --connect-timeout 10 --max-time 120 https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz | tar xz && sudo mv aliyun /usr/local/bin/brew tap hashicorp/tap && brew install hashicorp/tap/terraformundefined
All subsequent aliyun CLI commands will automatically carry AI-Mode and User-Agent identifiers. See the "Command Format Requirements" section above for command formatting rules.
**Disable AI-Mode (when the session ends or if needed):**
```bash
aliyun configure ai-mode disable
后续所有aliyun CLI命令将自动携带AI模式和User-Agent标识。命令格式规则请参考上文「命令格式要求」部分。
**关闭AI模式(会话结束或需要时):**
```bash
aliyun configure ai-mode disablealiyun sts get-caller-identity 2>&1aliyun configurereferences/ram-policies.mdaliyun sts get-caller-identity 2>&1aliyun configurereferences/ram-policies.md~/alicloud-terraform.import/provider.tfexamples/provider.tfconfiguration_source = "AlibabaCloud-Agent-Skills/alibabacloud-terraform-import"terraform initterraform providers schema -json_id_idsiacservice list-resource-typesALIYUNresourceTypeACSterraformResourceType <-> ResourceCode.import/resource-type-mapping.jsonreferences/resource-hub-api.md~/alicloud-terraform.import/provider.tfexamples/provider.tfconfiguration_source = "AlibabaCloud-Agent-Skills/alibabacloud-terraform-import"terraform initterraform providers schema -json_id_idsiacservice list-resource-typesresourceTypeALIYUNACSterraformResourceType <-> ResourceCode.import/resource-type-mapping.jsonreferences/resource-hub-api.mdaliyun resourcecenter list-resource-typesreferences/resource-hub-api.mdreferences/resource-hub-api.mdreferences/api-commands.mdreferences/api-commands.mdhttps://registry.terraform.io/providers/aliyun/alicloud/latest/docsImportterraform importImporthttps://help.aliyun.com/document_detail/110244.htmlaliyun resourcecenter list-resource-typesreferences/resource-hub-api.mdreferences/resource-hub-api.mdreferences/api-commands.mdreferences/api-commands.mdhttps://registry.terraform.io/providers/aliyun/alicloud/latest/docsImportterraform importImporthttps://help.aliyun.com/document_detail/110244.htmlreferences/dependency-rules.mdreferences/dependency-rules.mdLayer 0: VPC, OSS Bucket (no dependencies)
Layer 1: VSwitch, Security Group, EIP (depend on VPC)
Layer 2: NAT Gateway, SLB (depend on VPC + VSwitch)
Layer 3: ECS Instance (depends on VSwitch + Security Group)
Layer 4: Disk (depends on ECS)
Layer 5: RDS, Redis, MongoDB (depend on VSwitch)
Layer 6: DNS Record (depends on Domain)references/dependency-rules.mdreferences/dependency-rules.mdreferences/dependency-rules.md第0层:VPC、OSS Bucket(无依赖)
第1层:VSwitch、安全组、EIP(依赖VPC)
第2层:NAT网关、SLB(依赖VPC + VSwitch)
第3层:ECS实例(依赖VSwitch + 安全组)
第4层:磁盘(依赖ECS)
第5层:RDS、Redis、MongoDB(依赖VSwitch)
第6层:DNS记录(依赖域名)references/dependency-rules.md<product>_<resource_type>.tfvpc_vpcs.tf
vpc_vswitches.tf
vpc_security_groups.tf
vpc_eips.tf
vpc_nat_gateways.tf
ecs_instances.tf
ecs_disks.tf
oss_buckets.tf
rds_instances.tf
kvstore_instances.tf
dds_instances.tf
slb_load_balancers.tf
alidns_domains.tf
alidns_records.tfreferences/terraform-patterns.mdexamples/_id_idreferences/dependency-rules.md<cloud resource ID> -> <terraform resource address><product>_<resource_type>.tfvpc_vpcs.tf
vpc_vswitches.tf
vpc_security_groups.tf
vpc_eips.tf
vpc_nat_gateways.tf
ecs_instances.tf
ecs_disks.tf
oss_buckets.tf
rds_instances.tf
kvstore_instances.tf
dds_instances.tf
slb_load_balancers.tf
alidns_domains.tf
alidns_records.tfreferences/terraform-patterns.mdexamples/_id_idreferences/dependency-rules.md<云端资源ID> -> <Terraform资源地址>
Write the mapping table to `.import/id-mapping.json` for use in subsequent phases.
**Other key principles:**
- Resource names use `<type>_<name>` format (e.g., `alicloud_vpc.vpc_prod_main`)
- Password/secret fields use variables (`var.db_password`)
- Preserve original tags
---
将映射表写入`.import/id-mapping.json`,供后续阶段使用。
**其他核心原则:**
- 资源名称使用`<type>_<name>`格式(例如`alicloud_vpc.vpc_prod_main`)
- 密码/密钥字段使用变量(`var.db_password`)
- 保留原标签
---terraform importterraform import alicloud_vpc.vpc_<name> <vpc-id>
terraform import alicloud_vswitch.vsw_<name> <vsw-id>
terraform import alicloud_security_group.sg_<name> <sg-id>terraform import alicloud_nat_gateway.nat_<name> <nat-id>
terraform import alicloud_eip_address.eip_<name> <eip-id>terraform import alicloud_instance.ecs_<name> <instance-id>
terraform import alicloud_disk.disk_<name> <disk-id>terraform import alicloud_oss_bucket.bucket_<name> <bucket-name>terraform import alicloud_db_instance.rds_<name> <db-id>
terraform import alicloud_kvstore_instance.redis_<name> <redis-id>
terraform import alicloud_mongodb_instance.mongo_<name> <mongo-id>terraform import alicloud_slb_load_balancer.slb_<name> <slb-id>terraform import alicloud_dns_domain.domain_<name> <domain-name>ResourceNotFoundPermissionDeniedalready managedreferences/resource-types.mdterraform importterraform import alicloud_vpc.vpc_<name> <vpc-id>
terraform import alicloud_vswitch.vsw_<name> <vsw-id>
terraform import alicloud_security_group.sg_<name> <sg-id>terraform import alicloud_nat_gateway.nat_<name> <nat-id>
terraform import alicloud_eip_address.eip_<name> <eip-id>terraform import alicloud_instance.ecs_<name> <instance-id>
terraform import alicloud_disk.disk_<name> <disk-id>terraform import alicloud_oss_bucket.bucket_<name> <bucket-name>terraform import alicloud_db_instance.rds_<name> <db-id>
terraform import alicloud_kvstore_instance.redis_<name> <redis-id>
terraform import alicloud_mongodb_instance.mongo_<name> <mongo-id>terraform import alicloud_slb_load_balancer.slb_<name> <slb-id>terraform import alicloud_dns_domain.domain_<name> <domain-name>ResourceNotFoundPermissionDeniedalready managedreferences/resource-types.mdundefinedundefined
Analyze plan output:
- `No changes` -> Validation passed, proceed to Phase 9
- Has diff -> Analyze the cause, refer to common diff fix patterns in `references/terraform-patterns.md`, provide fix recommendations and inform user, execute fix after user confirmation
Common diff causes:
- Tag format mismatch (need to adjust tags syntax in HCL)
- Password fields cannot be read from API (use `ignore_changes` to ignore)
- Computed field differences (add `lifecycle { ignore_changes = [...] }`)
- Default value differences (explicitly set values matching the cloud)
---
分析计划输出:
- `No changes` -> 验证通过,进入阶段9
- 存在差异 -> 分析原因,参考`references/terraform-patterns.md`中的常见差异修复模式,提供修复建议并告知用户,用户确认后执行修复
常见差异原因:
- 标签格式不匹配(需调整HCL中的标签语法)
- 密码字段无法从API读取(使用`ignore_changes`忽略)
- 计算字段差异(添加`lifecycle { ignore_changes = [...] }`)
- 默认值差异(显式设置与云端匹配的值)
---undefinedundefined
Based on output, generate a text-format resource relationship graph (tree structure) showing:
- Network layer -> Compute layer -> Data layer dependency chains
- Security group cross-cutting references
- Load balancer backend binding relationships
Refer to `examples/dependency-graph.txt` for example format.
---
基于输出生成文本格式的资源关系图(树形结构),展示:
- 网络层 -> 计算层 -> 数据层的依赖链
- 安全组的跨域引用
- 负载均衡的后端绑定关系
示例格式请参考`examples/dependency-graph.txt`。
---undefinedundefined
Compare the two lists, find the difference set, generate HCL + import commands for new resources, inform user for confirmation before executing.
**2. Detect deleted resources (exist in state, not in cloud):**
Run existence checks for each resource in state; if API returns empty, execute:
```bash
terraform state rm alicloud_instance.<name>terraform plan -refresh=true 2>&1references/incremental-sync.md
对比两个列表,找出差异集合,为新增资源生成HCL+导入命令,告知用户确认后执行。
**2. 检测已删除资源(存在于状态中,不存在于云端):**
对状态中的每个资源执行存在性检查;若API返回空结果,执行:
```bash
terraform state rm alicloud_instance.<name>terraform plan -refresh=true 2>&1references/incremental-sync.mdreferences/resource-types.mdreferences/terraform-patterns.mdreferences/state-management.mdreferences/api-commands.mdreferences/dependency-rules.mdreferences/resource-hub-api.mdreferences/incremental-sync.mdreferences/resource-types.mdreferences/terraform-patterns.mdreferences/state-management.mdreferences/api-commands.mdreferences/dependency-rules.mdreferences/resource-hub-api.mdreferences/incremental-sync.md