Você está visualizando a documentação do Apigee Edge.
Acesse a documentação da
Apigee X. informações
Os tutoriais a seguir explicam como implantar aplicativos Node.js no Edge usando Hosted Targets, um ambiente de execução nativo do Node.js hospedado pela Apigee.
Os tutoriais abordam as seguintes tarefas:
- Implantação de um app Node.js em destinos hospedados usando a interface do Edge
- Implantação de um app Node.js em destinos hospedados na máquina de desenvolvimento local.
- Migração de um proxy atual com uma implementação de destino tradicional do Node.js no 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. Ao concluir o tutorial, você 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 criação.
Fazer login
- Acesse: apigee.com/edge
- Insira suas credenciais de login da Apigee para fazer login.
Criar um proxy novo
- No menu de navegação lateral, selecione Desenvolver > Proxies de API.
- Clique em + Proxy.
- Na página "Criar proxy", selecione Hosted Target.
- Clique em Próxima.
- No campo "Nome do proxy", digite
hello-hosted-targets
. - Verifique se a amostra "Hello World" está selecionada.
- Clique em Próxima.
- Na página "Segurança", selecione Passar por (nenhum) para a autorização.
- Clique em Próxima.
- Clique em Próxima.
- Na página "Build", verifique se o ambiente test está selecionado. Observe que o tipo de proxy é Alvos hospedados.
- Clique em Build and Deploy. A implantação do proxy pode levar alguns instantes para ser concluída.
- Depois que o proxy for implantado, clique em View hello-hosted-targets proxy na parte de baixo da página.
- Chame o proxy de API. A maneira mais fácil de fazer isso é acessar a guia Trace, iniciar uma sessão de Trace e clicar em Send. Você vai receber um status 200 com a seguinte
resposta:
{"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}
Examine o proxy
- Na interface do Edge, clique na guia Develop.
- No Navigator, selecione padrão em Endpoints de destino.
- No editor de código, observe que há um elemento filho
<HostedTarget/>
vazio no elemento<TargetEndpoint>
. Esta tag vazia é obrigatória. Ele informa ao Edge que o destino do proxy é um aplicativo implantado no ambiente de destinos hospedados. - No Navegador, observe o conteúdo na seção Scripts. Os arquivos do app Node.js são listados no rótulo hosted.
- Na IU do Edge, examine os arquivos listados em hospedado em 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 principal do app Node.js.
- Se o app tiver dependências de módulos, elas precisarão estar listadas em package.json.
Acessar 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 momento da execução.
- Na interface do Edge, clique na guia Develop.
- Para conferir o registro de build, clique em Build Logs.
- Para conferir o registro de implantação, clique em Registros de execução.
Consulte também Como acessar arquivos de registros.
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 destino hospedado requer uma tag vazia especial no endpoint de destino
com o nome
<HostedTarget/>
. - Você aprendeu que o Edge carrega as dependências do 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 execução.
Implantar o Node.js do seu sistema no Edge
Nesta seção, explicamos como implantar um aplicativo Node.js autônomo do seu sistema local nos Destinos hospedados usando o apigeetool. O utilitário apigeetool
agrupa o app Node.js em um novo proxy de destinos hospedados e o implanta no Edge.
Instalar o apigeetool
O uso da 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 as coisas, fornecemos o código para um app Node.js simples.
- Crie um diretório para o app Node.js. Chame o diretório node-hosted-express.
- cd ao novo diretório.
- Crie um arquivo chamado index.js e copie este código nele.
- Crie um arquivo chamado package.json e copie o código nele. O módulo expresso está listado como uma dependência.
- Crie um arquivo chamado app.yaml e copie este código nele:
- Confira se o diretório está assim:
ls app.yaml index.js package.json
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) })
{ "name": "hello-world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js --use_strict" }, "author": "", "license": "", "dependencies": { "express": "^4.16.0" } }
runtime: node runtimeVersion: 8 application: my-express-app env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
Revisão da estrutura de diretório necessária para o código do app
Seu app Node.js precisa ter a mesma estrutura de um app Node.js padrão. No entanto, siga 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 é necessário. Ele precisa listar todas as dependências exigidas pelo app.
- Uma pasta node_modules não é necessária. O Edge executa o npm install para você quando o app Node.js é implantado. Ele recebe as dependências do package.json. Você só precisará informar node_modules explicitamente se tiver módulos personalizados que não estiverem disponíveis por meio do npm.
Como implantar o proxy
- Em um terminal, cd para o diretório raiz do aplicativo Node.js.
- Execute apigeetool com o comando deployhostedtarget: O
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
dentro da organização. Os caracteres permitidos no nome são restritos a
o 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 o uso da 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 Trace. Veja um exemplo de comando cURL.
curl http://myorg-test.apigee.net/node-hosted-express {"date":1506992197427,"msg":"hello-world"}
Como acessar os registros do build
Os registros do 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 acessar os registros de ambiente de execução
Os registros de execução mostram a saída relacionada ao app em execução. Eles são aplicados ao ambiente e retornam registros para a revisão do proxy implantada. Consulte também Arquivos de registros.
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 a implantação bem-sucedida, é possível visualizar e editar o proxy na parte "Proxies de API" na interface do Edge.
Como migrar um proxy Node.js para um proxy de Destinos Hospedados
Nesta seção, explicamos como migrar manualmente um proxy da API Edge que emprega a implementação de destino tradicional do Node.js para os destinos hospedados. Também explica como implantar o proxy depois de realizar 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 implantar o proxy migrado com o apigeetool.
Etapa 1: ajustar a estrutura do arquivo proxy
Para ajustar a estrutura de arquivos, o proxy de API precisa estar no seu sistema de arquivos local. Se o proxy estiver
implantado no Edge, será necessário fazer o download dele
antes de continuar. Na configuração tradicional, o "pacote" do proxy do Edge que inclui o código Node.js segue essa 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, você precisa colocar o diretório raiz do seu app Node.js em um diretório chamado resources/hosted
. Basta criar um novo diretório chamado
resources/hosting e mover o conteúdo de resources/node
para ele. Em seguida, você pode excluir 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 com o nome app.yaml
e coloque-o no
diretório apiproxy/resources/hosted
.
Veja a seguir um exemplo do arquivo app.yaml
. Ela 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 é mostrada apenas 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 a 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 Edge Node.js tradicionais, o package.json
era
opcional. No entanto, para destinos hospedados, você precisa 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 Node.js tradicional exige que uma tag chamada <ScriptTarget>
esteja presente no arquivo de endpoint de destino (normalmente /apiproxy/targets/default.xml
).
Para destinos hospedados, você precisa adicionar uma tag vazia chamada <HostedTarget/>.
Se houver uma tag ScriptTarget
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
.
- cd para o diretório raiz do proxy: /apiproxy
- Use este comando para implantar o proxy:
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 o 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 Trace. Veja um exemplo de comando cURL:
curl http://myorg-test.apigee.net/hello-world Hello,World!