Compartilhar via


Controlar recursos para aplicativos cliente com grupos de aplicativos

Os Hubs de Eventos do Azure permite controlar cargas de trabalho de streaming de eventos para aplicativos cliente que se conectam aos Hubs de Eventos usando grupos de aplicativos. Para obter mais informações, confira Governança de recursos com grupos de aplicativos.

Este artigo mostra como executar as seguintes tarefas:

  • Criar um grupo de aplicativos.
  • Habilitar ou desabilitar um grupo de aplicativos
  • Definir limites e aplicar políticas de limitação a um grupo de aplicativos
  • Validar a limitação com logs de diagnóstico

Observação

Os grupos de aplicativos estão disponíveis atualmente apenas nas camadas Premium e Dedicada.

Criar um grupo de aplicativos

Esta seção mostra como criar um grupo de aplicativos usando o portal do Azure, a CLI, o PowerShell e um modelo do ARM (Azure Resource Manager).

Seguindo estas etapas, é possível criar um grupo de aplicativos usando o portal do Azure.

  1. Navegue até o namespace dos Hubs de Eventos.

  2. No menu à esquerda, selecione Grupos de aplicativos em Configurações.

  3. Na página Grupos de aplicativos, selecione + Grupo de aplicativos na barra de comandos.

    Captura de tela da página Grupos de aplicativos no portal do Azure.

  4. Na página Adicionar grupo de aplicativos, siga estas etapas:

    1. Especifique um nome para o grupo de aplicativos.

    2. Certifique-se de selecionar Habilitado. Para desabilitar o grupo de aplicativos, desmarque a opção Habilitado. Esse sinalizador determina se os clientes de um grupo de aplicativos podem acessar os Hubs de Eventos ou não.

    3. Para Tipo de contexto de segurança, selecione Política de acesso compartilhado do namespace, política de acesso compartilhado do hub de eventos ou Aplicativo do Microsoft Entra. O grupo de aplicativos dá suporte à seleção da chave da SAS no namespace ou no nível da entidade (hub de eventos). Ao criar o grupo de aplicativos, associe uma SAS (assinatura de acesso compartilhado) ou uma ID de aplicativo do Microsoft Entra, que é usada por aplicativos cliente.

    4. Se você selecionou Política de acesso compartilhado do namespace, faça o seguinte:

      1. Em Nome da chave SAS, selecione a política SAS que pode ser usada como um contexto de segurança para o grupo de aplicativos. Selecione Adicionar política de SAS para adicionar uma política e, em seguida, associar ao grupo de aplicativos.

        Captura de tela da página Adicionar grupo de aplicativos com a opção Política de acesso compartilhado do namespace selecionada.

    5. Se você selecionou a política de acesso compartilhado dos Hubs de Eventos:

      1. Para o nome de chave da SAS, copie o nome de política da SAS da página "Políticas de Acesso Compartilhado" dos Hubs de Eventos e cole na caixa de texto

        Captura de tela da página Adicionar grupo de aplicativos com a opção Política de acesso compartilhado do hub de eventos selecionada.

    6. Caso selecionou o aplicativo do Microsoft Entra:

      1. Para a ID do Aplicativo (cliente) do Microsoft Entra , especifique o aplicativo do Microsoft Entra ou a ID do cliente.

      Captura de tela da página Adicionar grupo de aplicativos com a opção do Microsoft Entra.

Tipo de contexto de segurança com suporte

Examine a ID do grupo de clientes gerada automaticamente, que é a ID exclusiva associada ao grupo de aplicativos. O escopo da governança do aplicativo (namespace ou nível de entidade) dependeria do nível de acesso da ID do aplicativo do Microsoft Entra usada. A tabela a seguir mostra a ID do Grupo de Clientes gerada automaticamente para tipos de contexto de segurança diferentes:

Tipo de contexto de segurança ID do grupo de clientes gerado automaticamente
Chave de acesso compartilhado do namespace NamespaceSASKeyName=<NamespaceLevelKeyName>
Aplicativo do Microsoft Entra AADAppID=<AppID>
Chave de acesso compartilhado dos Hubs de Eventos EntitySASKeyName=<EntityLevelKeyName>

Observação

Todos os grupos de aplicativos existentes criados com a chave de acesso compartilhado continuariam a trabalhar com a ID do grupo de clientes começando com SASKeyName. No entanto, todos os novos grupos de aplicativos teriam atualizado a ID do grupo de clientes, conforme mostrado acima.

  1. Para bloquear uma política, siga estas etapas:

    1. Insira um nome para a política.

    2. Para Tipo, selecione Política de limitação.

    3. Para ID de métrica, selecione uma das seguintes opções: Mensagens de entrada, Mensagens de saída, Bytes de entrada, Bytes de saída. No exemplo a seguir, as Mensagens de entrada são selecionadas.

    4. Para Limite de taxa, insira o valor limite. No exemplo a seguir, 10.000 é especificado como o limite para o número de mensagens recebidas.

      Captura de tela da página Adicionar grupo de aplicativos com uma política para mensagens recebidas.

      Veja a seguir uma captura de tela da página com outra política adicionada.

      Captura de tela da página Adicionar grupo de aplicativos com duas políticas.

  2. Agora, na página Adicionar grupo de aplicativos, selecione Adicionar.

  3. Confirme se você vê o grupo de aplicativos na lista de grupos de aplicativos.

    Captura de tela da página Grupos de aplicativos com o grupo de aplicativos que você criou.

    É possível excluir o grupo de aplicativos da lista selecionando o botão do ícone da lixeira próximo a ele na lista.

