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 init
opçõ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.
Tópicos
Inicialize um novo aplicativo com tecnologia sem servidor.
Para inicializar um novo aplicativo sem servidor usando o AWS SAM CLI
-
cd
para um diretório inicial. -
Execute o seguinte na linha de comando:
$
sam init
-
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 arquivotemplate.yaml
criado pelo comando sam init.
Escolha um modelo inicial
Um modelo consiste no seguinte:
-
Um AWS SAM modelo para seu código de infraestrutura.
-
Um diretório inicial do projeto que organiza seus arquivos de projeto. Por exemplo, isso pode incluir:
-
Uma estrutura para o código de função do Lambda e suas dependências.
-
Uma pasta
events
que contém eventos de teste para testes locais. -
Uma pasta
tests
para oferecer suporte ao teste de unidade. -
Um arquivo
samconfig.toml
para definir as configurações do projeto. -
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
-
Quando solicitado, selecione AWS Modelos de início rápido.
-
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
-
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
-
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.
-
-
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.
-
O runtime fornece um ambiente específico de linguagem que é executado no ambiente de execução.
-
Quando implantado no Nuvem AWS, o serviço Lambda invoca sua função em um ambiente de execução.
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:
-
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.
-
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:
-
Aprendizagem AWS SAM: sam init
— Serverless Land Série “Learning AWS SAM” sobre YouTube. -
Estruturação de aplicativos sem servidor para uso com o AWS SAM CLI (Sessões com SAM S2E7)
— Sessões com séries sobre AWS SAM YouTube.
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.