Referência de operações e configurações do Edge Microgateway

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Edge Microgateway v. 2.4.x

Visão geral

Neste tópico, explicamos como gerenciar e configurar o Edge Microgateway, incluindo monitoramento, registro em log e depuração.

Como fazer mudanças de configuração

Os arquivos de configuração que você precisa conhecer incluem:

  • Arquivo de configuração padrão do sistema
  • Arquivo de configuração padrão para uma instância do Edge Microgateway recém-inicializada.
  • Arquivo de configuração dinâmica para instâncias em execução

Nesta seção, vamos falar sobre esses arquivos e o que você precisa saber para mudá-los. Para mais detalhes sobre as configurações do arquivo de configuração, consulte a referência de configuração do Edge Microgateway.

Arquivo de configuração padrão do sistema

Ao instalar o Edge Microgateway, um arquivo de configuração do sistema padrão é colocado aqui:

[prefix]/lib/node_modules/edgemicro/config/default.yaml

em que [prefix] é o diretório de prefixo npm. Consulte Onde o Edge Microgateway está instalado?.

Se você mudar o arquivo de configuração do sistema, precisará reinicializar, reconfigurar e reiniciar o Edge Microgateway:

  1. Ligar para edgemicro init
  2. Ligar para edgemicro configure [params]
  3. Ligar para edgemicro start [params]

Arquivo de configuração padrão para instâncias do Edge Microgateway recém-inicializadas.

Ao executar edgemicro init, o arquivo de configuração do sistema (descrito acima), default.yaml, é colocado neste diretório: ~/.edgemicro

Se você mudar o arquivo de configuração em ~/.edgemicro, reconfigure e reinicie o Edge Microgateway:

  1. edgemicro stop
  2. edgemicro configure [params]
  3. edgemicro start [params]

Arquivo de configuração dinâmica para instâncias em execução

Quando você executa edgemicro configure [params], um arquivo de configuração dinâmica é criado em ~/.edgemicro. O arquivo é nomeado de acordo com este padrão: [org]-[env]-config.yaml, em que org e env são os nomes da organização e do ambiente do Apigee Edge. É possível usar esse arquivo para fazer mudanças na configuração e recarregá-las sem tempo de inatividade. Por exemplo, se você adicionar e configurar um plug-in, poderá recarregar a configuração sem incorrer em inatividade, conforme explicado abaixo.

Se o Edge Microgateway estiver em execução (opção de tempo de inatividade zero):

  1. Atualize a configuração do Edge Microgateway:
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]

    Em que:

    • org é o nome da sua organização do Edge. Você precisa ser um administrador da organização.
    • env é um ambiente na sua organização, como teste ou produção.
    • key é a chave retornada anteriormente pelo comando configure.
    • secret é a chave retornada anteriormente pelo comando de configuração.

    Exemplo

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824

Se o Edge Microgateway estiver parado:

  1. Reinicie o Edge Microgateway:
    edgemicro start -o [org] -e [env] -k [key] -s [secret]

    Em que:

    • org é o nome da sua organização do Edge. Você precisa ser um administrador da organização.
    • env é um ambiente na sua organização, como teste ou produção.
    • key é a chave retornada anteriormente pelo comando configure.
    • secret é a chave retornada anteriormente pelo comando de configuração.

    Exemplo

    edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824

Confira um exemplo de arquivo de configuração. Para detalhes sobre as configurações do arquivo de configuração, consulte a referência de configuração do Edge Microgateway.

edge_config:
  bootstrap: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test
  jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey'
  managementUri: 'https://api.enterprise.apigee.com'
  vaultName: microgateway
  authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
  baseUri: >-
    https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
  bootstrapMessage: Please copy the following property to the edge micro agent config
  keySecretMessage: The following credentials are required to start edge micro
  products: 'https://docs-test.apigee.net/edgemicro-auth/products'
edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
headers:
  x-forwarded-for: true
  x-forwarded-host: true
  x-request-id: true
  x-response-time: true
  via: true
oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey'
analytics:
  uri: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test

Como definir variáveis de ambiente

Os comandos da interface de linha de comando que exigem valores para sua organização e ambiente do Edge, além da chave e do secret necessários para iniciar o Edge Microgateway, podem ser armazenados nestas variáveis de ambiente:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

