Tutorial: Como criar, fazer upload e invocar umAWS LambdaFunção - AWS Toolkit for Eclipse

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: Como criar, fazer upload e invocar umAWS LambdaFunção

Este tutorial orienta você durante o processo de um típicoAWS LambdaO fluxo de trabalho do e oferece uma experiência em primeira mão do uso do Lambda com o Toolkit for Eclipse.

Importante

O tutorial pressupõe que você tem umAWSconta, jáinstalou oAWSToolkit for Eclipse, e que você entende os conceitos e recursos básicos do Lambda. Se você não está familiarizado com o Lambda, saiba mais noLambdahome page e noAWSGuia do desenvolvedor do Lambda.

Criar um projeto do AWS Lambda

Para começar um projeto do Lambda, você primeiro implementa o código como um método em uma classe handler. O Toolkit for Eclipse oferece um novo assistente de projeto para ajudar a criar uma nova classe handler. O projeto Lambda é um projeto Maven que usa um arquivo POM.xml para gerenciar as dependências do pacote. Você pode usar a ferramenta de linha de comando Maven para criar, testar e implantar seu aplicativo. Para obter mais informações sobre o Maven, consulte a documentação de projeto do Maven.

Para criar um projeto do AWS Lambda

  1. Na barra de ferramentas do Eclipse, abra o menu do Amazon Web Services (identificado peloAWSícone homepage) e, em seguida, escolhaNovoAWSProjeto Java do Lambda. Ou, na barra de menus do Eclipse, selecioneArquivo,Novo,AWSProjeto Java do Lambda.

  2. Adicione o Project name (Nome do projeto), Group ID (ID do grupo), o Artifact ID (ID do artefato) e class name (nome da classe) nas caixas de entrada associadas. O ID do grupo e o ID do artefato são os IDs que identificam um artefato de criação do Maven. Este tutorial usa os seguintes valores de exemplo:

    • Project name (Nome do projeto): HelloLambda

    • Group ID (ID do grupo): com.exemplo.lambda

    • Artifact ID (ID do artefato): demonstração

    • Nome da classe: Olá

    O campo Package Name (Nome do pacote) é o namespace do pacote para a classe de handler do AWS Lambda. O valor padrão deste campo é uma concatenação do ID de grupo e ID de artefato, seguindo as convenções do projeto Maven. Este campo é atualizado automaticamente quando os campos Group ID (ID do grupo) e Artifact ID (ID do artefato) são atualizados.

  3. Para Input Type (Tipo de entrada), selecione Custom (Personalizado). Para obter informações sobre cada um dos tipos de entrada disponíveis, consulteNovoAWSCaixa de diálogo Projeto Java do Lambda.

  4. Verifique se as entradas são semelhantes à captura de tela a seguir (modifique caso elas não sejam) e selecione Finish (Concluir).

    
                  Valores “Project name” (Nome do projeto), “Artifact ID” (nome da classe) no Novo projetoAWSCaixa de diálogo Lambda Maven Project

    Enquanto você digita, o código em Source preview (Visualização da origem) muda para refletir as alterações feitas por você na caixa de diálogo.

  5. Depois de selecionar Finish (Concluir), o diretório e os arquivos de origem do seu projeto serão gerados no workspace do Eclipse. Uma nova janela do navegador da web é aberta, exibindoREADME.html(que foi criado para você no diretório raiz do projeto).README.htmlfornece instruções para orientar você em meio às próximas etapas de implementação, teste, carregamento e invocação da nova função do Lambda. Leia na íntegra para ganhar alguma familiaridade com as etapas descritas aqui.

Em seguida, implemente a função no projeto Java HelloLambda recém-criado para você no Eclipse.

Implementar o método de handler

Você pode usar a caixa de diálogo Create New Project (Criar projeto) para criar um projeto de esqueleto. Agora, preencha o código que será executado quando sua função do Lambda for chamada. (Neste caso, por um evento personalizado que envia uma string para sua função, conforme você especificou ao definir o parâmetro de entrada do método).

