

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.

# Aplicación de políticas a Amazon MQ para RabbitMQ
<a name="rabbitmq-defaults-applying-policies"></a>

 Es posible aplicar políticas y límites personalizados con los valores predeterminados recomendados por Amazon MQ. Si ha eliminado las políticas y los límites predeterminados recomendados y desea volver a crearlos, o ha creado vhosts adicionales y desea aplicarles las políticas y los límites predeterminados, puede seguir estos pasos. 

**importante**  
 En las versiones 3.13 y anteriores del motor Amazon MQ para RabbitMQ, la política de operador predeterminada actual es:   

```
vhost name pattern apply-to definition priority/ default_operator_policy_AWS_managed .* classic_queues {"ha-mode":"all","ha-sync-mode":"automatic","queue-version":2} 0
```
 En las versiones 4.0 y posteriores, la política de operador predeterminada ha cambiado a:   

```
vhost name pattern apply-to definition priority/ default_operator_policy_AWS_managed .* classic_queues {"queue-version":2} 0
```
 Este cambio es necesario porque RabbitMQ 4 no admite la duplicación de colas clásica y la configuración de las políticas de alta disponibilidad.   
 No es posible crear una política que se aplique tanto a las colas reflejadas clásicas como a las colas de cuórum. Si desea que su política se aplique exclusivamente a las colas de cuórum, debe configurar `--apply-to` en `quorum_queues`. Si utiliza las colas reflejadas y las colas de cuórum clásicas, debe crear una política independiente con `--apply-to:classic_queues`, así como una política de colas de cuórum. 

**importante**  
 Para realizar los pasos que se indican a continuación, debe tener un usuario de agente de Amazon MQ para RabbitMQ con permisos de administrador. Puede utilizar el usuario administrador que generó cuando creó el agente por primera vez, u otro usuario que podría haber creado después. La siguiente tabla proporciona la etiqueta y los permisos de usuario administrador necesarios como patrones de expresiones regulares (regexp).   


