Elementos internos do Conector de Serviço

O Conector de Serviço é um provedor de recursos de extensão do Azure projetado para fornecer uma maneira simples de criar e gerenciar conexões entre os serviços do Azure.

O Conector de Serviço oferece os seguintes recursos:

  • Permite conectar os serviços do Azure com um único comando da CLI do Azure ou em algumas etapas usando o portal do Azure.
  • Dá suporte a um número crescente de bancos de dados, armazenamento, serviços em tempo real, estado e repositórios de segredos que são usados com seu aplicativo nativo de nuvem.
  • Define as configurações de rede, a autenticação e gerencia as variáveis ou propriedades do ambiente de conexão para você.
  • Valida conexões e fornece sugestões para corrigir conexões com falha.

Visão geral da conexão de serviços

O conceito de conexão de serviço é um conceito principal no modelo de recurso do Conector de Serviços. Uma conexão de serviço representa uma abstração do vínculo entre dois serviços. As conexões de serviço têm as seguintes propriedades:

Propriedade Descrição
Nome da Conexão O nome exclusivo da conexão de serviço.
Tipo de serviço de origem Os serviços de origem são serviços que podem ser conectados aos serviços de destino. Eles geralmente são serviços de computação do Azure e incluem o Serviço de Aplicativo do Azure, os Aplicativos de Contêiner do Azure, o Azure Functions, o AKS (Serviço de Kubernetes do Azure) e os Aplicativos Spring do Azure.
Tipo de serviço de destino Os serviços de destino são serviços de suporte ou serviços de dependência aos quais seus serviços de computação se conectam. O Service Connector dá suporte a vários tipos de serviço de destino, incluindo bancos de dados principais, armazenamento, serviços em tempo real, estado e armazenamentos secretos.
Tipo de Cliente O tipo de cliente refere-se à pilha de runtime de computação, à estrutura de desenvolvimento ou ao tipo específico de biblioteca de cliente que aceita o formato específico das propriedades ou variáveis de ambiente de conexão.
Tipo de autenticação O tipo de autenticação usado para a conexão de serviço. Pode ser uma cadeia de conexão/segredo, uma identidade gerenciada ou uma entidade de serviço.

Os serviços de origem e os serviços de destino dão suporte a várias conexões de serviço simultâneas, o que significa que você pode conectar cada recurso a vários recursos.

O Conector de Serviço gerencia conexões nas propriedades de sua instância de origem. Criar, obter, atualizar e excluir conexões é feito diretamente abrindo a instância do serviço de origem no portal do Azure ou usando os comandos da CLI do serviço de origem.

As conexões podem ser feitas entre assinaturas ou locatários, o que significa que os serviços de origem e de destino podem pertencer a diferentes assinaturas ou locatários. Ao criar uma conexão de serviço, o recurso de conexão é criado na mesma região que a instância do serviço de computação por padrão.

Criação e atualização de conexão de serviço

O Conector de Serviço executa várias tarefas ao criar ou atualizar conexões de serviço, incluindo:

  • Definir as configurações de rede e firewall. Saiba mais sobre soluções de rede.

  • Configurar as informações de conexão. Saiba mais sobre as configurações de conexão.

  • Configurar as informações de autenticação. O Conector de Serviço dá suporte a todos os tipos de autenticação disponíveis entre serviços de origem e serviços de destino.

    • Identidade gerenciada atribuída pelo sistema. O Conector de Serviço habilita a identidade gerenciada atribuída pelo sistema nos serviços de origem se ainda não estiver habilitada e, em seguida, concede funções do RBAC de serviços de destino à identidade gerenciada. O usuário pode especificar as funções a serem concedidas.
    • Identidade gerenciada atribuída pelo usuário. O Conector de Serviço habilita a identidade gerenciada atribuída pelo usuário nos serviços de origem se ainda não estiver habilitada e, em seguida, concede funções do RBAC de serviços de destino à identidade gerenciada. O usuário pode especificar as funções a serem concedidas.
    • Cadeia de conexão. O Conector de Serviço recupera cadeias de conexão de serviços de destino, como Armazenamento, Cache Redis etc., ou constrói cadeias de conexão com base na entrada do usuário, como banco de dados do Azure para SQL, PostgreSQL etc.
    • Entidade de serviço. O Conector de Serviço concede funções do RBAC de serviços de destino à identidade gerenciada. O usuário pode especificar as funções a serem concedidas.

    O Conector de Serviço salva as configurações de autenticação correspondentes nos serviços de origem, por exemplo, salvando AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_STORAGEACCOUNT_ENDPOINT para Armazenamento com tipo de autenticação de identidade gerenciada atribuída pelo usuário.

  • Criar ou atualizar a reversão de conexão se ocorrer falha

Se uma etapa falhar durante esse processo, o Conector de Serviço reverterá todas as etapas anteriores para manter as configurações iniciais nas instâncias de origem e de destino.

Provedor de recursos

Microsoft.ServiceLinker é o nome do provedor de recursos do Conector de Serviço.

Quando um usuário abre o guia Conector de Serviço no portal do Azure, o provedor de recursos do ServiceLinker é registrado automaticamente na assinatura ativa do usuário. O usuário que gerou o registro é listado como o iniciador do evento de registro.

O Conector de Serviço permite que os usuários conectem serviços entre assinaturas. Quando um usuário cria uma conexão com um serviço de destino registrado em outra assinatura, o Vinculador de Serviço também é registrado na assinatura do serviço de destino. Esse registro ocorre quando o usuário seleciona o guia Examinar + criar antes de finalmente criar a conexão.

Configurações de conexão

As configurações de conexão são definidas no serviço de origem.

