Início rápido: Publicar aplicativos - AWS Serverless Application Repository

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

Início rápido: Publicar aplicativos

Este guia orienta você pelas etapas de download, criação, teste e publicação de um aplicativo de exemplo sem servidor no AWS Serverless Application Repository usando a CLI do AWS SAM. É possível usar esse aplicativo de exemplo como ponto inicial para desenvolver e publicar o seu próprio aplicativo sem servidor.

Visão geral

As etapas a seguir definem como baixar, criar e publicar um exemplo de aplicativo sem servidor:

  1. Inicializar. Faça download de um exemplo de aplicativo a partir do modelo usando sam init.

  2. Testar localmente. Teste o aplicativo localmente usando sam local invoke e/ou sam local start-api. Observe que com esses comandos, mesmo se a função do Lambda for invocada localmente, ela lê e grava noAWSrecursos noAWSNuvem.

  3. Pacote. Quando você estiver satisfeito com a função do Lambda, agrupe a função do Lambda,AWS SAMmodelo e quaisquer dependências em umAWS CloudFormationpacote de implantação do usando osam package. Nesta etapa você também incluirá as informações sobre o aplicativo que será carregado no AWS Serverless Application Repository.

  4. Publicar. Publique o aplicativo no AWS Serverless Application Repository usando sam publish. Ao concluir esta etapa, é possível visualizar o aplicativo noAWS Serverless Application Repositorye implantá-lo noAWSUso de nuvemAWS Serverless Application Repository.

O exemplo Aplicativo Hello World na seção a seguir guia você por essas etapas na criação e publicação de um aplicativo sem servidor.

Aplicativo Hello World

Neste exercício, baixe e teste um aplicativo Hello World sem servidor que representa um simples back-end da API. Ele tem um endpoint do Amazon API Gateway que oferece suporte para uma operação GET do e uma função do Lambda. Quando uma solicitação GET é enviada para o endpoint do, o API Gateway invoca a função do Lambda. Depois, o AWS Lambda executará a função, que basicamente retornará uma mensagem hello world.

O aplicativo tem os seguintes componentes:

  • UmaAWS SAMmodelo que define doisAWSRecursos do aplicativo Hello World: um serviço do API Gateway com uma operação GET do e uma função do Lambda. O modelo também define o mapeamento entre a operação GET do API Gateway e a função do Lambda.

  • Código do aplicativo gravado em Python.

Antes de começar

Certifique-se de que tenha a configuração necessária para este exercício:

Etapa 1: Inicializar o aplicativo

Nesta seção, baixe o exemplo de aplicativo, que consiste em um modelo do AWS SAM e no código do aplicativo.

Como inicializar o aplicativo
  1. Execute o seguinte comando em um prompt de comando da CLI do AWS SAM.

    sam init --runtime python3.6
  2. Revise o conteúdo do diretório criado pelo comando (sam-app/):

    • template.yaml— Define doisAWSRecursos dos quais o aplicativo Hello World precisa: uma função do Lambda e um endpoint do API Gateway do que oferece suporte a uma operação GET. O modelo também define o mapeamento entre os dois recursos.

    • Conteúdo relacionado ao código do aplicativo Hello World:

      • hello_world/diretório — contém o código do aplicativo, que retornahello worldquando você executá-lo.

    nota

    Para este exercício, o código do aplicativo está gravado em Python e você especifica o tempo de execução no comando init. O AWS Lambda oferece suporte a idiomas adicionais para criar o código do aplicativo. Se você especificar outro tempo de execução compatível, o comando init oferecerá o código Hello World no idioma especificado e um arquivo README.md que você poderá seguir no idioma correspondente. Para obter informações sobre tempos de execução compatíveis, consulte Ambiente de execução do Lambda e bibliotecas disponíveis.

Etapa 2: Testar o aplicativo localmente

Agora que você tem o aplicativo do AWS SAM na máquina local, siga as etapas abaixo para testá-la localmente.

Como testar o aplicativo localmente
  1. Inicie o endpoint do gateway da API localmente. É necessário executar o comando a seguir a partir do diretório que contém o arquivo template.yaml.

    sam-app> sam local start-api --region us-east-1

    O comando retorna um endpoint do API Gateway, para o qual você pode enviar solicitações para testes locais.

  2. Testar o aplicativo Copie o URL do endpoint do API Gateway, cole-o no navegador e escolhaDigite. Um exemplo de URL do endpoint do API Gateway éhttp://127.0.0.1:3000/hello.

    O API Gateway invoca localmente a função do Lambda para o qual o endpoint do está mapeado. A função do Lambda é executada no contêiner do Docker local e retornahello world. O API Gateway retorna uma resposta para o navegador que contém o texto.

Exercício: Alterar a string da mensagem

Depois de testar o exemplo de aplicativo com êxito, é possível testar fazendo uma simples modificação: alterar a string da mensagem retornada.

  1. Edite o arquivo /hello_world/app.py para alterar a string da mensagem de 'hello world' para 'Hello World!'.

  2. Recarregue o URL de teste no navegador e observe a nova string.

