Ir para o conteúdo

Execute um Gateway de API Privado no Docker

Introdução

Esta seção fornece exemplos de diferentes maneiras de executar um gateway de API privado no Docker usando imagem Docker do Jitterbit.

Pré-requisitos

Antes de começar, você precisa do seguinte:

  • Docker instalado e em execução.

  • Uma conta Harmony, e seu nome de usuário, senha e ID da organização.

  • Um API Manager válido API na organização associada ao gateway de API privado.

  • Se estiver executando atrás de um proxy de encaminhamento, configure o firewall do seu host para permitir exceções do servidor proxy.

  • (Opcional) Para geração automática de certificados TLS, um domínio de gateway personalizado registrado e seu nome de domínio totalmente qualificado (FQDN) no formato mygateway.mydomain.com.

Início e Configuração Interativos

Execute o seguinte para iniciar o contêiner e, em seguida, responda aos prompts (que seguem a configuração de instalação do Linux passos):

docker run --interactive --tty --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
jitterbit/private-gateway

Início Interativo e Configuração com Rede de Ponte

Execute o seguinte para criar uma rede de ponte e iniciar o contêiner conectado a essa rede, depois responda aos prompts:

docker network create -d bridge jitterbit

docker run --interactive -tty --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
--network=jitterbit \
jitterbit/private-gateway

Uma rede de ponte oferece as seguintes vantagens:

  • Descoberta de contêiner: Permite comunicação direta usando nomes de contêiner, evitando a dependência de endereços IP. Isso simplifica a comunicação entre contêineres e permite private agents comunicar-se livremente com gateways privados.

  • Melhor isolamento: Fornece isolamento aprimorado, reduzindo o risco de interações acidentais entre contêineres não relacionados.

  • Configurações personalizadas: Permite configurações de rede específicas, como personalização de sub-rede e gateway.

  • Segmentação de rede: Facilita a segmentação do tráfego de rede, garantindo que contêineres em diferentes redes de ponte não interfiram uns com os outros.

  • Políticas de rede: Permite a aplicação de regras ou políticas de rede distintas, oferecendo controle aprimorado sobre as comunicações de contêiner.

Dica

Use a mesma rede para executar seus agentes privados baseados em Docker.

Início Autônomo com Rede de Ponte e Configuração com Variáveis de Ambiente

Execute o seguinte para criar uma rede de ponte e iniciar o contêiner no modo desanexado, com valores fornecidos por meio de variáveis de ambiente:

docker network create -d bridge jitterbit

docker run --detach --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
--network=jitterbit \
--env "HARMONY_USERNAME=<USERNAME>" \
--env "HARMONY_PASSWORD=<PASSWORD>" \
--env "ORGANIZATION_ID=<ORG_ID>" \
--env "SERVICE_URL=<SERVICE_URL>" \
--env "PROXY_ENABLED=true|false" \
--env "PROXY_HOSTNAME=<PROXY_HOSTNAME>"
--env "PROXY_USERNAME=<PROXY_SERVER_USERNAME>" \
--env "PROXY_PASSWORD=<PROXY_SERVER_PASSWORD>" \
--env "LETS_ENCRYPT_ENABLED=true|false" \
--env "LETS_ENCRYPT_DOMAIN=<DOMAIN>" \
--env "LETS_ENCRYPT_EMAIL=<EMAIL>" \
jitterbit/private-gateway

Defina os valores das variáveis da seguinte forma:

Variável Descrição Exemplo
HARMONY_USERNAME Login da conta Harmony. name@example.com
HARMONY_PASSWORD Senha da conta Harmony. P@5$w0rd
ORGANIZATION_ID Número de identificação da organização Harmony. 12345
SERVICE_URL URL do serviço Jitterbit para sua região:
  • NA: https://services.jitterbit.net/apis
  • EMEA: https://services.jitterbit.eu/apis
  • Ásia-Pacífico: https://services.jitterbit.cc/apis
https://services.jitterbit.eu/apis
PROXY_ENABLED Habilitar proxy (true ou false). true
PROXY_HOSTNAME Nome do host e porta do proxy. host.docker.internal:12121
PROXY_USERNAME Nome de usuário do servidor proxy. $(PROXY_SERVER_USERNAME)
PROXY_PASSWORD Senha do servidor proxy. $(PROXY_SERVER_PASSWORD)
LETS_ENCRYPT_ENABLED Habilitar Let's Encrypt (true ou false). true
LETS_ENCRYPT_DOMAIN Vamos criptografar o nome de domínio. gateway.mydomain.com
LETS_ENCRYPT_EMAIL Vamos criptografar email da conta. youremail@<mydomain>.com

