Aplicar políticas ao Amazon MQ para RabbitMQ
Você pode aplicar políticas e limites personalizados com valores padrão recomendados pelo Amazon MQ. Se você excluiu as políticas e limites padrão recomendados e deseja recriá-los, ou se tiver criado vhosts adicionais e quiser aplicar as políticas e limites padrão aos novos vhosts, você pode usar as etapas a seguir.
Importante
Para executar as etapas a seguir, é necessário ter um usuário do agente do Amazon MQ para RabbitMQ com permissões de administrador. Você pode usar o usuário administrador criado quando criou o agente pela primeira vez ou outro usuário que você possa ter criado posteriormente. A tabela a seguir fornece a etiqueta de usuário administrador necessária e as permissões como padrões de expressão regular (regexp).
Etiquetas | Ler regexp | Configurar regexp | Escrever regexp |
---|---|---|---|
administrator |
.* |
.* |
.* |
Para obter mais informações sobre criar usuários RabbitMQ e gerenciar etiquetas e permissões de usuário, consulte Usuários do agente do Amazon MQ para RabbitMQ.
Para aplicar políticas padrão e limites de host virtual usando o console da Web RabbitMQ
-
Faça login no console do Amazon MQ
. -
No painel de navegação à esquerda, escolha Agentes.
-
Na lista de agentes, escolha o nome do agente ao qual você deseja aplicar a nova política.
-
Na página de detalhes do agente, na seção Conexões, selecione a URL do Console Web do RabbitMQ. O console da Web do RabbitMQ é aberto em uma nova guia ou janela do navegador.
-
Faça login no console da Web do RabbitMQ com o nome de usuário e a senha do administrador do agente.
-
No console da Web do RabbitMQ, na parte superior da página, escolha Admin.
-
Na página Admin, no painel de navegação da direita, selecione Policies (Políticas).
-
Na página Policies (Políticas), você pode ver uma lista das User policies (Políticas de usuário) atuais do agente. Abaixo das User policies (Políticas de usuário), expanda Add/update a policy (Adicionar/atualizar uma política).
-
Para criar uma política de agente, em Add/update a policy (Adicionar/atualizar uma política), faça o seguinte:
-
Para o Virtual host (Host virtual), escolha o nome do vhost ao qual você deseja anexar as políticas da lista suspensa. Para escolher o vhost padrão, escolha /.
nota
Se você não tiver criado vhosts adicionais, a opção Virtual host (Host virtual) não aparecerá no console RabbitMQ, e as políticas serão aplicadas somente ao vhost padrão.
-
Em Name (Nome), insira um nome para a sua política, por exemplo
policy-defaults
. -
Para Pattern (Padrão), insira o padrão de expressão regular
.*
para que a política corresponda a todas as filas no agente. -
Para Apply to (Aplicar em), escolha Exchanges and queues (Trocas e filas) na lista suspensa.
-
Para Priority (Prioridade), insira um número inteiro maior que todas as outras políticas aplicadas ao vhost. Você pode aplicar exatamente um conjunto de definições de política a filas e trocas RabbitMQ a qualquer momento. O RabbitMQ escolhe a política correspondente com o valor de prioridade mais alto. Para obter mais informações sobre prioridades de política e como combinar políticas, consulte Policies
(Políticas) na Documentação do Servidor RabbitMQ. -
Para Definition (Definição), adicione os seguintes pares de chave-valor:
-
queue-mode
=lazy
. Selecione String (String) na lista suspensa. -
overflow
=reject-publish
. Selecione String (String) na lista suspensa.nota
Não se aplica aos agentes de instância única.
-
max-length
=
. Substituanumber-of-messages
number-of-messages (número de mensagens)
pelo Valor recomendado pelo Amazon MQ de acordo com o tamanho da instância do agente e o modo de implantação, por exemplo,8000000
para um clustermq.m5.large
. Selecione Number (Número) na lista suspensa.nota
Não se aplica aos agentes de instância única.
-
-
Escolha Add/update policy (Adicionar/atualizar política).
-
-
Confirme se a nova política aparece na lista de User policies (Políticas de usuário).
nota
Para agentes de cluster, o Amazon MQ aplica automaticamente as definições de política
ha-mode: all
eha-sync-mode: automatic
. -
No painel de navegação da direita, escolha Limits (Limites).
-
Na página Limites você poderá ver uma lista dos Virtual host limits (Limites de host virtual) atuais do agente. Abaixo dos Limites de host virtual, expanda Set/update a virtual host limit (Definir/atualizar um limite de host virtual).
-
Para criar um novo limite vhost, em Set/update a virtual host limit (Definir/atualizar um limite de host virtual), faça o seguinte:
-
Para o Virtual host (Host virtual), escolha o nome do vhost ao qual você deseja anexar as políticas da lista suspensa. Para escolher o vhost padrão, escolha /.
-
Para Limit (Limite), escolha máximo de conexões nas opções suspensas.
-
Para Value (Valor), insira o Amazon MQ recommended value (Valor recomendado pelo Amazon MQ) de acordo com o tamanho da instância do agente e o modo de implantação, por exemplo,
15000
para um clustermq.m5.large
. -
Selecione Set/update limit (Definir/atualizar limite).
-
Repita as etapas acima e, para Limit (Limite), escolha máximo de filas nas opções suspensas.
-
-
Confirme se os novos limites aparecem na lista de Virtual host limits (Limites de host virtual).
Para aplicar políticas padrão e limites de host virtual usando a API de gerenciamento RabbitMQ
-
Faça login no console do Amazon MQ
. -
No painel de navegação à esquerda, escolha Agentes.
-
Na lista de agentes, escolha o nome do agente ao qual você deseja aplicar a nova política.
-
Na página do agente, na seção Connections (Conexões), anote a URL do RabbitMQ web console (Console da Web RabbitMQ). Este é o endpoint do agente que você usa em uma solicitação HTTP.
-
Abra uma nova janela de terminal ou linha de comando de sua escolha.
-
Para criar uma nova política de agente, insira o comando
curl
a seguir. Este comando assume uma fila no vhost/
padrão, que é codificada como%2F
. Para aplicar a política a outro vhost, substitua%2F
pelo nome do vhost.nota
Substitua o
nome de usuário
e asenha
pelas suas credenciais de login de administrador. Substitua onumber-of-messages (número de mensagens)
com o Amazon MQ recommended value (Valor recomendado pelo Amazon MQ) de acordo com o tamanho da instância do agente e o modo de implantação. Substitua opolicy-name (nome da política)
por um nome para a sua política. Substitua obroker-endpoint (endpoint do agente)
pela URL que você anotou 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
-
Para confirmar se a nova política foi adicionada às políticas de usuário do seu agente, insira o seguinte comando
curl
para listar todas as políticas de agente.curl -i -u
username
:password
broker-endpoint
/api/policies -
Para criar um novo limites
max-connections
de host virtual, insira o seguinte comandocurl
. Este comando assume uma fila no vhost/
padrão, que é codificada como%2F
. Para aplicar a política a outro vhost, substitua%2F
pelo nome do vhost.nota
Substitua o
nome de usuário
e asenha
pelas suas credenciais de login de administrador. Substituamax-connections (máximo de conexões)
com o Amazon MQ recommended value (Valor recomendado pelo Amazon MQ) de acordo com o tamanho da instância do agente e o modo de implantação. Substitua o endpoint do agente com a URL que você anotou 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 -
Para criar um novo limite de host virtual
max-queues
, repita a etapa anterior, mas modifique o comando curl conforme mostrado a seguir.curl -i -u
username
:password
-H "content-type:application/json" -XPUT \ -d '{"value":"number-of-queues
"}' \broker-endpoint
/api/vhost-limits/%2F/max-queues -
Para confirmar se os novos limites foram adicionados aos limites de host virtual do seu agente, insira o comando a seguir
curl
para listar todos os limites de host virtual do agente.curl -i -u
username
:password
broker-endpoint
/api/vhost-limits