Tutoriais hospedados dos Destinos

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Os tutoriais a seguir explicam como implantar aplicativos Node.js no Edge usando destinos hospedados, um ambiente de execução nativo do Node.js hospedado pela Apigee.

Os tutoriais explicam as seguintes tarefas:

  • Como implantar um app Node.js em destinos hospedados usando a interface do Edge.
  • Como implantar um app Node.js em destinos hospedados na sua máquina de desenvolvimento local.
  • Como migrar um proxy atual com uma implementação de destino tradicional do Node.js do Edge para destinos hospedados.

Implantar um app Node.js em destinos hospedados usando a interface do Edge

Neste tutorial, você vai implantar um app Node.js simples em destinos hospedados usando a interface do Edge UI. Ao concluir o tutorial, você vai entender a estrutura básica e o conteúdo de um proxy de destinos hospedados e como acessar arquivos de registro de implantação e build.

Fazer login

  1. Acesse: apigee.com/edge
  2. Insira suas credenciais de login da Apigee para fazer login.

criar um proxy

  1. No menu de navegação lateral, selecione Desenvolver > Proxies de API.
  2. Clique em + Proxy.
  3. Na página "Criar proxy", selecione Destino hospedado.
  4. Clique em Próxima.
  5. No campo "Nome do proxy", insira hello-hosted-targets.
  6. Verifique se o "Hello World" exemplo está selecionado.
  7. Clique em Próxima.
  8. Na página "Segurança", selecione Transmitir (nenhum) para a autorização.
  9. Clique em Próxima.
  10. Clique em Próxima.
  11. Na página "Build", verifique se o ambiente test está selecionado. Observe que o tipo de proxy é Destinos hospedados.
  12. Clique em Criar e implantar. A implantação do proxy pode levar alguns instantes para ser concluída.
  13. Depois que o proxy for implantado, clique em Visualizar proxy hello-hosted-targets na parte de baixo da página.
  14. Chame o proxy de API. A maneira mais fácil de fazer isso é acessar a guia Rastreamento , iniciar uma sessão de rastreamento e clicar em Enviar. Você vai receber um status 200 com a seguinte resposta:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Examinar o proxy

  1. Na interface do Edge, clique na guia Desenvolver.
  2. No navegador, selecione padrão em "Endpoints de destino".
  3. No editor de código, observe que há um elemento filho <HostedTarget/> vazio no elemento <TargetEndpoint>. Essa tag vazia é obrigatória. Ela informa ao Edge que o destino do proxy é um aplicativo implantado no ambiente de destinos hospedados.

  4. No navegador, observe o conteúdo na seção Scripts. Os arquivos do app Node.js estão listados no rótulo hospedado.

  5. Na interface do Edge, examine os arquivos listados em hospedado nos scripts:
    • O arquivo app.yaml contém informações de configuração. Por exemplo, é possível adicionar variáveis de ambiente que estarão disponíveis para o aplicativo Node.js no ambiente de execução. Não é necessário modificar esse arquivo para este exemplo.
    • O arquivo index.js é o arquivo principal do app Node.js.
    • Se o app tiver dependências de módulo, elas precisarão ser listadas em package.json.

Visualizar arquivos de registro

Os arquivos de registro do aplicativo podem ser úteis para depurar problemas que ocorrem durante a fase de build e também no ambiente de execução.

  1. Na interface do Edge, clique na guia Desenvolver.
  2. Para conferir o registro de build, clique em Registros de build.
  3. Para conferir o registro de implantação, clique em Registros de ambiente de execução.

    Consulte também Como acessar arquivos de registro.

Resumo

  • Você implantou um aplicativo Node.js simples no ambiente de destinos hospedados e o testou na interface do Edge.
  • Você aprendeu que um proxy de destinos hospedados exige uma tag vazia especial no endpoint de destino chamada <HostedTarget/>.
  • Você aprendeu que o Edge carrega dependências de módulo automaticamente e que as dependências precisam ser listadas no arquivo package.json.
  • Você também aprendeu a verificar arquivos de registro de build e de ambiente de execução.

Implantar o Node.js do seu sistema no Edge

Esta seção explica como implantar um aplicativo Node.js independente do seu sistema local em destinos hospedados usando apigeetool. O apigeetool utilitário agrupa o app Node.js em um novo proxy de destinos hospedados e o implanta no Edge.

Instalar o apigeetool

O uso do apigeetool é a maneira recomendada para os desenvolvedores implantarem o código de proxy no Edge. Para instalar o apigeetool , execute o seguinte comando NPM:

npm install -g apigeetool

Criar o app Node.js

Para facilitar, o código de um app Node.js simples é fornecido para você.

  1. Crie um diretório para o app Node.js. Chame o diretório node-hosted-express.
  2. cd para o novo diretório.
  3. Crie um arquivo chamado index.js e copie este código nele.
  4. var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.json({
            hello: "Hello World!"
        })
    })
    
    app.get('/hello/:name', function(req, res) {
        var name = req.params.name
        res.json({
            hello: "hello " + name
        })
    })
    
    var server = app.listen(process.env.PORT || 9000, function() {
        console.log('Listening on port %d', server.address().port)
    })
  5. Crie um arquivo chamado package.json e copie este código nele. Observe que o módulo express está listado como uma dependência.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
  7. Crie um arquivo chamado app.yaml e copie este código nele:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
  9. Verifique se o diretório tem esta aparência:
    ls
    app.yaml index.js package.json
    