No portal do Azure, abra um serviço de origem e navegue até o Conector de Serviço. Expanda cada conexão e exiba as configurações de conexão.

Captura de tela do portal do Azure mostrando detalhes da conexão de serviço.

Na CLI, use o comando list-configuration para obter as configurações de conexão.

az webapp connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>
az spring connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>
az containerapp connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>

Convenção de nomenclatura de configuração

O Conector de Serviço define a configuração da conexão ao criar uma conexão. Os pares chave-valor da variável de ambiente são determinados com base no tipo de cliente e no tipo de autenticação. Por exemplo, o uso do SDK do Azure com uma identidade gerenciada exige uma ID do cliente, um segredo do cliente etc. O uso de um driver JDBC exige uma cadeia de conexão de banco de dados. Siga estas convenções para nomear as configurações:

  • Cliente Spring Boot: a biblioteca do Spring Boot para cada serviço de destino tem sua própria convenção de nomenclatura. Por exemplo, as configurações de conexão do MySQL seriam spring.datasource.url, spring.datasource.username e spring.datasource.password. As configurações de conexão do Apache Kafka seriam spring.kafka.properties.bootstrap.servers.

  • Outros clientes:

    • O nome da chave da primeira configuração de conexão usa o formato <Cloud>_<Type>_<Name>. Por exemplo, AZURE_STORAGEBLOB_RESOURCEENDPOINT, CONFLUENTCLOUD_KAFKA_BOOTSTRAPSERVER.
    • Para o mesmo tipo de recurso de destino, o nome da chave da segunda configuração de conexão usa o formato <Cloud>_<Type>_<Connection Name>_<Name>. Por exemplo, AZURE_STORAGEBLOB_CONN2_RESOURCEENDPOINT, CONFLUENTCLOUD_KAFKA_CONN2_BOOTSTRAPSERVER.

Solução de rede de serviço

O Conector de Serviço oferece três soluções de rede para os usuários escolherem ao criar uma conexão. Essas soluções são projetadas para facilitar a comunicação segura e eficiente entre os recursos.

  1. Firewall: essa solução permite a conexão por meio da rede pública e do recurso de computação que acessa o recurso de destino com o endereço IP público. Ao selecionar essa opção, o Conector de Serviço verifica as configurações de firewall do recurso de destino e adiciona uma regra para permitir conexões do endereço IP público do recurso de origem. Se o firewall do recurso for compatível com a permissão de acesso a todos os recursos do Azure, o Service Connector habilitará essa configuração. No entanto, se o recurso de destino negar todo o tráfego de rede pública por padrão, o Conector de Serviço não modificará essa configuração. Nesse caso, escolha outra opção ou atualize as configurações de rede manualmente antes de tentar novamente.

  2. Ponto de Extremidade de Serviço: essa solução permite que o recurso de computação se conecte aos recursos de destino por meio de uma rede virtual, garantindo que o tráfego de conexão não passe pela rede pública. Ele só estará disponível se determinadas pré-condições forem atendidas:

    • O recurso de computação deve ter a integração de rede virtual habilitada. Para o Serviço de Aplicativo do Azure, ele pode ser configurado em suas configurações de rede, para os Aplicativos Spring do Azure, os usuários devem definir a injeção de Rede Virtual durante o estágio de criação de recursos.
    • O serviço de destino deve dar suporte ao Ponto de Extremidade de Serviço. Para obter uma lista de serviços com suporte, consulte os pontos de extremidade de serviço de Rede Virtual.

    Ao selecionar essa opção, o Conector de Serviço adiciona o endereço IP privado do recurso de computação na rede virtual às regras de Rede Virtual do recurso de destino e habilita o ponto de extremidade de serviço na configuração de sub-rede do recurso de origem. Se o usuário não tiver permissões suficientes ou a SKU ou região do recurso não oferecer suporte a pontos de extremidade de serviço, a criação da conexão falhará.

  3. Ponto de Extremidade Privado: essa solução é uma maneira recomendada de conectar recursos por meio de uma rede virtual e só estará disponível se determinadas pré-condições forem atendidas:

  • O recurso de computação deve ter a integração de rede virtual habilitada. Para o Serviço de Aplicativo do Azure, ele pode ser configurado em suas configurações de rede, para os Aplicativos Spring do Azure, os usuários devem definir a injeção de VNet durante o estágio de criação de recursos.

  • O serviço de destino deve dar suporte a pontos de extremidade privados. Para obter uma lista de serviços com suporte, consulte o recurso de link privado.

    Ao selecionar essa opção, o Conector de Serviço não executa mais nenhuma configuração nos recursos de computação ou de destino. Em vez disso, verifica a existência de um ponto de extremidade privado válido e falha na conexão se não for encontrada. Para conveniência, os usuários podem selecionar a caixa de seleção "Novo Ponto de Extremidade Privado" no portal do Azure ao criar uma conexão. Com ele, o Conector de Serviço cria automaticamente todos os recursos relacionados para o ponto de extremidade privado na sequência adequada, simplificando o processo de criação da conexão.

Validação de conexão de serviço

Ao validar uma conexão, o conector de serviço verifica os seguintes elementos:

  • Os recursos de origem e de destino existem.
  • Origem: as informações de conexão corretas estão registradas.
  • Destino: as configurações corretas de rede e firewall são registradas.
  • Recursos de origem e destino: as informações de autenticação corretas são registradas.

Exclusão de conexão

Quando uma conexão de serviço é excluída, as informações de conexão também são excluídas.

Próximas etapas

Consulte o artigo de conceito a seguir para saber mais sobre o Conector de Serviço.