

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

# AWS FIS 的實驗報告組態
<a name="experiment-report-configuration"></a>

您可以啟用 AWS Fault Injection Service (FIS) 來產生實驗的報告，以便更輕鬆地產生彈性測試的證據。實驗報告是 PDF 文件，摘要實驗動作，並選擇性地從您指定的 CloudWatch 儀表板擷取應用程式回應。若要查看範例實驗報告，請[在此處](samples/FisExampleReport.pdf.zip)下載 zip 檔案。

若要啟用和設定為實驗產生的報告內容，您可以定義實驗範本的實驗報告組態。當您指定 CloudWatch 儀表板時， AWS FIS 會包含指定儀表板中所有小工具的快照圖表，並在您指定的持續時間內標註實驗開始和結束時間，如以下範例所示。

此範例示範封包遺失實驗在可用區域 (AZ) 中的影響。在 AZ use1-az6 中引入封包遺失時，流量會從 use1-az6 轉移到 use1-az4，使得該 AZ 中的負載平衡器處理的位元組數會減少。

![\[Two graphs showing ProcessedBytes over time, with one increasing and one decreasing sharply.\]](http://docs.aws.amazon.com/zh_tw/fis/latest/userguide/images/packet-loss-az-example.png)


當實驗結束時，您可以從 AWS FIS 主控台下載報告，也可以存放在 Amazon S3 儲存貯體中。如果您在報告組態中包含 CloudWatch 儀表板，也會傳送每個小工具的影像。對於作為目標預覽一部分`cancelled`或執行的實驗 （將 **actionsMode** 設定為 )，不會產生報告`skip-all`。一旦實驗超過實驗資料保留限制，報告將只能從 Amazon S3 儲存貯體取得。除因內部錯誤而失敗的報告外，每個交付的報告都會收取 AWS FIS 費用。如需詳細資訊，請參閱 [AWS Fault Injection Service 定價](https://aws.amazon.com/fis/pricing/)和 [Fault Injection Service AWS 的配額和限制](fis-quotas.md)。可能需支付 **GetMetricWidgetImage** 和 **GetDashboard** 請求的 Amazon S3 和 CloudWatch API 費用的擷取和儲存費用。如需詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)和 [CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

**Topics**
+ [實驗報告組態語法](#experiment-report-syntax)
+ [實驗報告許可](#experiment-report-permissions)
+ [實驗報告最佳實務](#experiment-report-best-practices)

## 實驗報告組態語法
<a name="experiment-report-syntax"></a>

 以下是實驗報告組態的語法，這是實驗範本的選用區段。

```
{
    "experimentReportConfiguration": {
        "outputs": {
            "s3Configuration": {
                "bucketName": "my-bucket-name",
                "prefix": "report-storage-prefix" 
            }
        },
        "dataSources": {
            "cloudWatchDashboards": [
                {
                    "dashboardIdentifier": "arn:aws:cloudwatch::123456789012:dashboard/MyDashboard"
                }
            ]
        },
        "preExperimentDuration": "PT20M",
        "postExperimentDuration": "PT20M" 
    }
}
```

使用 `experimentReportConfiguration`，您可以自訂要包含在實驗報告中資料的輸出目的地、輸入資料和時間範圍，這可協助您更加了解 AWS FIS 實驗的影響和結果。當您定義實驗報告組態時，請提供下列項目：

**outputs**  
的 區段`experimentReportConfiguration`，指定實驗報告的交付位置。在 中`outputs`，您可以提供下列項目`s3Configuration`來指定 ：  
+ `bucketName` - 存放報告的 Amazon S3 儲存貯體名稱。儲存貯體必須與實驗位於相同的區域。
+ `prefix` （選用） - Amazon S3 儲存貯體中將存放報告的字首。強烈建議使用此欄位，以便您只能限制對 字首的存取。

**dataSources**  
的選用區段`experimentReportConfiguration`，指定要包含在實驗報告中的其他資料來源。  
+ `cloudWatchDashboards` - 包含在報告中的 CloudWatch 儀表板陣列。僅限一個 CloudWatch 儀表板。
+ `dashboardIdentifier`- CloudWatch 儀表板的 ARN。具有此儀表板`metric`類型之每個小工具的快照圖表都會包含在報告中，但跨區域指標除外。

**preExperimentDuration**  
的選用區段`experimentReportConfiguration`，定義要在報告中包含之 CloudWatch 儀表板指標的實驗前持續時間，最長可達 30 分鐘。這應該是代表應用程式穩定狀態的期間。例如，實驗前持續時間為 5 分鐘，表示快照圖形會在實驗開始前 5 分鐘包含指標。持續時間的格式為 ISO 8601，預設值為 20 分鐘。

**postExperimentDuration**  
的選用區段`experimentReportConfiguration`，定義 CloudWatch 儀表板指標要包含在報告中的實驗後持續時間，最長可達 2 小時。這應該是代表應用程式穩定狀態或復原期間的持續時間。例如，如果您指定 5 分鐘的試驗後持續時間，快照圖形將包含指標，直到實驗結束後 5 分鐘為止。持續時間的格式為 ISO 8601，預設值為 20 分鐘。

## 實驗報告許可
<a name="experiment-report-permissions"></a>

若要讓 AWS FIS 產生和存放實驗報告，您需要從 AWS FIS 實驗 IAM 角色允許下列操作：
+ `cloudwatch:GetDashboard`
+ `cloudwatch:GetMetricWidgetImage`
+ `s3:GetObject`
+ `s3:PutObject`

我們建議您遵循 AWS 安全最佳實務，並將實驗角色限制為儲存貯體和字首。以下是限制實驗角色存取的政策陳述式範例。

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

****  

```
{
    "Version":"2012-10-17",		 	 	  
    "Statement": 
        [ 
            {
                "Action": [
                    "s3:PutObject",
                    "s3:GetObject"
                    ],
                "Resource": "arn:aws:s3:::my-experiment-report-bucket/my-prefix/*", 
                "Effect": "Allow"
            },
            {
                "Action": [
                    "cloudwatch:GetDashboard"
                    ],
                "Resource": "arn:aws:cloudwatch::012345678912:dashboard/my-experiment-report-dashboard",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "cloudwatch:GetMetricWidgetImage"
                    ],
                "Resource": "*",
                "Effect": "Allow"
            }
         ] 
 }
```

------

### 使用客戶受管金鑰 (CMK) 加密的 Amazon S3 儲存貯體交付報告的其他許可
<a name="additional-s3-permissions"></a>

 如果您在 中指定的 Amazon S3 儲存貯體`S3Configuration`使用 CMK 加密，您需要將下列額外許可授予 KMS 金鑰政策上的 FIS 實驗角色：
+ `kms:GenerateDataKey`
+ `kms:Decrypt`

以下是允許 FIS 實驗角色將報告寫入加密儲存貯體的範例 KMS 金鑰政策陳述式：

```
{ 
    "Sid": "Allow FIS experiment report",
    "Effect": "Allow", 
    "Principal": 
    { 
        "AWS": [ 
            "arn:aws:iam::012345678912:role/FISExperimentRole",
        ] 
    }, 
    "Action": [ 
        "kms:Decrypt",
        "kms:GenerateDataKey" 
        ], 
    "Resource": "*" 
   }
```

## 實驗報告最佳實務
<a name="experiment-report-best-practices"></a>

 以下是使用 AWS FIS 實驗報告組態的最佳實務：
+ 開始實驗之前，請產生目標預覽，以確認您的實驗範本已如預期進行設定。目標預覽會提供實驗預期目標的相關資訊。如需詳細資訊，請參閱 [從實驗範本產生目標預覽](generate-target-preview.md)。
+ 報告不應用於故障診斷失敗的實驗。反之，請使用實驗日誌來疑難排解實驗錯誤。我們建議您僅對先前已執行且成功完成的實驗依賴報告。
+ 限制實驗 IAM 角色放置並取得對 S3 目的地儲存貯體和字首的物件存取。我們建議您將儲存貯體/字首專用於 AWS FIS 實驗報告，並且不要授予其他服務 AWS 存取此儲存貯體和字首的權限。
+ 使用 Amazon S3 物件鎖定，以防止在固定時間或無限期內刪除或覆寫報告。若要進一步了解，請參閱[使用物件鎖定鎖定物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html)。
+ 如果您的 CloudWatch 儀表板位於相同區域內的個別帳戶，您可以使用 CloudWatch 跨帳戶可觀測性，將 AWS FIS 協調器帳戶啟用為監控帳戶，並將個別帳戶啟用為來自 和 AWS CLI API 中的 CloudWatch 主控台或可觀測性存取管理員命令的來源帳戶。若要進一步了解，請參閱 [CloudWatch 跨帳戶可觀測性](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)。