A definição dessas variáveis é opcional. Se você os definir, não será necessário especificar os valores ao usar a interface de linha de comando (CLI) para configurar e iniciar o Edge Microgateway.

Como configurar o SSL no servidor do Edge Microgateway

É possível configurar o servidor do Microgateway para usar SSL. Por exemplo, com o SSL configurado, você pode chamar APIs pelo Edge Microgateway com o protocolo "https", assim:

https://localhost:8000/myapi

Para configurar o SSL no servidor do Microgateway, siga estas etapas:

  1. Gere ou obtenha um certificado e uma chave SSL usando o utilitário openssl ou o método que preferir.
  2. Adicione o atributo edgemicro:ssl ao arquivo de configuração do Edge Microgateway. Para uma lista completa de opções, consulte a tabela abaixo. Para detalhes sobre como modificar a configuração do Edge Microgateway, consulte Fazer mudanças de configuração. Por exemplo:
     edgemicro:
         ssl:
             key: <absolute path to the SSL key file>
             cert: <absolute path to the SSL cert file>
             passphrase: admin123 #option added in v2.2.2
             rejectUnauthorized: true #option added in v2.2.2
             requestCert: true 
  3. Reinicie o Edge Microgateway. Siga as etapas descritas em Fazer mudanças na configuração, dependendo do arquivo de configuração editado: o padrão ou o de configuração de tempo de execução.

Confira um exemplo da seção "edgemicro" do arquivo de configuração com o SSL configurado:

edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
  ssl:
    key: /MyHome/SSL/em-ssl-keys/server.key
    cert: /MyHome/SSL/em-ssl-keys/server.crt
    passphrase: admin123 #option added in v2.2.2
    rejectUnauthorized: true #option added in v2.2.2

Confira uma lista de todas as opções de servidor compatíveis:

Opção Descrição
key Caminho para um arquivo ca.key (no formato PEM).
cert Caminho para um arquivo ca.cert (no formato PEM).
pfx Caminho para um arquivo pfx que contém a chave privada, o certificado e os certificados da CA do cliente no formato PFX.
passphrase Uma string que contém a senha longa da chave privada ou do PFX.
ca Caminho para um arquivo que contém uma lista de certificados confiáveis no formato PEM.
ciphers Uma string que descreve as cifras a serem usadas, separadas por ":".
rejectUnauthorized Se for "true", o certificado do servidor será verificado em relação à lista de CAs fornecidas. Se a verificação falhar, um erro será retornado.
secureProtocol O método SSL a ser usado. Por exemplo, "SSLv3_method" para forçar o SSL à versão 3.
servername O nome do servidor para a extensão TLS SNI (indicação de nome do servidor).
requestCert "true" para SSL bidirecional e "false" para SSL unidirecional

Usar opções de SSL/TLS do cliente

É possível configurar o Edge Microgateway para ser um cliente TLS ou SSL ao se conectar a endpoints de destino. No arquivo de configuração do Microgateway, use o elemento "targets" para definir opções de SSL/TLS.

Este exemplo fornece configurações que serão aplicadas a todos os hosts:

targets:
   ssl:
     client:
       key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
       cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true

Neste exemplo, as configurações são aplicadas apenas ao host especificado:

targets:
   host: 'myserver.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true

Exemplo para TLS:

targets:
   host: 'myserver.example.com'
   tls:
     client:
       pfx: /Users/myname/twowayssl/ssl/client.pfx
       passphrase: admin123
       rejectUnauthorized: true

Confira uma lista de todas as opções de cliente compatíveis:

Opção Descrição
pfx Caminho para um arquivo pfx que contém a chave privada, o certificado e os certificados da CA do cliente no formato PFX.
key Caminho para um arquivo ca.key (no formato PEM).
passphrase Uma string que contém a senha longa da chave privada ou do PFX.
cert Caminho para um arquivo ca.cert (no formato PEM).
ca Caminho para um arquivo que contém uma lista de certificados confiáveis no formato PEM.
ciphers Uma string que descreve as cifras a serem usadas, separadas por ":".
rejectUnauthorized Se for "true", o certificado do servidor será verificado em relação à lista de CAs fornecidas. Se a verificação falhar, um erro será retornado.
secureProtocol O método SSL a ser usado. Por exemplo, "SSLv3_method" para forçar o SSL à versão 3.
servername O nome do servidor para a extensão TLS SNI (indicação de nome do servidor).