| Tags | Regexp Read (Lectura) | Regexp Configure (Configuración) | Regexp Write (Escritura) | 
| --- | --- | --- | --- | 
| administrator | .\* | .\* | .\* | 
Para obtener más información acerca de cómo crear usuarios de RabbitMQ y administrar etiquetas y permisos de usuario, consulte [Usuarios de agentes de Amazon MQ para RabbitMQ.](rabbitmq-simple-auth-broker-users.md#rabbitmq-basic-elements-user).

**Para aplicar políticas y límites de anfitriones virtuales predeterminados mediante la consola web de RabbitMQ**

1. Inicie sesión en la [consola de Amazon MQ](https://console.aws.amazon.com/amazon-mq/).

1. En el panel de navegación izquierdo, elija **Brokers** (Agentes).

1. En la lista de agentes, elija el nombre del agente al que desea aplicar la nueva política.

1. En la sección **Connections** (Conexiones) de la página de detalles del agente, elija la URL de la **consola web de RabbitMQ**. La consola web de RabbitMQ se abre en una nueva pestaña o ventana del navegador.

1. Inicie sesión en la consola web de RabbitMQ con el nombre y la contraseña del usuario administrador del agente.

1. En la consola web de RabbitMQ, elija **Admin** (Administrador) en la parte superior de la página.

1. En la página **Admin** (Administrador), elija **Politicies** (Políticas) en el panel de navegación derecho.

1. En la página **Políticies** (Políticas), puede ver una lista de las **Políticas de usuario** actuales del agente. Debajo de las **políticas de usuario**, expanda **Add/update a policy** (Agregar/actualizar una política).

1. Para crear una nueva política de agente, en **Add/update a policy** (Agregar/actualizar una política), haga lo siguiente:

   1. En **Virtual host** (Anfitrión virtual), elija en el menú desplegable el nombre del vhost al que desea asociar las políticas. Para elegir el vhost predeterminado, elija **/**.
**nota**  
Si no creó vhosts adicionales, no aparece la opción **Virtual host** (Anfitrión virtual) en la consola de RabbitMQ y las políticas se aplican únicamente al vhost predeterminado.

   1. En **Name** (Nombre), escriba un nombre para su política, por ejemplo, **policy-defaults**.

   1. En **Pattern** (Patrón), ingrese el patrón regexp **.\*** para que la política coincida con todas las colas del agente.

   1. En **Apply to** (Aplicar a), elija **Exchanges and queues** (Intercambios y colas) en el menú desplegable.

   1. En **Priority (Prioridad)**, ingrese un número entero mayor que todas las demás políticas aplicadas al vhost. Puede aplicar exactamente un conjunto de definiciones de políticas a las colas e intercambios de RabbitMQ en cualquier momento dado. RabbitMQ elige la política de coincidencia con el valor de prioridad más alto. Para obtener más información acerca de las prioridades de las políticas y cómo combinar políticas, consulte el tema sobre [políticas](https://www.rabbitmq.com/parameters.html#policies) en la documentación del servidor de RabbitMQ.

   1. En **Definition** (Definición), agregue los siguientes pares clave-valor:
      + **queue-mode**=**lazy**. Elija **String** (Cadena) en el menú desplegable.
      + **overflow**=**reject-publish**. Elija **String** (Cadena) en el menú desplegable.
**nota**  
No se aplica a los agentes de una sola instancia.
      + **max-length**=. **{{number-of-messages}}** {{number-of-messages}}Sustitúyalo por el [valor recomendado por Amazon MQ](rabbitmq-defaults.md#rabbitmq-defaults-values) según el tamaño de la instancia y el modo de implementación del bróker, por ejemplo, **8000000** para un `mq.m7g.large` clúster. Seleccione **Number** (Número) en el menú desplegable.
**nota**  
No se aplica a los agentes de una sola instancia.

   1. Elija **Add/update policy** (Agregar/actualizar política).

1. Confirme que la nueva política aparezca en la lista de **políticas de usuario**.
**nota**  
Para los agentes de clúster, Amazon MQ aplica automáticamente las definiciones de políticas `ha-mode: all` y `ha-sync-mode: automatic`.

1. Elija **Limits** (Límites) en el panel de navegación.

1. En la página **Límits** (Límites), puede ver una lista de los **límites de anfitriones virtuales** actuales del agente. Debajo de los **límites de anfitriones virtuales**, expanda **Set/update a virtual host limit** (Establecer/actualizar un límite de anfitrión virtual).

1. Para crear un nuevo límite de vhost, en **Set/update a virtual host limit** (Establecer/actualizar un límite de anfitrión virtual), haga lo siguiente:

   1. En **Virtual host** (Anfitrión virtual), elija en el menú desplegable el nombre del vhost al que desea asociar las políticas. Para elegir el vhost predeterminado, elija **/**.

   1. En **Limit** (Límite), elija **max-connections** en las opciones desplegables.

   1. En **Value** (Valor), ingrese el [valor recomendado por Amazon MQ](rabbitmq-defaults.md#rabbitmq-defaults-values) de acuerdo con el tamaño de la instancia y el modo de implementación del agente, por ejemplo, **15000** para un clúster `mq.m5.large`.

   1. Elija **Set/update limit** (Establecer/actualizar límite).

   1. Repita los pasos anteriores y, en **Limit** (Límite), elija **max-queues** en las opciones desplegables.

1. Confirme que los nuevos límites aparezcan en la lista de **límites de anfitriones virtuales**.

**Para aplicar políticas y límites de anfitriones virtuales predeterminados mediante la API de administración de RabbitMQ**

1. Inicie sesión en la [consola de Amazon MQ](https://console.aws.amazon.com/amazon-mq/).

1. En el panel de navegación izquierdo, elija **Brokers** (Agentes).

1. En la lista de agentes, elija el nombre del agente al que desea aplicar la nueva política.

1. En la sección **Connections** (Conexiones) de la página del agente, anote la URL de la **consola web de RabbitMQ**. Este es el punto de enlace del agente que se utiliza en una solicitud HTTP.

1. Abra un terminal nuevo o la ventana de línea de comandos que desee.

1. Para crear una nueva política de agente, ingrese el comando `curl`. Este comando asume que hay una cola en el vhost `/` predeterminado, que está codificado como `%2F`. Para aplicar la política a otro vhost, reemplace `%2F` por el nombre del vhost.
**nota**  
Sustituya {{username}} y por {{password}} sus credenciales de inicio de sesión de administrador. {{number-of-messages}}Sustitúyalo por el [valor recomendado por Amazon MQ](rabbitmq-defaults.md#rabbitmq-defaults-values) según el tamaño de la instancia y el modo de implementación del bróker. {{policy-name}}Sustitúyalo por un nombre para la política. {{broker-endpoint}}Sustitúyala por la URL que anotaste anteriormente.

   ```
   curl -i -u {{username}}:{{password}} -H "content-type:application/json" -XPUT \
   -d '{"pattern":".*", "priority":1, "definition":{"queue-mode":lazy, "overflow":"reject-publish", "max-length":"{{number-of-messages}}"}}' \
   {{broker-endpoint}}/api/policies/%2F/{{policy-name}}
   ```

1. Para confirmar que se haya agregado la nueva política a las políticas de usuario de su agente, ingrese el comando `curl` para ver una lista de todas las políticas de agente.

   ```
   curl -i -u {{username}}:{{password}} {{broker-endpoint}}/api/policies
   ```

1. Para crear un nuevo límite de anfitrión virtual `max-connections`, ingrese el comando `curl`. Este comando asume que hay una cola en el vhost `/` predeterminado, que está codificado como `%2F`. Para aplicar la política a otro vhost, reemplace `%2F` por el nombre del vhost.
**nota**  
Sustituya {{username}} y {{password}} por sus credenciales de inicio de sesión de administrador. {{max-connections}}Sustitúyalo por el [valor recomendado por Amazon MQ](rabbitmq-defaults.md#rabbitmq-defaults-values) según el tamaño de la instancia y el modo de implementación del bróker. Reemplace el punto de enlace del agente por la URL que anotó anteriormente.

   ```
   curl -i -u {{username}}:{{password}} -H "content-type:application/json" -XPUT \
   -d '{"value":"{{number-of-connections}}"}' \
   {{broker-endpoint}}/api/vhost-limits/%2F/max-connections
   ```

1. Para crear un nuevo límite de anfitrión virtual `max-queues`, repita el paso anterior, pero modifique el comando curl como se muestra a continuación.

   ```
   curl -i -u {{username}}:{{password}} -H "content-type:application/json" -XPUT \
   -d '{"value":"{{number-of-queues}}"}' \
   {{broker-endpoint}}/api/vhost-limits/%2F/max-queues
   ```

1. Para confirmar que los nuevos límites se agreguen a los límites de anfitriones virtuales de su agente, ingrese el comando `curl` para ver una lista de todos los límites de anfitriones virtuales del agente.

   ```
   curl -i -u {{username}}:{{password}} {{broker-endpoint}}/api/vhost-limits
   ```