Conectando ao Event Streams

Para se conectar à instância do Event Streams, são necessárias as URLs de terminal para as APIs e as credenciais para autenticação. Aprenda como obter esses detalhes e as opções de conectividade que você pode utilizar

Visão geral

Os serviços provisionados usando os planos Lite, Standard ou Enterprise são agrupados no painel sob o título Services.

Todos os planos usam IAM para autenticação. Não é necessário entender o IAM para iniciar, mas algum conhecimento é recomendado se você deseja proteger o seu serviço Event Streams. Para obter mais informações, consulte Gerenciando o acesso aos seus recursos do Event Streams. Para concluir as etapas a seguir e ser autorizado a criar tópicos, seu aplicativo ou chave de serviço deve ter a função de acesso Manager. Por padrão, o proprietário da conta que contém a instância de serviço tem esse papel.

Por padrão, as instâncias do Event Streams são configuradas para usar a rede pública do IBM Cloud®, portanto, elas são acessíveis por meio da Internet pública.  Se necessário, você pode restringir esse acesso, selecionando um tipo de rede alternativo ou restringindo o local de que as conexões são aceitas. Para obter mais informações, consulte Restringindo Acesso à Rede.

Informações de conexão

Para acessar uma instância de serviço, crie uma chave de serviço. Uma chave de serviço contém as informações que são necessárias para acessar a instância, incluindo os detalhes do terminal para suas APIs e uma credencial de chave API exclusiva.

Para criar uma chave de serviço usando o console do IBM Cloud:

  1. Localize o seu serviço Event Streams no painel.
  2. Clique em seu bloco do serviço.
  3. Clique em Credenciais de serviço.
  4. Clique em Nova credencial.
  5. Preencha os detalhes para sua nova credencial Escolha um nome e uma função e clique em Add (Adicionar ). Uma nova credencialaparece na lista de credenciais.
  6. Clique na nova credencial usando View Credentials para revelar os detalhes no formato JSON.

Para criar uma chave de serviço usando a CLI do IBM Cloud, conclua as etapas a seguir.

  1. Localize seu serviço:

    ibmcloud resource service-instances
    
  2. Crie uma chave de serviço:

    ibmcloud resource service-key-create <key_name> <key_role> --instance-name <your_service_name>
    
  3. Imprima a chave de serviço:

    ibmcloud resource service-key <key_name>
    

    Um único conjunto de detalhes do terminal estão contidos em cada chave de serviço. Para instâncias de serviço configuradas para serem conectadas a um único tipo de rede, a rede pública IBM Cloud (o padrão) ou a rede privada IBM Cloud, a chave de serviço contém os detalhes relevantes para esse tipo de rede. Para instâncias configuradas para suportar tanto as redes privadas quanto públicas, os detalhes para a rede pública são retornados. Se você deseja detalhes para a rede privada, deve-se adicionar o parâmetro --service-endpoint private o comando CLI anterior, como no exemplo a seguir.

    ibmcloud resource service-key-create <private-key-name> <role> --instance-name <instance-name> --service-endpoint private
    

Para obter mais informações, consulte Tipos de Rede.

Estabelecendo uma conexão

Para conectar um aplicativo Kafka, complete as tarefas a seguir.

  • Use o campo <bootstrap_endpoints> a partir da chave de serviço como a propriedade bootstrap.servers do seu aplicativo Kafka.
  • Configure a propriedade security.protocol como SASL_SSL, e a propriedade sasl.mechanism como PLAIN
  • Use o campo <user> a partir da chave de serviço como o nome de usuário e o campo <api_key> da chave de serviço como a senha. Assegure-se de que seu aplicativo analise os detalhes.
  • Para obter mais informações, consulte Configurando a API do seu cliente Kafka.

Para chamar uma API HTTP, conclua as seguintes tarefas.

  • Use o campo <kafka_admin_url> da chave de serviço como a URL base para solicitações HTTP.
  • Use o comando IBM Cloud CLI ibmcloud iam oauth-tokens para gerar um token de autenticação. Coloque esse token no cabeçalho Authorization da solicitação HTTP com o valor formatado como Bearer <token>. A chave de API ou os tokens JWT são suportados.
  • Mais documentação é fornecida para cada API.

