

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

# Fault Injection Service AWS 教學課程
<a name="fis-tutorials"></a>

下列教學課程說明如何使用 Fault Injection Service (AWS FIS) AWS 建立和執行實驗。

**Topics**
+ [測試執行個體停止和啟動](fis-tutorial-stop-instances.md)
+ [在執行個體上執行 CPU 壓力](fis-tutorial-run-cpu-stress.md)
+ [測試 Spot 執行個體中斷](fis-tutorial-spot-interruptions.md)
+ [模擬連線事件](fis-tutorial-disrupt-connectivity.md)
+ [排程重複實驗](fis-tutorial-recurring-experiment.md)

# 教學課程：測試執行個體停止和開始使用 AWS FIS
<a name="fis-tutorial-stop-instances"></a>

您可以使用 AWS Fault Injection Service (AWS FIS) 來測試應用程式如何處理執行個體停止和啟動。使用此教學課程來建立實驗範本，該範本使用 AWS FIS `aws:ec2:stop-instances`動作來停止一個執行個體，然後停止第二個執行個體。

## 先決條件
<a name="stop-instances-prerequisites"></a>

若要完成本教學課程，請確定您執行下列動作：
+ 在帳戶中啟動兩個測試 EC2 執行個體。啟動執行個體後，請注意兩個執行個體IDs。
+ 建立可讓 AWS FIS 服務代表您執行`aws:ec2:stop-instances`動作的 IAM 角色。如需詳細資訊，請參閱[AWS FIS 實驗的 IAM 角色](getting-started-iam-service-role.md)。
+ 確保您可存取 AWS FIS。如需詳細資訊，請參閱 [AWS FIS 政策範例](security_iam_id-based-policy-examples.md)。

## 步驟 1：建立實驗範本
<a name="stop-instances-create-template"></a>

使用 AWS FIS 主控台建立實驗範本。在範本中，您可以指定兩個動作，每個動作會依序執行三分鐘。第一個動作會停止其中一個測試執行個體，由 AWS FIS 隨機選擇。第二個動作會停止兩個測試執行個體。

**建立實驗範本**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在導覽窗格中，選擇**實驗範本**。

1. 選擇**建立實驗範本**。

1. 針對**步驟 1，指定範本詳細資訊**，執行下列動作：

   1. 針對**描述和名稱**，輸入範本的描述，例如 `Amazon S3 Network Disrupt Connectivity`。

   1. 選擇**下一步**，然後移至**步驟 2，指定動作和目標**。

1. 對於 **Actions (動作)**，執行下列動作：

   1. 選擇**新增動作**。

   1. 輸入動作的名稱。例如，​輸入 **stopOneInstance**。

   1. 針對**動作類型**，選擇 **aws：ec2：stop-instances**。

   1. 對於**目標**，保留 AWS FIS 為您建立的目標。

   1. 對於**動作參數**，在**持續時間後啟動執行個體**，請指定 3 分鐘 (PT3M)。

   1. 選擇 **Save** (儲存)。

1. 對於 **Targets (目標)**，執行下列動作：

   1. 針對 AWS 上一個步驟中 FIS 自動為您建立的目標，選擇**編輯**。

   1. 以更描述性的名稱取代預設名稱。例如，​輸入 **oneRandomInstance**。

   1. 確認**資源類型**為 **aws：ec2：instance**。

   1. 針對**目標方法**，選擇**資源 IDs**，然後選擇兩個測試執行個體的 IDs。

   1. 針對**選取模式**，選擇**計數**。針對**資源數量**，輸入 **1**。

   1. 選擇 **Save** (儲存)。

1. 選擇**新增目標**並執行下列動作：

   1. 輸入目標的名稱。例如，​輸入 **bothInstances**。

   1. 針對**資源類型**，選擇 **aws：ec2：instance**。

   1. 針對**目標方法**，選擇**資源 IDs**，然後選擇兩個測試執行個體的 IDs。

   1. 針對**選取模式**，選擇**全部**。

   1. 選擇 **Save** (儲存)。

1. 從**動作**區段中，選擇**新增動作**。請執行下列操作：

   1. 針對**名稱**，輸入動作的名稱。例如，​輸入 **stopBothInstances**。

   1. 針對**動作類型**，選擇 **aws：ec2：stop-instances**。

   1. 針對**之後開始**，選擇您新增的第一個動作 (**stopOneInstance**)。

   1. 針對**目標**，選擇您新增的第二個目標 (**bothInstances**)。

   1. 對於**動作參數**，在**持續時間後啟動執行個體**，請指定 3 分鐘 (PT3M)。

   1. 選擇 **Save** (儲存)。

1. 選擇**下一步**以移至**步驟 3，設定服務存取**。

1. 針對**服務存取**，選擇**使用現有的 IAM 角色**，然後選擇您建立的 IAM 角色，如本教學課程的先決條件所述。如果您的角色未顯示，請確認其具有所需的信任關係。如需詳細資訊，請參閱[AWS FIS 實驗的 IAM 角色](getting-started-iam-service-role.md)。

1. 選擇**下一步**以移至**步驟 4，設定選用設定**。

1. （選用） 針對**標籤**，選擇**新增標籤**，並指定標籤索引鍵和標籤值。您新增的標籤會套用至實驗範本，而不是使用範本執行的實驗。

1. 選擇**下一步**以移至**步驟 5，檢閱並建立**。

1. 檢閱範本，然後選擇**建立實驗範本**。出現確認提示時，輸入 `create`，然後選擇**建立實驗範本**。

**（選用） 檢視實驗範本 JSON**  
選擇**匯出**索引標籤。以下是上述主控台程序所建立 JSON 的範例。

