Referência de destinos hospedados

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Limites de variáveis de ambiente

Os destinos hospedados limitam o tamanho e o número de variáveis de ambiente que podem ser definidas no ambiente de execução dos destinos hospedados.

  • 1.000: tamanho máximo de uma única variável de ambiente.
  • 100: número máximo de variáveis de ambiente que podem ser definidas.

Para informações sobre como definir variáveis de ambiente, consulte O arquivo de manifesto.

Variáveis de ambiente definidas no ambiente de execução do aplicativo

Quando você implanta um aplicativo de destinos hospedados, as variáveis de ambiente a seguir são definidas e estão disponíveis para seu aplicativo no ambiente de execução:

  • APIGEE_ENVIRONMENT: o ambiente onde o proxy de destino hospedado é implantado.
  • APIGEE_ORGANIZATION: a organização onde o proxy de destino hospedado é implantado.
  • PORT: a porta em que o aplicativo de destino hospedado precisa detectar.

Alocação de recursos do sistema

Cada instância de destinos hospedados recebe os seguintes recursos:

  • 256 MB de memória
  • CPU de 1,2 GHz

Escalonamento

Nesta seção, descrevemos como os aplicativos de destinos hospedados são escalonados de acordo com o tipo de conta de borda que você tem.
  • Uma versão de avaliação do Apigee Edge é limitada a uma instância de destinos hospedados por proxy.
  • As contas pagas do Apigee Edge recebem escalonamento automático com base na taxa de solicitação, nas latências de resposta e outras métricas de aplicativo por proxy.
  • Os apps de destinos hospedados implantados nas versões paga e de teste do Apigee Edge são escalonados para zero em períodos de inatividade. Nesse caso, você poderá notar tempos de resposta mais lentos por um breve período. Consulte também Problemas conhecidos

O arquivo de manifesto

Para coletar informações do ambiente de execução para criar e implantar o aplicativo hospedado, o Edge procura um arquivo de manifesto chamado app.yaml no diretório resources/hosting. Esse arquivo contém as informações necessárias para criar e implantar o aplicativo de destinos hospedados.

Sintaxe de arquivo mais abrangente

runtime: node
runtimeVersion: version_number
command: command_name
args: argument_array
env:
  - name: variable_name
    value: literal_value
  - name: variable_name
    valueRef:
      name: kvm_name
      key: kvm_value

Elementos do arquivo de manifesto

