Auto-sync: update nexus workspace

This commit is contained in:
2026-04-29 15:44:38 +08:00
parent b2aadf771a
commit c961c6a394
114 changed files with 4784 additions and 1334 deletions

View File

@@ -0,0 +1,43 @@
---
title: "ECS Deploy Runner"
type: concept
tags: [Terraform, ECS, Deployment, IaC, Docker, CI/CD]
sources:
- ctp-topic-16-cross-account-terraform-modules.md
last_updated: 2026-05-15
---
## Overview
ECS Deploy RunnerEDR是运行在 AWS ECS 上的 Docker 容器,负责在跨账号 Terraform 部署流水线中执行 `terraform plan``terraform apply` 命令。它是流水线的实际执行单元。
## How It Works
1. **触发**Jenkins托管在 [[Shared-Account]])检测到模块目录中的 `cross-account.json` 标记文件
2. **启动**ECS Deploy Runner 在 Shared Account 的 ECS 集群中启动
3. **Assume Role**:通过 Assume Role 获取两个目标账号 IAM 角色的临时凭证:
- `[[TF-State-Bucket-Accessor]]`:读取目标账号的 Terraform 状态文件
- `[[Cross-account-ECS-Deploy-Runner-Role]]`:在目标账号中执行资源部署
4. **执行**:运行 Terraform CLI 命令完成部署
## Key Characteristics
- **容器化**:运行在 Docker 容器中,环境一致性好
- **按需启动**:每次部署触发一次容器启动,无长期占用
- **临时凭证**:通过 Assume Role 获取的短期凭证,最小化密钥暴露时间
- **与 Terragrunt 配合**Terragrunt HCL 文件配置角色切换逻辑
## Local vs CI/CD Difference
| 环境 | 角色处理 |
|------|---------|
| 本地开发 | Terragrunt 自动处理角色切换,无需手动 Assume Role |
| Jenkins CI/CD | EDR 通过 Assume Role 获取两个专用角色的临时凭证 |
## Relationships
- [[CI/CD Pipeline]]EDR 是 CI/CD 流水线的执行层
- [[Cross-account-Terraform-Modules]]EDR 是跨账号 Terraform 模块方案的核心执行组件
- [[Shared-Account]]EDR 运行在 Shared Account 的 ECS 集群中
- [[Assume-Role]]EDR 通过 Assume Role 获取跨账号权限
- [[Docker-Containerization]]EDR 以 Docker 容器形式运行