Habilitar ou desabilitar um grupo de aplicativos

Você pode impedir que aplicativos cliente acessem o namespace dos Hubs de Eventos desabilitando o grupo de aplicativos que contém esses aplicativos. Quando o grupo de aplicativos estiver desabilitado, os aplicativos cliente não poderão publicar ou consumir dados. As conexões estabelecidas nos aplicativos cliente desse grupo de aplicativos também serão encerradas.

Esta seção mostra como habilitar ou desabilitar um grupo de aplicativos usando o portal do Azure, o PowerShell, a CLI e o modelo do ARM.

  1. Na página Namespace dos Hubs de Eventos, selecione Grupos de aplicativos no menu à esquerda.

  2. Selecione o grupo de aplicativos que você deseja habilitar ou desabilitar.

    Captura de tela que mostra a página Grupos de aplicativos com um grupo de aplicativos selecionado.

  3. Na página Editar grupo de aplicativos, desmarque a caixa de seleção ao lado de Habilitado para desabilitar um grupo de aplicativos e clique em Atualizar na parte inferior da página. Da mesma forma, marque a caixa de seleção para habilitar um grupo de aplicativos.

    Captura de tela que mostra a página Editar grupo de aplicativos com a opção Habilitado desmarcada.

Aplicar políticas de limitação

Você pode adicionar nenhuma ou mais políticas ao criar um grupo de aplicativos ou a um grupo de aplicativos existente. Por exemplo, você pode adicionar políticas de limitação relacionadas a IncomingMessages, IncomingBytes ou OutgoingBytes ao contosoAppGroup. Essas políticas serão aplicadas a cargas de trabalho de streaming de eventos dos aplicativos cliente que usam a política de SAS contososaspolicy.

Para saber como adicionar políticas ao criar um grupo de aplicativos, confira a seção Criar um grupo de aplicativos.

Também é possível adicionar políticas após a criação de um grupo de aplicativos.

  1. Na página Namespace dos Hubs de Eventos, selecione Grupos de aplicativos no menu à esquerda.

  2. Selecione o grupo de aplicativos no qual você deseja adicionar, atualizar ou excluir uma política.

    Captura de tela que mostra a página Grupos de aplicativos com um grupo de aplicativos selecionado.

  3. Na página Editar grupo de aplicativos, siga estas etapas:

    1. Atualizar configurações (incluindo valores de limite) de políticas existentes
    2. Adicionar uma política

Decidir o valor do limite para políticas de limitação

Os Hubs de Eventos do Azure dão suporte à funcionalidade de Logs de métrica do aplicativo para observar a taxa de transferência usual em seu sistema e decidir adequadamente sobre o valor limite para o grupo de aplicativos. Você pode seguir estas etapas para decidir sobre um valor limite:

  1. Ative as configurações de diagnóstico nos Hubs de Eventos com logs de métrica do aplicativo como categoria selecionada e escolha o Log Analytics como destino.

  2. Crie um grupo de aplicativos vazio sem nenhuma política de limitação.

  3. Continue enviando mensagens/eventos para o hub de eventos na taxa de transferência habitual.

  4. Acesse o workspace do Log Analytics e consulte o nome de atividade certo na tabela (com base em (resource-governance-overview.md#throttling-policy---threshold-limits)) em AzureDiagnostics. A consulta de exemplo a seguir é definida para acompanhar o valor do limite das mensagens de entrada:

    AzureDiagnostics 
        | where ActivityName_s =="IncomingMessages" 
        | where Outcome_s =="Success"      
    
  5. Selecione a seção Gráfico no workspace do Log Analytics e crie um gráfico entre o tempo gerado no eixo Y e a contagem de mensagens enviadas no eixo x.

    Captura de tela da página de logs do Azure Monitor no portal do Azure.

    Neste exemplo, você pode ver que a taxa de transferência usual nunca ultrapassou o valor de 550 mensagens (taxa de transferência atual esperada). Essa observação ajuda você a definir o valor de limite real.

  6. Depois de decidir o valor de limite, adicione uma nova política de limitação dentro do grupo de aplicativos.

Publicar ou consumir eventos

Depois de adicionar políticas de limitação com êxito ao grupo de aplicativos, você poderá testar o comportamento da limitação publicando ou consumindo eventos usando os aplicativos cliente que fazem parte do grupo de aplicativos contosoAppGroup. Para isso, use um cliente AMQP ou um aplicativo cliente Kafka e o mesmo nome da política de SAS ou a ID de aplicativo do Microsoft Entra usada para criar o grupo de aplicativos.

Observação

Quando os aplicativos cliente são limitados, você deve observar lentidão na publicação ou no consumo de dados.

Validar a limitação com grupos de aplicativos

Semelhante a Decidir limites para políticas de limitação, você pode usar logs de métrica do aplicativo para validar a limitação e encontrar mais detalhes.

Você pode usar a consulta de exemplo abaixo para descobrir todas as solicitações limitadas em determinado período. Você deve atualizar o ActivityName para corresponder à operação que você espera que seja limitada.


  AzureDiagnostics 
  |  where Category =="ApplicationMetricsLogs"
  | where ActivityName_s =="IncomingMessages" 
  | where Outcome_s =="Throttled"  
	

Devido a restrições no nível do protocolo, os logs de solicitação limitados não são gerados para operações de consumidor no hub de eventos (OutgoingMessages ou OutgoingBytes). Quando as solicitações são limitadas no lado do consumidor, você observa a taxa de transferência de saída lenta.

Próximas etapas