```
{
    "description": "Test instance stop and start",
    "targets": {
        "bothInstances": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": [
                "arn:aws:ec2:region:123456789012:instance/instance_id_1",
                "arn:aws:ec2:region:123456789012:instance/instance_id_2"
            ],
            "selectionMode": "ALL"
        },
        "oneRandomInstance": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": [
                "arn:aws:ec2:region:123456789012:instance/instance_id_1",
                "arn:aws:ec2:region:123456789012:instance/instance_id_2"
            ],
            "selectionMode": "COUNT(1)"
        }
    },
    "actions": {
        "stopBothInstances": {
            "actionId": "aws:ec2:stop-instances",
            "parameters": {
                "startInstancesAfterDuration": "PT3M"
            },
            "targets": {
                "Instances": "bothInstances"
            },
            "startAfter": [
                "stopOneInstance"
            ]
        },
        "stopOneInstance": {
            "actionId": "aws:ec2:stop-instances",
            "parameters": {
                "startInstancesAfterDuration": "PT3M"
            },
            "targets": {
                "Instances": "oneRandomInstance"
            }
        }
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ],
    "roleArn": "arn:aws:iam::123456789012:role/AllowFISEC2Actions",
    "tags": {}
}
```

## 步驟 2：開始實驗
<a name="stop-instances-start-experiment"></a>

完成建立實驗範本後，您可以使用它來開始實驗。

**開始實驗**

1. 您應該位於您剛建立之實驗範本的詳細資訊頁面。否則，請選擇**實驗範本**，然後選擇實驗範本的 ID 以開啟詳細資訊頁面。

1. 選擇 **Start experiment** (開始實驗)。

1. （選用） 若要將標籤新增至實驗，請選擇**新增標籤**，然後輸入標籤索引鍵和標籤值。

1. 選擇 **Start experiment** (開始實驗)。出現確認提示時，輸入 **start** 並選擇**開始實驗**。

## 步驟 3：追蹤實驗進度
<a name="stop-instances-track-experiment"></a>

您可以追蹤執行中實驗的進度，直到實驗完成、停止或失敗為止。

**追蹤實驗的進度**

1. 您應該位於您剛開始之實驗的詳細資訊頁面。否則，請選擇**實驗**，然後選擇實驗的 ID 以開啟詳細資訊頁面。

