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