AWS FIS 的動作集 - AWS 故障注入服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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" } } } }

當您定義動作時,請提供下列資訊:

動作名稱

動作的名稱。

actionId

作識別碼

description

選擇性的描述。

parameters

任何動作參數

startAfter

在此動作開始之前必須完成的任何動作。否則,動作會在實驗開始時執行。

targets

任何行動目標

如需範例,請參閱 動作範例

動作時間

如果動作包含可用來指定動作持續時間的參數,依預設,只有在指定的持續時間過後,才會將動作視為完成。如果您已將emptyTargetResolutionMode實驗選項設定為skip,則當未解決目標時,動作將立即完成,且狀態為「略過」。例如,如果您指定的持續時間為 5 分鐘, AWS FIS 會將動作視為 5 分鐘後完成。然後,它會啟動下一個動作,直到所有動作完成為止。

持續時間可以是維護動作條件的時間長度,也可以是監督測量結果的時間長度。例如,會在指定的時間內插入延遲。對於近乎瞬間的動作類型 (例如終止執行個體),會在指定的時間內監控停止條件。

如果動作在動作參數中包含貼文動作,則貼文動作會在動作完成後執行。完成後續操作所需的時間可能會導致指定的動作持續時間和下一個動作的開始(或實驗結束時,如果所有其他操作都完成)之間的延遲。

動作範例

以下是範例動作。

範例:停止 EC2 執行個體

下列動作會停止使用名為目標執行個體的目標識別的 EC2 執行個體。兩分鐘後,它會重新啟動目標執行個體。

"actions": { "stopInstances": { "actionId": "aws:ec2:stop-instances", "parameters": { "startInstancesAfterDuration": "PT2M" }, "targets": { "Instances": "targetInstances" } } }
範例:中斷 Spot 執行個體

下列動作會停止使用名為的目標識別出來的 Spot 執行個體targetSpotInstances。它會等待兩分鐘,然後再中斷 Spot 執行個體。

"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 工作程式

下列動作會終止 EKS 叢集中使用命名目標識別的 50% EC2 執行個體。targetNodeGroups

"actions": { "terminateWorkers": { "actionId": "aws:eks:terminate-nodegroup-instances", "parameters": { "instanceTerminationPercentage": "50" }, "targets": { "Nodegroups": "targetNodeGroups" } } }