在 Amazon Chime SDK 消息传递中使用 ExpirationSettings - Amazon Chime SDK

在 Amazon Chime SDK 消息传递中使用 ExpirationSettings

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

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

重要

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

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

配置 ExpirationSettings

以下各节说明如何配置 AppInstanceUserChannelExpirationSettings

在创建资源时配置 ExpirationSettings

您可以在运行 CreateAppInstanceUserCreateChannel API 时配置 ExpirationSettings。如果设置 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

您还可以使用 PutAppInstanceUserExpirationSettingsPutChannelExpirationSettings API 来创建、更新和删除 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 事件

系统删除过期的资源后,会向 AWS CloudTrail 发送 ExpireAppInstanceUserExpireChannel 事件。事件的类型取决于已删除资产的类型。

以下示例介绍了 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" }