Um arquivo de manifesto app.yaml inclui estes elementos:

  • runtime: (obrigatório) especifica o tipo de aplicativo que você está implantando. É necessário especificar node.
  • runtimeVersion (opcional): a versão do ambiente de execução que que seu aplicativo usa. Padrão: Node.js LTS (v10.x). Consulte o repositório oficial do Docker para Node para conhecer outras opções.
  • command: (opcional) permite especificar um comando a ser executado diferente do default usado para iniciar o aplicativo. Padrão: Node.js=npm
  • args: (opcional) matriz de argumentos de linha de comando a serem passados para o aplicativo, especificado na sintaxe de matriz YAML padrão. Normalmente, eles são adicionados ao comando padrão. O padrão é start. Por exemplo, por padrão, o app Node.js receberá o comando npm start:
  • env: (opcional) uma matriz de variáveis de ambiente (pares de nome/valor) a serem definidos no ambiente de execução dos destinos hospedados. Essas variáveis estão disponíveis para sua que implantou o app de destinos hospedados.
    • name: é o nome da variável.
    • valor | valueRef: você tem duas opções. É possível definir um valor literal ou referenciar um valor armazenado em um Mapa de chave-valor. O mapa de chave-valor deve já existem no ambiente do Edge. Consulte Como trabalhar com mapas de chave-valor
      • Se você usar value, será necessário especifique uma variável name e um value literal. Exemplo:
        runtime: node
        env:
         - name: NODE_ENV
           value: production
      • Se você usar valueRef, forneça o nome de um mapa de chave-valor (KVM) criado anteriormente no Edge e uma chave. Exemplo:
        runtime: node
        env:
          - name: DB_ENV
            value: production
          - name: DB_PASSWORD
            valueRef:
              name: hosted-kvm
              key: db-password

    Exemplos de arquivos de manifesto

    Esta seção contém exemplos de arquivos de manifesto para Node.js aplicativos conteinerizados. Um arquivo de manifesto é necessário para implantar um app de destinos hospedados e precisa estar localizado no diretório apiproxy/resources/hosted, e o nome do arquivo precisa ser app.yaml.

    Veja a seguir exemplos de arquivos app.yaml (manifesto) para apps Node.js.

    Exemplo que especifica uma variável de ambiente literal:

     runtime: node
     env:
       - name: NODE_ENV
         value: production

    Exemplo com um comando "start", argumentos de linha de comando e uma variável de ambiente.

     runtime: node
     command: ./node_modules/pm2/bin/pm2
     env:
       - name: NODE_ENV
         value: production
     args:
       - app.js


    Exemplo que especifica uma referência do mapa de chave-valor (KVM):

    Para saber mais sobre o acesso à KVM, consulte o arquivo de manifesto.

    runtime: node
    env:
      - name: DB_ENV
        value: production
      - name: DB_PASSWORD
        valueRef:
          name: hosted-kvm
          key: db-password

    Exemplos de aplicativos de destinos hospedados no GitHub

    A Apigee fornece proxies de amostra no GitHub com aplicativos de destinos hospedados criados em Node.js. Você pode clonar este repositório e seguir as instruções do README para implantar qualquer um dos proxies.

    Pré-requisitos

    Para implantar as amostras, você precisa ter duas ferramentas instaladas no seu sistema:

    • apigeetool: uma linha de comando ferramenta para implantar proxies Edge.
    • get_token: uma ferramenta de linha de comando para conseguir um token de autorização exigido pelo apigeetool.

    Se quiser testar amostras localmente, você também precisa ter o Node.js instalado.

    Como conseguir o repositório de amostra

    1. Em um navegador, acesse https://github.com/apigee/api-platform-samples.
    2. Clique em Clonar ou fazer o download e extraia o repositório para o seu sistema local usando: o método de sua preferência.
    3. cd para <diretório de instalação>/api-platform-samples/doc-samples/hosting-targets
    4. Depois de fazer o download do repositório, use o comando cd para acessar qualquer um dos diretórios de exemplo e siga as Instruções README para implantar um proxy de amostra no Edge. O comando "deploy" é mostrado abaixo. Simply Substitua os parâmetros indicados pelos para sua conta da Apigee:
    5. get_token && apigeetool deployproxy \
        -o YOUR_ORGANIZATION \
        -e YOUR_ENVIRONMENT \
        --json \
        --token "$(< ~/.sso-cli/valid_token.dat)"\
        --api NAME_OF_THE_PROXY \
        --directory .

    Exemplo: como executar um app de exemplo

    clone o repositório de amostras

    cd ~/myhome
    git clone https://github.com/apigee/api-platform-samples.git
    cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
    cd node-hosted-hello

    Testar o aplicativo localmente

    É necessário ter o Node.js instalado para fazer este teste local.

     PORT=8081 node apiproxy/resources/hosted/index.js
     curl http://localhost:8081
    

    Exemplo de saída:

    {"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}

    Implante o proxy

     get_token && apigeetool deployproxy \
       -o myorg \
       -e test \
       --json \
       --token "$(< ~/.sso-cli/valid_token.dat)"\
       --api node-hosted-hello \
       --directory .

    Teste a implantação

    A implantação pode levar alguns minutos para ser concluída. Se você receber um erro de implantação, execute o comando "deploy" novamente.

    curl http://myorg-test.apigee.net/node-hosted-hello

    Exemplo de saída:

    {"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"

    Problemas conhecidos

    • Latências de rede: agora que o aplicativo Node.js não é mais executado na JVM do MP, há agora um salto de rede entre o MP e a distribuição. Claro isso tem um custo, mas os comparativos de mercado iniciais mostram que ela está dentro de um valor razoável
    • Respostas lentas da API: a infraestrutura que executa seus aplicativos. escalona automaticamente com base na necessidade. Isso significa que o aplicativo pode reduzir a escala vertical nenhuma instância e, se esse for o caso, a próxima solicitação de API demorará um pouco solicitações de API típicas, já que a infraestrutura está ativando as instâncias para processar os solicitação(ões).
    • Erro de implantação: se você receber um erro de implantação ao implantar um Proxy de destinos hospedados, tente reimplantá-lo. Em alguns casos, a implantação pode expirar e, se você reimplantar, o problema será resolvido sozinho.