Tarefas de destinos hospedados

Você está visualizando 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 subjacente do aplicativo não é excluída. Se você reimplantar o proxy, o app de destino hospedado será reimplantado.

Como excluir um proxy de destino hospedado

Depois de excluir um proxy de destino hospedado, as instâncias de execução subjacentes vão parar de ser executadas em algum tempo. No entanto, o código do aplicativo será mantido.

Como acessar arquivos de registro

Os arquivos de registro são úteis para depuração e solução de problemas. É possível conferir dois tipos de arquivos de registro para uma implantação de destino hospedado:

  • Registro da versão: mostra a saída relacionada à implantação e à criação de um app de destinos hospedados.
  • Registro do ambiente 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 como escopo o ambiente e mostram informações de registro da revisão do proxy implantada no momento.

Como acessar registros na interface do Edge

  1. Acesse: apigee.com/edge
  2. Digite suas credenciais de login e clique em Fazer login.
  3. Selecione Develop > API Proxies no menu de navegação lateral.
  4. Selecione o proxy para o qual você quer acessar os registros.
  5. Clique na guia Desenvolver.
  6. Para ver o registro do build, clique em Registros do build.
  7. Para conferir o registro de execução, clique em Registros 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 Acessar registros do Node.js em cache.

Como usar um repositório npm particular

Esta seção explica como implantar um proxy Node.js em destinos hospedados nos casos em que você usa um repositório particular do NPM no 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. Essencialmente, os destinos hospedados executam npm install no seu código quando ele é implantado. No entanto, se você usar um repositório particular do NPM no ambiente de desenvolvimento, as dependências particulares não poderão ser resolvidas na nuvem. Nesse caso, a solução é usar a opção --bundled-dependencies quando você utiliza o utilitário de implantação apigeetool. Consulte também Implantar o Node.js do seu sistema para o Edge.

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

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

Implantação com um repositório NPM particular

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

  1. Faça login no npm:
    npm login
  2. Receba um token de autenticação npm:
    1. Localize o arquivo .npmrc. Ele deve estar em ~/.npmrc.
    2. Em seu .npmrc, anote o token no final da linha que tem esta aparência:

      //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 Edge:

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

    Edge clássico (nuvem privada)

    Para acessar a página de configuração dos mapas de chave-valor usando a IU 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 > Environment Configuration > Key-Value Maps 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 anteriormente como uma nova entrada em cada uma das KVMs que você acabou de criar.
  8. No arquivo app.yaml, adicione uma entrada que faça referência ao 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 name em valueRef corresponde ao KVM que você criou anteriormente.
    • O atributo chave corresponde à chave que é mapeada para o token npm que você adicionou ao KVM.
  10. Crie um arquivo .npmrc no mesmo diretório que seu package.json. Esse arquivo será semelhante a este:
    //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.
  11. Faça upload ou atualize seu proxy 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 do repositório privado desejado.
  13. Se o proxy não for implantado, verifique os registros de build para saber se houve falha na instalação do módulo npm particular. Nesse caso:
    1. Na guia "Desenvolver", verifique se o .npmrc está presente.
    2. Verifique se o token é válido. Tente instalar o módulo localmente com o token presente no 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 destino hospedado. No entanto, para usar uma versão diferente do NPM, especifique-a na variável de ambiente NPM_VERSION. É possível 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, o Hosted Targets vai usar o NPM v4 por padrão. Se você não usar dependências agrupadas, a versão do NPM incluída no ambiente de execução do Node.js especificado será usada.

Exemplo de dependências em pacote

Para ver 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 o aplicativo Node.js começa a verificar se ele está ativo no contêiner.

Por padrão, o endpoint esperado pela Apigee é /health. Para alterar o endpoint padrão, especifique-o em uma variável de ambiente chamada HOSTED_TARGET_HEALTH_CHECK_PATH. É possível definir 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, considere o seguinte:

  • Se o aplicativo sair quando o Apigee atingir o endpoint, ele não será iniciado conforme o esperado.
  • Tudo bem se o endpoint retornar um status HTTP 404 Not Found. O /health ou HOSTED_TARGET_HEALTH_CHECK_PATH é usado apenas para verificar se o aplicativo está em execução. A resposta real é ignorada.

Mudar o local do cache do NPM

As 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 destinos hospedados porque o local do diretório é somente leitura, já que o runtime do 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 (o 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 o NPM

Por padrão, os destinos hospedados usam npm start para executar seu aplicativo de destino hospedado. No entanto, na tarefa anterior, discutimos um problema com o uso do NPM, porque as versões mais recentes tentarão usar /root/.npm para o cache do NPM, o que é inviável e resulta na falha do destino hospedado ao iniciar. Embora a tarefa anterior funcione para esse problema, outra opção seria executar o aplicativo sem o NPM. Para fazer isso, use os valores command e args no arquivo app.yaml (o arquivo de manifesto) do seu app 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
  
É claro que você pode usar o comando que achar adequado, e node index.js é apenas um exemplo.