本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 ExpirationSettings
创建AppInstanceUser
或时Channel
,您可以使用ExpirationSettings
将这些资源配置为自动删除。 ExpirationSettings
有助于降低存储成本并防止出现 resource-limit-exceeded问题。例如,您可以在 7 天后删除未使用的频道,或者删除仅为测试目的调用的 AppInstanceUser
。
对于 AppInstanceUser
,您可以根据用户创建时间来指定过期时间。对于 Channel
,您可以根据频道的创建时间或上次消息时间来指定过期时间。后者允许您使用消息事件来自定义自动删除。
重要
资源过期后不久,ExpirationSettings
启动后台进程以删除该资源。该过程通常需要 6 个小时,但时间可能会有所不同。
已过期且尚未删除的 AppInstanceUsers
和 Channels
仍显示为有效且处于活动状态。您可以更新或删除他们的过期设置,系统会接受您的更改。
正在配置 ExpirationSettings
以下各节说明如何配置 AppInstanceUser
或 Channel
的 ExpirationSettings
。
ExpirationSettings在创建资源时进行配置
您可以配置ExpirationSettings
何时运行CreateAppInstanceUser或 CreateChannelAPI。如果设置 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
您还可以使用PutAppInstanceUserExpirationSettings和 PutChannelExpirationSettingsAPI 来创建、更新和删除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 删除过期资源的事件
系统删除过期的资源后,会向发送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" }