O AWS Amplify é um ecossistema que ajuda desenvolvedores de back-end, front-end e integração. Se você der uma olhada no seu documentos oficiais, você verá a enorme lista de possíveis bibliotecas e exemplos para trabalhar no back-end, front-end e aplicativos.
Quando você tiver sua AWS CLI configurada e seu ambiente definido, execute o seguinte comando para instalar o AWS Amplify globalmente em sua máquina:
npm install -g amplify-cli
Em seguida, vamos inicializar um diretório de trabalho criando uma pasta:
mkdir app && cd app
Agora, você inicializará um projeto de amplificação executando o comando abaixo. Para fazer isso, você precisará verificar algumas opções no assistente da CLI. Observe que, quando solicitado, você pode pressionar Entrar no teclado para escolher valores padrão.
amplify init
Escolha as opções de acordo com o negrito texto abaixo:
- Digite um nome para o projeto aplicativo
- Digite um nome para o ambiente dev
- Escolha seu editor padrão: Código do Visual Studio
- Escolha o tipo de aplicativo que você está criando javascript
Por favor, conte-nos sobre seu projeto
- Qual estrutura javascript você está usando Nenhum
- Caminho do diretório de origem: src
- Caminho do diretório de distribuição: dist
- Comando de compilação: build de script de execução do npm
- Comando Iniciar: início do script de execução npm
Inicializando o projeto compartilhado
Nas próximas etapas, você criará uma função. Essa função será usada para armazenar dependências que serão injetadas posteriormente nas funções do ecossistema do AWS Lambda Functions.
A execução do comando abaixo o guiará nas etapas para criar sua Camada Lambda:
amplify function add
Escolha as opções de acordo com o negrito texto opções abaixo. Observe que, para os tempos de execução compatíveis, você precisará pressionar o espaço no teclado para selecionar o tempo de execução.
- Selecione qual recurso você deseja adicionar: Camada Lambda (código e recurso compartilhado usado nas funções)
- Forneça um nome para sua camada Lambda: apmAgentLayer
- Selecione até 2 tempos de execução compatíveis: NodeJS
- A conta atual da AWS sempre terá acesso a essa camada.
- Opcionalmente, configure quem mais pode acessar esta camada. (Pressione para pular) Público
Folders Pastas e arquivos da camada Lambda criados: amplify / backend / function / apmAgentLayer
Instalando Módulos Customizados
Indo para o caminho da camada amplificar / backend / função / apmAgentLayer você pode ter visto algumas pastas criadas pelo Amplify. Como estamos trabalhando em um projeto Node.js., todos os módulos de nós devem estar instalados no lib / nodejs.
Criei um exemplo de um Application Performance Monitor para mostrar como usar o Node.js ganchos de desempenho recurso para medir a duração entre solicitações e alterar os leitores de resposta HTTP. Isso ajudará a mostrar outras possibilidades para implementar código compartilhado e estender o comportamento do Node.js.
A primeira etapa aqui é instalar as dependências compartilhadas e enviá-las para a AWS. Vá para o caminho gerado pela CLI amplificar / back-end / função / apmAgentLayer / lib / nodejs e instale o pacote usando os seguintes comandos:
cd amplify/backend/function/apmAgentLayer/lib/nodejs
npm i @erickwendel/ew-agentImplantando
Depois de instalar o seu pacote, você pode implantá-lo e inspecioná-lo mais tarde através do AWS Console. Observe que ainda não adicionamos nenhum código. O objetivo neste momento é apenas preparar esta biblioteca para uso posterior.
Execute o seguinte comando para fazer upload da sua camada Lambda:
amplify push
Criando a função de API da Web
Neste ponto, você já tem um projeto de infraestrutura local do Amplify pronto para adicionar rotas, rotinas de API, vincular-se aos serviços da AWS e assim por diante.
O comando abaixo será útil para gerar um projeto baseado em ExpressJS e uma função do AWS Lambda. Ele também vinculará a função na sua camada quase criada do AWS Lambda e a exporá no AWS API Gateway.
amplify api add
Escolha as opções de acordo com o negrito texto abaixo:
- Por favor, selecione um dos serviços mencionados abaixo: DESCANSAR
- Forneça um nome amigável para que seu recurso seja usado como um rótulo para esta categoria no projeto: myApi
- Forneça um caminho (por exemplo, / book / {isbn}): /Oi
- Escolha uma fonte Lambda Crie uma nova função Lambda
- Forneça um nome amigável para que seu recurso seja usado como um rótulo para esta categoria no projeto: myApi
- Forneça o nome da função do AWS Lambda: myApi
- Escolha o tempo de execução que você deseja usar: NodeJS
- Escolha o modelo de função que você deseja usar: Função ExpressJS sem servidor (integração com o API Gateway)
- Deseja acessar outros recursos neste projeto a partir da sua função Lambda? Não
- Deseja invocar esta função em uma programação recorrente? Não
- Deseja configurar camadas Lambda para esta função? sim
- Forneça camadas existentes ou selecione camadas neste projeto para acessar a partir desta função (escolha
Até 5): apmAgentLayer - Selecione uma versão para apmAgentLayer: 1
- Deseja editar a função lambda local agora? sim
Como estou usando o VSCode, a resposta do último assistente abrirá o app.js arquivo no meu editor para que eu possa editar. Agora, sem adicionar outras dependências, vamos importar o Camada Lambda módulo compartilhado na primeira linha deste arquivo usando o código abaixo:
require('@erickwendel/ew-agent').start()Após editar o arquivo, vá para o terminal e pressione Entrar e escolha as respostas mostradas em negrito abaixo:
- Restringir o acesso à API Não
- Deseja adicionar outro caminho? Não
No momento da redação deste artigo, não podemos testar as Lambda Layers localmente usando o AWS Amplify. Mas você vai implantar seu projeto na AWS e testá-lo em produção de executando o amplify push comando novamente.
Observe que ele imprimirá quais recursos precisam ser atualizados e quais recursos serão criados nessa implantação. Demoraria um pouco para executar todas as operações e sua saída deve se parecer com a abaixo:
Como seu terminal pode ter mostrado, sua API agora tem um URL. Meu URL gerado é https://nlq7x7onj0.execute-api.us-east-1.amazonaws.com/dev e a rota será hi, que criamos juntos nas etapas anteriores.
Vamos acionar uma solicitação usando o cURL (ou mesmo seu navegador) para ver o que acontece:
curl -i https://nlq7x7onj0.execute-api.us-east-1.amazonaws.com/dev/hiApós executá-lo, a API deve responder com uma resposta JSON com o seguinte conteúdo {"success":"get call succeed!","url":"/hi"}. A camada Lambda foi injetada e deveria ter alterado seus cabeçalhos de resposta, adicionando o x-instrumented-by e x-request-id chaves como esta:
x-instrumented-by: ErickWendel
x-request-id: 5ddf1343-e42e-4e33-b1e1-936c303c14c8Se você estiver curioso sobre o que o Amplify conseguiu para você durante este tutorial, execute amplify console e navegue no painel. Você pode ver o meu abaixo:
Limpando
Para remover todos os recursos criados pelo Amplify, execute amplify delete.
Conclusão
Existem várias maneiras de melhorar sua experiência em aplicativos sem servidor. O Amplify Framework pode ajudá-lo a criar aplicativos de próxima geração e evitar tarefas repetitivas.
Verifique os documentos oficiais para ver outras possibilidades de criar APIs poderosas usando tecnologias de ponta, como GraphQL e AWS AppSync. Tenho certeza que isso vai te ajudar muito!
Obrigado pela leitura
Eu realmente aprecio o tempo que passamos juntos. Espero que este conteúdo seja mais do que apenas texto. Espero que tenha feito de você um pensador melhor e também um programador melhor. Siga-me Twitter e confira meu blog pessoal onde eu compartilho todo o meu conteúdo valioso.
Até mais! 🍻