Você está vendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. informações
Como começar
- Como faço para instalar o Edge Microgateway?
- Consulte Como instalar o Edge Microgateway.
- Como faço para executar o Edge Microgateway?
- Consulte Como instalar e configurar o Edge Microgateway.
- Preciso de um banco de dados para executar o Microgateway?
- As APIs encaminhadas por proxy pelo Edge Microgateway podem interagir com um banco de dados em execução como parte de um serviço de destino. No entanto, o Edge Microgateway opera independentemente de qualquer banco de dados ou armazenamento de dados de back-end.
Operação
- Quais alterações no Edge exigem uma reinicialização do Edge Microgateway?
- O Edge Microgateway pesquisa automaticamente as alterações feitas no Apigee Edge, como alterações em
proxies, produtos ou apps de desenvolvedores com reconhecimento de microgateway. O intervalo de pesquisa padrão é de 600 segundos. No entanto, é possível alterar o intervalo com a
definição de configuração
config_change_poll_interval
. Consulte Atributos Edgemicro. - Se você não quiser esperar o intervalo de pesquisa, use o comando
edgemicro reload
para selecionar as alterações mais recentes. Consulte Como recarregar o cluster do microgateway. - Como diferenciar um proxy implantado no Edge e um proxy no Edge Microgateway?
- Quando você configura o Edge Microgateway, é feito o download de uma lista de proxies com reconhecimento de microgateway implantados no Apigee
Edge para a configuração local desse produto. Os proxies com reconhecimento de microgateway
são aqueles nomeados com o prefixo
edgemicro_
. - Quais são minhas opções para geração de registros com o Edge Microgateway?
- O Edge Microgateway tem um recurso integrado de geração de registros. Para saber mais, consulte Como gerenciar arquivos de registros.
- Também é possível criar um plug-in personalizado para usar um serviço de geração de registros de terceiros com o Edge Microgateway. Devido à forma como o Edge Microgateway funciona, não é possível usar a política de geração de registros de mensagens do Apigee Edge para registrar mensagens para o Edge Microgateway. Consulte também o artigo da comunidade Plug-in do Logging para Microgateway.
- Posso reutilizar combinações de chave/secret entre instâncias do Edge Microgateway?
- Contanto que a organização e o ambiente sejam os mesmos para as instâncias do Microgateway, é possível reutilizar o par de chave/secret gerado durante a configuração.
- Como configurar o Edge Microgateway para iniciar em um ambiente de produção?
- É possível definir as variáveis de ambiente para os parâmetros de comando de inicialização, como
EDGEMICRO_KEY
,EDGEMICRO_SECRET
,EDGEMICRO_ORG
eEDGEMICRO_ENV
. Com essas e outras variáveis, é possível iniciar o Edge Microgateway com o único comandoedgemicro start
. Consulte também Como definir variáveis de ambiente. - Posso usar atributos personalizados de produtos ou apps de desenvolvedores com o Edge Microgateway?
- Não. Por padrão, o Edge Microgateway só atua em atributos relacionados ao roteamento e à segurança
básicos. No entanto, como solução alternativa, você tem as seguintes opções possíveis:
-
Adicione atributos personalizados ao proxy
edgemicro-auth
que o Edge Microgateway implanta na Apigee Edge. Esses atributos estarão disponíveis ao usar a chave de API ou a segurança de tokens OAuth. - Modifique o plug-in OAuth para realizar ações nesses atributos.
-
Adicione atributos personalizados ao proxy
- Há um limite para o tamanho do cabeçalho da solicitação?
- Se você fizer upgrade do Node.js para a v8.14.0 ou uma versão mais recente, esteja ciente de que o tamanho máximo do cabeçalho permitido em solicitações foi reduzido de 80 KB para 8 KB. Os cabeçalhos que excedem 8 KB resultam em um erro HTTP 431.
- Uma opção de configuração do Node.js adicionada ao Node.js v11.6.0 permite alterar o tamanho máximo padrão do cabeçalho. Com esse parâmetro,
--max-http-header-size
, é possível especificar o tamanho máximo, em bytes, dos cabeçalhos HTTP. - Para alterar a configuração padrão, defina o valor da variável de ambiente
NODE_OPTIONS
na linha de comando da seguinte maneira:NODE_OPTIONS=--max-http-header-size=NUM_BYTES
Exemplo:
NODE_OPTIONS=--max-http-header-size=80000
Quais APIs de gerenciamento são usadas pelo Edge Microgateway?
Os comandos do Edge Microgateway a seguir chamam as APIs de gerenciamento do Apigee Edge para fazer o trabalho delas, conforme descrito na Referência da CLI para o Edge Microgateway:
edgemicro configure
edgemicro upgradeauth
edgemicro upgradekvm
edgemicro rotatekey
edgemicro cert check
edgemicro cert delete
edgemicro cert install
As seções a seguir listam as chamadas de API de gerenciamento que cada comando usa.
Os comandos edgemicro configure
e upgradeauth
chamam as seguintes APIs de gerenciamento:
- (listar implantações)
GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/deployments
- (receber informações de implantação)
GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=java&name=micro-gateway-products-javacallout-2.0.0.jar
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=adjust-quota.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-jwk.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-verify-jwt.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jsrsasign-all-min.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jwt-initialization.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-jwk-response.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-product-list.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-public-key.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-jwt-variables.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-quota-variables.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-response.js
- (fazer upload de recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=validate-params.js
- (criar proxy de API)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis?action=import&validate=false&name=edgemicro-auth
- (políticas de envio)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/policies
- (proxies de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/proxies?name=default
- (implantar proxy)
POST: https://api.enterprise.apigee.com/v1/o/[org]/e/[env]/apis/edgemicro-auth/revisions/1/deployments
O comando upgradekvm
chama a seguinte API de gerenciamento:
PUT: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
O comando rotatekey
chama a seguinte API de gerenciamento:
GET: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway/entries/private_key
O comando cert check
chama a seguinte API de gerenciamento:
GET: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
O comando cert delete
chama a seguinte API de gerenciamento:
DELETE: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
O comando cert install
chama a seguinte API de gerenciamento:
POST: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps
Implantação
- Posso implantar o Edge Microgateway no mesmo servidor em que meu serviço de destino está sendo executado?
- Sim. O Edge Microgateway é um processo leve que pode ser executado perto do seu serviço de destino, inclusive na mesma máquina.
- Posso implantar um pacote de proxy do Edge como uma implantação do Edge Microgateway?
- Não. Os proxies com reconhecimento do Edge Microgateway têm requisitos específicos e não são compatíveis com todos os recursos dos proxies Edge normais. Consulte a Parte 2: criar entidades no Apigee Edge
- Posso ativar o failover entre uma implantação de pacote de proxy do Edge e uma implantação do Edge Microgateway para o mesmo proxy de API?
- Não. O Edge Microgateway não sabe as implantações de proxy de API que não sejam microgateway na Apigee Edge.
- Qual é o modelo de implantação de alta disponibilidade para o Edge Microgateway?
- Para uma boa discussão sobre como executar o Edge Microgateway usando o NGINX como balanceador de carga, consulte Como gerenciar APIs com o Apigee Edge Microgateway e o NGINX.
- Quais balanceadores de carga posso usar com o Edge Microgateway?
- O Edge Microgateway pode funcionar com qualquer balanceador de carga.
- Existe um limite de quantos proxies do Edge Microgateway posso implantar?
- Consulte os limites de configuração do produto especificados para proxies Edge regulares. O número de proxies com reconhecimento de microgateway que é possível implantar em uma organização e ambiente do Apigee Edge e chamar pelo Edge Microgateway precisa estar de acordo com esses mesmos limites.
- Posso associar minha implantação do Edge Microgateway a uma organização e um ambiente específicos?
- Ao configurar uma instância do Edge Microgateway, é preciso associá-la a uma organização e um ambiente específicos do Edge.
- Posso associar minha implantação do Edge Microgateway a uma região específica (se eu for um cliente multirregional)?
- O Edge Microgateway escolhe automaticamente a melhor região para interação com o Apigee Edge. É possível implantar instâncias do Edge Microgateway em cada região que você quer atender.
Administração
- Preciso ser um administrador da organização para configurar e implantar o Edge Microgateway?
- Sim. Você precisa ter credenciais de administrador da organização para configurar e implantar o Edge Microgateway.
- Preciso ser um administrador da organização para executar o Edge Microgateway?
- Não. O Edge Microgateway é um aplicativo do
Node.js
e pode ser executado por qualquer pessoa com permissão para executar esses aplicativos em uma determinada máquina. - Algum usuário da minha organização pode usar o Edge Microgateway?
- Você não precisa ser um usuário da organização do Apigee Edge para fazer chamadas de API pelo Edge Microgateway. No entanto, você precisa ter permissões no nível da organização para criar ou alterar proxies com reconhecimento do Edge Microgateway que são implantados no Edge.
Performance
- Quais são as considerações de desempenho para usar o Edge Microgateway?
- Se o Edge Microgateway estiver sendo executado no mesmo local do aplicativo de destino, verifique se o servidor tem capacidade suficiente.
- Quais são as práticas recomendadas para executar o Edge Microgateway em grande escala?
- A Apigee recomenda executar várias instâncias do Edge Microgateway em diferentes servidores liderados por balanceadores de carga, como o NGINX. Consulte também Como gerenciar APIs com o Apigee Edge Microgateway e NGINX e Escalonamento horizontal vertical na comunidade Apigee.
- Quais são o TPS do Edge Microgateway por padrão e quais são os requisitos de hardware necessários para uma instância do Microgateway
- É difícil avaliar os requisitos de hardware e as medições de TPS com o Edge Microgateway. Isso depende da sua configuração, que é uma combinação do ajuste do Edge Microgateway, do uso do plug-in, dos plug-ins personalizados e da configuração de outros recursos, como TLS. A Apigee normalmente recomenda que você tenha uma ideia dessa combinação de itens e faça testes de desempenho com sua configuração específica.
Implantação de nuvem privada
- O Edge Microgateway funciona com o Edge para nuvem privada?
- Sim. Para mais detalhes, consulte as etapas de configuração da nuvem privada da Apigee.
Plug-ins
- Como a cota é aplicada com o Edge Microgateway?
- Como opção, é possível adicionar um plug-in de cota à instância do Edge Microgateway. Para mais detalhes, consulte Como usar o plug-in de cota.
- Como o controle de pico é aplicado com o Edge Microgateway?
- Como opção, é possível adicionar um plug-in de detenção de pico à instância do Edge Microgateway. Para detalhes, consulte Como usar o plug-in de pico para detenção.
- Existem
outras maneiras de criar plug-ins diferentes de
Node.js
para o Edge Microgateway? - Não. Os plug-ins precisam ser criados em
Node.js
. - O que acontece quando o Edge Microgateway não consegue fazer upload dos dados do Analytics para o Edge?
- O Edge Microgateway tem um buffer na memória. Se o buffer ficar cheio, os payloads mais antigos serão descartados para permitir que o tráfego da API flua sem problemas.
- Posso adicionar políticas ao Edge Microgateway?
- Se você anexar políticas regulares do Apigee Edge a proxies com reconhecimento de microgateway
no Apigee Edge, elas serão ignoradas. Em vez disso, o Edge Microgateway usa plug-ins para fornecer
funcionalidades semelhantes às políticas do Edge, como cota, detenção de pico, segurança de chaves de API
e segurança do OAuth2. Também é possível programar plug-ins personalizados. Consulte
Usar plug-ins e
Desenvolver plug-ins personalizados.
As seguintes postagens e blogs da comunidade Apigee abordam outros casos de uso de plug-ins:
Segurança
- Como proteger o recurso
/products
? - Informações gerais
- Quando você configura o Edge Microgateway,
um proxy de API chamado
edgemicro-auth
é implantado em seu "organization:environment" no Apigee Edge. Esse proxy expõe um endpoint/products
que retorna uma lista de produtos da API. Se você instalou o Edge Microgateway até 5 de outubro de 2018, a Apigee recomenda que você tome medidas para proteger esse endpoint, porque a resposta contém o endereço de e-mail do desenvolvedor que criou e modificou os produtos de API na sua organização da Apigee. - É possível proteger o endpoint fazendo upgrade do Edge Microgateway ou configurando o TLS mútuo. As duas opções são descritas abaixo.
- Verificar se o endpoint
/products
está protegido -
Caso não tenha certeza se o endpoint
/products
está protegido, vá para a seção Verificar se o recurso/products
está protegido e siga as etapas antes de continuar.Opção 1: fazer upgrade do Edge Microgateway
Se você instalou o Edge Microgateway até 5 de outubro de 2018, a Apigee recomenda fazer upgrade para a versão mais recente dele. Siga as etapas em Como fazer upgrade do Edge Microgateway se você tiver uma conexão de Internet.
Se não for possível fazer upgrade no momento, vá para a Opção 2.
Opção 2: configurar o TLS mútuo
Se não for possível fazer upgrade do Edge Microgateway, a Apigee recomenda que você proteja a comunicação entre o Edge Microgateway e o proxy
edgemicro-auth
com TLS mútuo, também conhecido como TLS bidirecional.- Abra o arquivo
$HOME/.edgemicro/org-env-config.yaml
. Consulte Onde o Edge Microgateway está instalado se não for possível localizar esse arquivo. - Adicione o bloco
tlsOptions
a seguir ao arquivoorg-env-config.yaml
para ativar o TLS mútuo entre o Edge Microgateway e o Apigee Edge:edge_config: bootstrap: >- https://domain/edgemicro/bootstrap/organization/org/environment/env jwt_public_key: 'https://domain/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' tlsOptions: agentOptions: requestCert: true cert: 'path/to/cert' key: 'path/to/key'
Exemplo:
tlsOptions: agentOptions: requestCert: true cert: '/Users/jdoe/twowayssl/ssl/client.key' key: '/Users/jdoe/twowayssl/ssl/ca.crt'
Também é possível incluir os seguintes parâmetros
agentOptions
opcionais:ca
: especifica o caminho para a autoridade certificadora.pfx
: inclua se você quiser usar um arquivo p12/pfx em vez de um certificado e uma chave.passphrase
: a senha longa de um arquivo pfx.ciphers
: especifica criptografia TLS.
- Verifique se o host virtual em que o proxy
edgemicro-auth
foi implantado tem o TLS mútuo ativado. Para mais detalhes, consulte Como definir um host virtual para TLS bidirecional na documentação do Apigee Edge.A captura de tela a seguir mostra como ativar o TLS mútuo em um host virtual na IU da Apigee Edge:
- Observe o proxy de API
edgemicro-auth
na interface do Edge e verifique se o host virtual correto está especificado na configuração do proxy. Por exemplo, se você criou um host virtual com TLS ativado chamadomutualtls
, a estrofeHTTPProxyConnection
do proxy terá esta aparência:<HTTPProxyConnection> <BasePath>/edgemicro-auth</BasePath> <Properties/> <VirtualHost>mutualtls</VirtualHost> </HTTPProxyConnection>
- Abra o arquivo
/products
está protegido/products
está protegido. É importante realizar esse teste depois de concluir as etapas
(Opção 1 ou 2) para proteger o recurso. É possível fazer isso com cURL, por exemplo:
curl -v https://your_domain/edgemicro-auth/products
/products
está protegido:
{ "error":"unauthorized", "error_description": "authentication failed" }
OU
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
Se você receber uma resposta parecida com esta, o recurso /products
está desprotegido,
e os e-mails do desenvolvedor podem ficar expostos:
{ "apiProduct":[ { "apiResources":[ "/", "/**" ], "approvalType":"auto", "attributes":[ ], "createdAt":1537374680948, "createdBy":"jdoe@foo.com", "description":"", "displayName":"mock", "environments":[ "test" ], "lastModifiedAt":1537374680948, "lastModifiedBy":"test@test.com", "name":"mock", "proxies":[ "edgemicro-auth", "edgemicro_mock" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ "" ] } ] }
A Apigee também recomenda que você teste o host virtual HTTP:
Exemplo:
curl -v http://your_domain/edgemicro-auth/products
Se a chamada cURL retornar a lista de produtos da API, é possível que os e-mails dos desenvolvedores sejam
expostos. Se você não quiser expor o endpoint com esse host virtual que não usa TLS, remova-o da configuração HTTPProxyConnection edgemicro-auth
.
Para proteger o recurso, siga uma das seguintes opções:
No momento, não é possível renovar o token JWT para uma determinada instância do Edge Microgateway.
Alternativa:
Cada token JWT tem um atributo "exp" que indica a data de validade do token. Um app pode calcular o prazo de validade e solicitar um novo token fazendo uma chamada de API diretamente para o endpoint do token edgemicro-auth
. Por exemplo, é possível fazer uma chamada de API como esta:
POST https: //{your_org}-{your_env}.apigee.net/edgemicro-auth/token
... com um corpo JSON como este:
{ "client_id": {your_id}, "client_secret": {your_secret},
"grant_type": "client_credentials" }
Consulte também:
- Proteja a API com um token OAuth ou uma chave de API nos documentos do Edge Microgateway.
- Qual é o processo de renovação dos tokens do portador quando eles expiram na comunidade Apigee.
Atualmente, apenas o caminho base é verificado para determinar se uma API é aprovada para produtos de API associados a um token OAuth específico.
Exemplo:
- Você cria um proxy com o prefixo
edgemicro_
com caminho base e destino. - Você adiciona esse proxy a um produto. Vamos chamá-lo de
edgemicro-prod1
. - Quando uma chamada de API é feita pelo Edge Microgateway usando uma chave de API ou um token
OAuth, o Edge Microgateway verifica se o caminho base da API corresponde ao caminho base do proxy
edgemicro_*
que está aprovado para a lista de produtos aprovados para essa chave ou token.
Consulte também Ao usar o gateway Edgemicro nos produtos, qual URL precisa ser incluído na lista de permissões nos produtos usados nos recursos? na Comunidade Apigee.
Apenas o certificado SSL da Apigee padrão é aceito no momento. Certificados SSL personalizados não são compatíveis no momento.
Soluções:
Se quiser usar um certificado SSL personalizado (não padrão da Apigee), você terá estas opções:
-
Use um endpoint
jwt_public_key
não SSL. Modifique o arquivo de configuração do Edge Microgateway para usarhttp://{org}-{env}.apigee.net/edgemicro-auth/publicKey
ou -
Antes de iniciar o Edge Microgateway, defina esta variável de ambiente: exportar
NODE_TLS_REJECT_UNAUTHORIZED ="0"
Consulte também Verificar erros de instalação do Edge Micro no certificado SSL na comunidade da Apigee.
edgemicro-auth
no Edge, e
essa implantação requer credenciais de administrador da organização.É possível usar seu próprio token, mas primeiro é preciso desativar a autorização integrada do Edge Microgateway. Para isso:
- Abra o arquivo de configuração do Edge Microgateway.
-
Altere as duas configurações do OAuth para "true" da seguinte forma:
oauth: allowNoAuthorization: true allowInvalidAuthorization: true
edgemicro start -o [org] -e [env] -k [key] -s [secret]
Teste e depuração
- Como posso evitar erros de "arquivo aberto demais" durante o teste de carga?
-
Em alguns casos, o sistema pode se deparar com uma situação em que muitas conexões de arquivo abertas são abertas, e isso pode fazer com que o Edge Micro falhe. A geração de registros padrão requer duas conexões HTTP para transações de entrada e saída pelo Microgateway.
Para fins de teste e comparativo de mercado, a Apigee recomenda definir o comando ulimit do sistema como ilimitado:
ulimit -n unlimited
. Consulte também Erro do Edge Microgateway durante o teste de carga na comunidade da Apigee. - Dicas para desenvolvimento e depuração rápidos
-
Se você estiver desenvolvendo plug-ins para o Edge Microgateway, talvez descubra que o suporte para desenvolvimento rápido é limitado.
Por enquanto, aqui estão algumas dicas:
- Para iniciar o Edge Microgateway, defina as variáveis de ambiente EDGEMICRO_KEY e EDGEMICRO_SECRET como o par de chave/secret exigido pelo comando de inicialização do Microgateway. Isso permite iniciar o Edge Microgateway sem inserir a chave/o secret na linha de comando. Consulte também Como definir variáveis de ambiente nos documentos do Edge Microgateway.
-
Inicie o Edge Microgateway no modo DEBUG para conferir outras saídas no terminal de comando:
DEBUG=* edgemicro start -o [org] -e [env] -k [key] -s [secret]
Negócios e licenciamento
- Qual é a relação entre os modelos de suporte da Apigee-127 e do Edge Microgateway?
-
A Apigee-127 é um projeto de software de código aberto compatível com o modelo de código aberto. Ou seja, é possível levantar problemas no projeto do GitHub e fazer uma solicitação de envio se tentar corrigir algo. A Apigee-127 não exige nem inclui contratos de licença de software com a Apigee.
O Edge Microgateway, por outro lado, é um produto Enterprise com suporte da Apigee para clientes. Ou seja, os clientes da Apigee podem criar tíquetes de suporte, solicitações de recursos e relatórios de bugs usando o suporte do Apigee Edge do Google Cloud.