Crie seu aplicativo em AWS SAM - AWS Serverless Application Model

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á.

Crie seu aplicativo em AWS SAM

Depois de concluir os Conceitos básicos e ler Como usar AWS Serverless Application Model (AWS SAM), tudo estará pronto para criar um projeto do AWS SAM no seu ambiente de desenvolvedor. Seu AWS SAM projeto servirá como ponto de partida para escrever seu aplicativo sem servidor. Para obter uma lista de AWS SAM CLI sam initopções de comando, consultesam init.

A interface de linha de AWS Serverless Application Model comando (AWS SAM CLIO sam init comando) fornece opções para inicializar um novo aplicativo sem servidor que consiste em:

  • Um AWS SAM modelo para definir seu código de infraestrutura.

  • Uma estrutura de pastas que organiza seu aplicativo.

  • Configuração para suas AWS Lambda funções.

Para criar um AWS SAM projeto, consulte os tópicos desta seção.

Inicialize um novo aplicativo com tecnologia sem servidor.

Para inicializar um novo aplicativo sem servidor usando o AWS SAM CLI
  1. cd para um diretório inicial.

  2. Execute o seguinte na linha de comando:

    $ sam init
  3. O AWS SAM CLI guiará você por um fluxo interativo para criar um novo aplicativo sem servidor.

    nota

    Conforme detalhado em Tutorial: implante um aplicativo Hello World com AWS SAM, esse comando inicializa a aplicação sem servidor, criando o diretório do projeto. Esse diretório conterá vários arquivos e pastas. O arquivo mais importante é template.yaml. Esse é o seu AWS SAM modelo. A versão do python deve corresponder à versão do python listada no arquivo template.yaml criado pelo comando sam init.

Escolha um modelo inicial

Um modelo consiste no seguinte:

  1. Um AWS SAM modelo para seu código de infraestrutura.

  2. Um diretório inicial do projeto que organiza seus arquivos de projeto. Por exemplo, isso pode incluir:

    1. Uma estrutura para o código de função do Lambda e suas dependências.

    2. Uma pasta events que contém eventos de teste para testes locais.

    3. Uma pasta tests para oferecer suporte ao teste de unidade.

    4. Um arquivo samconfig.toml para definir as configurações do projeto.

    5. Um arquivo ReadMe e outros arquivos básicos do projeto inicial.

    Veja a seguir um exemplo de um diretório de projeto inicial:

    sam-app
    ├── README.md
    ├── __init__.py
    ├── events
    │   └── event.json
    ├── hello_world
    │   ├── __init__.py
    │   ├── app.py
    │   └── requirements.txt
    ├── samconfig.toml
    ├── template.yaml
    └── tests
        ├── __init__.py
        ├── integration
        │   ├── __init__.py
        │   └── test_api_gateway.py
        ├── requirements.txt
        └── unit
            ├── __init__.py
            └── test_handler.py

Você pode selecionar em uma lista de AWS modelos de início rápido disponíveis ou fornecer sua própria localização de modelo personalizado.

Para escolher um modelo de início AWS rápido
  1. Quando solicitado, selecione AWS Modelos de início rápido.

  2. Selecione um modelo de Início AWS Rápido para começar. Veja um exemplo a seguir:

    Which template source would you like to use?
        1 - AWS Quick Start Templates
        2 - Custom Template Location
    Choice: 1
    
    Choose an AWS Quick Start application template
        1 - Hello World Example
        2 - Multi-step workflow
        3 - Serverless API
        4 - Scheduled task
        5 - Standalone function
        6 - Data processing
        7 - Hello World Example With Powertools
        8 - Infrastructure event management
        9 - Serverless Connector Hello World Example
        10 - Multi-step workflow with Connectors
        11 - Lambda EFS example
        12 - DynamoDB Example
        13 - Machine Learning
    Template: 4
Para escolher sua própria localização de modelo personalizado
  1. Quando solicitado, selecione a localização do modelo personalizado.

    Which template source would you like to use?
        1 - AWS Quick Start Templates
        2 - Custom Template Location
    Choice: 2
  2. O AWS SAM CLI solicitará que você forneça um local de modelo.

    Template location (git, mercurial, http(s), zip, path):

    Forneça qualquer uma das seguintes localizações para o arquivo de arquivos.zip do modelo:

    • GitHub repositório — O caminho para o arquivo.zip em seu GitHub repositório. O arquivo deve estar na raiz do seu repositório.

    • Mercurial repositório — O caminho para o arquivo.zip em seu Mercurial repositório. O arquivo deve estar na raiz do seu repositório.

    • caminho.zip — Um caminho HTTPS ou localização para seu arquivo.zip.

  3. O AWS SAM CLI inicializará seu aplicativo sem servidor usando seu modelo personalizado.

Escolher um tempo de execução

Quando você escolhe um modelo de início AWS rápido, o AWS SAM CLI solicita que você selecione um tempo de execução para suas funções do Lambda. A lista de opções exibida pelo AWS SAM CLI são os tempos de execução suportados nativamente pelo Lambda.

Você pode usar qualquer outra linguagem de programação com um tempo de execução personalizado. Para fazer isso, você precisa criar manualmente a estrutura inicial do aplicativo. Em seguida, você pode usar o sam init para inicializar rapidamente seu aplicativo configurando uma localização de modelo personalizado.

De sua seleção, o AWS SAM CLI cria o diretório inicial para o código e as dependências da função Lambda.

