Tarefas de destinos hospedados

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Como cancelar a implantação de um proxy de destinos hospedados

Quando você cancela a implantação de um proxy de borda que inclui um aplicativo de destinos hospedados, o aplicativo de destinos hospedados associado é removido, mas a imagem do aplicativo subjacente não é excluída. Se você reimplantar o proxy, o app Hosted Destinos será reimplantado.

Como excluir um proxy de destinos hospedados

Depois que você excluir um proxy de Destinos hospedados, as instâncias de ambiente de execução subjacentes deixarão de ser executadas após um período. No entanto, o código do aplicativo vai persistir.

Como acessar arquivos de registro

Os arquivos de registros são úteis para depuração e solução de problemas. É possível ver dois tipos de arquivos de registros para uma implantação de destinos hospedados:

  • Registro do build: mostra a saída relacionada à implantação e à criação de um app de destinos hospedados.
  • Registro do tempo de execução: mostra a saída relacionada ao app de destinos hospedados em execução. Os registros do ambiente de execução têm o escopo definido para o ambiente e mostram as informações de registro da revisão do proxy implantada no momento.

Como acessar registros pela interface do Edge

  1. Acesse: apigee.com/edge.
  2. Digite suas credenciais de login e clique em Fazer login.
  3. Selecione Desenvolver > Proxies de API no menu de navegação lateral.
  4. Selecione o proxy com os registros que você quer ver.
  5. Clique na guia Develop.
  6. Para ver o registro do build, clique em Registros da versão.
  7. Para ver o registro do ambiente de execução, clique em Registros do ambiente de execução.

Como acessar registros com a API

Também é possível usar uma API Edge para recuperar registros de destinos hospedados. Para mais detalhes, consulte Receber registros do Node.js em cache.

Como usar um repositório npm privado

Esta seção explica como implantar um proxy Node.js em destinos hospedados nos casos em que você usa um repositório NPM particular no seu ambiente de desenvolvimento.

O que você precisa saber sobre o uso de um repositório privado

Quando você implanta um app Node.js no Edge, todas as dependências do projeto são importadas automaticamente como parte do processo de implantação. Basicamente, os Destinos hospedados executa npm install no código quando ele é implantado. No entanto, se você usar um repositório NPM particular no ambiente de desenvolvimento, as dependências particulares não poderão ser resolvidas no Cloud. Nesse caso, a solução é usar a opção --bundled-dependencies ao usar o utilitário de implantação apigeetool. Consulte também Implantar o Node.js do seu sistema no Edge.

Quando você usa a sinalização --bundled-dependencies em apigeetool, o app Node.js é enviado para os destinos hospedados, e todos os arquivos locais/particulares listados na matriz de bundledDependencies em package.json são compactados e enviados com o pacote.

Embora não seja uma situação comum, saiba que, se você espelhar internamente um repositório NPM público, a implantação falhará se o pacote incluir um arquivo .npmrc ou package-lock.json que aponta para o espelho particular. Nesse caso, omita .npmrc ou package-lock.json do pacote de proxy que você pretende implantar.

Como implantar com um repositório NPM privado

Para usar módulos fornecidos de um repositório privado do NPM, siga estas etapas:

  1. Faça login no npm:
    npm login
  2. Receba um token de autenticação npm:
    1. Localize o .npmrc (deve estar em ~/.npmrc).
    2. No .npmrc, observe o token no final da linha que se parece com este:

      //registry.npmjs.org/:_authToken=****
    3. Ou use os comandos npm token <list | create | revoke> para listar, criar ou revogar um token de autenticação. Consulte a documentação do npm-token para mais detalhes.
  3. Acesse a página de configuração dos mapas de chave-valor, conforme descrito abaixo.

    Edge

    Para acessar a página de configuração dos mapas de chave-valor usando a interface do usuário do Edge:

    1. Faça login em apigee.com/edge.
    2. Selecione Admin > Ambientes > Mapas de chave-valor na barra de navegação à esquerda.

    Borda clássica (nuvem privada)

    Para acessar a página de configuração de mapas de chave-valor usando a interface clássica do Edge:

    1. Faça login em http://ms-ip:9000, em que ms-ip é o endereço IP ou o nome DNS do nó do servidor de gerenciamento.
    2. Selecione APIs > Configuração do ambiente > Mapas de chave-valor na barra de navegação superior.
  4. Clique em + Mapa de chave-valor.
  5. Na caixa de diálogo "Novo mapa de chave-valor", insira um nome e selecione Criptografado.
  6. Clique em Adicionar.
  7. Adicione o token de autenticação que você localizou ou criou como uma nova entrada em cada uma das KVMs recém-criadas.
  8. No arquivo app.yaml, adicione uma entrada que faz referência à KVM e à chave associada ao token de autenticação do npm. O código será semelhante a este:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Em que:

    • O atributo name de nível superior corresponde ao nome da variável de ambiente que será criada.
    • O nome em valueRef corresponde à KVM que você criou anteriormente.
    • O atributo key corresponde à chave que é mapeada para o token npm que você adicionou à KVM.
  10. Crie um arquivo .npmrc no mesmo diretório que o package.json. O arquivo precisa ser parecido com o seguinte:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    . Se você não estiver usando registry.npmjs.org, defina o escopo no arquivo .npmrc adicionando uma linha como esta @myscope:registry=https://mycustomregistry.example.org Consulte também a documentação do npmrc (em inglês).
  11. Faça upload ou atualize o proxy do Node.js com o arquivo .npmrc e os arquivos app.yaml incluídos.
  12. Verifique se o proxy novo ou atualizado foi implantado e funciona com o módulo de repositório particular desejado.
  13. Se o proxy não for implantado, verifique os registros do build para ver se houve falha na instalação do módulo npm particular. Nesse caso:
    1. Na guia "Desenvolvimento", verifique se o .npmrc está presente.
    2. Verifique se seu token é válido. Tente instalar o módulo localmente com o token presente na kvm.
    3. Se você estiver usando um escopo personalizado, verifique se ele está definido.