Início e Configuração Autônomos com um Arquivo de Variáveis de Ambiente

Siga estas etapas para iniciar o contêiner no modo desanexado com variáveis de ambiente definidas em um arquivo:

  1. No diretório onde o Docker é executado, crie um subdiretório conf. Nele, crie um arquivo gateway.conf contendo as seguintes variáveis de ambiente:

    conf/gateway.conf
    ##
    # Jitterbit Private API Gateway Docker configuration
    # For more information, see https://docs.jitterbit.com/api-gateways/private-api-gateway/docker/
    ##
    
    ## Jitterbit API Gateway Configuration
    #
    # Your Harmony account username. (Usually your email address.)
    HARMONY_USERNAME=
    # Your Harmony account password.
    # IMPORTANT: Follow your shell's quoting and escape rules for passwords with special characters.
    # Example: 'P@5$w0rD'
    HARMONY_PASSWORD=
    # Your Harmony account organization ID.
    # Example: 12345
    ORGANIZATION_ID=
    # The Jitterbit service URL for your Harmony account region, one of the following:
    # - For NA: https://services.jitterbit.net/apis
    # - For EMEA: https://services.jitterbit.eu/apis
    # - For APAC: https://services.jitterbit.cc/apis
    SERVICE_URL=
    
    ## Proxy Configuration (Optional)
    #
    # When true, enable proxy.
    PROXY_ENABLED=false
    ## When PROXY_ENABLED=true, uncomment and set the following:
    #
    # Proxy server URL, as http://your_proxy_server:port
    # PROXY_HOSTNAME=
    # Proxy server username
    # PROXY_USERNAME=
    # Proxy server password
    # PROXY_PASSWORD=
    
    ## Let's Encrypt certificates
    # When true, enable automatic generation of TLS certificate.
    # IMPORTANT: You must first create a DNS record pointing to the public IP address of your server.
    LETS_ENCRYPT_ENABLED=true
    # Fully-qualified domain name of your server, matching the A record or CNAME of the DNS record.
    # Example: gateway.mydomain.com
    LETS_ENCRYPT_DOMAIN=
    # Used by Lets Encrypt to issue the certificate. (Usually your email address.)
    LETS_ENCRYPT_EMAIL=
    
  2. Defina os valores das variáveis como no exemplo anterior.

  3. Execute o seguinte comando:

    docker run --detach --name=jb-gateway -p 80:80 -p 443:443 \
    -v "$(pwd)/conf:/conf" \
    jitterbit/private-gateway
    
  4. (Opcional) Teste o portal.

Teste

Você pode testar um gateway de API privado do Docker em execução usando uma verificação de integridade, ou o utilitário de autoteste.

Verificação de Saúde

Para garantir que um gateway de API privado funcione conforme o esperado, primeiro teste a URL de serviço de uma API do API Manager usando o gateway de nuvem e, em seguida, teste a URL do gateway de API privado para o mesmo endpoint:

  1. No API Manager, na organização associada ao gateway de API privado, crie e publique uma API.

  2. Usando uma ferramenta de teste de API ou comando, faça uma solicitação HTTPS GET para a URL de serviço da API.

    Por exemplo, para nome da organização JBExample, ID da organização 123456, prefixo de URL do ambiente development, versão da API número 1 e healthProbe raiz do serviço, a URL do serviço da API seria https://JBExample123456.jitterbit.net/development/v1/healthProbe na região NA.

  3. Faça a chamada novamente, mas substitua o nome e o ID da sua organização e o nome de domínio da região Harmony (jitterbit.net, jitterbit.cc, ou jitterbit.eu) com o subdomínio e domínio do seu gateway.

    Usando o exemplo anterior com um domínio de gateway de mysubdomain.example.com resulta em uma URL de gateway de API privada de https://mysubdomain.example.com/development/v1/healthProbe.

Utilitário de Autoteste

O utilitário de autoteste integrado do gateway executa uma série de testes automáticos que incluem importar um projeto e uma API integrados e, em seguida, chamar a API por meio do gateway para garantir a configuração adequada. Uma URL de API deve estar disponível em sua assinatura para que o autoteste seja bem-sucedido.

Para executar o utilitário de autoteste, siga estas etapas:

  1. Abra uma sessão de shell em um contêiner em execução:

    docker exec -it jitterbit-gateway bash
    
  2. Execute o utilitário de autoteste:

    /usr/bin/jitterbit-api-gateway-config --test