Você está vendo a documentação do Apigee Edge.
Acesse a
documentação da
Apigee X. info
Neste tópico, explicamos como implantar um aplicativo Node.js do seu sistema local para a Apigee Edge.
Neste tópico, vamos discutir como usar uma ferramenta de linha de comando chamada apigeetool
para implantar aplicativos Node.js no Apigee Edge.
Sobre a implantação do código Node.js no Apigee Edge
É possível implantar um aplicativo de API Node.js, incluindo todos os módulos dependentes do Node.js,
do seu sistema local para o Apigee Edge usando um utilitário de linha de comando chamado
apigeetool
. O utilitário agrupa automaticamente o aplicativo e as dependências dele
em um proxy de API e o implanta no Edge.
Por exemplo, digamos que você usou o Express para criar um aplicativo da Web em Node.js. O
aplicativo é executado como um servidor HTTP que detecta solicitações HTTP, processa essas solicitações,
retorna dados e assim por diante. Quando você usa apigeetool
para implantar um aplicativo Node.js
no Edge, ele é envolvido em um proxy e executado no contexto da plataforma
Edge. Em seguida, você pode chamar o aplicativo pelo novo URL do proxy e adicionar valor a ele com recursos padrão do Edge, como segurança OAuth, políticas de cota, políticas de proteção contra ameaças, fluxos condicionais, armazenamento em cache e muito mais.
O que o apigeetool faz?
Quando você executa o utilitário apigeetool
com a opção deploynodeapp
, ele:
- Gera um pacote de configuração de proxy da API para armazenar o aplicativo Node.js.
- Empacotar o aplicativo Node.js com todos os pacotes Node.js instalados com o NPM (Node Packaged Modules).
- Importa o pacote de configuração de proxy da API para a organização especificada no Apigee Edge usando a API de gerenciamento do Edge.
- Implanta o proxy de API em um ambiente.
- Executa o aplicativo Node.js no Apigee Edge e o disponibiliza pela rede.
Como se preparar para usar o apigeetool
Antes de começar, instale o utilitário apigeetool
.
Você pode instalar o apigeetool pelo npm ou clonando e vinculando o código do GitHub.
Instalação do npm
O módulo apigeetool
e as dependências dele foram criados para Node.js e estão
disponíveis pelo npm usando o seguinte comando:
$ sudo npm install -g apigeetool
Normalmente, a opção -g coloca módulos em:
/usr/local/lib/node_modules/apigeetool
em máquinas baseadas em *nix.
Instalação do GitHub
Faça o download ou clone as ferramentas da plataforma da API do GitHub. Consulte o arquivo README no diretório raiz do repositório para ver as instruções de instalação.
$ git clone https://github.com/apigee/apigeetool-node.git
Quando concluir a instalação, verifique se o executável apigeetool
está no
seu caminho. Para testar, digite:
$ apigeetool -h
Como implantar um aplicativo Node.js no Edge com o apigeetool
Observação:antes de implantar, você precisa saber o nome da organização, o nome de usuário e a senha da conta do Apigee Edge. Você precisa dessas informações para formar corretamente
o comando apigeetool
.
Para implantar um aplicativo Node.js usando apigeetool
:
- Em uma janela de terminal,
cd
o diretório raiz do seu aplicativo Node.js. - Execute o utilitário
apigeetool
com o comandodeploynodeapp
:
$ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
Por exemplo:
$ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
- Confira a saída na janela do terminal. Ele vai ficar mais ou menos assim:
Importing new application myNodeApp Imported new app revision 1 Deploying revision 1 Deployed. Proxy: "myNodeApp" Revision 1 Environment: test BasePath: /myNodeApp Status: deployed
Se você vir "Status: deployed", é isso. Deu tudo certo. O app Node.js é encapsulado em um proxy de API, implantado no Edge e está em execução e aguardando para processar solicitações. Ele está pronto para ser testado.
- Teste o proxy. Por exemplo:
$ curl http://myorg-test.apigee.net/myNodeApp Hello, My Node App!
- Se quiser, faça login na sua conta do Apigee Edge e acesse a página "Proxies de API" na interface de gerenciamento. O novo proxy vai aparecer lá.
Como o apigeetool lida com arquivos e módulos dependentes
Se o aplicativo Node.js depender de módulos instalados, o apigeetool vai processá-los compactando
a pasta node_modules
e adicionando-a ao pacote de proxy. Não é necessário fazer mais nada. O mesmo vale para qualquer diretório que contenha código-fonte adicional. O utilitário
apigeetool as compacta e implanta com o pacote.
Não é possível editar arquivos nesses diretórios compactados no editor da interface de gerenciamento do Edge. Se você precisar fazer mudanças, exporte seu projeto, edite os arquivos localmente e reimplante usando o apigeetool ou importe o projeto exportado usando a IU de gerenciamento. Consulte também "Como exportar e importar um proxy com código Node.js.
Informações básicas de uso do apigeetool
Para informações básicas de uso sobre os parâmetros de entrada do utilitário apigeetool
,
digite:
$ apigeetool deploynodeapp -h Usage: deploynodeapp -n [name] -o [organization] -e [environment] -d [directory name] -m [main script file] -u [username] -p [password] -b [base path] -l [apigee API url] -z [zip file] -i -h -o Apigee organization name -e Apigee environment name -n Apigee proxy name -d Apigee proxy directory -m Main script name: Should be at the top level of the directory -u Apigee user name -p Apigee password -b Base path (optional, defaults to /) -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com) -z ZIP file to save (optional for debugging) -i import only, do not deploy -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. -U Uploads Node.js modules to Apigee Edge. -h Print this message
Como criar um novo proxy com arquivos Node.js existentes
Outra maneira de integrar um aplicativo Node.js a um proxy de API é adicionar o aplicativo ao criar o proxy. É possível fazer isso inteiramente na IU de gerenciamento e na caixa de diálogo "Novo proxy de API".
- Na página de resumo do proxy de API, clique em +Proxy de API.
- Na caixa de diálogo "Novo proxy de API", selecione Node.js existente.
- Use o botão Choose Files para selecionar um ou mais arquivos do Node.js para importar.
- Dê um nome ao proxy. Neste exemplo, vamos chamá-lo de
hellonode
. - Adicione a versão
/v1
ao caminho base do projeto. Criar versões da API é uma prática recomendada. - Clique em Build.
- Clique em Develop para acessar a visualização Develop.
- Abra o arquivo
TargetEndpoint
no editor de código. - Verifique se o elemento
<ScriptTarget>
especifica o arquivo Node.js principal, da seguinte maneira:
<ScriptTarget> <ResourceURL>node://server.js</ResourceURL> <Properties/> </ScriptTarget>
- Clique em Salvar.
Como adicionar e invocar novos arquivos de recurso do Node.js
Outra maneira de adicionar código do Node.js a um proxy é diretamente, seja pela interface ou fazendo upload do seu sistema de arquivos local. Também é possível especificar qual arquivo Node.js é o principal, que é o arquivo que o Edge invoca quando o proxy é implantado.
Como adicionar novos arquivos Node.js por meio da interface
A IU de gerenciamento permite adicionar outros arquivos de origem Node.js a um proxy que está na plataforma Edge. Você pode criar esses arquivos diretamente na interface ou importá-los do sistema de arquivos. Primeiro, vamos ver como fazer isso na interface.
Para criar um novo arquivo de recurso Node.js:
- Na visualização "Develop", selecione New Script no menu "New".
- Na caixa de diálogo "Add script", selecione o tipo de arquivo Node e nomeie o script.
- Clique em Adicionar.
O novo arquivo em branco do Node.js será aberto no editor. Recorte e cole seu código no
arquivo. O arquivo também aparece na seção "Scripts" do Navegador.
[[{"type":"media","view_mode":"media_large","fid":"2431","attributes delesalt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}}]]
Como importar arquivos Node.js do seu sistema de arquivos
Para import um arquivo Node.js do seu sistema de arquivos para o proxy:
- Na visualização "Develop", selecione New Script no menu "New".
- Na caixa de diálogo "Adicionar script", clique em Importar script.
- Use a ferramenta de arquivos para selecionar o arquivo Node.js.
- O nome do arquivo é adicionado à caixa de diálogo, mas você pode mudar isso.
- Clique em Adicionar. O arquivo aparecerá na seção "Scripts" do navegador e será aberto no editor.
- Clique em Salvar.
Se você quiser invocar o arquivo importado, será necessário realizar uma etapa extra, conforme explicado na próxima seção.
Como invocar um arquivo Node.js importado
Não é possível invocar um arquivo Node.js recém-importado ou criado. O motivo é que o Edge exige que um arquivo Node.js seja o arquivo main. O arquivo principal é especificado no elemento <ScriptTarget> da definição do endpoint de destino. Para especificar qual arquivo é o principal do Node.js, faça o seguinte:
- Em "Endpoints de destino" no navegador, clique no nome do endpoint de destino (geralmente chamado de padrão).
- No Code Editor, edite o elemento <ScriptTarget> mudando o
<ResourceURL> para refletir o nome do arquivo que você quer que seja o principal do Node.js. Por
exemplo, se você quiser que um arquivo chamado
hello-world.js
seja o principal, insiranode://hello-world.js
no elemento ResourceURL. - Clique em Salvar.
Neste ponto, você pode invocar o arquivo com qualquer caminho de proxy usado antes. Por exemplo,
analisamos o exemplo Hello World!, em que o caminho base v1/hello
é
especificado. No entanto, é possível mudar o caminho de base editando o endpoint do proxy.
- Em "Endpoints de proxy" no Navigator, clique no nome do endpoint de proxy (geralmente chamado de padrão).
- No editor de código, edite o elemento <HttpProxyConnection> mudando o
<BasePath> para o nome que você quiser. Por exemplo, se o <BasePath> atual
for
v1/hello
e você quiser que ele sejav1/my-node-file
, altere o elemento <BasePath> desta forma:
<BasePath>/v1/my-node-file</BasePath>
- Clique em Salvar.
- Invoque o proxy usando o novo caminho base, como este:
$ curl http://myorg-test.apigee.net/v1/my-node-file Hello, World!
Exportar e importar um proxy com código Node.js
Depois de implantar um proxy que contém código Node.js no Edge, é possível exportar o proxy de volta para o sistema, trabalhar nele e, em seguida, reimportar para o Edge usando a interface de gerenciamento. Esse tipo de técnica de desenvolvimento de ida e volta é muito usado.
- Na página de resumo do proxy de API, clique em Desenvolver.
- Na página "Desenvolver", selecione Fazer o download da revisão atual.
- Descompacte o arquivo salvo no seu sistema.
É possível importar o pacote de proxy de volta para o Edge selecionando Importar para uma nova revisão no mesmo menu.
Também é possível usar a API para implantar proxies. Consulte Implantar proxies na linha de comando para mais detalhes.
Próximas etapas
No próximo tópico, Como adicionar o Node.js a um proxy de API existente, explicamos como adicionar um app Node.js a um proxy existente no seu sistema de arquivos e implantá-lo no Edge.