Conectividade de rede

Por padrão, as instâncias padrão, Lite, Standard e Enterprise estão configuradas para serem acessíveis sobre a internet pública. Se você estiver usando o plano Enterprise, você pode restringir a conectividade da seguinte forma:

Rede privada
Se a sua carga de trabalho estiver sendo executada inteiramente no IBM Cloud e o acesso público ao serviço não for necessário, as instâncias do Event Streams poderão ser configuradas para serem acessíveis somente pela rede privada do IBM Cloud. Essa configuração oferece maior isolamento e não incorre nas taxas de largura de banda de saída associadas ao tráfego público. As instâncias também podem ser configuradas para serem acessíveis nas redes públicas e privadas do IBM Cloud.
Restrições baseadas em contexto
Você pode definir regras de acesso que limitatem os locais de rede que as conexões são aceitas de acordo com determinadas características. Por exemplo, tipo de rede, intervalos de IP, VPC ou outros serviços.

Para obter mais informações, consulte Restringindo o acesso à rede.

Acessando uma instância Enterprise sobre a rede privada a partir da infraestrutura Classic

Para acessar sua instância do Enterprise por meio da rede privada para cargas de trabalho implementadas na infraestrutura clássica do IBM Cloud, os recursos Virtual Route Forwarding (VRF) e Service Endpoints devem ser ativados em sua conta. Para obter mais informações, consulte Restringindo o acesso à rede.

Acessando uma instância Enterprise sobre a rede privada a partir de um VPC

Para que as cargas de trabalho implementadas em um VPC do IBM Cloud possam acessar sua instância do Enterprise por meio da rede privada, um Virtual Private Endpoint (VPE) deve ser criado no VPC:

  1. No console IBM Cloud, clique no ícone de menu e selecione Infraestrutura de VPC > Rede > Gateways de ponto de extremidade privado virtual.
  2. Crie um VPE para sua instância Event Streams usando a orientação em Sobre os gateways de terminais privados virtuais.
  3. Depois de criar seu VPE, pode levar alguns minutos até que ele e o pDNS concluam o processo e comecem a trabalhar para sua VPC. A conclusão é confirmada quando você vê um endereço IP definido na exibição de detalhes do VPE.

Acessando uma instância do Enterprise sobre a rede privada de fora do IBM Cloud

Soluções como o Direct Link 2.0 podem ser utilizadas para estabelecer uma conexão entre uma rede externa, como um data center local e a rede privada do IBM Cloud. No entanto, ao lidar com cargas de trabalho que operam em uma rede externa, é essencial considerar fatores adicionais para assegurar uma conexão bem-sucedida com o Kafka Observe que essas considerações não se aplicam às cargas de trabalho de HTTP

Os detalhes do terminal privado alocados para a sua instância (como descrito na chave de serviço) devem ser resolvíveis e roteáveis a partir da rede em que a carga de trabalho está em execução. Não é possível especificar entradas alternativas de hostname nas propriedades bootstrap.servers da carga de trabalho como uma forma de rotear o tráfego da rede externa.

A razão para esse comportamento é o processo de conexão de dois passos da Kafka. Na etapa inicial, os hostnames que são fornecidos na propriedade bootstrap.servers do cliente são usados para estabelecer a primeira conexão bootstrap. No entanto, o servidor então responde ao cliente com os detalhes reais hostname do hostname que usa. Esses detalhes do hostname são os detalhes do terminal privado alocados originalmente para sua instância e não podem ser alterados. Daí, os detalhes devem ser resolvíveis e roteáveis diretamente da rede externa.

Para obter mais informações, consulte Acesso a endpoints de API privados de uma rede local usando IBM Cloud Direct Link.

O quê fazer em seguida

Agora que você tem informações de conexão e credenciais, pode escolher um cliente Kafka. Para obter mais informações, consulte Usando a API do Kafka.