Revisão da estrutura de diretório necessária para o código do app

O app Node.js precisa ter a mesma estrutura de um app Node.js padrão. No entanto, verifique se você seguiu estes requisitos antes de implantar com apigeetool no Edge:

  • O arquivo de manifesto app.yaml é obrigatório e precisa existir no diretório raiz do app. Para saber mais sobre esse arquivo, consulte Arquivo de manifesto.
  • Um arquivo package.json é obrigatório. Ele precisa listar todas as dependências necessárias para o app.
  • Uma pasta node_modules não é obrigatória. O Edge executa npm install para você quando o app Node.js é implantado. Ele recebe as dependências de package.json. Você só precisa fornecer node_modules explicitamente se tiver módulos personalizados que não estão disponíveis no npm.

Como implantar o proxy

  1. Em um terminal, cd para o diretório raiz do aplicativo Node.js.
  2. Execute apigeetool com o comando deployhostedtarget:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    em que -n é o nome que você quer dar ao novo proxy. Ele precisa ser exclusivo na organização. Os caracteres permitidos no nome são restritos ao seguinte: a-z0-9._\-$%

    Exemplo:

    apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com

    Para mais informações sobre como usar o apigeetool consulte https://github.com/apigee/apigeetool-node.

Como testar o proxy

É possível testar o proxy com um comando cURL, com um cliente REST como o Postman ou na interface do Edge na ferramenta de rastreamento. Confira um exemplo de comando cURL.

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

Como receber os registros de build

Os registros de build mostram a saída relacionada à implantação e à criação do app Node.js. Consulte também Arquivos de registro.

apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name

Exemplo:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express

Como receber os registros de ambiente de execução

Os registros de ambiente de execução mostram a saída relacionada ao app em execução. Os registros de ambiente de execução são definidos como o ambiente e retornam registros da revisão de proxy implantada no momento. Consulte também Arquivos de registro.

apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name

Exemplo:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express

Como visualizar o proxy na interface do Edge

Após uma implantação bem-sucedida, é possível visualizar e editar o proxy na parte "Proxies de API" da interface do Edge.

Como migrar um proxy Node.js atual para um proxy de destinos hospedados

Esta seção explica como migrar manualmente um proxy de API do Edge atual que emprega a tradicional implementação de destino do Node.js para destinos hospedados. Ela também explica como implantar o proxy depois de executar as etapas de migração.

As etapas de migração preservam a estrutura, as políticas, os fluxos e outros elementos de configuração do proxy de API. É possível realizar a migração em quatro etapas, conforme descrito abaixo, e depois implantar o proxy migrado com o apigeetool.

Etapa 1: ajustar a estrutura de arquivos do proxy

Para ajustar a estrutura de arquivos, o proxy de API precisa estar no sistema de arquivos local. Se o proxy estiver implantado no Edge, você deve fazer o download dele antes de continuar. Na configuração tradicional, um "pacote" de proxy do Edge que inclui o código Node.js segue esta estrutura de arquivos. O código do aplicativo Node.js é colocado no diretório resources/node:

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


Para destinos hospedados, é necessário colocar o diretório raiz do app Node.js em um diretório chamado resources/hosted. Basta criar um novo diretório chamado resources/hosted e mover o conteúdo de resources/node para ele. Em seguida, exclua o diretório resources/node.

apiproxy/
     policies/
     proxies/
     targets/
     resources/
       hosted/
         Your application code

Etapa 2: adicionar o arquivo de manifesto

Crie um arquivo de manifesto chamado app.yaml e coloque-o no apiproxy/resources/hosted diretório.

A seguir, um exemplo de arquivo app.yaml. Ele especifica que o ambiente de execução é Node.js (obrigatório). Ele também cria uma variável de ambiente no ambiente de execução (uma variável que pode ser acessada pelo app Node.js). A variável de ambiente é opcional e só é mostrada aqui como exemplo. Para mais detalhes e exemplos, consulte O arquivo de manifesto.

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


O exemplo a seguir mostra uma estrutura de projeto Node.js que está no local correto no proxy para implantação de destinos hospedados:

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

Etapa 3: verificar se você tem um arquivo package.json

Nos proxies tradicionais do Node.js do Edge, o package.json era opcional. No entanto, para destinos hospedados, é necessário fornecer um no diretório apiproxy/resources/hosted. Especifique todas as dependências necessárias para o app nesse arquivo.

Etapa 4: modificar o endpoint de destino do proxy

Um proxy tradicional do Node.js exige que uma tag chamada <ScriptTarget> esteja presente no arquivo de endpoint de destino (normalmente /apiproxy/targets/default.xml). Para destinos hospedados, é necessário adicionar uma tag vazia chamada <HostedTarget/>. Se houver uma ScriptTarget tag no arquivo, basta removê-la. Exemplo:

    <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <Description />
       <FaultRules />
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>
    

Como implantar o proxy

Agora é possível implantar o proxy usando o comando apigeetool deployproxy.

  1. cd para o diretório raiz do proxy: /apiproxy
  2. Use este comando para implantar o proxy:
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    Exemplo:

    apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .

Para mais informações sobre como usar apigeetool consulte: https://github.com/apigee/apigeetool-node/blob/master/README.md.

Como testar o proxy

É possível testar o proxy com um comando cURL, com um cliente REST como o Postman ou na interface do Edge na ferramenta de rastreamento. Confira um exemplo de comando cURL:

curl http://myorg-test.apigee.net/hello-world
Hello,World!