Você está visualizando a documentação do Apigee Edge.
Acesse a
documentação da
Apigee X. info
Primeiros passos
- Como instalar o Edge Microgateway?
- Consulte Como instalar o Edge Microgateway.
- Como faço para executar o Edge Microgateway?
- Consulte Como configurar o Edge Microgateway.
- Preciso de um banco de dados para executar a Microgateway?
- As APIs com proxy pelo Edge Microgateway podem interagir com um banco de dados executado como parte de um serviço de destino. No entanto, o Edge Microgateway opera de forma independente de qualquer banco de dados ou armazenamento 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 mudanças em
proxies, produtos ou apps de desenvolvedor
compatíveis com o microgateway. O intervalo de pesquisa padrão é de 600 segundos. No entanto, é possível mudar o intervalo 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 reload
para detectar as mudanças mais recentes. Consulte Recarregar o cluster de microgateway. - 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 o microgateway implantados no Apigee Edge é transferida para a configuração local do Edge Microgateway. Os proxies compatíveis com a microgateway
são nomeados com o prefixo
edgemicro_
. - Quais são minhas opções de registro 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.
- 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 à maneira 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 de registro 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 da Microgateway, é possível reutilizar o par de chave/secreto gerado durante a configuração.
- Como configurar o Edge Microgateway para inicialização 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_ORG
eEDGEMICRO_ENV
. Com essas e outras variáveis, é possível iniciar o Edge Microgateway com o comandoedgemicro start
. Consulte também Como definir variáveis de ambiente. - Posso usar atributos personalizados de produtos ou apps 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ção alternativa, você tem a seguinte opção possível:
-
Adicione atributos personalizados ao proxy
edgemicro-auth
que 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 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 nas solicitações foi reduzido de 80 KB para 8 KB. Cabeçalhos com mais de 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 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_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 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 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 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 sobre a 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
- (upload resources)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=adjust-quota.js
- (upload resources)
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
- (upload resources)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jsrsasign-all-min.js
- (upload resources)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jwt-initialization.js
- (upload resources)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-jwk-response.js
- (upload resources)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-product-list.js
- (upload resources)
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
- (upload resources)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-quota-variables.js
- (upload resources)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-response.js
- (upload resources)
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
- (upload 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á em execução?
- Sim. O Edge Microgateway é um processo leve que pode ser executado próximo ao 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 oferecem suporte a todos os recursos dos proxies normais 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 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 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.
- Há um limite para a quantidade de proxies do Edge Microgateway que posso implantar?
- Consulte os limites de configuração do produto especificados para proxies Edge normais. O número de proxies com reconhecimento de microgateway que podem ser implantados em uma organização e em um ambiente do Apigee Edge e chamadas pelo Edge Microgateway precisam estar em conformidade com esses mesmos limites.
- Posso associar a 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 a um ambiente específicos do Edge.
- Posso associar a implantação do Edge Microgateway a uma região específica (se eu for um cliente de várias regiões)?
- 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. - Os usuários da minha organização podem 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.
Desempenho
- Quais são as considerações de desempenho para usar o Edge Microgateway?
- Se você estiver executando o Edge Microgateway colcoado com o aplicativo de destino, verifique se o servidor tem capacidade suficiente.
- Quais são as práticas recomendadas para usar o Edge Microgateway em grande escala?
- A Apigee recomenda a execução de várias instâncias do Edge Microgateway em diferentes servidores protegidos por balanceadores de carga como NGINX. Consulte também Como gerenciar APIs com o Apigee Edge Microgateway e o NGINX e Escalonamento horizontal vertical na comunidade da Apigee.
- Quais são as TPS do Edge Microgateway por padrão 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 combina o ajuste do Edge Microgateway, o uso de plug-ins, os plug-ins personalizados e a configuração de outras coisas, como o TLS. A Apigee geralmente 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 detalhes, consulte as etapas de configuração da nuvem privada da Apigee.
Plug-ins
- Como a cota é aplicada com o Edge Microgateway?
- Você pode adicionar um plug-in de cota à sua instância do microgateway do Edge. Para mais detalhes, consulte Como usar o plug-in de cota.
- Como a detenção de pico é aplicada com o Edge Microgateway?
- Você pode adicionar um plug-in de detecção de picos à sua instância do Edge Microgateway. Para mais detalhes, consulte Como usar o plug-in de detecção de picos.
- Há
outras maneiras de criar plug-ins além do
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 for preenchido, 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 normais do Apigee Edge a proxies compatíveis com 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 cotas, detenção de pico, segurança da chave de API e
segurança do OAuth2. Você também pode escrever plug-ins personalizados. Consulte
Usar plug-ins e
Desenvolver plug-ins personalizados.
As postagens e os blogs da comunidade da Apigee a seguir discutem outros casos de uso de plug-ins:
Segurança
- Como proteger o recurso
/products
? - Visão geral
- Quando você configura o Edge Microgateway,
um proxy de API chamado
edgemicro-auth
é implantado no "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 em 5 de outubro de 2018 ou antes, 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 da API na sua organização da Apigee. - É possível proteger o endpoint fazendo upgrade do Edge Microgateway ou configurando o TLS mútuo. Ambas as opções são descritas abaixo.
- Verifique se o endpoint
/products
está protegido -
Se você não tiver certeza se o endpoint
/products
está protegido, acesse 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 antes de 5 de outubro de 2018, a Apigee recomenda que você faça upgrade para a versão mais recente do Edge Microgateway. 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 no momento, a Apigee recomenda proteger 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 conseguir localizar o arquivo. - Adicione o seguinte bloco
tlsOptions
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 certificado e chave.passphrase
: a frase secreta de um arquivo pfx.ciphers
: especifica as criptografias 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 interface do Apigee Edge:
- Analise o proxy da 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 ativado para TLS chamadomutualtls
, a estrofeHTTPProxyConnection
do proxy ficará assim:<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 o 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ê receber uma resposta semelhante a esta, o recurso /products
não estará protegido
e os e-mails do desenvolvedor 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 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 do desenvolvedor estejam
expostos. Se você não quiser expor o endpoint com esse host virtual não TLS, remova-o da
configuração HTTPProxyConnection edgemicro-auth
.
Para proteger o recurso, escolha 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 tempo de expiração e solicitar um novo token fazendo uma chamada de API diretamente para o
endpoint de token edgemicro-auth
. Por exemplo, é possível fazer uma chamada de API assim:
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 nas documentações do Edge Microgateway.
- Qual é o processo para renovar tokens de portador quando eles expiram na Comunidade do Apigee.
Atualmente, apenas o caminho base é verificado para determinar se uma API foi 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 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 foi aprovado para a lista de produtos aprovados para essa chave ou esse 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.
No momento, somente o certificado SSL padrão da Apigee é aceito. No momento, não há suporte para 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_key
sem 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: export
NODE_TLS_REJECT_UNAUTHORIZED ="0"
Consulte também Como 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.Você pode usar seu próprio token, mas primeiro é necessário desativar a autorização integrada do Edge Microgateway. Para fazer isso:
- Abra o arquivo de configuração do Edge Microgateway.
-
Altere as duas configurações OAuth para "true", da seguinte maneira:
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 muito aberto" durante o teste de carregamento?
-
Em alguns casos, o sistema pode encontrar uma situação em que há muitas conexões de arquivo abertas, o que pode causar falhas no Edge Micro. O registro padrão requer duas conexões HTTP para transações de entrada e saída pela Microgateway.
Para fins de teste e comparação, 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 o suporte para desenvolvimento rápido seja 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/secreto exigido pelo comando de inicialização do Microgateway. Isso permite que você inicie o Edge Microgateway sem inserir a chave/secret na linha de comando. Consulte também Como definir variáveis de ambiente nas documentações do Edge Microgateway.
-
Inicie o Edge Microgateway no modo de DEBUG para ver a saída adicional 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 que tem suporte no modelo de código aberto. Ou seja, você pode enviar problemas no projeto do GitHub e fazer uma solicitação de pull se tentar corrigir algo. A Apigee-127 não exige nem inclui nenhum Contrato de Licença de Software com a Apigee.
O Edge Microgateway, por outro lado, é um produto corporativo com suporte do 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 do Apigee Edge do Google Cloud.