Você está lendo a documentação do Apigee Edge.
Acesse a documentação da
Apigee X. info
Primeiros passos
- Como faço para instalar o Edge Microgateway?
- Consulte Como instalar o Edge Microgateway.
- Como executar o Edge Microgateway?
- Consulte Configurar e configurar o Edge Microgateway.
- Preciso de um banco de dados para executar o Microgateway?
- As APIs proxyadas 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 de forma independente de qualquer banco de dados ou repositório de dados de back-end.
Operação
- Quais mudanças no Edge exigem uma reinicialização do Edge Microgateway?
- O Edge Microgateway pesquisa automaticamente as mudanças feitas no Apigee Edge, como alterações em
proxies, produtos ou apps de
desenvolvedores compatíveis com microgateway. O intervalo de polling padrão é de 600 segundos, mas pode ser alterado com a
configuração
config_change_poll_interval. Consulte atributos do edgemicro. - Se você não quiser esperar o intervalo de sondagem, use o comando
edgemicro reloadpara capturar as mudanças mais recentes. Consulte Como recarregar o cluster do microrgateway. - Como diferenciar um proxy implantado no Edge de um proxy no Edge Microgateway?
- Quando você configura o Edge Microgateway, uma lista de proxies compatíveis com microgateway implantados no Apigee
Edge é baixada para a configuração local do Edge Microgateway. Os proxies compatíveis com o microgateway
são aqueles nomeados com o prefixo
edgemicro_. - Quais são minhas opções de geração de registros com o Edge Microgateway? O
- Edge Microgateway tem um recurso de geração de registros integrado. Para mais detalhes, consulte Como gerenciar arquivos de registro.
- Você também pode escrever 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 registro de mensagens do Apigee Edge para registrar mensagens do Edge Microgateway. Consulte também o artigo da comunidade Plug-in de geração de registros para o Microgateway.
- Posso reutilizar combinações de chave/secret entre instâncias do Edge Microgateway?
- Desde que a organização e o ambiente sejam os mesmos para as instâncias do Microgateway, é possível reutilizar o par de chave/segredo gerado durante a configuração.
- Como faço para configurar o Edge Microgateway para iniciar em um ambiente de produção?
- É possível definir as variáveis de ambiente para parâmetros de comando de inicialização, como
EDGEMICRO_KEY,EDGEMICRO_SECRET,EDGEMICRO_ORGeEDGEMICRO_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 produto ou app de desenvolvedor com o Edge Microgateway?
- Não. Por padrão, o Edge Microgateway só atua em atributos relacionados ao roteamento básico e à segurança. No entanto, como soluções alternativas, você tem as seguintes opções:
-
Adicione atributos personalizados ao proxy
edgemicro-authque o Edge Microgateway implanta no Apigee Edge. Esses atributos estarão disponíveis ao usar a segurança de chave de API ou token OAuth. - Modifique o plug-in do OAuth para agir nesses atributos.
-
Adicione atributos personalizados ao proxy
- Há um limite no 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, saiba que o tamanho máximo do cabeçalho permitido em solicitações foi reduzido de 80 KB para 8 KB. Cabeçalhos que excedem 8 KB resultam em um erro HTTP 431.
- Uma opção de configuração do Node.js adicionada na versão 11.6.0 permite mudar o tamanho máximo padrão do
cabeçalho. Com o parâmetro
--max-http-header-size, é possível especificar o tamanho máximo, em bytes, dos cabeçalhos HTTP. - Para mudar a configuração padrão, defina o valor da variável de ambiente
NODE_OPTIONSna 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 o Edge Microgateway usa?
Os comandos do Edge Microgateway a seguir chamam as APIs de gerenciamento do Apigee Edge para fazer o trabalho, conforme descrito em Referência da CLI do Edge Microgateway:
edgemicro configureedgemicro upgradeauthedgemicro upgradekvmedgemicro rotatekeyedgemicro cert checkedgemicro cert deleteedgemicro cert install
As seções a seguir listam as chamadas da API Management usadas por cada comando.
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 - (recursos de upload)
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 - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=adjust-quota.js - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-jwk.js - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-verify-jwt.js - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jsrsasign-all-min.js - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jwt-initialization.js - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-jwk-response.js - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-product-list.js - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-public-key.js - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-jwt-variables.js - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-quota-variables.js - (recursos de upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-response.js - (recursos de upload)
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 upload)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/policies - (fazer upload de proxies)
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 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 compatíveis com o Edge Microgateway têm requisitos específicos e não são compatíveis com todos os recursos dos proxies regulares do Edge. Consulte 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 conhece as implantações de proxy de API que não são do Microgateway no Apigee Edge.
- Qual é o modelo de implantação de alta disponibilidade do Edge Microgateway?
- Para uma boa discussão sobre como executar o Edge Microgateway usando o NGINX como um balanceador de carga, consulte Gerenciar APIs com o Apigee Edge Microgateway e o NGINX.
- Quais balanceadores de carga posso usar com o Edge Microgateway?
- O Edge Microgateway funciona com qualquer balanceador de carga.
- Há um limite para o número de proxies do Edge Microgateway que posso implantar?
- Consulte os limites de configuração de produtos especificados para proxies regulares do Edge. O número de proxies compatíveis com o microgateway que podem ser implantados em uma organização e um ambiente do Apigee Edge e chamados pelo Edge Microgateway precisa obedecer aos 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, é necessário 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 a 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
Node.jse pode ser executado por qualquer pessoa com permissão para executar esses aplicativos em uma determinada máquina. - Qualquer 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 mudar proxies compatíveis com o Edge Microgateway implantados no Edge.
Desempenho
- Quais são as considerações de performance para usar o Edge Microgateway?
- Se você estiver executando o Edge Microgateway junto com o 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 servidores diferentes com balanceadores de carga, como o NGINX. Consulte também Como gerenciar APIs com o Apigee Edge Microgateway e o NGINX e Escalonamento vertical e horizontal na comunidade da Apigee.
- Qual é o TPS padrão do Edge Microgateway e quais são os requisitos de hardware necessários para uma instância do Microgateway?
- Os requisitos de hardware e as medições de TPS são difíceis de avaliar com o Edge Microgateway. Isso depende da sua configuração, que é uma combinação de ajuste do Edge Microgateway, uso de plug-ins, plug-ins personalizados e configuração de outras coisas, como TLS. Normalmente, a Apigee recomenda que você tenha uma ideia dessa combinação de itens e faça testes de performance 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 Etapas de configuração da Apigee Private Cloud.
Plug-ins
- Como a cota é aplicada com o Edge Microgateway?
- Você também pode adicionar um plug-in de cota à sua instância do Edge Microgateway. Para mais detalhes, consulte Usar o plug-in de cota.
- Como o Spike Arrest é aplicado com o Edge Microgateway?
- Você também pode adicionar um plug-in de controle de picos à sua instância do Edge Microgateway. Para mais detalhes, consulte Como usar o plug-in de interrupção de picos.
- Há outras maneiras de escrever plug-ins além de
Node.jspara o Edge Microgateway? - Não. Os plug-ins precisam ser escritos em
Node.js. - O que acontece quando o Edge Microgateway não consegue fazer upload de 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 compatíveis com microrrede
no Apigee Edge, elas serão ignoradas. Em vez disso, o Edge Microgateway usa plug-ins para fornecer
funcionalidades semelhantes às políticas no Edge, como cota, prevenção de picos, segurança de chaves de API e
segurança OAuth2. Você também pode escrever plug-ins personalizados. Consulte
Usar plug-ins e
Desenvolver plug-ins personalizados.
As postagens e os blogs a seguir da comunidade Apigee discutem outros casos de uso de plug-ins:
Segurança
- Como faço para proteger o recurso
/products? - Visão geral
- Ao configurar o Edge Microgateway,
um proxy de API chamado
edgemicro-authé implantado na sua organização:ambiente no Apigee Edge. Esse proxy expõe um endpoint/productsque retorna uma lista de produtos de 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 estão descritas abaixo.
- Verificar se o endpoint
/productsestá protegido -
Se você não tiver certeza se o endpoint
/productsestá protegido, acesse a seção Verificar se o recurso/productsestá 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 do Edge Microgateway. Siga as etapas em Fazer upgrade do Edge Microgateway se você tiver uma conexão de Internet.
Se não for possível fazer upgrade agora, acesse a opção 2.
Opção 2: configurar o TLS mútuo
Se não for possível fazer upgrade do Edge Microgateway agora, a Apigee recomenda que você proteja a comunicação entre o Edge Microgateway e o proxy
edgemicro-authcom 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 conseguir localizar esse arquivo. - Adicione o seguinte bloco
tlsOptionsao arquivoorg-env-config.yamlpara 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 opcionais de
agentOptions:ca: especifica o caminho para a autoridade certificadora.pfx: inclua se quiser usar um arquivo p12/pfx em vez de certificado e chave.passphrase: a senha longa de um arquivo pfx.ciphers: especifica criptografias TLS.
- Verifique se o host virtual em que o proxy
edgemicro-authestá implantado tem o TLS mútuo ativado. Para mais detalhes, consulte 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 interface do Apigee Edge:
- Analise o proxy de API
edgemicro-authna 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 compatível com TLS chamadomutualtls, a seçãoHTTPProxyConnectiondo 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 opção 2) para proteger o recurso. Você pode fazer isso com cURL, por exemplo:
curl -v https://your_domain/edgemicro-auth/products
/products estará protegido:
{
"error":"unauthorized",
"error_description": "authentication failed"
}OU
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
Se você encontrar uma resposta como esta, o recurso /products não estará protegido e os e-mails dos desenvolvedores poderão ser 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 testar 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 estejam expostos. Se você não quiser expor o endpoint com esse host virtual não TLS, remova-o da configuração edgemicro-auth HTTPProxyConnection.
Para proteger o recurso, escolha uma das seguintes opções:
No momento, não é possível renovar o token JWT de 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 tempo de expiração e solicitar um novo token fazendo uma chamada de API diretamente para o endpoint de token edgemicro-auth. Por exemplo, você pode fazer uma chamada de API assim:
POST https: //{your_org}-{your_env}.apigee.net/edgemicro-auth/token
... com um corpo JSON assim:
{ "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 na documentação do Edge Microgateway.
- Qual é o processo para renovar tokens de portador quando eles expiram na comunidade Apigee.
No momento, apenas o basepath é verificado para determinar se uma API está aprovada para produtos de API associados a um token OAuth específico.
Exemplo:
- Você cria um proxy com prefixo
edgemicro_com caminho base e destino. - Você adiciona esse proxy a um produto. Vamos chamar 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 basepath da API corresponde ao basepath do proxy
edgemicro_*aprovado para a lista de produtos aprovados para essa chave ou token.
Consulte também When using the edgemicro gateway in the products which url needs whitelisting in the products used under resources? (em inglês) na comunidade Apigee.
No momento, apenas o certificado SSL padrão da Apigee é compatível. No momento, não é possível usar certificados SSL personalizados.
Alternativas:
Se você quiser usar um certificado SSL personalizado (não padrão da Apigee), terá estas opções:
-
Use um endpoint
jwt_public_keynão SSL. Modifique o arquivo de configuração do Edge Microgateway para usarhttp://{org}-{env}.apigee.net/edgemicro-auth/publicKeyou -
Antes de iniciar o Edge Microgateway, defina esta variável de ambiente: export
NODE_TLS_REJECT_UNAUTHORIZED ="0"
Consulte também Verificar erros de instalação do Edge Micro no certificado SSL na comunidade do Apigee.
edgemicro-auth no Edge, e essa
implantação exige credenciais de administrador da organização.Você pode usar seu próprio token, mas primeiro desative a autorização integrada do Edge Microgateway. Para fazer isto:
- Abra o arquivo de configuração do Edge Microgateway.
-
Mude 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 "muitos arquivos abertos" durante o teste de carga?
-
Em alguns casos, o sistema pode entrar em uma situação em que há muitas conexões de arquivos abertas, e isso pode causar uma falha no Edge Micro. O registro em log padrão exige duas conexões HTTP para transações de entrada e saída pelo Microgateway.
Para fins de teste e comparativo, 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 do Apigee. - Dicas para desenvolvimento e depuração rápidos
-
Se você estiver desenvolvendo plug-ins para o Edge Microgateway, talvez perceba que o suporte para desenvolvimento rápido é limitado.
Por enquanto, confira algumas dicas:
- Para iniciar o Edge Microgateway, defina as variáveis de ambiente EDGEMICRO_KEY e EDGEMICRO_SECRET como o par de chave/secret necessário 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 Definir variáveis de ambiente na documentação do Edge Microgateway.
-
Inicie o Edge Microgateway no modo DEBUG para ver mais resultados 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 do Apigee-127 e do Edge Microgateway?
-
O Apigee-127 é um projeto de software de código aberto compatível com o modelo de código aberto. Ou seja, você pode levantar problemas no projeto do GitHub e fazer uma solicitação de pull se tentar corrigir algo. O Apigee-127 não exige nem inclui contratos de licença de software com a Apigee.
O Edge Microgateway, por outro lado, é um produto empresarial com suporte da Apigee para clientes da Apigee. Ou seja, os clientes da Apigee podem criar tíquetes de suporte, solicitações de recursos e relatórios de bugs usando o suporte da Apigee Edge do Google Cloud.