Como especificar a versão do NPM para dependências agrupadas

Por padrão, o NPM v4 é usado para instalar dependências agrupadas no ambiente de destinos hospedados. No entanto, se você quiser usar uma versão do NPM diferente, especifique-a na variável de ambiente NPM_VERSION. Você pode definir essa variável no arquivo de manifesto do aplicativo. Consulte Elementos do arquivo de manifesto para mais detalhes.

Se você usar dependências agrupadas e não especificar NPM_VERSION, os destinos hospedados usarão o NPM v4 por padrão. Se você não usar dependências agrupadas, será usada a versão do NPM incluída no ambiente de execução especificado do Node.js.

Exemplo de dependências agrupadas

Para um exemplo que demonstra o recurso de dependências agrupadas com destinos hospedados, consulte Como criar um aplicativo Node.js com funções hospedadas usando módulos personalizados.

Adicionar um endpoint de verificação de integridade

Você tem a opção de implementar um endpoint de verificação de integridade para seu aplicativo Node.js. A Apigee usa esse endpoint quando seu aplicativo Node.js começa a verificar se o aplicativo está em execução no contêiner.

Por padrão, o endpoint que a Apigee espera é /health. É possível alterar o endpoint padrão especificando-o em uma variável de ambiente chamada HOSTED_TARGET_HEALTH_CHECK_PATH. Defina essa variável no arquivo de manifesto do aplicativo. Consulte Elementos do arquivo de manifesto para mais detalhes.

Não é necessário implementar um endpoint de verificação de integridade. No entanto, se você implementar um endpoint de verificação de integridade, observe o seguinte:

  • Se o aplicativo for encerrado quando a Apigee alcançar o endpoint, ele não será iniciado como esperado.
  • Tudo bem se o endpoint retornar um status HTTP 404 Not Found. O /health ou HOSTED_TARGET_HEALTH_CHECK_PATH só é usado para verificar se o aplicativo está em execução. A resposta real é ignorada.

Alterar o local do cache do NPM

Versões mais recentes do Node.js usam uma versão do NPM que usa /root/.npm para o cache do NPM. Esse local apresenta um problema para os destinos hospedados porque esse local do diretório é somente leitura, já que o ambiente de execução de destino hospedado usa um sistema de arquivos tmpfs em que apenas /tmp é gravável. Para contornar esse problema, defina a variável de ambiente npm_config_cache no arquivo app.yaml (arquivo de manifesto) do seu aplicativo para um diretório em /tmp. Por exemplo:

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

Executar o aplicativo sem NPM

Por padrão, os Destinos hospedados usa npm start para executar seu aplicativo de destino hospedado. No entanto, na tarefa anterior, discutimos um problema com o uso do NPM, já que as versões mais recentes vão tentar usar /root/.npm para o cache do NPM, o que não é gravável e faz com que o destino hospedado não seja iniciado. Embora a tarefa anterior funcione para resolver esse problema, outra opção é executar seu aplicativo sem o NPM. Para fazer isso, use os valores command e args no arquivo app.yaml (arquivo de manifesto) do aplicativo para executar o destino hospedado diretamente usando node index.js. Por exemplo:

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
É possível usar o comando que você considerar adequado, e node index.js é apenas um exemplo.