本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS FIS 的行动集
要创建实验模板,则必须定义一项或多项操作以形成操作集。有关 AWS FIS 提供的预定义操作列表,请参阅操作。
实验期间只能执行一次操作。要在同一个实验中多次运行同一 AWS FIS 操作,请使用不同的名称将其多次添加到模板中。
操作语法
操作集采用以下语法形式:
{
"actions": {
"action_name
": {
"actionId": "aws:service
:action-type
",
"description": "string
",
"parameters": {
"name
": "value
"
},
"startAfter": ["action_name
", ...],
"targets": {
"resource_type
": "target_name
"
}
}
}
}
您需要为操作定义提供以下内容:
有关示例,请参阅操作示例。
操作持续时间
如果操作包含可用于指定操作持续时间的参数,则默认情况下,只有等到此时段结束,才能视为操作已完成。如果您已将 emptyTargetResolutionMode
实验选项设置为 skip
,则当未解析任何目标时,操作将立即完成,状态为“已跳过”。例如,如果您将持续时间指定为 5 分钟,则 AWS FIS 会认为操作在 5 分钟后完成。然后在此时段结束后开始下一项操作,直到完成所有操作。
持续时间可以是操作条件维持时长,也可以是指标监控时长。例如,在指定的持续时间内注入延迟。对于近乎瞬时的操作类型(如终止实例),将在指定持续时间内监控停止条件。
如果操作参数中包含后期操作,则将在操作完成后再执行后期操作。后期操作的用时可能会在指定操作的持续时间到下一项操作的开始时间之间造成延迟(如果其他操作均已完成,则改为到实验的结束时间)。
操作示例
示例操作如下所示。
示例:停止 EC2 实例
以下操作将停止运行通过 targetInstances
目标识别的 EC2 实例。两分钟后重启目标实例。
"actions": { "
stopInstances
": { "actionId": "aws:ec2:stop-instances", "parameters": { "startInstancesAfterDuration": "PT2M
" }, "targets": { "Instances": "targetInstances
" } } }
示例:中断竞价型实例
以下操作将停止使用名为的目标标识的竞价型实例targetSpotInstances
。两分钟后再中断竞价型实例。
"actions": { "
interruptSpotInstances
": { "actionId": "aws:ec2:send-spot-instance-interruptions", "parameters": { "durationBeforeInterruption": "PT2M
" }, "targets": { "SpotInstances": "targetSpotInstances
" } } }
示例:中断网络流量
以下操作将拒绝目标子网与其他可用区子网之间的流量。
"actions": { "
disruptAZConnectivity
": { "actionId": "aws:network:disrupt-connectivity", "parameters": { "scope": "availability-zone", "duration": "PT5M
" }, "targets": { "Subnets": "targetSubnets
" } } }
示例:终止 EKS Worker
以下操作将终止 EKS 集群中使用名targetNodeGroups
为的目标标识的 50% 的 EC2 实例。
"actions": { "
terminateWorkers
": { "actionId": "aws:eks:terminate-nodegroup-instances", "parameters": { "instanceTerminationPercentage": "50
" }, "targets": { "Nodegroups": "targetNodeGroups
" } } }