Se o Lambda oferecer suporte a vários gerenciadores de dependências para seu tempo de execução, você será solicitado a escolher seu gerenciador de dependências preferido.

Escolha um tipo de pacote

Quando você escolhe um modelo de início AWS rápido e um tempo de execução, o AWS SAM CLI solicita que você selecione um tipo de pacote. O tipo de pacote determina como suas funções do Lambda são implantadas para uso com o serviço Lambda. Os dois tipos de pacotes compatíveis são:

  1. Imagem de contêiner – Contém o sistema operacional de base, o tempo de execução, as extensões do Lambda, o código do seu aplicativo e suas dependências.

  2. arquivo .zip – Contém o código do seu aplicativo e suas dependências.

Para saber mais sobre os tipos de pacotes de implantação, consulte Pacotes de implantação do Lambda no AWS Lambda Guia do desenvolvedor.

Veja a seguir um exemplo de estrutura de diretórios de um aplicativo com uma função do Lambda empacotada como uma imagem de contêiner. O AWS SAM CLI baixa a imagem e cria um Dockerfile no diretório da função para especificar a imagem.

sam-app
├── README.md
├── __init__.py
├── events
│   └── event.json
├── hello_world
│   ├── Dockerfile
│   ├── __init__.py
│   ├── app.py
│   └── requirements.txt
├── samconfig.toml
├── template.yaml
└── tests
    ├── __init__.py
    └── unit
        ├── __init__.py
        └── test_handler.py

A seguir está um exemplo de estrutura do diretório de um aplicativo com uma função empacotada como um arquivo .zip.

sam-app
├── README.md
├── __init__.py
├── events
│   └── event.json
├── hello_world
│   ├── __init__.py
│   ├── app.py
│   └── requirements.txt
├── samconfig.toml
├── template.yaml
└── tests
    ├── __init__.py
    ├── integration
    │   ├── __init__.py
    │   └── test_api_gateway.py
    ├── requirements.txt
    └── unit
        ├── __init__.py
        └── test_handler.py

Configurar o AWS X-Ray rastreamento

Você pode optar por ativar o AWS X-Ray rastreamento. Para saber mais, consulte O que é AWS X-Ray? no Guia do AWS X-Ray desenvolvedor.

Se você ativar, o AWS SAM CLI configura seu AWS SAM modelo. Veja um exemplo a seguir:

Globals: Function: ... Tracing: Active Api: TracingEnabled: True

Configure o monitoramento com o Amazon CloudWatch Application Insights

Você pode optar por ativar o monitoramento usando o Amazon CloudWatch Application Insights. Para saber mais, consulte Amazon CloudWatch Application Insights no Guia CloudWatch do usuário da Amazon.

Se você ativar, o AWS SAM CLI configura seu AWS SAM modelo. Veja um exemplo a seguir:

Resources: ApplicationResourceGroup: Type: AWS::ResourceGroups::Group Properties: Name: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName ResourceQuery: Type: CLOUDFORMATION_STACK_1_0 ApplicationInsightsMonitoring: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName AutoConfigurationEnabled: 'true' DependsOn: ApplicationResourceGroup

Dê um nome para o seu aplicativo

Forneça um nome para seu aplicativo. O AWS SAM CLI cria uma pasta de nível superior para seu aplicativo usando esse nome.

Opções para o sam init

Veja a seguir algumas das opções principais que você pode usar com o comando sam init. Para obter uma lista de todas as opções, consulte sam init.

Inicializar um aplicativo usando um local de modelo personalizado

Use a opção --location e forneça um local de modelo personalizado compatível. Veja um exemplo a seguir.

$ sam init --location https://github.com/aws-samples/sessions-with-aws-sam/raw/master/starter-templates/web-app.zip

Inicializar um aplicativo sem o fluxo interativo

Use a opção --no-interactive e forneça suas opções de configuração na linha de comando para ignorar o fluxo interativo. Veja um exemplo a seguir.

$ sam init --no-interactive --runtime go1.x --name go-demo --dependency-manager mod --app-template hello-world

Solução de problemas

Para solucionar o problema do AWS SAM CLI, consulte AWS SAM CLI solução de problemas.

Exemplos

Inicialize um novo aplicativo sem servidor usando o Hello World Starter Template AWS

Para este exemplo, consulte Etapa 1: Inicialize o aplicativo de amostra Hello World no Tutorial: Implantação de um aplicativo Hello World.

Inicialize um novo aplicativo com tecnologia sem servidor com um local de modelo personalizado

A seguir estão exemplos de como fornecer um GitHub localização do seu modelo personalizado:

$ sam init --location gh:aws-samples/cookiecutter-aws-sam-python $ sam init --location git+sh://git@github.com/aws-samples/cookiecutter-aws-sam-python.git $ sam init --location hg+ssh://hg@bitbucket.org/repo/template-name

Veja a seguir um exemplo de caminho de arquivo local:

$ sam init --location /path/to/template.zip

Veja a seguir um exemplo de um caminho acessível por HTTPS:

$ sam init --location https://github.com/aws-samples/sessions-with-aws-sam/raw/master/starter-templates/web-app.zip

Saiba mais

Para obter mais informações sobre como usar o comandosam init, consulte:

Próximas etapas

Agora que você criou seu AWS SAM projeto, você está pronto para começar a criar seu aplicativo. Consulte Defina sua infraestrutura com AWS SAM para obter instruções detalhadas sobre as tarefas que você precisa concluir para fazer isso.