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:
- Ligar para
edgemicro init - Ligar para
edgemicro configure [params] - 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:
edgemicro stopedgemicro configure[params]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):
- 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:
- 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_ORGEDGEMICRO_ENVEDGEMICRO_KEYEDGEMICRO_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:
- Gere ou obtenha um certificado e uma chave SSL usando o utilitário openssl ou o método que preferir.
- Adicione o atributo
edgemicro:sslao 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 - 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: trueNeste 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: trueExemplo para TLS:
targets:
host: 'myserver.example.com'
tls:
client:
pfx: /Users/myname/twowayssl/ssl/client.pfx
passphrase: admin123
rejectUnauthorized: trueConfira 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:
- Como os arquivos de registro podem ficar muito grandes, verifique se o diretório deles tem espaço suficiente. Consulte as seções Onde os arquivos de registro são armazenados e Como mudar o diretório padrão de arquivos de registro.
- Exclua ou mova os arquivos de registro para um diretório de arquivo separado pelo menos uma vez por semana.
- Se a política for excluir registros, use o comando da CLI
edgemicro log -cpara remover (limpar) os registros mais antigos.
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.
-
level: (padrão: error)
- plugins: os plug-ins adicionam funcionalidades ao Edge Microgateway. Para detalhes sobre o desenvolvimento de plug-ins, consulte Desenvolvimento de plug-ins personalizados.
- 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: trueQuando 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: falseNesse 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.
- 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=* - Inicie o depurador e configure-o para detectar o número da porta do processo de depuração.
- 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