Conceitos básicos da AWS

Criar uma aplicação Web básica

Implantar uma aplicação Web e adicionar interatividade com uma API e um banco de dados

Módulo 2: Criação de uma função sem servidor

Neste módulo, você usará o AWS Lambda para criar uma função sem servidor.

Introdução

Neste módulo, você desenvolverá um pequeno código, em Python, JavaScript ou Java, que será usado em um módulo posterior para adicionar interatividade à sua página Web. Você usará o AWS Lambda, um serviço de computação que permite criar funções sem servidor. Uma “função sem servidor” elimina a necessidade de o desenvolvedor gerenciar software e hardware. Em vez disso, as aplicações são divididas em funções individuais que podem ser invocadas e escaladas separadamente.

Essas funções sem servidor são acionadas com base em um evento específico que você define no código. Trata-se também de um serviço muito acessível, já que a cobrança levará em conta apenas o número de eventos que você processar, não o tempo ocioso. O melhor de tudo é que você não precisa mais se preocupar com o gerenciamento de servidores!

O que você aprenderá

  • Criar uma função do Lambda do zero no Console AWS (em Python, JavaScript ou Java)
  • Criar eventos (JSON) no Console AWS para testar a função

Principais conceitos

Serviço de computação Serviço que oferece capacidade de processamento computacional.

Função sem servidor Código que será executado sob demanda por um serviço de computação.

Trigger do Lambda Tipo de evento que acionará uma função do Lambda (sem servidor). Ele pode ser outro serviço da AWS ou uma entrada externa.

 Tempo para a conclusão

5 minutos

 Serviços usados