Personalizar o proxy edgemicro-auth

Por padrão, o Edge Microgateway usa um proxy implantado no Apigee Edge para autenticação OAuth2. Esse proxy é implantado quando você executa edgemicro configure pela primeira vez. É possível mudar a configuração padrão desse proxy para adicionar suporte a declarações personalizadas a um JSON Web Token (JWT), configurar a expiração do token e gerar tokens de atualização. Para mais detalhes, consulte a página edgemicro-auth no GitHub.

Como usar um serviço de autenticação personalizado

Por padrão, o Edge Microgateway usa um proxy implantado no Apigee Edge para autenticação OAuth2. Esse proxy é implantado quando você executa edgemicro configure pela primeira vez. Por padrão, o URL desse proxy é especificado no arquivo de configuração do Edge Microgateway da seguinte maneira:

authUri: https://myorg-myenv.apigee.net/edgemicro-auth

Se você quiser usar seu próprio serviço personalizado para processar a autenticação, mude o valor authUri no arquivo de configuração para apontar para seu serviço. Por exemplo, você pode ter um serviço que usa LDAP para verificar a identidade.

Gerenciar arquivos de registros

O Edge Microgateway registra informações sobre cada solicitação e resposta. Os arquivos de registro fornecem informações úteis para depuração e solução de problemas.

Onde os arquivos de registros são armazenados

Por padrão, os arquivos de registro são armazenados em /var/tmp.

Como mudar o diretório padrão de arquivos de registro

O diretório em que os arquivos de registro são armazenados é especificado no arquivo de configuração do Edge Microgateway. Para detalhes sobre como fazer mudanças na configuração, consulte Fazer mudanças na configuração.

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Mude o valor dir para especificar um diretório de arquivo de registro diferente.

Enviar registros para o console

É possível configurar o registro para que as informações sejam enviadas para a saída padrão em vez de um arquivo de registro. Defina a flag to_console como "true" da seguinte maneira:

edgemicro:
  logging:
    to_console: true  

Com essa configuração, os registros serão enviados para a saída padrão. No momento, não é possível enviar registros para stdout e para um arquivo de registro.

Como definir o nível de geração de registros

É possível definir estes níveis de registro: info, warn e error. O nível INFO é recomendado. Ele registra todas as solicitações e respostas de API e é o padrão.

Como mudar os intervalos de registro

É possível configurar esses intervalos no arquivo de configuração do Edge Microgateway. Para detalhes sobre como fazer mudanças de configuração, consulte Fazer mudanças de configuração.

Os atributos configuráveis são:

  • stats_log_interval: (padrão: 60) intervalo, em segundos, em que o registro de estatísticas é gravado no arquivo de registro da API.
  • rotate_interval: (padrão: 24) intervalo, em horas, em que os arquivos de registro são alternados. Exemplo:
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Observação : os arquivos de registro arquivados não são compactados. Quando o intervalo começa, um novo arquivo de registro é criado com um novo carimbo de data/hora.

Boas práticas de manutenção de arquivos de registro

À medida que os dados do arquivo de registro se acumulam ao longo do tempo, a Apigee recomenda adotar as seguintes práticas:

Convenção de nomenclatura de arquivos de registros

Cada instância do Edge Microgateway produz três tipos de arquivos de registros:

  • api: registra todas as solicitações e respostas que passam pelo Edge Microgateway. Contadores (estatísticas) e erros de API também são registrados nesse arquivo.
  • err: registra tudo o que é enviado para stderr.
  • out: registra tudo o que é enviado para stdout.

Esta é a convenção de nomenclatura:

edgemicro-<Host Name>-<Instance ID>-<Log Type>.log

Exemplo:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log
edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log

Sobre o conteúdo dos arquivos de registro

Adicionado na v2.3.3

Por padrão, o serviço de geração de registros omite o JSON de proxies, produtos e o JSON Web Token (JWT) baixados. Se você quiser gerar esses objetos nos arquivos de registro, defina o DEBUG=* ao iniciar o Edge Microgateway. Exemplo:

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

