本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的動作 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
"
}
}
}
}
當您定義動作時,請提供下列資訊:
如需範例,請參閱 動作範例。
動作識別碼
每個 AWS FIS動作具有以下格式的識別碼:
aws:service-name
:action-type
例如,下列動作會停止目標 Amazon EC2 執行個體:
aws:ec2:stop-instances
如需動作的完整清單,請參閱AWS FIS 動作參考。
動作參數
一些 AWS FIS動作具有動作特定的其他參數。這些參數用於將信息傳遞給 AWS FIS執行動作的時間。
AWS FIS使用動作支援自訂錯誤類型,該aws:ssm:send-command
動作會使用SSM代理程式和SSM命令文件在目標執行個體上建立錯誤狀況。該aws:ssm:send-command
動作包括一個documentArn
參數,該參數將SSM文檔的 Amazon 資源名稱(ARN)作為值。將動作加入至實驗範本時,您可以指定參數的值。
如需有關為aws:ssm:send-command
動作指定參數的詳細資訊,請參閱使用 aws:ssm:send-command 動作。
在可能的情況下,您可以在動作參數中輸入復原組態 (也稱為 post 動作)。後置動作會將目標回復為動作執行前原有的狀態。後置動作會在動作持續時間中指定的時間後執行。並非所有動作都支援貼文動作。例如,如果該動作終止了 Amazon EC2 執行個體,您就無法在執行個體終止後復原該執行個體。
行動目標
動作會在您指定的目標資源上執行。定義目標之後,您可以在定義動作時指定其名稱。
"targets": {
"resource_type
": "resource_name
"
}
AWS FIS動作支援動作目標的下列資源類型:
-
Auto Scaling 群組 — Amazon EC2 Auto Scaling 群組
-
桶-Amazon S3 桶
-
叢集 — Amazon EKS 群集
-
叢集 — Amazon ECS 叢集或 Amazon Aurora 資料庫叢集
-
DBInstances— Amazon RDS 數據庫實例
-
加密的全域表格 — Amazon DynamoDB;使用客戶受管金鑰加密的全域表
-
全域表 — Amazon DynamoDB;全域表
-
執行個體 — Amazon EC2 例
-
節點群組 — Amazon EKS 節點群組
-
豆莢 — Amazon 上的 Kubernetes 豆莢 EKS
-
ReplicationGroups— ElastiCache Redis 的複製群組
-
角色 — IAM 角色
-
SpotInstances— Amazon EC2 競價型實例
-
子網路 — VPC 子網路
-
任務 — Amazon ECS 任務
-
TransitGateways— 交通閘道
-
卷 — Amazon EBS 卷
如需範例,請參閱 動作範例。
動作時間
如果動作包含可用來指定動作持續時間的參數,依預設,只有在指定的持續時間過後,才會將動作視為完成。如果您已將emptyTargetResolutionMode
實驗選項設定為skip
,則當未解決目標時,動作將立即完成,且狀態為「略過」。例如,如果您指定的持續時間為 5 分鐘, AWS FIS將動作視為 5 分鐘後完成。然後,它會啟動下一個動作,直到所有動作完成為止。
持續時間可以是維護動作條件的時間長度,也可以是監督測量結果的時間長度。例如,會在指定的時間內插入延遲。對於近乎瞬間的動作類型 (例如終止執行個體),會在指定的時間內監控停止條件。
如果動作在動作參數中包含貼文動作,則貼文動作會在動作完成後執行。完成後續操作所需的時間可能會導致指定的動作持續時間和下一個動作的開始(或實驗結束時,如果所有其他操作都完成)之間的延遲。
動作範例
以下是範例動作。
範例:停止EC2執行個體
下列動作會停止使用名為的目標識別出來的EC2執行個體 targetInstances
。 兩分鐘後,它會重新啟動目標執行個體。
"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 Worker
下列動作會終止使用名為的目標識別的EKS叢集中 50% 的EC2執行個體 targetNodeGroups
.
"actions": { "
terminateWorkers
": { "actionId": "aws:eks:terminate-nodegroup-instances", "parameters": { "instanceTerminationPercentage": "50
" }, "targets": { "Nodegroups": "targetNodeGroups
" } } }