1. 若要檢視實驗狀態，請在**詳細資訊**窗格中檢查**狀態**。如需詳細資訊，請參閱[實驗狀態](view-experiment-progress.md#experiment-states)。

1. 當實驗的狀態正在**執行**時，請前往下一個步驟。

## 步驟 4：驗證實驗結果
<a name="stop-instances-verify-experiment-result"></a>

您可以驗證執行個體是否如預期由實驗停止和啟動。

**驗證實驗的結果**

1. 在新的瀏覽器索引標籤或視窗中開啟 Amazon EC2 主控台，網址為 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：//。這可讓您繼續在 AWS FIS 主控台中追蹤實驗進度，同時在 Amazon EC2 主控台中檢視實驗結果。

1. 在導覽窗格中，選擇 **Instances** (執行個體)。

1. 當第一個動作的狀態從**待**定變更為**執行**中 (AWS FIS 主控台） 時，其中一個目標執行個體的狀態會從**執行**中變更為**已停止** (Amazon EC2 主控台）。

1. 三分鐘後，第一個動作的狀態會變更為**已完成**、第二個動作的狀態會變更為**執行**中，而其他目標執行個體的狀態會變更為**已停止**。

1. 三分鐘後，第二個動作的狀態會變更為**已完成**，目標執行個體的狀態會變更為**正在執行**，而實驗的狀態會變更為**已完成**。

## 步驟 5：清除
<a name="stop-instances-cleanup"></a>

如果您不再需要您為此實驗建立的測試 EC2 執行個體，您可以終止它們。

**終止執行個體**

1. 在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instances** (執行個體)。

1. 選取兩個測試執行個體，然後選取 **Instance state** (執行個體狀態)、**Terminate instance** (終止執行個體)。

1. 出現確認提示時，請選擇**終止**。

如果您不再需要實驗範本，則可以將其刪除。

**使用 AWS FIS 主控台刪除實驗範本**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在導覽窗格中，選擇**實驗範本**。

1. 選取實驗範本，然後選擇**動作**、**刪除實驗範本**。

1. 出現確認提示時，輸入 **delete**，然後選擇**刪除實驗範本**。

# 教學課程：使用 AWS FIS 在執行個體上執行 CPU 壓力
<a name="fis-tutorial-run-cpu-stress"></a>

您可以使用 AWS Fault Injection Service (AWS FIS) 來測試應用程式如何處理 CPU 壓力。使用此教學課程來建立實驗範本，該範本使用 AWS FIS 來執行在執行個體上執行 CPU 應力的預先設定 SSM 文件。當執行個體的 CPU 使用率超過設定的閾值時，教學課程會使用停止條件來停止實驗。

如需詳細資訊，請參閱[預先設定的 AWS FIS SSM 文件](actions-ssm-agent.md#fis-ssm-docs)。

## 先決條件
<a name="run-cpu-stress-prerequisites"></a>

請先完成下列先決條件，才能使用 AWS FIS 執行 CPU 壓力。

**建立 IAM 角色**  
建立角色並連接政策，讓 AWS FIS 代表您使用 `aws:ssm:send-command`動作。如需詳細資訊，請參閱[AWS FIS 實驗的 IAM 角色](getting-started-iam-service-role.md)。

**驗證對 AWS FIS 的存取**  
確定您能夠存取 AWS FIS。如需詳細資訊，請參閱 [AWS FIS 政策範例](security_iam_id-based-policy-examples.md)。

**準備測試 EC2 執行個體**
+ 根據預先設定的 SSM 文件的要求，使用 Amazon Linux 2 或 Ubuntu 啟動 EC2 執行個體。
+ 執行個體必須由 SSM 管理。若要驗證執行個體是由 SSM 管理，請開啟 [Fleet Manager 主控台](https://console.aws.amazon.com/systems-manager/managed-instances)。如果執行個體不是由 SSM 管理，請確認已安裝 SSM 代理程式，且執行個體具有與 **AmazonSSMManagedInstanceCore** 政策連接的 IAM 角色。若要驗證已安裝的 SSM Agent，請連線至您的執行個體並執行下列命令。

  **Amazon Linux 2**

  ```
  yum info amazon-ssm-agent
  ```

  **Ubuntu**

  ```
  apt list amazon-ssm-agent
  ```
+ 啟用執行個體的詳細監控。這會在 1 分鐘內提供資料，需額外付費。選取執行個體，然後選擇**動作**、**監控和疑難排解**、**管理詳細監控**。

## 步驟 1：為停止條件建立 CloudWatch 警示
<a name="getting-started-create-alarms"></a>

設定 CloudWatch 警示，以便在 CPU 使用率超過您指定的閾值時停止實驗。下列程序會將目標執行個體的閾值設定為 50% CPU 使用率。如需詳細資訊，請參閱[停止條件](stop-conditions.md)。

**建立警示，指出 CPU 使用率何時超過閾值**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取目標執行個體，然後選擇**動作**、**監控和疑難排解**、**管理 CloudWatch 警示**。

1. 對於**警示通知**，請使用切換來關閉 Amazon SNS 通知。

1. 對於**警示閾值**，請使用下列設定：
   + **分組範例依據**：**Maximum**
   + **要取樣的資料類型**：**CPU 使用率**
   + **百分比**： **50**
   + **期間**： **1 Minute**

1. 完成警示的設定後，請選擇**建立**。

## 步驟 2：建立實驗範本
<a name="run-cpu-stress-create-template"></a>

使用 AWS FIS 主控台建立實驗範本。在範本中，您可以指定要執行的下列動作：[aws：ssm：send-command/AWSFIS-Run-CPU-Stress](actions-ssm-agent.md#awsfis-run-cpu-stress)。

**建立實驗範本**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在導覽窗格中，選擇**實驗範本**。

1. 選擇**建立實驗範本**。

1. 針對**步驟 1，指定範本詳細資訊**，執行下列動作：

   1. 針對**描述和名稱**，輸入範本的描述。

   1. 選擇**下一步**，然後移至**步驟 2，指定動作和目標**。

1. 對於 **Actions (動作)**，執行下列動作：

   1. 選擇**新增動作**。

   1. 輸入動作的名稱。例如，​輸入 **runCpuStress**。

   1. 針對**動作類型**，選擇 **aws：ssm：send-command/AWSFIS-Run-CPU-Stress**。這會自動將 SSM 文件的 ARN 新增至**文件 ARN**。

   1. 對於**目標**，請保留 AWS FIS 為您建立的目標。

   1. 針對**動作參數**、**文件參數**，輸入下列內容：

      ```
      {"DurationSeconds":"120"}
      ```

   1. 針對**動作參數**、**持續時間**，指定 5 分鐘 (PT5M)。

   1. 選擇**儲存**。

1. 對於 **Targets (目標)**，執行下列動作：

   1. 針對 AWS FIS 在上一個步驟中自動為您建立的目標，選擇**編輯**。

   1. 以更描述性的名稱取代預設名稱。例如，​輸入 **testInstance**。

   1. 確認**資源類型**為 **aws：ec2：instance**。

   1. 針對**目標方法**，選擇**資源 IDs**，然後選擇測試執行個體的 ID。

   1. 針對**選取模式**，選擇**全部**。

   1. 選擇**儲存**。

1. 選擇**下一步**以移至**步驟 3，設定服務存取**。

1. 針對**服務存取**，選擇**使用現有的 IAM 角色**，然後選擇您建立的 IAM 角色，如本教學課程的先決條件所述。如果您的角色未顯示，請確認其具有所需的信任關係。如需詳細資訊，請參閱[AWS FIS 實驗的 IAM 角色](getting-started-iam-service-role.md)。

1. 選擇**下一步**以移至**步驟 4，設定選用設定**。

1. 針對**停止條件**，選取您在步驟 1 中建立的 CloudWatch 警示。

1. （選用） 針對**標籤**，選擇**新增標籤**並指定標籤索引鍵和標籤值。您新增的標籤會套用至實驗範本，而不是使用範本執行的實驗。

1. 選擇**下一步**以移至**步驟 5，檢閱並建立**。

1. 檢閱範本，然後選擇**建立實驗範本**。出現確認提示時，輸入 `create`，然後選擇**建立實驗範本**。

**（選用） 檢視實驗範本 JSON**  
選擇**匯出**索引標籤。以下是上述主控台程序所建立的 JSON 範例。

```
{
    "description": "Test CPU stress predefined SSM document",
    "targets": {
        "testInstance": {
            "resourceType": "aws:ec2:instance",
            "resourceArns": [
                "arn:aws:ec2:region:123456789012:instance/instance_id"
            ],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "runCpuStress": {
            "actionId": "aws:ssm:send-command",
            "parameters": {
                "documentArn": "arn:aws:ssm:region::document/AWSFIS-Run-CPU-Stress",
                "documentParameters": "{\"DurationSeconds\":\"120\"}",
                "duration": "PT5M"
            },
            "targets": {
                "Instances": "testInstance"
            }
        }
    },
    "stopConditions": [
        {
            "source": "aws:cloudwatch:alarm",
            "value": "arn:aws:cloudwatch:region:123456789012:alarm:awsec2-instance_id-GreaterThanOrEqualToThreshold-CPUUtilization"
        }
    ],
    "roleArn": "arn:aws:iam::123456789012:role/AllowFISSSMActions",
    "tags": {}
}
```

## 步驟 3：開始實驗
<a name="run-cpu-stress-start-experiment"></a>

完成建立實驗範本後，您可以使用它來開始實驗。

**開始實驗**

1. 您應該位於您剛建立之實驗範本的詳細資訊頁面。否則，請選擇**實驗範本**，然後選取實驗範本的 ID 以開啟詳細資訊頁面。

1. 選擇 **Start experiment** (開始實驗)。

1. （選用） 若要將標籤新增至實驗，請選擇**新增標籤**，然後輸入標籤索引鍵和標籤值。

1. 選擇 **Start experiment** (開始實驗)。出現確認提示時，請按一下 **start**。選擇 **Start experiment** (開始實驗)。

## 步驟 4：追蹤實驗進度
<a name="run-cpu-stress-track-experiment"></a>

您可以追蹤執行中實驗的進度，直到實驗完成、停止或失敗為止。

**追蹤實驗的進度**

1. 您應該位於您剛開始之實驗的詳細資訊頁面。否則，請選擇**實驗**，然後選取實驗的 ID 以開啟實驗的詳細資訊頁面。

1. 若要檢視實驗狀態，請在**詳細資訊**窗格中檢查**狀態**。如需詳細資訊，請參閱[實驗狀態](view-experiment-progress.md#experiment-states)。

1. 當實驗狀態為**執行**中時，請移至下一個步驟。

## 步驟 5：驗證實驗結果
<a name="run-cpu-stress-verify-experiment-results"></a>

您可以在實驗執行時監控執行個體的 CPU 使用率。當 CPU 使用率達到閾值時，會觸發警示，且實驗會因停止條件而停止。

**驗證實驗的結果**

1. 選擇**停止條件**索引標籤。綠色邊界和綠色核取記號圖示表示警示的初始狀態為 `OK`。紅線表示警示閾值。如果您偏好更詳細的圖形，請從小工具功能表中選擇**放大**。  
![\[顯示活動量低期間約 50% 後 CPU 使用率遽增至 100% 的圖表。\]](http://docs.aws.amazon.com/zh_tw/fis/latest/userguide/images/stop-conditions-pane-ok.png)

1. 當 CPU 使用率超過閾值時，**停止條件**索引標籤中的紅色邊界和紅色驚嘆號圖示表示警示狀態已變更為 `ALARM`。在**詳細資訊**窗格中，實驗的狀態為**已停止**。如果您選取 狀態，則顯示的訊息為「由停止條件停止試驗」。  
![\[圖表顯示 CPU 使用率隨時間的變化，紅色閾值線為 50%。\]](http://docs.aws.amazon.com/zh_tw/fis/latest/userguide/images/stop-conditions-pane-in-alarm.png)

1. 當 CPU 使用率低於閾值時，綠色邊界和綠色核取記號圖示表示警示狀態已變更為 `OK`。

1. （選用） 從小工具功能表中選擇在**警示中檢視**。這會在 CloudWatch 主控台中開啟警示詳細資訊頁面，您可以在其中取得警示的詳細資訊或編輯警示設定。

## 步驟 6：清除
<a name="stop-instances-cleanup"></a>

如果您不再需要為此實驗建立的測試 EC2 執行個體，您可以將其終止。

**若要終止執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取測試執行個體，然後選擇**執行個體狀態**、**終止執行個體**。

1. 出現確認提示時，請選擇**終止**。

如果您不再需要實驗範本，可以將其刪除。

**使用 AWS FIS 主控台刪除實驗範本**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在導覽窗格中，選擇**實驗範本**。

1. 選取實驗範本，然後選擇**動作**、**刪除實驗範本**。

1. 出現確認提示時，輸入 **delete**，然後選擇**刪除實驗範本**。

# 教學課程：使用 AWS FIS 測試 Spot 執行個體中斷
<a name="fis-tutorial-spot-interruptions"></a>

Spot 執行個體使用可用的備用 EC2 容量，相較於隨需定價，最多可獲得 90% 的折扣。不過，Amazon EC2 可以在需要恢復容量時中斷 Spot 執行個體。使用 Spot 執行個體時，您必須準備好解決潛在的中斷。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的 [Spot 執行個體中斷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html)。

您可以使用 AWS Fault Injection Service (AWS FIS) 來測試應用程式如何處理 Spot 執行個體中斷。使用此教學課程來建立實驗範本，該範本使用 AWS FIS `aws:ec2:send-spot-instance-interruptions`動作來中斷其中一個 Spot 執行個體。

或者，若要使用 Amazon EC2 主控台啟動實驗，請參閱《*Amazon EC2 使用者指南*》中的[啟動 Spot 執行個體中斷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/initiate-a-spot-instance-interruption.html)。

## 先決條件
<a name="spot-interruptions-prerequisites"></a>

您必須先完成下列先決條件，才能使用 AWS FIS 中斷 Spot 執行個體。

**1. 建立 IAM 角色**  
建立角色並連接政策，讓 AWS FIS 代表您執行`aws:ec2:send-spot-instance-interruptions`動作。如需詳細資訊，請參閱[AWS FIS 實驗的 IAM 角色](getting-started-iam-service-role.md)。

**2. 驗證對 AWS FIS 的存取**  
確保您可存取 AWS FIS。如需詳細資訊，請參閱 [AWS FIS 政策範例](security_iam_id-based-policy-examples.md)。

**3. （選用） 建立 Spot 執行個體請求**  
如果您希望在此實驗中使用新的 Spot 執行個體，請使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令來請求 Spot 執行個體。預設為終止中斷的 Spot 執行個體。如果您將中斷行為設定為 `stop`，您還必須將 類型設定為 `persistent`。在本教學課程中，請勿將中斷行為設定為 `hibernate`，因為休眠程序會立即開始。

```
aws ec2 run-instances \
    --image-id ami-0ab193018fEXAMPLE \
    --instance-type "t2.micro" \
    --count 1 \
    --subnet-id subnet-1234567890abcdef0 \
    --security-group-ids sg-111222333444aaab \
    --instance-market-options file://spot-options.json \
    --query Instances[*].InstanceId
```

以下是 `spot-options.json` 檔案的範例。

```
{
    "MarketType": "spot",
    "SpotOptions": { 
        "SpotInstanceType": "persistent",
        "InstanceInterruptionBehavior": "stop"
    }
}
```

範例命令中的 `--query`選項使其能夠讓命令只傳回 Spot 執行個體的執行個體 ID。下列為範例輸出。

```
[
    "i-0abcdef1234567890"   
]
```

**4. 新增標籤，讓 AWS FIS 可以識別目標 Spot 執行個體**  
使用 [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) 命令將標籤新增至Name=interruptMe您的目標 Spot 執行個體。

```
aws ec2 create-tags \
    --resources i-0abcdef1234567890 \
    --tags Key=Name,Value=interruptMe
```

## 步驟 1：建立實驗範本
<a name="spot-interruptions-create-template"></a>

使用 AWS FIS 主控台建立實驗範本。在 範本中，您可以指定要執行的動作。動作會中斷具有指定標籤的 Spot 執行個體。如果有一個以上的 Spot 執行個體具有標籤， AWS FIS 會隨機選擇其中一個。

**建立實驗範本**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在導覽窗格中，選擇**實驗範本**。

1. 選擇**建立實驗範本**。

1. 針對**步驟 1，指定範本詳細資訊**，執行下列動作：

   1. 針對**描述和名稱**，輸入範本的描述和名稱。

   1. 選擇**下一步**，然後移至**步驟 2，指定動作和目標**。

1. 對於 **Actions (動作)**，執行下列動作：

   1. 選擇**新增動作**。

   1. 輸入動作的名稱。例如，​輸入 **interruptSpotInstance**。

   1. 針對**動作類型**，選擇 **aws：ec2：send-spot-instance-interruptions**。

   1. 對於**目標**，保留 AWS FIS 為您建立的目標。

   1. 對於**動作參數**，**中斷之前的持續時間**，指定 2 分鐘 (PT2M)。

   1. 選擇 **Save** (儲存)。

1. 對於 **Targets (目標)**，執行下列動作：

   1. 針對 AWS FIS 在上一個步驟中自動為您建立的目標，選擇**編輯**。

   1. 以更描述性的名稱取代預設名稱。例如，​輸入 **oneSpotInstance**。

   1. 確認**資源類型**為 **aws：ec2：spot-instance**。

   1. 針對**目標方法**，選擇**資源標籤、篩選條件和參數**。

   1. 針對**資源標籤**，選擇**新增標籤**，然後輸入標籤索引鍵和標籤值。使用您新增至 Spot 執行個體的標籤來中斷，如本教學課程的先決條件所述。

   1. 針對**資源篩選條件**，選擇**新增篩選條件**，然後輸入 **State.Name** 做為路徑，輸入 **running**做為值。

   1. 針對**選取模式**，選擇**計數**。針對**資源數量**，輸入 **1**。

   1. 選擇 **Save** (儲存)。

1. 選擇**下一步**以移至**步驟 3，設定服務存取**。

1. 針對**服務存取**，選擇**使用現有的 IAM 角色**，然後選擇您建立的 IAM 角色，如本教學課程的先決條件所述。如果您的角色未顯示，請確認其具有所需的信任關係。如需詳細資訊，請參閱[AWS FIS 實驗的 IAM 角色](getting-started-iam-service-role.md)。

1. 選擇**下一步**以移至**步驟 4，設定選用設定**。

1. （選用） 針對**標籤**，選擇**新增標籤**，並指定標籤索引鍵和標籤值。您新增的標籤會套用至實驗範本，而不是使用範本執行的實驗。

1. 選擇**下一步**以移至**步驟 5，檢閱並建立**。

1. 檢閱範本，然後選擇**建立實驗範本**。出現確認提示時，輸入 `create`，然後選擇**建立實驗範本**。

**（選用） 檢視實驗範本 JSON**  
選擇**匯出**索引標籤。以下是上述主控台程序所建立 JSON 的範例。

```
{
    "description": "Test Spot Instance interruptions",
    "targets": {
        "oneSpotInstance": {
            "resourceType": "aws:ec2:spot-instance",
            "resourceTags": {
                "Name": "interruptMe"
            },
            "filters": [
                {
                    "path": "State.Name",
                    "values": [
                        "running"
                    ]
                }
            ],
            "selectionMode": "COUNT(1)"
        }
    },
    "actions": {
        "interruptSpotInstance": {
            "actionId": "aws:ec2:send-spot-instance-interruptions",
            "parameters": {
                "durationBeforeInterruption": "PT2M"
            },
            "targets": {
                "SpotInstances": "oneSpotInstance"
            }
        }
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ],
    "roleArn": "arn:aws:iam::123456789012:role/AllowFISSpotInterruptionActions",
    "tags": {
        "Name": "my-template"
    }
}
```

## 步驟 2：開始實驗
<a name="spot-interruptions-start-experiment"></a>

完成建立實驗範本後，您可以使用它來開始實驗。

**開始實驗**

1. 您應該位於您剛建立之實驗範本的詳細資訊頁面。否則，請選擇**實驗範本**，然後選擇實驗範本的 ID 以開啟詳細資訊頁面。

1. 選擇 **Start experiment** (開始實驗)。

1. （選用） 若要將標籤新增至實驗，請選擇**新增標籤**並輸入標籤索引鍵和標籤值。

1. 選擇 **Start experiment** (開始實驗)。出現確認提示時，輸入 **start** 並選擇**開始實驗**。

## 步驟 3：追蹤實驗進度
<a name="spot-interruptions-track-experiment"></a>

您可以追蹤執行中實驗的進度，直到實驗完成、停止或失敗為止。

**追蹤實驗的進度**

1. 您應該位於您剛開始之實驗的詳細資訊頁面。否則，請選擇**實驗**，然後選擇實驗的 ID 以開啟詳細資訊頁面。

1. 若要檢視實驗狀態，請在**詳細資訊**窗格中檢查**狀態**。如需詳細資訊，請參閱[實驗狀態](view-experiment-progress.md#experiment-states)。

1. 當實驗的狀態正在**執行**時，請前往下一個步驟。

## 步驟 4：驗證實驗結果
<a name="spot-interruptions-verify-experiment-result"></a>

此實驗的動作完成時，會發生下列情況：
+ 目標 Spot 執行個體會收到[執行個體重新平衡建議](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/rebalance-recommendations.html)。
+ [Spot 執行個體中斷通知](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#spot-instance-termination-notices)會在 Amazon EC2 終止或停止執行個體的兩分鐘前發出。
+ 兩分鐘後，Spot 執行個體會終止或停止。
+ FIS AWS 停止的 Spot 執行個體會保持停止狀態，直到您重新啟動為止。

**驗證執行個體是否被實驗中斷**

1. 在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 從導覽窗格中，在單獨的瀏覽器索引標籤或視窗中開啟 **Spot Requests** (Spot 請求) 和 **Instances** (執行個體)。

1. 對於 **Spot Requests** (Spot 請求)，選取 Spot 執行個體請求。起始狀態為 `fulfilled`。實驗完成後，狀態會變更，如下所示：
   + `terminate` - 狀態變更為 `instance-terminated-by-experiment`。
   + `stop` - 狀態會變更為 `marked-for-stop-by-experiment`，然後變更為 `instance-stopped-by-experiment`。

1. 對於 **Instances** (執行個體)，選取 Spot 執行個體。起始狀態為 `Running`。收到 Spot 執行個體中斷通知後兩分鐘，狀態會變更，如下所示：
   + `stop` - 狀態會變更為 `Stopping`，然後變更為 `Stopped`。
   + `terminate` - 狀態會變更為 `Shutting-down`，然後變更為 `Terminated`。

## 步驟 5：清除
<a name="spot-interruptions-cleanup"></a>

如果您為此實驗使用 的中斷行為建立測試 Spot 執行個體，`stop`且不再需要它，您可以取消 Spot 執行個體請求並終止 Spot 執行個體。

**使用 取消請求並終止執行個體 AWS CLI**

1. 使用 [cancel-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-spot-instance-requests.html) 命令來取消 Spot 執行個體請求。

   ```
   aws ec2 cancel-spot-instance-requests --spot-instance-request-ids sir-ksie869j
   ```

1. 使用 [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) 命令來終止執行個體。

   ```
   aws ec2 terminate-instances --instance-ids i-0abcdef1234567890
   ```

如果您不再需要實驗範本，則可以將其刪除。

**使用 AWS FIS 主控台刪除實驗範本**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在導覽窗格中，選擇**實驗範本**。

1. 選取實驗範本，然後選擇**動作**、**刪除實驗範本**。

1. 出現確認提示時，輸入 **delete**，然後選擇**刪除實驗範本**。

# 教學課程：模擬連線事件
<a name="fis-tutorial-disrupt-connectivity"></a>

您可以使用 AWS Fault Injection Service (AWS FIS) 來模擬各種連線事件。 AWS FIS 透過下列其中一種方式封鎖網路連線來模擬連線事件：
+ `all` – 拒絕所有進出子網路的流量。請注意，此選項允許子網路內流量，包括往返子網路中網路介面的流量。
+ `availability-zone` – 拒絕在其他可用區域中往返子網路的 VPC 內流量。
+ `dynamodb` – 拒絕流量往返目前區域中 DynamoDB 的區域端點。
+ `prefix-list` – 拒絕往返指定字首清單的流量。
+ `s3` – 拒絕往返目前區域中 Amazon S3 區域端點的流量。
+ `s3express` – 拒絕傳入和傳出目標子網路 AZ 中 Amazon S3 Express One Zone 區域端點的流量。目標子網路必須位於目前可使用 S3 Express One Zone AZs 中。如需詳細資訊，請參閱 [S3 Express One Zone 可用區域和區域。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Endpoints.html)
+ `vpc` – 拒絕進出 VPC 的流量。

使用此教學課程建立實驗範本，該範本使用 AWS FIS `aws:network:disrupt-connectivity`動作在目標子網路中引入與 Amazon S3 的連線中斷。

**Topics**
+ [

## 先決條件
](#disrupt-connectivity-prerequisites)
+ [

## 步驟 1：建立 AWS FIS 實驗範本
](#disrupt-connectivity-step1)
+ [

## 步驟 2：Ping Amazon S3 端點
](#disrupt-connectivity-step2)
+ [

## 步驟 3：啟動您的 AWS FIS 實驗
](#disrupt-connectivity-step3)
+ [

## 步驟 4：追蹤您的 AWS FIS 實驗進度
](#disrupt-connectivity-step4)
+ [

## 步驟 5：驗證 Amazon S3 網路中斷
](#disrupt-connectivity-step5)
+ [

## 步驟 5：清除
](#disrupt-connectivity-step6)

## 先決條件
<a name="disrupt-connectivity-prerequisites"></a>

開始本教學課程之前，您需要在 中具有適當許可的角色 AWS 帳戶，以及測試 Amazon EC2 執行個體：

**在您的 中具有許可的角色 AWS 帳戶**  
建立角色並連接政策，讓 AWS FIS 代表您執行`aws:network:disrupt-connectivity`動作。

您的 IAM 角色需要下列政策：
+  [AWSFaultInjectionSimulatorNetworkAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorNetworkAccess) – 授予 Amazon EC2 網路和其他必要服務的 AWS FIS 服務許可，以執行與網路基礎設施相關的 AWS FIS 動作。

**注意**  
為了簡化，本教學課程使用 AWS 受管政策。對於生產用途，我們建議您改為僅授予使用案例所需的最低許可。  
如需如何建立 IAM 角色的詳細資訊，請參閱《IAM **[使用者指南》中的 AWS FIS 實驗的 IAM 角色 (AWS CLI)](https://docs.aws.amazon.com/fis/latest/userguide/getting-started-iam-service-role) 或[建立 IAM 角色 （主控台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user)。

**測試 Amazon EC2 執行個體**  
啟動並連線至測試的 Amazon EC2 執行個體。您可以使用下列教學課程啟動並連線至 Amazon EC2 執行個體：[教學課程：Amazon EC2 使用者指南》中的 Amazon EC2 Linux 執行個體入門](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted)。 *Amazon EC2 *

## 步驟 1：建立 AWS FIS 實驗範本
<a name="disrupt-connectivity-step1"></a>

使用 AWS FIS 建立實驗範本 AWS 管理主控台。 AWS FIS 範本是由動作、目標、停止條件和實驗角色所組成。如需範本運作方式的詳細資訊，請參閱 [AWS FIS 的實驗範本](https://docs.aws.amazon.com/fis/latest/userguide/experiment-templates)。

開始之前，請確定您已備妥下列項目：
+ 具有正確許可的 IAM 角色。
+ Amazon EC2 執行個體。
+ Amazon EC2 執行個體的子網路 ID。

**建立實驗範本**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在左側導覽窗格中，選擇**實驗範本**。

1. 選擇**建立實驗範本**。

1. 針對**步驟 1，指定範本詳細資訊**，執行下列動作：

   1. 針對**描述和名稱**，輸入範本的描述，例如 `Amazon S3 Network Disrupt Connectivity`。

   1. 選擇**下一步**，然後移至**步驟 2，指定動作和目標**。

1. 在**動作**下，選擇**新增動作**。

   1. 針對**名稱**，輸入 `disruptConnectivity`。

   1. 針對**動作類型**，選取 **aws：network：disrupt-connectivity**。

   1. 在**動作參數**下，將**持續時間**設定為 `2 minutes`。

   1. 在**範圍**下，選取 **s3**。

   1. 在頂端，選擇**儲存**。

1. 在**目標**下，您應該會看到已自動建立的目標。選擇**編輯**。

   1. 確認**資源類型**為 `aws:ec2:subnet`。

   1. 在**目標方法**下，選取**資源 IDs**，然後在[先決條件](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-disrupt-connectivity.html#disrupt-connectivity-prerequisites)步驟中選擇您在建立 Amazon EC2 執行個體時所使用的子網路。

   1. 確認**選取模式**為**全部**。

   1. 選擇**儲存**。

1. 選擇**下一步**以移至**步驟 3，設定服務存取**。

1. 在**服務存取**下，選取您建立的 IAM 角色，如本教學課程[的先決條件](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-disrupt-connectivity.html#disrupt-connectivity-prerequisites)所述。如果您的角色未顯示，請確認其具有所需的信任關係。如需詳細資訊，請參閱[AWS FIS 實驗的 IAM 角色](getting-started-iam-service-role.md)。

1. 選擇**下一步**以移至**步驟 4，設定選用設定**。

1. （選用） 在**停止條件下**，您可以選取 CloudWatch 警示，在條件發生時停止實驗。如需詳細資訊，請參閱 [AWS FIS 的停止條件](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions)。

1. （選用） 在**日誌**下，您可以選取 Amazon S3 儲存貯體，或將日誌傳送至 CloudWatch 進行實驗。

1. 選擇**下一步**以移至**步驟 5，檢閱並建立**。

1. 檢閱範本，然後選擇**建立實驗範本**。出現確認提示時，輸入 `create`，然後選擇**建立實驗範本**。

## 步驟 2：Ping Amazon S3 端點
<a name="disrupt-connectivity-step2"></a>

確認您的 Amazon EC2 執行個體能夠連線到 Amazon S3 端點。

1. 連線至您在[先決條件步驟中建立的 ](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-disrupt-connectivity.html#disrupt-connectivity-prerequisites)Amazon EC2 執行個體。

   如需故障診斷，請參閱《*Amazon EC2 使用者指南*》中的[連線至執行個體的故障診斷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting)。

1. 檢查 以查看 AWS 區域 執行個體所在的 。您可以在 Amazon EC2 主控台或執行下列命令來執行此操作。

   ```
   hostname
   ```

   例如，如果您在 中啟動 Amazon EC2 執行個體`us-west-2`，您會看到下列輸出。

   ```
   [ec2-user@ip-172.16.0.0 ~]$ hostname
   ip-172.16.0.0.us-west-2.compute.internal
   ```

1. 在您的 中 Ping Amazon S3 端點 AWS 區域。將 *AWS 區域* 取代為您的區域。

   ```
   ping -c 1 s3.AWS 區域.amazonaws.com
   ```

   對於輸出，您應該會看到封包遺失 0% 的成功 ping，如下列範例所示。

   ```
   PING s3.us-west-2.amazonaws.com (x.x.x.x) 56(84) bytes of data.
   64 bytes from s3-us-west-2.amazonaws.com (x.x.x.x: icmp_seq=1 ttl=249 time=1.30 ms
   
   --- s3.us-west-2.amazonaws.com ping statistics ---
   1 packets transmitted, 1 received, 0% packet loss, time 0ms
   rtt min/avg/max/mdev = 1.306/1.306/1.306/0.000 ms
   ```

## 步驟 3：啟動您的 AWS FIS 實驗
<a name="disrupt-connectivity-step3"></a>

使用您剛建立的實驗範本開始實驗。

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在左側導覽窗格中，選擇**實驗範本**。

1. 選取您建立的實驗範本 ID，以開啟其詳細資訊頁面。

1. 選擇 **Start experiment** (開始實驗)。

1. （選用） 在確認頁面中，為您的實驗新增標籤。

1. 在確認頁面中，選擇**開始實驗**。

## 步驟 4：追蹤您的 AWS FIS 實驗進度
<a name="disrupt-connectivity-step4"></a>

您可以追蹤執行中實驗的進度，直到實驗完成、停止或失敗為止。

1. 您應該位於您剛開始之實驗的詳細資訊頁面。如果不是，請選擇**實驗**，然後選擇實驗的 ID 以開啟其詳細資訊頁面。

1. 若要檢視實驗狀態，請在詳細資訊窗格中檢查**狀態**。如需詳細資訊，請參閱[實驗狀態](https://docs.aws.amazon.com/fis/latest/userguide/experiments.html#experiment-states)。

1. 當實驗的狀態正在**執行**時，請移至下一個步驟。

## 步驟 5：驗證 Amazon S3 網路中斷
<a name="disrupt-connectivity-step5"></a>

您可以透過 ping Amazon S3 端點來驗證實驗進度。
+ 從您的 Amazon EC2 執行個體中，ping 您 中的 Amazon S3 端點 AWS 區域。將 *AWS 區域* 取代為您的區域。

  ```
  ping -c 1 s3.AWS 區域.amazonaws.com
  ```

  對於輸出，您應該會看到封包遺失 100% 的失敗 ping，如下列範例所示。

  ```
  ping -c 1 s3.us-west-2.amazonaws.com
  PING s3.us-west-2.amazonaws.com (x.x.x.x) 56(84) bytes of data.
  
  --- s3.us-west-2.amazonaws.com ping statistics ---
  1 packets transmitted, 0 received, 100% packet loss, time 0ms
  ```

## 步驟 5：清除
<a name="disrupt-connectivity-step6"></a>

如果您不再需要為此實驗或 AWS FIS 範本建立的 Amazon EC2 執行個體，則可以將其移除。

**移除 Amazon EC2 執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取測試執行個體，選擇**執行個體狀態**，然後選擇**終止執行個體**。

1. 出現確認提示時，請選擇**終止**。



**使用 AWS FIS 主控台刪除實驗範本**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在導覽窗格中，選擇**實驗範本**。

1. 選取實驗範本，然後選擇**動作**、**刪除實驗範本**。

1. 出現確認提示時，輸入 `delete`，然後選擇**刪除實驗範本**。

# 教學課程：排定重複實驗
<a name="fis-tutorial-recurring-experiment"></a>

透過 AWS Fault Injection Service (AWS FIS)，您可以對 AWS 工作負載執行故障注入實驗。這些實驗會在範本上執行，其中包含一或多個要在指定目標上執行的動作。當您也使用 時 Amazon EventBridge，您可以將實驗排程為一次性任務或重複性任務。

使用此教學課程來建立 EventBridge 排程，每 5 分鐘執行一次 AWS FIS 實驗範本。

**Topics**
+ [

## 先決條件
](#recurring-experiment-prerequisites)
+ [

## 步驟 1：建立 IAM 角色和政策
](#recurring-experiment-step1)
+ [

## 步驟 2：建立 Amazon EventBridge 排程器
](#recurring-experiment-step2)
+ [

## 步驟 3：驗證您的實驗
](#recurring-experiment-step3)
+ [

## 步驟 4：清理
](#recurring-experiment-step4)

## 先決條件
<a name="recurring-experiment-prerequisites"></a>

開始本教學課程之前， 必須有您要排程執行的 AWS FIS 實驗範本。如果您已有工作實驗範本，請記下範本 ID 和 AWS 區域。否則，您可以依照 中的指示建立範本[教學課程：測試執行個體停止和開始使用 AWS FIS](fis-tutorial-stop-instances.md)，然後返回本教學課程。

## 步驟 1：建立 IAM 角色和政策
<a name="recurring-experiment-step1"></a>



**建立 IAM 角色和政策**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇**角色**，然後選擇**建立角色**。

1. 選擇**自訂信任政策**，然後插入下列程式碼片段，以允許 Amazon EventBridge 排程器代表您擔任角色。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                     "Service": "scheduler.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   選擇**下一步**。

1. 在**新增許可**下，選擇**建立政策**。

1. 選擇 **JSON**，然後插入下列政策。使用先決條件步驟中的實驗範本 ID 取代 *your-experiment-template-id* 值。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "fis:StartExperiment",
               "Resource": [
                   "arn:aws:fis:*:*:experiment-template/your-experiment-template-id",
                   "arn:aws:fis:*:*:experiment/*"
               ]
           }
       ]
   }
   ```

------

   您可以限制排程器只執行具有特定標籤值的 AWS FIS 實驗範本。例如，下列政策會授予所有 AWS FIS 實驗的`StartExperiment`許可，但限制排程器只能執行標記為 的實驗範本`Purpose=Schedule`。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "fis:StartExperiment",
               "Resource": "arn:aws:fis:*:*:experiment/*"
           },
           {
               "Effect": "Allow",
               "Action": "fis:StartExperiment",
               "Resource": "arn:aws:fis:*:*:experiment-template/*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/Purpose": "Schedule"
                   }
               }
           }
       ]
   }
   ```

------

   選擇下**一步：標籤**。

1. 選擇下**一步：檢閱**。

1. 在**檢閱政策**下，為您的政策命名 `FIS_RecurringExperiment`，然後選擇**建立政策**。

1. 在**新增許可**下，將新`FIS_RecurringExperiment`政策新增至您的角色，然後選擇**下一步**。

1. 在**名稱、檢閱和建立**下，命名角色 `FIS_RecurringExperiment_role`，然後選擇**建立角色**。

## 步驟 2：建立 Amazon EventBridge 排程器
<a name="recurring-experiment-step2"></a>



**建立 Amazon EventBridge 排程器**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在左側導覽窗格中，選擇**排程**。

1. 確認您位於與 AWS FIS 實驗範本 AWS 區域 相同的 中。

1. 選擇**建立排程**，然後填入以下內容：
   + 在**排程名稱**下，插入 `FIS_recurring_experiment_tutorial`。
   + 在**排程模式**下，選取**週期性排程**。
   + 在**排程類型**下，選取以**速率為基礎的排程**。
   + 在**速率表達**式下，選擇 **5 分鐘**。
   + 在**彈性時段**下，選取**關閉**。
   + （選用） 在**時間範圍**下，選取您的時區。
   + 選擇**下一步**。

1. 在**選取目標**下，選擇**所有 APIs**，然後搜尋 **AWS FIS**。

1. 選擇 **AWS FIS**，然後選擇 **StartExperiment**。

1. 在**輸入**下，插入下列 JSON 承載。將 *your-experiment-template-id* 值取代為實驗的範本 ID。`ClientToken` 是排程器的唯一識別符。在本教學課程中，我們使用 Amazon EventBridge 排程器允許的內容關鍵字。如需詳細資訊，請參閱《*Amazon EventBridge 使用者指南*》中的[新增內容屬性](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-schedule-context-attributes.html)。

   ```
   {
       "ClientToken": "<aws.scheduler.execution-id>",
       "ExperimentTemplateId": "your-experiment-template-id"
   }
   ```

   選擇**下一步**。

1. （選用） 在**設定**下，您可以設定**重試政策**、**無效字母佇列 (DLQ)** 和**加密**設定。或者，您可以保留預設值。

1. 在**許可**下，選取**使用現有角色**，然後搜尋 `FIS_RecurringExperiment_role`。

1. 選擇**下一步**。

1. 在**檢閱和建立排程**下，檢閱排程器詳細資訊，然後選擇**建立排程**。

## 步驟 3：驗證您的實驗
<a name="recurring-experiment-step3"></a>

**驗證您的 AWS FIS 實驗是否按排程執行**

1. 在 https：//[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/) 開啟 AWS FIS 主控台。

1. 在左側導覽窗格中，選擇**實驗**。

1. 建立排程後五分鐘，您應該會看到實驗正在執行。

## 步驟 4：清理
<a name="recurring-experiment-step4"></a>

**停用您的 Amazon EventBridge 排程器**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在左側導覽窗格中，選擇**排程**。

1. 選取您新建立的排程器，然後選擇**停用**。