

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

# Amazon ECS 動作日誌入門
<a name="action-logs-getting-started"></a>

Amazon ECS 動作日誌使用 Amazon CloudWatch Logs 提供的日誌交付機制，將服務動作的詳細記錄發佈至您偏好的目的地。當您啟用動作日誌時，您可以看到 Amazon ECS 在部署和協助程式操作期間採取的每個步驟，包括基礎設施佈建、資源註冊和失敗詳細資訊。此可見性可協助您在未聯絡 AWS Support 的情況下對問題進行故障診斷，並減少識別根本原因的時間。您可以使用 Amazon ECS 主控台或 CloudWatch Logs APIs 為您的叢集啟用動作日誌。

## 先決條件
<a name="action-logs-getting-started-prerequisites"></a>

啟用動作日誌之前，請確認您的 IAM 身分具有必要的許可。

### 所需的 IAM 許可
<a name="action-logs-iam-permissions"></a>

您的 IAM 身分必須具有下列許可，才能啟用和管理動作日誌：

```
{
    "Effect": "Allow",
    "Action": [
        "logs:PutDeliverySource",
        "logs:PutDeliveryDestination",
        "logs:CreateDelivery",
        "logs:GetDelivery",
        "ecs:AllowVendedLogDeliveryForResource"
    ],
    "Resource": "*"
}
```

### 目的地資源政策
<a name="action-logs-destination-policy"></a>

目的地 CloudWatch Logs 日誌群組必須具有允許`delivery.logs.amazonaws.com`服務寫入日誌的資源政策。將下列陳述式新增至日誌群組資源政策：

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "delivery.logs.amazonaws.com"
    },
    "Action": [
        "logs:CreateLogStream",
        "logs:PutLogEvents"
    ],
    "Resource": "arn:aws:logs:{{region}}:{{account-id}}:log-group:{{log-group-name}}:log-stream:*"
}
```

## 使用 Amazon ECS 主控台啟用動作日誌
<a name="action-logs-enable-console"></a>

您可以直接從 Amazon ECS 主控台的叢集詳細資訊頁面啟用動作日誌。

**使用主控台啟用動作日誌**

1. 開啟主控台，網址為 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)。

1. 在導覽窗格中，選擇**叢集**，然後選取叢集。

1. 選擇 **Configuration** (組態) 索引標籤。

1. 在**動作日誌**區段中，選擇**新增**。

1. 針對 **Destination (目標)**，選擇下列其中一個項目：
   + **CloudWatch Logs** （預設）
   + **Amazon S3**
   + **Amazon Data Firehose**

   對於 CloudWatch Logs，Amazon ECS 會建立名為 的預設日誌群組，`/aws/vendedlogs/ecs/action-logs/{{cluster-name}}`其中包含 7 天的保留期。

1. 選擇**儲存**。

## 使用 CloudWatch Logs APIs啟用動作日誌
<a name="action-logs-enable-api"></a>

您可以使用 CloudWatch Logs 提供的日誌交付 APIs，以程式設計方式啟用動作日誌。此方法需要三個步驟：註冊交付來源、設定目的地，以及建立交付。

**使用 CLI AWS 啟用動作日誌**

1. 執行下列命令來註冊交付來源：

   ```
   aws logs put-delivery-source \
       --name {{my-ecs-action-logs}} \
       --resource-arn arn:aws:ecs:{{region}}:{{account-id}}:cluster/{{cluster-name}} \
       --log-type EcsActionLogs
   ```

1. 執行下列命令來設定交付目的地：

   ```
   aws logs put-delivery-destination \
       --name {{my-ecs-logs-destination}} \
       --output-format json \
       --delivery-destination-configuration '{"destinationResourceArn": "arn:aws:logs:{{region}}:{{account-id}}:log-group:/aws/vendedlogs/ecs/action-logs/{{cluster-name}}"}'
   ```

1. 執行下列命令來建立交付，以將來源連結至目的地：

   ```
   aws logs create-delivery \
       --delivery-source-name {{my-ecs-action-logs}} \
       --delivery-destination-arn arn:aws:logs:{{region}}:{{account-id}}:delivery-destination:{{my-ecs-logs-destination}}
   ```

## 驗證日誌交付
<a name="action-logs-verify-delivery"></a>

啟用動作日誌後，請確認日誌已交付至目的地。

**驗證日誌交付**

1. 在您的叢集中觸發動作。例如，建立或更新協助程式服務。

1. 透過 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Log groups** (日誌群組)。

1. 選取您的動作日誌日誌群組，並確認新的日誌串流是否出現。

## 刪除動作日誌
<a name="action-logs-delete"></a>

您可以使用 CLI AWS 或 Amazon ECS 主控台刪除動作日誌。

若要刪除動作日誌，您的 IAM 身分必須具有下列額外許可：

```
{
    "Effect": "Allow",
    "Action": [
        "logs:DeleteDelivery",
        "logs:DeleteDeliverySource",
        "logs:DeleteDeliveryDestination"
    ],
    "Resource": "*"
}
```

**使用 CLI AWS 刪除動作日誌**

1. 執行下列命令來刪除交付：

   ```
   aws logs delete-delivery \
       --delivery-id {{delivery-id}}
   ```

1. 執行下列命令來刪除交付來源：

   ```
   aws logs delete-delivery-source \
       --name {{my-ecs-action-logs}}
   ```

1. 執行下列命令來刪除交付目的地：

   ```
   aws logs delete-delivery-destination \
       --name {{my-ecs-logs-destination}}
   ```

若要使用主控台刪除動作日誌，請導覽至叢集詳細資訊頁面，選擇**組態**索引標籤，然後在**動作日誌**區段中選擇**刪除**。

## 後續步驟
<a name="action-logs-next-steps"></a>

啟用動作日誌之後，請使用下列資源來監控和疑難排解 Amazon ECS 叢集：
+ [使用 Amazon ECS 動作日誌進行故障診斷](action-logs-troubleshooting.md)