运行时依赖
安装命令
点击复制技能文档
AWS FIS 实验准备 生成运行 AWS FIS 实验所需的所有配置文件,然后通过 CloudFormation 部署,使用自愈迭代直到堆栈成功。输出一个自包含的目录,包含已验证和部署的实验模板,准备好执行。核心原则:在生成文件之前验证资源-操作兼容性。永远不要交付未经测试的配置 —— 先部署和自愈。
参考 始终为每个实验加载: references/output-format.md —— 目录布局、slug 命名、README 模板 references/cfn-base-template.md —— CFN 骨架(参数、IAM 角色、仪表盘、FIS 模板、输出) references/slug-conventions.md —— 场景/上下文 slug 缩写、资源命名、名称长度预算 根据场景有条件加载: references/az-power-interruption-guide.md —— AZ 电源中断(子操作修剪、标签策略、权限) references/eks-pod-action-guide.md —— 任何 aws:eks:pod- 操作(RBAC Lambda、EKS 访问条目、Pod 内存压力计算) references/elasticache-redis-guide.md —— ElastiCache Redis/Valkey(本地 AZ 电源中断、主要节点通过 SSM Automation 重启或复制组故障转移通过 SSM Automation) references/msk-guide.md —— Amazon MSK(通过 SSM Automation 重启代理 —— 没有本地 FIS 操作)
实用脚本(执行,不要作为参考): scripts/precheck-cfn-permissions.sh —— 检测所需的 CFN 服务角色 scripts/deploy-with-retry.sh —— 验证 + 部署 + 删除失败 scripts/rename-output-dir.sh —— 将 FIS 模板 ID追加到目录名称
脚本调用: ${SKILL_DIR} 指的是此技能目录的绝对路径(SKILL.md 所在位置)。在运行任何脚本之前,从技能的文件系统位置解析它。
输出语言规则 检测用户的对话语言,并为所有输出文件(README.md、JSON/YAML 中的注释)使用相同的语言。 中文输入 → 中文输出 英文输入 → 英文输出 混合 → 跟随主导语言
先决条件 所需工具: AWS CLI —— aws fis list-actions、资源发现、CloudFormation aws___search_documentation / aws___read_documentation —— FIS 文档研究 jq —— 由 scripts/deploy-with-retry.sh 和 scripts/precheck-cfn-permissions.sh 所需 EKS Pod 故障注入: 集群身份验证模式必须是 API_AND_CONFIG_MAP 或 API。检查: aws eks describe-cluster --name {CLUSTER} \ --query 'cluster.accessConfig.authenticationMode' 如果仅为 CONFIG_MAP,则用户必须首先更新集群。 MANDATORY:对于任何 aws:eks:pod- 操作,请遵循 references/eks-pod-action-guide.md。
工作流 步骤 1:识别场景和区域 将用户意图分类为以下分支之一: 分支触发器 附加参考 场景库 AZ 电源中断、AZ 应用程序减速、跨 AZ/区域场景 阅读 AWS 文档 URL(下表) 自定义 FIS 操作 用户指定操作 ID 或描述单个故障 —— 自定义 FIS 操作(ElastiCache) ElastiCache AZ 电源中断或 Redis/Valkey 故障转移 references/elasticache-redis-guide.md SSM Automation 目标服务没有本地 FIS 操作(MSK、ElastiCache 主要重启、ElastiCache 故障转移) references/msk-guide.md 或 references/elasticache-redis-guide.md 如果模糊,请询问用户。
场景库文档 URL(JSON 模板不可通过 CLI/API 获得 —— 阅读文档以提取): 场景 文档 URL AZ 电源中断 https://docs.aws.amazon.com/en_us/fis/latest/userguide/az-availability-scenario.html AZ 应用程序减速 https://docs.aws.amazon.com/en_us/fis/latest/userguide/az-application-slowdown-scenario.html 跨 AZ 流量减速 https://docs.aws.amazon.com/en_us/fis/latest/userguide/cross-az-traffic-slowdown-scenario.html 跨区域连接 https://docs.aws.amazon.com/en_us/fis/latest/userguide/cross-region-scenario.html
区域检测顺序: 用户显式指定 从上下文(ARN、之前的对话)推断 aws configure get region 询问用户 将其存储为 TARGET_REGION。
默认实验持续时间: 对于所有场景和子操作,除非用户指定其他,否则为 PT10M(10 分钟)。 对于 AZ 电源中断,按比例缩放 ARC 区域自动转移计时(ARC 从第 2 分钟开始,运行 8 分钟,PT10M;公式:startAfter = 持续时间 ×(5/30))。
步骤 2:发现目标资源 对于场景库场景 CRITICAL: 场景库实验模板不能通过 FIS API 生成。 您必须使用场景 URL(步骤 1 表)调用 aws___read_documentation 以提取 JSON 实验模板,然后再生成任何文件。 文档是唯一的权威来源。
目标识别 —— 更喜欢 resourceArns 而不是 resourceTags: 对于大多数资源类型使用 resourceArns(确切的 ARN)—— 更精确,无需预标记 例外 —— 这些类型不支持 resourceArns,使用 resourceTags 代替: aws:elasticache:replicationgroup aws:ec2:autoscaling-group EKS Pod 操作使用 Kubernetes 名称空间。