

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

# 在 Amazon Chime SDK 訊息中使用 ExpirationSettings
<a name="expiration"></a>

當您建立 `AppInstanceUser`或 時`Channel`，您可以使用 `ExpirationSettings` 來設定這些資源以進行自動刪除。 `ExpirationSettings`有助於降低儲存成本，並防止resource-limit-exceeded的問題。例如，您可以在 7 天後刪除未使用的頻道，或刪除僅用於測試目的`AppInstanceUser`的 。

對於 `AppInstanceUser`，您可以根據使用者建立時間指定過期期間。對於 `Channel`，您可以根據頻道的建立時間或上次訊息時間指定過期期間。後者可讓您使用訊息活動來自訂自動刪除。

**重要**  
在資源過期後不久， 會`ExpirationSettings`啟動背景程序來刪除該資源。程序通常需要 6 小時，但時間可能會有所不同。  
已過期`AppInstanceUsers`且尚未刪除`Channels`的 仍會顯示為有效且作用中。您可以更新或移除其過期設定，且系統會遵守您的變更。

**Topics**
+ [設定 ExpirationSettings](#create-expiration)
+ [過期資源刪除的AWS CloudTrail 事件](#ct-events)

## 設定 ExpirationSettings
<a name="create-expiration"></a>

下列各節說明如何設定 `AppInstanceUser`或 `ExpirationSettings`的 `Channel`。

### 在建立資源ExpirationSettings時設定
<a name="configure-on-create"></a>

您可以在執行 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateAppInstanceUser.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateAppInstanceUser.html)或 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html) APIs`ExpirationSettings`時設定 。如果您設定 `ExpirationSettings` 參數，則必須授予下列 IAM 許可：
+ `chime:PutAppInstanceUserExpirationSettings` 建立 時 `AppInstanceUser`
+ `chime:PutChannelExpirationSettings` 建立 時`Channel`。

下列範例使用 AWS CLI 來建立在一天後過期`AppInstanceUser`的 。

```
aws chime-sdk-identity create-app-instance-user \
--app-instance-arn "app_instance_arn" \
--app-instance-user-id "backend-worker" \
--name "backend-worker" \
--expiration-settings '{
            "ExpirationDays": 1,
            "ExpirationCriterion": "CREATED_TIMESTAMP"
        }'
```

下列範例使用 AWS CLI 來建立`Channel`在最後收到訊息一天後過期的 。

```
aws chime-sdk-messaging create-channel \
--chime-bearer "app_instance_user_arn" \
--app-instance-arn "app_instance_arn" \
--name "firstChannel" \
--expiration-settings '{
            "ExpirationDays": 1,
            "ExpirationCriterion": "LAST_MESSAGE_TIMESTAMP"
        }'
```

### 使用 Put APIs設定 ExpirationSettings
<a name="configure-on-put"></a>

您也可以使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_PutAppInstanceUserExpirationSettings.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_PutAppInstanceUserExpirationSettings.html)和 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutChannelExpirationSettings.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutChannelExpirationSettings.html) APIs 來建立、更新和刪除 `ExpirationSettings`。

下列範例顯示您使用 AWS CLI 來更新 `AppInstanceUser`的 `ExpirationSettings`。

```
aws chime-sdk-identity put-app-instance-user-expiration-settings \
--app-instance-user-arn "app_instance_user_arn" \
--expiration-settings '{
            "ExpirationDays": 30,
            "ExpirationCriterion": "CREATED_TIMESTAMP"
        }'
```

下列範例顯示使用 AWS CLI 刪除頻道的 `ExpirationSettings`。

```
aws chime-sdk-messaging put-channel-expiration-settings \
--chime-bearer "app_instance_user_arn" \
--channel-arn "channel_arn"
```

## 過期資源刪除的AWS CloudTrail 事件
<a name="ct-events"></a>

系統刪除過期的資源後，會將 `ExpireAppInstanceUser`或 `ExpireChannel`事件傳送至 AWS CloudTrail。事件的類型取決於已刪除資產的類型。

下列範例顯示 `AppInstanceUser`事件。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "accountId": "123456789012",
        "invokedBy": "chime.amazonaws.com"
    },
    "eventTime": "2023-03-15T00:00:00Z",
    "eventSource": "chime.amazonaws.com",
    "eventName": "ExpireAppInstanceUser",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "chime.amazonaws.com",
    "userAgent": "chime.amazonaws.com",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "12345678-1234-1234-1234-123456789012",
    "readOnly": false,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::Chime::AppInstanceUser",
            "ARN": "arn:aws:chime:us-east-1:123456789012:app-instance/app-instance-id/user/user-id"
        }
    ],
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "reason": "AppInstanceUser deleted due to expiration settings."
    },
    "eventCategory": "Management"
}
```