Ir para o conteúdo

Execute um gateway de API privado Jitterbit no Docker

Introdução

Esta seção fornece exemplos de diferentes maneiras de executar um gateway de API privado no Docker usando a 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.

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

  • Se estiver executando atrás de um proxy reverso, 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) na forma mygateway.mydomain.com.

Início interativo e configuração

Execute o seguinte para iniciar o contêiner e, em seguida, responda às solicitações (que seguem os passos da configuração de instalação do Linux):

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 bridge

Execute o seguinte para criar uma rede bridge e iniciar o contêiner conectado a essa rede, e então responda às solicitações:

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 bridge oferece as seguintes vantagens:

  • Descoberta de Contêineres: 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 que agentes privados se comuniquem livremente com gateways privados.

  • Melhor Isolamento: Proporciona um isolamento melhorado, reduzindo o risco de interações acidentais entre contêineres não relacionados.

  • Configurações Personalizadas: Permite configurações específicas de rede, 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 entre contêineres.

Cuidado

Se estiver configurando um ambiente multi-gateway em contêineres atrás de um balanceador de carga de aplicativo (ALB) como o AWS ALB, todos os contêineres de gateway devem estar na mesma máquina host.

Dica

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

Início não supervisionado 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 em modo destacado, 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
  • APAC: 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 Nome de domínio do Let's Encrypt. gateway.mydomain.com
LETS_ENCRYPT_EMAIL Email da conta Let's Encrypt. youremail@<mydomain>.com

Início não assistido e configuração com um arquivo de variáveis de ambiente

Siga estas etapas para iniciar o contêiner em modo destacado 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 conforme 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 gateway.

Teste

Você pode testar um gateway de API privado em execução no Docker usando uma verificação de saúde ou a ferramenta de auto-teste.

Verificação de saúde

Para garantir que um gateway de API privado funcione conforme o esperado, primeiro teste a URL do serviço de uma API do API Manager usando o gateway em nuvem, depois 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 ou comando de teste de API, faça uma solicitação GET HTTPS para a URL do serviço da API.

    Por exemplo, para o nome da organização JBExample, ID da organização 123456, prefixo da URL do ambiente development, número da versão da API 1 e raiz do serviço healthProbe, 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) pelo 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 privado de https://mysubdomain.example.com/development/v1/healthProbe.

Ferramenta de auto-teste

A utilidade de auto-teste embutida no gateway executa uma série de testes automáticos que incluem a importação de um projeto e API embutidos e, em seguida, chama a API através do gateway para garantir a configuração adequada.

A API é criada com a opção SSL apenas habilitada, o que significa que o acesso à URL privada do gateway da API será testado apenas por HTTPS. Para permitir o acesso por HTTP, você pode desabilitar a opção SSL apenas na configuração da API após a API de teste ser criada.

Uma URL de API deve estar disponível na sua assinatura para que o auto-teste seja bem-sucedido.

Para executar a utilidade de auto-teste, 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 a utilidade de auto-teste:

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