

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de ExpirationSettings la mensajería del SDK de Amazon Chime
<a name="expiration"></a>

Al crear un `AppInstanceUser` o `Channel`, puede utilizar `ExpirationSettings` para configurar esos recursos para que se eliminen automáticamente. `ExpirationSettings` ayuda a reducir los costos de almacenamiento y a evitar problemas relacionados con el exceso del límite de recursos. Por ejemplo, puede eliminar los canales no utilizados después de 7 días o eliminar un `AppInstanceUser` que solo se haya invocado con fines de prueba.

En el caso de un `AppInstanceUser`, se especifica el período de caducidad en función de la hora de creación del usuario. Para un `Channel`, especifica el período de caducidad en función de la hora de creación del canal o la hora del último mensaje. Esta última opción le permite utilizar las actividades de los mensajes para personalizar la eliminación automática.

**importante**  
Poco después de que caduque un recurso, `ExpirationSettings` inicia un proceso en segundo plano para eliminarlo. El proceso suele tardar 6 horas, pero ese tiempo puede variar.  
Las `AppInstanceUsers` y `Channels` que hayan caducado y que aún no se hayan eliminado siguen apareciendo como válidas y activas. Puede actualizar o eliminar su configuración de caducidad y el sistema respetará sus cambios.

**Topics**
+ [Configurando ExpirationSettings](#create-expiration)
+ [AWS CloudTrail eventos para la eliminación de recursos caducados](#ct-events)

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

En las siguientes secciones se explica cómo configurar un `ExpirationSettings`, un `AppInstanceUser` o un `Channel`. 

### Configuración de ExpirationSettings al crear un recurso
<a name="configure-on-create"></a>

Puede configurar `ExpirationSettings` cuándo ejecuta las API [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) o [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). Si establece el parámetro `ExpirationSettings`, debe conceder los siguientes permisos IAM:
+ `chime:PutAppInstanceUserExpirationSettings` al crear un `AppInstanceUser`
+ `chime:PutChannelExpirationSettings` al crear un `Channel`.

En el siguiente ejemplo, se utiliza la AWS CLI para crear una `AppInstanceUser` que caduca al cabo de un día.

```
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}}"
        }'
```

El siguiente ejemplo usa la AWS CLI para crear una `Channel` que caduca un día después de recibir un mensaje por última vez.

```
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}}"
        }'
```

### Uso de las API Put para configurar ExpirationSettings
<a name="configure-on-put"></a>

También puede usar las API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_PutAppInstanceUserExpirationSettings.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_PutAppInstanceUserExpirationSettings.html) y [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) para crear, actualizar y eliminar `ExpirationSettings`. 

El siguiente ejemplo muestra cómo usar la AWS CLI para actualizar una `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}}"
        }'
```

El siguiente ejemplo muestra cómo usar la AWS CLI para eliminar un canal`ExpirationSettings`.

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

## AWS CloudTrail eventos para la eliminación de recursos caducados
<a name="ct-events"></a>

Cuando el sistema elimina un recurso caducado, envía un `ExpireChannel` evento `ExpireAppInstanceUser` o a AWS CloudTrail. El tipo de evento depende del tipo de activo eliminado.

En el siguiente ejemplo, se muestra un evento `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"
}
```