Implementação

  • Criar e configurar uma função do Lambda
    • Python
    • JavaScript
    • Java
    • Python
      1. Em uma nova guia do navegador, faça login no Console do AWS Lambda.
      2. Anote a região onde você está criando a função. Você pode ver essa informação na parte superior da página, ao lado do nome da sua conta.
      3. Clique no botão laranja “Create Function” (Criar função).
      4. Em “Function Name” (Nome da função), digite HelloWorldFunction.
      5. Selecione Python 3.8 no menu suspenso runtime.
      Full Stack tutorial CreateFunction Python

      6. Clique no botão laranja “Create Function” (Criar função).

      7. Uma caixa verde será exibida na parte superior da tela com a seguinte mensagem: “Successfully created the function.” (Função criada com êxito.)

      8. Substitua o código em “Function Code” (Código da função) pelo seguinte:

      # import the JSON utility package since we will be working with a JSON object
      import json
      # define the handler function that the Lambda service will use an entry point
      def lambda_handler(event, context):
      # extract values from the event object we got from the Lambda service
          name = event['firstName'] +' '+ event['lastName']
      # return a properly formatted JSON object
          return {
          'statusCode': 200,
          'body': json.dumps('Hello from Lambda, ' + name)
          }

      9. Clique no botão laranja “Save” (Salvar) na parte superior da tela.

      10. Vamos testar a nova função. Clique em “Select a test event” (Selecionar um evento de teste) na parte superior da tela.

      11. No menu suspenso, clique em “Configure test events” (Configurar eventos de teste).

      12. Em “Event Name” (Nome do evento), digite HelloWorldTestEvent.

      13. Copie e cole o seguinte objeto JSON para substituir o padrão:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14. Clique no botão laranja “Create” (Criar) na parte inferior da página.

    • JavaScript
      1. Em uma nova guia do navegador, faça login no Console do AWS Lambda.
      2. Anote a região onde você está criando a função. Você pode ver essa informação na parte superior da página, ao lado do nome da sua conta.
      3. Clique no botão laranja “Create Function” (Criar função).
      4. Em “Function Name” (Nome da função), digite HelloWorldFunction.
      5. Selecione Node.js 12.x no menu suspenso runtime.
      Full Stack tutorial CreateFunction JavaScript

      6. Clique no botão laranja “Create Function” (Criar função).

      7. Uma caixa verde será exibida na parte superior da tela com a seguinte mensagem: “Successfully created the function.” (Função criada com êxito.)

      8. Substitua o código em “Function Code” (Código da função) pelo seguinte:

      // Define handler function, the entry point to our code for the Lambda service
      // We receive the object that triggers the function as a parameter
      exports.handler = async (event) => {
          // Extract values from event and format as strings
          let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`);
          // Create a JSON object with our response and store it in a constant
          const response = {
              statusCode: 200,
              body: name
          };
          // Return the response constant
          return response;
      };

      9. Clique no botão laranja “Save” (Salvar) na parte superior da tela.

      10. Vamos testar a nova função. Clique em “Select a test event” (Selecionar um evento de teste) na parte superior da tela.

      11. No menu suspenso, clique em “Configure test events” (Configurar eventos de teste).

      12. Em “Event Name” (Nome do evento), digite HelloWorldTestEvent.

      13. Copie e cole o seguinte objeto JSON para substituir o padrão:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14. Clique no botão laranja “Create” (Criar) na parte inferior da página.

    • Java
      1. Em uma nova guia do navegador, faça login no Console do AWS Lambda.
      2. Anote a região onde você está criando a função. Você pode ver essa informação na parte superior da página, ao lado do nome da sua conta.
      3. Clique no botão laranja “Create Function” (Criar função).
      4. Em “Function Name” (Nome da função), digite HelloWorldFunction.
      5. Selecione Java 11 no menu suspenso runtime.
      Full Stack tutorial CreateFunction Java

      6. Clique no botão laranja “Create Function” (Criar função).

      7. Uma caixa verde será exibida na parte superior da tela com a seguinte mensagem: “Successfully created the function.” (Função criada com êxito.)

      8. Você acabou de criar uma função do Lambda com uma classe de manipulador chamada Hello. Como o Java é uma linguagem compilada, você não pode visualizar ou editar o código-fonte no console do Lambda, mas pode modificar sua configuração, invocá-lo e configurar triggers.

      9. Para atualizar o código da função, você precisa criar um pacote de implantação, que é um arquivo JAR ou ZIP que contém esse código. Para a finalidade deste tutorial, incluímos o arquivo JAR no código da função atualizado que será usado aqui.

      10. Vá para “Function code” (Código da função) e faça upload do arquivo JAR.

      Full Stack tutorial UploadJar

      11. Atualize o “Handler” (Manipulador) para com.example.app.LambdaRequestHandler::handleRequest.

      Full Stack tutorial UpdateHandler

      12. Clique no botão laranja “Save” (Salvar) na parte superior da tela.

      13. Vamos testar a nova função. Clique em “Select a test event” (Selecionar um evento de teste) na parte superior da tela.

      14. No menu suspenso, clique em “Configure test events” (Configurar eventos de teste).

      15. Em “Event Name” (Nome do evento), digite HelloWorldTestEvent.

      16. Copie e cole o seguinte objeto JSON para substituir o padrão:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      17. Clique no botão laranja “Create” (Criar) na parte inferior da página.

  • Testar a função do Lambda
    1. Clique no botão cinza “Test” (Testar) na parte superior da página.
    2. Uma caixa verde-claro será exibida na parte superior da página com o seguinte texto: “Execution result: succeeded” (Resultado da execução: êxito). Clique em “details” (detalhes) para ver o evento que a função retornou.
    3. Muito bem! Agora você tem uma função do Lambda ativa.

Arquitetura da aplicação

Agora que concluímos este módulo, nossa arquitetura tem a seguinte aparência:

full-stack amplify console arch diagram module 2

Observe que adicionamos o serviço AWS Lambda, mas ele ainda não tem conexão com o AWS Amplify nem com nossos usuários. Faremos isso no próximo módulo.

Este módulo foi útil?

Agradecemos a sua atenção
Gostaríamos de saber do que você gostou.
Fechar
Desculpe por ter desapontado
Encontrou algo desatualizado, confuso ou incorreto? Envie seus comentários para nos ajudar a melhorar este tutorial.
Fechar

Vincular a função sem servidor ao aplicativo Web