Você notará que o novo código será carregado de forma dinâmica, sem precisar reiniciar o processo do sam local.

Etapa 3: Empacotar o aplicativo do

Depois de testar o aplicativo localmente, use a CLI do AWS SAM para criar um pacote de implantação e um modelo do AWS SAM empacotado.

nota

Nas etapas a seguir, crie um arquivo .zip para o conteúdo do diretório hello_world/, que contém o código do aplicativo. Este arquivo .zip é o pacote de implantação para o seu aplicativo sem servidor. Para obter mais informações, consulteCriação de um pacote de implantação (Python)noAWS LambdaGuia do desenvolvedor.

Como criar um pacote de implantação do Lambda
  1. Adicione uma seção de Metadata ao arquivo do modelo do AWS SAM fornecendo as informações necessárias do aplicativo. Para obter mais informações sobre a seção Metadata dos modelos do AWS SAM, consulte Propriedades da seção dos metadados do modelo do AWS SAM no Guia do desenvolvedor do AWS Serverless Application Model.

    Veja um exemplo da seção Metadata:

    Metadata: AWS::ServerlessRepo::Application: Name: my-app Description: hello world Author: user1 SpdxLicenseId: Apache-2.0 LicenseUrl: LICENSE.txt ReadmeUrl: README.md Labels: ['tests'] HomePageUrl: https://github.com/user1/my-app-project SemanticVersion: 0.0.1 SourceCodeUrl: https://github.com/user1/my-app-project

    OLicenseUrleReadmeUrlAs propriedades podem ser referências a arquivos locais (como no exemplo acima) ou podem ser links para os buckets do Amazon S3 que já hospedam esses artefatos.

  2. Crie um bucket do S3 no local onde deseja salvar o código empacotado. Se você quiser usar um bucket do S3 existente, ignore esta etapa.

    sam-app> aws s3 mb s3://bucketname
  3. Crie o pacote de implantação da função Lambda executando o seguintepackage AWS SAMComando da CLI.

    sam-app> sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket bucketname

    O comando faz o seguinte:

    • Zipula o conteúdo doaws-sam/hello_world/Diretório e o carrega no Amazon S3.

    • Carrega o pacote de implantação, o arquivo LEIAME e o arquivo LICENÇA para o bucket do Amazon S3 especificado pelo--s3-bucketopção.

    • Gera um novo arquivo de modelo, chamado packaged.yaml, que será usado na próxima etapa para publicar o aplicativo no AWS Serverless Application Repository. Opackaged.yamlarquivo de modelo é semelhante ao arquivo de modelo original (template.yaml), mas tem uma diferença fundamental — oCodeUri,LicenseUrl, eReadmeUrlAs propriedades apontam para o bucket do Amazon S3 e objetos que contém os respectivos artefatos. O seguinte trecho de um arquivo de modelo de exemplo packaged.yaml mostra a propriedade CodeUri:

      HelloWorldFunction: Type: AWS::Serverless::Function # For more information about function resources, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: s3://bucketname/fbd77a3647a4f47a352fcObjectGUID ...

Etapa 4: Publicar o aplicativo

Agora que você criou o pacote de implantação, use-o para publicar o aplicativo no AWS Serverless Application Repository.

Como publicar o aplicativo sem servidor no AWS Serverless Application Repository
  • Execute o comando a seguir para publicar o novo aplicativo no AWS Serverless Application Repository com a primeira versão criada como 0.0.1.

    sam-app> sam publish \ --template packaged.yaml \ --region us-east-1
nota

O aplicativo será criado como privado por padrão. Você deve compartilhar o aplicativo antes de outrosAWSAs contas terão permissão para visualizar e implantar o aplicativo. Consulte Next Steps (Próximas etapas) abaixo para obter mais detalhes sobre como compartilhar o aplicativo.

Próximas etapas

Agora que você publicou o exemplo de aplicativo, veja algumas coisas que poderá fazer com ele.

  • Veja seu aplicativo emAWS Serverless Application Repository— A saída dosam publishO comando incluirá um link para oAWS Serverless Application Repositorydiretamente para a página de detalhes do aplicativo. Também é possível ir para a página inicial do AWS Serverless Application Repository e pesquisar o aplicativo.

  • Compartilhar o aplicativo— Como o aplicativo está definido como privado por padrão, ele não está visível para outrosAWSContas. Para compartilhar o aplicativo com outros, torne-o público ou conceda permissão para uma lista específica deAWSContas. Para obter informações sobre como compartilhar o aplicativo usando a AWS CLI, consulte AWS Serverless Application RepositoryExemplos de políticas do aplicativo do. Para obter informações sobre como compartilhar o aplicativo usando o console, consulte Compartilhar um aplicativo.

Mais informações

Para obter mais informações sobre a seção Metadata dos modelos do AWS SAM, sobre os comandos sam package e sam publish da CLI do AWS SAM, consulte Publicar aplicativos usando a CLI do AWS SAM no Guia do desenvolvedor do AWS Serverless Application Model.