Observação : no Windows, use SET DEBUG=*

Conteúdo do arquivo de log "api"

O arquivo de registro "api" contém informações detalhadas sobre o fluxo de solicitações e respostas pelo Edge Microgateway. Os arquivos de registro "api" têm este nome:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Para cada solicitação feita ao Edge Microgateway, quatro eventos são capturados no arquivo de registro "api":

  • Solicitação recebida do cliente
  • Solicitação de saída feita para o destino
  • Resposta recebida do destino
  • Resposta enviada ao cliente

Cada uma dessas entradas separadas é representada em uma notação abreviada para ajudar a tornar os arquivos de registro mais compactos. Confira quatro exemplos de entradas que representam cada um dos quatro eventos. No arquivo de registros, eles aparecem assim (os números das linhas são apenas para referência no documento, não aparecem no arquivo de registros).

(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
(2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0
(3) 1436403888672 info tres s=200, d=7, i=0
(4) 1436403888676 info res s=200, d=11, i=0

Vamos analisar cada um deles:

1. Exemplo de solicitação recebida do cliente:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651: carimbo de data/hora do Unix
  • info: depende do contexto. Pode ser "info", "warn" ou "error", dependendo do nível de registro. Pode ser "stats" para um registro de estatísticas, "warn" para avisos ou "error" para erros.
  • req: identifica o evento. Nesse caso, solicite do cliente.
  • m: o verbo HTTP usado na solicitação.
  • u: a parte do URL após o basepath.
  • h: o host e o número da porta em que o Edge Microgateway está detectando.
  • r: o host e a porta remotos em que a solicitação do cliente foi originada.
  • i: o ID da solicitação. Todas as quatro entradas de evento vão compartilhar esse ID. Cada solicitação recebe um ID exclusivo. A correlação de registros de log por ID de solicitação pode fornecer insights valiosos sobre a latência do destino.
  • d: a duração em milissegundos desde que a solicitação foi recebida pelo Edge Microgateway. No exemplo acima, a resposta do destino para a solicitação 0 foi recebida após 7 milissegundos (linha 3), e a resposta foi enviada ao cliente após mais 4 milissegundos (linha 4). Em outras palavras, a latência total da solicitação foi de 11 milissegundos, dos quais 7 milissegundos foram usados pelo destino e 4 milissegundos pelo próprio Edge Microgateway.

2. Exemplo de solicitação enviada ao destino:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651: carimbo de data/hora do Unix
  • info: depende do contexto. Pode ser "info", "warn" ou "error", dependendo do nível de registro. Pode ser "stats" para um registro de estatísticas, "warn" para avisos ou "error" para erros.
  • treq: identifica o evento. Nesse caso, a solicitação de destino.
  • m: o verbo HTTP usado na solicitação de destino.
  • u: a parte do URL após o basepath.
  • h: o host e o número da porta do destino de back-end.
  • i: o ID da entrada de registro. Todas as quatro entradas de evento vão compartilhar esse ID.

3. Exemplo de resposta recebida do destino

1436403888672 info tres s=200, d=7, i=0

1436403888651: carimbo de data/hora do Unix

  • info: depende do contexto. Pode ser "info", "warn" ou "error", dependendo do nível de registro. Pode ser "stats" para um registro de estatísticas, "warn" para avisos ou "error" para erros.
  • tres: identifica o evento. Nesse caso, a resposta de destino.
  • s: o status da resposta HTTP.
  • d: a duração em milissegundos. O tempo gasto na chamada de API pelo destino.
  • i: o ID da entrada de registro. Todas as quatro entradas de evento vão compartilhar esse ID.

4. Exemplo de resposta enviada ao cliente

1436403888676 info res s=200, d=11, i=0

1436403888651: carimbo de data/hora do Unix

  • info: depende do contexto. Pode ser "info", "warn" ou "error", dependendo do nível de registro. Pode ser "stats" para um registro de estatísticas, "warn" para avisos ou "error" para erros.
  • res: identifica o evento. Nesse caso, a resposta ao cliente.
  • s: o status da resposta HTTP.
  • d: a duração em milissegundos. Esse é o tempo total gasto pela chamada de API, incluindo o tempo gasto pela API de destino e pelo Edge Microgateway.
  • i: o ID da entrada de registro. Todas as quatro entradas de evento vão compartilhar esse ID.

Programação de arquivos de registro

Os arquivos de registro são alternados no intervalo especificado pelo atributo de configuração rotate_interval. As entradas vão continuar sendo adicionadas ao mesmo arquivo de registro até que o intervalo de rotação expire. No entanto, cada vez que o Edge Microgateway é reiniciado, ele recebe um novo UID e cria um novo conjunto de arquivos de registro com esse UID. Consulte também Boas práticas de manutenção de arquivos de registro.

Referência de configuração do Edge Microgateway

Local do arquivo de configuração

Os atributos de configuração descritos nesta seção estão localizados no arquivo de configuração do Edge Microgateway. Para detalhes sobre como fazer mudanças na configuração, consulte Fazer mudanças na configuração.

Atributos edge_config

Essas configurações são usadas para configurar a interação entre a instância do Edge Microgateway e o Apigee Edge.

  • bootstrap: (padrão: none) um URL que aponta para um serviço específico do Edge Microgateway em execução no Apigee Edge. O Edge Microgateway usa esse serviço para se comunicar com o Apigee Edge. Esse URL é retornado quando você executa o comando para gerar o par de chaves pública/privada: edgemicro genkeys. Consulte Como configurar e configurar o Edge Microgateway para mais detalhes.
  • jwt_public_key: (padrão: none) um URL que aponta para o proxy do Edge Microgateway implantado no Apigee Edge. Esse proxy serve como um endpoint de autenticação para emitir tokens de acesso assinados para clientes. Esse URL é retornado quando você executa o comando para implantar o proxy: edgemicro configure. Consulte Como configurar e configurar o Edge Microgateway para mais detalhes.

Atributos do edgemicro

Essas configurações definem o processo do Edge Microgateway.

  • port: (padrão: 8000) o número da porta em que o processo do Edge Microgateway fica à espera.
  • max_connections: (padrão: -1) especifica o número máximo de conexões de entrada simultâneas que o Edge Microgateway pode receber. Se esse número for excedido, o seguinte status será retornado:

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (padrão: -1) o número máximo de solicitações simultâneas que o Edge Microgateway pode receber antes de encerrar a conexão. Essa configuração foi criada para impedir ataques de negação de serviço. Normalmente, defina um número maior que max_connections.
  • logging:
    • level: (padrão: error)
      • info: registra todas as solicitações e respostas que passam por uma instância do Edge Microgateway.
      • warn: registra apenas mensagens de aviso.
      • error: registra apenas mensagens de erro.
    • dir: (padrão: /var/tmp) o diretório em que os arquivos de registro são armazenados.
    • stats_log_interval: (padrão: 60) intervalo, em segundos, em que o registro de estatísticas é gravado no arquivo de registro da API.
    • rotate_interval: (padrão: 24) intervalo, em horas, em que os arquivos de registro são alternados.
  • dir: um caminho relativo do diretório ./gateway para o diretório ./plugins ou um caminho absoluto.
  • sequence: uma lista de módulos de plug-in a serem adicionados à sua instância do Edge Microgateway. Os módulos serão executados na ordem em que forem especificados aqui.
  • debug : adiciona depuração remota ao processo do Edge Microgateway.
    • port: o número da porta a ser detectada. Por exemplo, defina o depurador do ambiente de desenvolvimento integrado para detectar nessa porta.
    • args: argumentos para o processo de depuração. Por exemplo: args --nolazy
  • config_change_poll_interval: (padrão:600 segundos): o Edge Microgateway carrega uma nova configuração periodicamente e executa uma recarga se algo mudar. A pesquisa detecta todas as mudanças feitas no Edge (em produtos, proxies compatíveis com microrrede etc.) e no arquivo de configuração local.
  • disable_config_poll_interval (padrão:false): defina como true para desativar a pesquisa automática de mudanças.
  • request_timeout: define um tempo limite para solicitações de destino. O tempo limite é definido em segundos. Se ocorrer um tempo limite, o Edge Microgateway vai responder com um código de status 504. (Adicionado v2.4.x)

atributos de cabeçalho

Essas configurações definem como determinados cabeçalhos HTTP são tratados.

  • x-forwarded-for: (padrão: true) defina como "false" para impedir que os cabeçalhos x-forwarded-for sejam transmitidos ao destino. Se um cabeçalho x-forwarded-for estiver na solicitação, o valor dele será definido como o valor client-ip no Edge Analytics.
  • x-forwarded-host: (padrão: true) defina como "false" para impedir que os cabeçalhos x-forwarded-host sejam transmitidos ao destino.
  • x-request-id: (padrão: true) defina como "false" para evitar que os cabeçalhos x-request-id sejam transmitidos ao destino.
  • x-response-time: (padrão: true) defina como "false" para impedir que os cabeçalhos x-response-time sejam transmitidos ao destino.
  • via: (padrão: true) defina como "false" para impedir que os cabeçalhos "via" sejam transmitidos ao destino.

atributos do OAuth

Essas configurações definem como a autenticação do cliente é aplicada pelo Edge Microgateway.

  • allowNoAuthorization: (padrão: false) se definido como "true", as chamadas de API poderão passar pelo Edge Microgateway sem nenhum cabeçalho de autorização. Defina como "false" para exigir um cabeçalho de autorização (padrão).
  • allowInvalidAuthorization: (padrão: false) se definido como "true", as chamadas de API poderão ser transmitidas se o token transmitido no cabeçalho de autorização for inválido ou tiver expirado. Defina como "false" para exigir tokens válidos (padrão).
  • authorization-header: (padrão: Authorization: Bearer) O cabeçalho usado para enviar o token de acesso ao Edge Microgateway. Talvez você queira mudar o padrão em casos em que o destino precisa usar o cabeçalho de autorização para outra finalidade.
  • api-key-header (padrão: x-api-key): o nome do cabeçalho ou parâmetro de consulta usado para transmitir uma chave de API ao Edge Microgateway. Consulte também Como usar uma chave de API.
  • keepAuthHeader: (padrão: false) se definido como "true", o cabeçalho de autorização enviado na solicitação será transmitido ao destino (será preservado).
  • allowOAuthOnly: se definido como "true", todas as APIs precisam ter um cabeçalho de autorização com um token de acesso do portador. Permite usar apenas o modelo de segurança OAuth (mantendo a compatibilidade com versões anteriores). (Adicionado na versão 4.2.x)
  • allowAPIKeyOnly: se definido como "true", todas as APIs precisam ter um cabeçalho x-api-key (ou um local personalizado) com uma chave de API.Permite que você autorize apenas o modelo de segurança de chave de API (mantendo a compatibilidade com versões anteriores). (Adicionado na versão 4.2.x)

Atributos específicos do plug-in

Consulte "Usar plug-ins" para detalhes sobre atributos configuráveis de cada plug-in.

Como filtrar proxies

É possível filtrar quais proxies compatíveis com microgateway uma instância do Edge Microgateway vai processar. Quando o Edge Microgateway é iniciado, ele baixa todos os proxies compatíveis com o microgateway na organização associada. Use a configuração a seguir para limitar quais proxies o microgateway vai processar. Por exemplo, esta configuração limita a três os proxies que o microgateway vai processar: edgemicro_proxy-1, edgemicro_proxy-2 e edgemicro_proxy-3:

proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

Mascaramento de dados de análise

A configuração a seguir impede que as informações do caminho da solicitação apareçam na análise do Edge. Adicione o seguinte à configuração do microgateway para mascarar o URI de solicitação e/ou o caminho da solicitação. O URI consiste nas partes de nome do host e caminho da solicitação.

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

Como configurar o Edge Microgateway atrás de um firewall corporativo

v4.2.x com suporte

Se o Edge Microgateway estiver instalado atrás de um firewall, talvez ele não consiga se comunicar com o Apigee Edge. Nesse caso, há duas opções:

Opção 1:

A primeira opção é definir a opção edgemicro: proxy_tunnel como "true" no arquivo de configuração do microgateway:

edge_config:

    proxy: http://10.224.16.85:3128
    proxy_tunnel: true

Quando proxy_tunnel é true, o Edge Microgateway usa o método HTTP CONNECT para tunelar solicitações HTTP em uma única conexão TCP. O mesmo vale se as variáveis de ambiente para configurar o proxy estiverem ativadas para TLS.

Opção 2:

A segunda opção é especificar um proxy e definir proxy_tunnel como "false" no arquivo de configuração do microgateway. Exemplo:

edge_config:
     proxy: http://10.224.16.85:3128
     proxy_tunnel: false

Nesse caso, defina as seguintes variáveis para controlar os hosts de cada proxy HTTP que você quer usar ou quais hosts não devem processar proxies do Edge Microgateway: HTTP_PROXY, HTTPS_PROXY e NO_PROXY.

Você pode definir NO_PROXY como uma lista de domínios delimitada por vírgulas que o Edge Microgateway não deve usar como proxy. Exemplo:

export NO_PROXY='localhost,localhost:8080'

Defina HTTP_PROXY e HTTPS_PROXY como o endpoint do proxy HTTP para que o Edge Microgateway possa enviar mensagens a ele. Exemplo:

export HTTP_PROXY='http://localhost:3786'

export HTTPS_PROXY='https://localhost:3786'

Para mais informações sobre essas variáveis, consulte:

https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables


Consulte também

Como configurar o Edge Microgateway atrás de um firewall corporativo na Comunidade do Apigee.

Como usar caracteres curinga em proxies compatíveis com o Microgateway

É possível usar um ou mais caracteres curinga "*" no caminho base de um proxy edgemicro_* (compatível com o Microgateway). Por exemplo, um caminho base de /team/*/members permite que os clientes chamem https://[host]/team/blue/members e https://[host]/team/green/members sem que você precise criar novos proxies de API para dar suporte a novas equipes. /**/ não é compatível.

Importante:o Apigee NÃO é compatível com o uso de um caractere curinga "*" como o primeiro elemento de um caminho base. Por exemplo, isto NÃO é compatível: pesquisa /*/.


Depuração e solução de problemas

Como se conectar a um depurador

É possível executar o Edge Microgateway com um depurador, como o node-inspector. Isso é útil para solucionar problemas e depurar plug-ins personalizados.

  1. Reinicie o Edge Microgateway no modo de depuração. Para fazer isso, adicione DEBUG=* ao início do comando de inicialização. Por exemplo:

    DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed

    Observação:no Windows, use SET DEBUG=*

  2. Inicie o depurador e configure-o para detectar o número da porta do processo de depuração.
  3. Agora é possível percorrer o código do Edge Microgateway, definir pontos de interrupção, observar expressões e assim por diante.

É possível especificar flags padrão do Node.js relacionadas ao modo de depuração. Por exemplo, --nolazy ajuda na depuração de código assíncrono.

Como verificar arquivos de registros

Se você estiver com problemas, examine os arquivos de registro para ver detalhes de execução e informações de erro. Para mais detalhes, consulte Gerenciar arquivos de registro.

Como usar a segurança da chave de API

As chaves de API oferecem um mecanismo simples para autenticar clientes que fazem solicitações ao Edge Microgateway. Para conseguir uma chave de API, copie o valor da chave do consumidor (também chamada de ID do cliente) de um produto do Apigee Edge que inclua o proxy de autenticação do Edge Microgateway.

Armazenamento de chaves em cache

As chaves de API são trocadas por tokens de acesso, que são armazenados em cache. É possível desativar o armazenamento em cache definindo o cabeçalho Cache-Control: no-cache em solicitações recebidas para o Edge Microgateway.

Como usar a segurança de token do OAuth2

Para detalhes sobre como usar um token OAuth com solicitações de proxy, consulte Proteger o Edge Microgateway.

Como usar uma chave de API

Para detalhes sobre como usar chaves de API com solicitações de proxy, consulte Proteger o Edge Microgateway.

Configurar o nome da chave de API

Por padrão, x-api-key é o nome usado para o cabeçalho ou parâmetro de consulta da chave de API. É possível mudar esse padrão no arquivo de configuração, conforme explicado em Fazer mudanças na configuração. Por exemplo, para mudar o nome para apiKey:

oauth:
 allowNoAuthorization: false
 allowInvalidAuthorization: false
 api-key-header: apiKey