Para implementar o método de handler do Lambda

  1. No Project Explorer (Explorador do projeto) do Eclipse, abra Hello.java no projeto HelloLambda. Ele conterá um código semelhante ao seguinte.

    package com.example.lambda.demo; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; public class Hello implements RequestHandler<Object, String> { @Override public String handleRequest(Object input, Context context) { context.getLogger().log("Input: " + input); // TODO: implement your handler return "Hello from Lambda"; } }
  2. Substitua o conteúdo da função handleRequest pelo seguinte código.

    @Override public String handleRequest(String input, Context context) { context.getLogger().log("Input: " + input); String output = "Hello, " + input + "!"; return output; }

Permitir que o Lambda assumir uma função do IAM

Para que o Lambda possa acessar a função do Lambda, você precisa criar uma função do IAM que dê acesso aoAWSrecursos da AWS. Você pode criar a função de duas maneiras, peloAWS Management Consoleou usando o Toolkit for Eclipse. Esta seção descreve como criar a função do IAM no console. ConsulteFazer upload do códigoPara criar uma usando o Toolkit for Eclipse.

Para criar uma função do IAM para Lambda

  1. Faça login noAWSManagement Console.

  2. No menu Services (Serviços), abra o console do IAM.

  3. No painel de navegação, selecione Roles (Funções) e Create role (Criar função).

  4. para oSelecione o tipo de entidade confiável, escolhaAWSmanutençãoE, depois, escolhaLambdapara o serviço que usará essa função. Depois, selecione Next (Próximo): Permissions

  5. Em Attach permissions policy (Associar política de permissões), selecione AWSLambdaBasicExecutionRole. Isso permite que o Lambda grave nos recursos do CloudWatch Logs. Depois, selecione Next (Próximo): Análise.

  6. Adicione um nome para sua função, como hello-lambda-role e forneça uma descrição para ela. Em seguida, escolhaCriar funçãoPara concluir a criação da função do IAM.

Crie um bucket do Amazon S3 para o código do Lambda

AWS LambdaO requer um bucket do Amazon S3 para armazenar o projeto Java quando você fizer upload dele. Você pode usar um bucket que já existe naAWSRegião na qual você executará o código ou criar um novo especificamente para ser usado pelo Lambda (recomendado).

Você pode criar um bucket do Amazon S3 de duas maneiras, peloAWS Management Consoleou usando o Toolkit for Eclipse. Esta seção descreve como criar um bucket do Amazon S3 no console. ConsulteFazer upload do códigoPara criar uma usando o Toolkit for Eclipse.

Para criar um bucket do Amazon S3 a ser usado com o Lambda

  1. Faça login noAWSManagement Console.

  2. No menu Services (Serviços), abra o console do S3.

  3. Selecione Create bucket (Criar bucket).

  4. Insira um nome de bucket e, então, selecione uma região para ele. Essa região deve ser a mesma na qual você pretende executar a função do Lambda. Para obter uma lista das regiões com suporte pelo Lambda, consulteRegiões e endpoints donoAWSReferência geral.

  5. Selecione Create (Criar) para concluir a criação do bucket.

Fazer upload do código

Em seguida, faça upload do código para o AWS Lambda como preparação para invocá-lo usando o AWS Management Console.

Para fazer upload da função no Lambda

  1. Clique com o botão direito na janela de código do Eclipse e selecioneAWSLambdaE, depois, escolhaFunção de upload do paraAWSLambda.

  2. NoSelect Target Lambda Function (Selecionar função do Lambda de destino)página, selecione aAWSRegião a ser usada. Ela deve ser a mesma região que você escolheu para o bucket do Amazon S3.

    
                  Página Select Target Lambda function (Selecionar função do Lambda de destino)
  3. Selecione Create a new Lambda function (Criar uma função do Lambda) e digite um nome para sua função (por exemplo, HelloFunction).

  4. Escolha Next (Próximo).

  5. NoConfiguração de funçãoNa página, insira uma descrição para a sua função de destino do Lambda e selecione a função do IAM e bucket do Amazon S3 que a sua função usará.

    
                  Página Function Configuration (Configuração da função)

    Para obter mais informações sobre as opções disponíveis, consulteUpload Function paraAWSCaixa de diálogo Lambda.

  6. NoConfiguração de funçãopágina, selecioneCriaremPapel da funçãoSe você deseja criar uma nova função do IAM para a função do Lambda. Insira um nome de função na caixa de diálogo Create Role (Criar função).

    
                  Creating a new IAM role (Criar uma função do IAM) na página Function Configuration (Configuração da função)
  7. NoConfiguração de funçãopágina, selecionePublicar nova versãoSe você deseja que o upload crie uma nova versão da função do Lambda. Para saber mais sobre versionamento e alias no Lambda, consulteAWSVersionamento e alias da função do LambdanoAWS LambdaGuia do desenvolvedor.

  8. Se você optar por publicar uma nova versão, a opção Provide an alias to this new version (Fornecer um alias para esta nova versão) será habilitada. Escolha esta opção se deseja associar um alias a esta versão de função do Lambda.

  9. NoConfiguração de funçãopágina, selecioneCriarnoBucket do S3 para código da funçãoSe você quiser criar um novo bucket do Amazon S3 para a sua função do Lambda. Insira um nome para o bucket na caixa de diálogo Create Bucket (Criar bucket).

    
                  Página Create Bucket (Criar bucket)
  10. Na seção S3 Bucket for Function Code (Bucket do S3 para código da função), você também pode optar por criptografar o código do qual foi feito upload. Neste exemplo, deixe None (Nenhum) selecionado. Para saber mais sobre a criptografia do Amazon S3, consulteProteção de dados usando criptografia no lado do servidornoGuia do usuário do Amazon Simple Storage Service.

  11. Deixe as opções de Advanced Settings (Configurações avançadas) como estão. O Toolkit for Eclipse seleciona valores padrão para você. SelecioneFinishPara fazer upload da função do Lambda paraAWS.

Se o upload for bem-sucedido, você verá o nome da função do Lambda do que escolheu exibido ao lado da classe de handler do Java naProject ExplorerVIEW.

Se você não vir isso acontecer, abra o EclipseLog de errosVIEW. O Lambda grava informações sobre falhas para fazer upload ou executar a função neste log de erros para poder depurá-los.

Invocar a função do Lambda

Agora você pode invocar a função no AWS Lambda.

Para invocar a função do Lambda

  1. Clique com o botão direito na janela de código do Eclipse e selecioneAWSLambdaE, depois, escolhaExecutar função emAWSLambda.

  2. Escolha a classe de handler que você quer invocar.

  3. Na caixa de entrada, digite uma string JSON válida, como”AWSLambda”.

    
                  Escolher um handler do Lambda para invocar
    nota

    Você pode adicionar novos arquivos de entrada JSON ao projeto, e eles serão mostrados nessa caixa de diálogo se o nome do arquivo terminar com .json. Você pode usar esse recurso a fim de fornecer arquivos de entrada padrão para as funções do Lambda.

  4. A caixa Show Live Log (Mostrar log em tempo real) vem marcada por padrão. Isso exibe os logs da função Lambda no EclipseConsole do.

  5. SelecioneInvokePara enviar os dados de entrada para a função do Lambda. Se tiver configurado tudo corretamente, você deverá ver o valor de retorno da função impresso na visualização Console do Eclipse (que será exibido automaticamente se ainda não estiver sendo mostrado).

Parabéns! Você acabou de executar a primeira função do Lambda diretamente pelo Eclipse IDE!

Próximas etapas

Agora que você fez upload e implantou a função, tente alterar o código e reexecutar a função. O Lambda faz upload novamente e invoca automaticamente a função para você, além de imprimir a saída no EclipseConsole do.

Mais informações

Para obter mais informações sobre cada uma das páginas que foram abordadas neste tutorial, bem como uma descrição completa de cada opção, consulte aAWSReferência da interface do Lambda.

Para obter mais informações sobre Lambda e sobre como escrever código Java para Lambda, consulteCriação de funções do Lambda em JavanoAWS LambdaGuia do desenvolvedor.