使用 ExpirationSettings - Amazon Chime SDK

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

使用 ExpirationSettings

创建AppInstanceUser或时Channel,您可以使用ExpirationSettings将这些资源配置为自动删除。 ExpirationSettings有助于降低存储成本并防止出现 resource-limit-exceeded问题。例如,您可以在 7 天后删除未使用的频道,或者删除仅为测试目的调用的 AppInstanceUser

对于 AppInstanceUser,您可以根据用户创建时间来指定过期时间。对于 Channel,您可以根据频道的创建时间或上次消息时间来指定过期时间。后者允许您使用消息事件来自定义自动删除。

重要

资源过期后不久,ExpirationSettings 启动后台进程以删除该资源。该过程通常需要 6 个小时,但时间可能会有所不同。

已过期且尚未删除的 AppInstanceUsersChannels 仍显示为有效且处于活动状态。您可以更新或删除他们的过期设置,系统会接受您的更改。

正在配置 ExpirationSettings

以下各节说明如何配置 AppInstanceUserChannelExpirationSettings

ExpirationSettings在创建资源时进行配置

您可以配置ExpirationSettings何时运行CreateAppInstanceUserCreateChannelAPI。如果设置 ExpirationSettings 参数,您必须授予以下 IAM 权限:

  • 创建 AppInstanceUser 时的 chime:PutAppInstanceUserExpirationSettings

  • 创建 Channel 时的 chime:PutChannelExpirationSettings

以下示例使用 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 API 进行配置 ExpirationSettings

您还可以使用PutAppInstanceUserExpirationSettingsPutChannelExpirationSettingsAPI 来创建、更新和删除ExpirationSettings

以下示例演示如何使用 AWS CLI 更新AppInstanceUserExpirationSettings

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 删除过期资源的事件

系统删除过期的资源后,会向发送ExpireAppInstanceUserExpireChannel事件 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" }