

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 教程：安排定期实验
<a name="fis-tutorial-recurring-experiment"></a>

借助 AWS 故障注入服务 (AWS FIS)，您可以对 AWS 工作负载执行故障注入实验。这些实验运行在模板上，其中包含要在指定目标上运行的一项或多项操作。当你同时使用时 Amazon EventBridge，你可以将实验安排为一次性任务或重复任务。

使用本教程创建每隔 5 分钟运行一个 AWS FIS 实验模板的 EventBridge 计划。

**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. 选择 “**自定义信任策略**”，然后插入以下片段以允许 S Amazon EventBridge cheduler 代表您担任该角色。

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

****  

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

------

   选择**下一步**。

1. 在**添加权限**下，选择**创建策略**。

1. 选择 **JSON** 格式，然后插入以下策略。将该*your-experiment-template-id*值替换为 “先决条件” 步骤中实验的模板 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. 打开 Amazon EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 在左侧导航窗格中，选择**计划**。

1. 确认您与您的 AWS FIS 实验模板 AWS 区域 相同。

1. 选择**创建计划**，然后填写以下内容：
   + 在**计划名称**下，插入 `FIS_recurring_experiment_tutorial`。
   + 在**计划模式**下，选择**定期计划**。
   + 在**计划类型**下，选择**基于速率的计划**。
   + 在 **Rate 表达式**下，选择 **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. 打开 AWS FIS 控制台，网址[https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/)为。

1. 在左侧导航窗格中，选择**实验**。

1. 创建计划五分钟后，您会看到正在运行的实验。

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

**禁用您的 Amazon EventBridge 日程安排**

1. 打开 Amazon EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 在左侧导航窗格中，选择**计划**。

1. 选择新创建的调度器，然后选择**禁用**。