O AWS Serverless Application Model (AWS SAM) é um framework de código aberto para a criação de aplicações sem servidor. Para obter mais informações, consulte o repositório do AWS Serverless Application Model
Configurar o repositório do AWS SAM
Criar um projeto Hello World
do AWS SAM usando a CLI do AWS SAM.
Para criar seu projeto do AWS SAM
-
Siga as instruções no Guia do desenvolvedor do AWS Serverless Application Model para instalar a CLI do AWS SAM na máquina local.
-
Execute
sam init
e selecione a configuração de projeto a seguir.Which template source would you like to use?: 1 - AWS Quick Start Templates Choose an AWS Quick Start application template: 1 - Hello World Example Use the most popular runtime and package type? (Python and zip) [y/N]: N Which runtime would you like to use?: 8 - java21 What package type would you like to use?: 1 - Zip Which dependency manager would you like to use?: 1 - gradle Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N Would you like to enable monitoring using CloudWatch Application Insights? [y/N]: N Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]: N Project name [sam-app]: <insert project name>
-
Faça upload da pasta do AWS SAM do projeto em um repositório de origem compatível. Para obter uma lista dos tipos de origem compatíveis, consulte ProjectSource.
Criar um projeto CodeBuild Lambda Java
Crie um projeto do AWS CodeBuild Lambda Java e configure as permissões do IAM necessárias para a compilação.
Para criar seu projeto CodeBuild Lambda Java
-
Abra o console do AWS CodeBuild em https://console.aws.amazon.com/codesuite/codebuild/home
. -
Se uma página de informações do CodeBuild for exibida, selecione Criar projeto de compilação. Caso contrário, no painel de navegação, expanda Compilar, escolha Projetos de compilação e, depois, Criar projeto de compilação.
Em Nome do projeto, insira um nome para esse projeto de compilação. Os nomes de projeto de compilação devem ser únicos em cada conta da AWS. Também é possível incluir uma descrição opcional do projeto de compilação para ajudar outros usuários a entender para que esse projeto é usado.
-
Em Origem, selecione o repositório de origem em que o projeto do AWS SAM está localizado.
-
Em Ambiente:
-
Para Computação, selecione Lambda.
-
Em Runtime(s), selecione Java.
-
Em Imagem, selecione aws/codebuild/amazonlinux-x86_64-lambda-standard:corretto21.
-
Em Perfil de serviço, deixe a opção Novo perfil de serviço selecionada. Anote o nome da função. Isso será necessário quando você atualizar as permissões do IAM do projeto posteriormente neste exemplo.
-
-
Selecione Criar projeto de compilação.
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Funções e selecione o perfil de serviço associado ao projeto. Você pode encontrar o perfil do projeto no CodeBuild selecionando o projeto de compilação, escolhendo Editar, Ambiente e, em seguida, Perfil de serviço.
-
Escolha a guia Relacionamentos de confiança e, em seguida, escolha Editar política de confiança.
-
Adicione a seguinte política em linha ao perfil do IAM. Isso será usado para implantar sua infraestrutura do AWS SAM posteriormente. Para obter mais informações, consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "cloudformation:*", "lambda:*", "iam:*", "apigateway:*", "s3:*" ], "Resource": [ "*" ] } ] }
Configurar o buildspec do projeto
Para compilar, testar e implantar a função do Lambda, o CodeBuild lê e executa comandos de compilação a partir de um buildspec.
Para configurar o buildspec do projeto
-
No console do CodeBuild, selecione o projeto de compilação e escolha Editar e Buildspec.
-
Em Buildspec, escolha Inserir comandos de compilação e, em seguida, escolha Alternar para editor.
-
Exclua os comandos de compilação pré-preenchidos e cole o seguinte buildspec.
version: 0.2 env: variables: GRADLE_DIR: "HelloWorldFunction" phases: build: commands: - echo "Running unit tests..." - cd $GRADLE_DIR; gradle test; cd .. - echo "Running build..." - sam build --template-file template.yaml - echo "Running deploy..." - sam package --output-template-file packaged.yaml --resolve-s3 --template-file template.yaml - yes | sam deploy
-
Selecione Atualizar buildspec.
Implantar a infraestrutura Lambda AWS SAM
Usar o CodeBuild Lambda para implantar automaticamente a infraestrutura do Lambda
Para implantar a infraestrutura do Lambda
-
Selecione Iniciar compilação. Isso compilará, testará e implantará automaticamente a aplicação AWS SAM para o AWS Lambda usando o AWS CloudFormation.
-
Quando a compilação estiver concluída, navegue até o console do AWS Lambda e pesquise a nova função do Lambda sob o nome do projeto AWS SAM.
-
Teste a função do Lambda selecionando API Gateway na visão geral da Função e clicando no URL do endpoint de API. Você deve ver uma página aberta com a mensagem
"message": "hello world"
.
Limpar a infraestrutura
Para evitar cobranças adicionais pelos recursos usados durante este tutorial, exclua os recursos criados pelo modelo AWS SAM e o CodeBuild.
Para limpar a infraestrutura
-
Navegue até o console do AWS CloudFormation selecione o
aws-sam-cli-managed-default
. -
Em Recursos, esvazie o bucket de implantação
SamCliSourceBucket
. -
Exclua a pilha
aws-sam-cli-managed-default
. -
Exclua a pilha do AWS CloudFormation associada ao projeto do AWS SAM. Esta pilha deve ter o mesmo nome que o projeto AWS SAM.
-
Navegue até o console do CloudWatch e exclua os grupos de log do CloudWatch associados ao projeto do CodeBuild.
-
Navegue até o console do CodeBuild e exclua o projeto do CodeBuild escolhendo Excluir projeto de compilação.