Publicando seu aplicativo com o AWS SAMCLI - 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á.

Publicando seu aplicativo com o AWS SAMCLI

Para disponibilizar seu AWS SAM aplicativo para que outras pessoas encontrem e implantem, você pode usar o AWS SAMCLI para publicá-lo no AWS Serverless Application Repository. Para publicar seu aplicativo usando o AWS SAMCLI, você deve defini-lo usando um AWS SAM modelo. Você também deve tê-lo testado localmente ou na nuvem do AWS .

Siga as instruções neste tópico para criar um novo aplicativo, criar uma nova versão de um aplicativo existente ou atualizar os metadados de um aplicativo existente. (O que você faz depende se o aplicativo já existe no AWS Serverless Application Repository e se algum metadado do aplicativo está mudando.) Para obter mais informações sobre metadados de aplicativo, consulte AWS SAM propriedades da seção de metadados do modelo.

Pré-requisitos

Antes de publicar um aplicativo no AWS Serverless Application Repository usando o AWS SAMCLI, você deve ter o seguinte:

  • A AWS SAM(CLI) instalada. Para obter mais informações, consulte Instale o   AWS SAM CLI. Para determinar se o AWS SAM CLI está instalado, execute o seguinte comando:

    sam --version
  • Um AWS SAM modelo válido.

  • O código e as dependências do seu aplicativo aos quais o AWS SAM modelo faz referência.

  • Uma versão semântica, necessária apenas para compartilhar seu aplicativo publicamente. Esse valor pode ser tão simples quanto 1,0.

  • Um URL que aponta para o código-fonte do seu aplicativo.

  • Um arquivo README.md. Este arquivo deve descrever como os clientes podem usar seu aplicativo e como configurá-lo antes de implantá-lo em suas próprias contas AWS .

  • Um arquivo LICENSE.txt necessário apenas para compartilhar seu aplicativo publicamente.

  • Se seu aplicativo contiver algum aplicativo aninhado, você já deve tê-lo publicado no AWS Serverless Application Repository.

  • Uma política de bucket válida do Amazon Simple Storage Service (Amazon S3) que concede ao serviço permissões de leitura para artefatos que você carrega no Amazon S3 ao empacotar seu aplicativo. Para configurar esta política, faça o seguinte:

    1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

    2. Escolha o nome do bucket do Amazon S3 usado para empacotar seu aplicativo.

    3. Escolha Permissions (Permissões).

    4. Na guia Permissions (Permissões), escolha Bucket policy (Política de bucket), Edit (Editar).

    5. Na página Editar política de bucket, cole a seguinte declaração de política no editor de políticas. Na declaração de política, certifique-se de usar o nome do seu bucket no Resource elemento e o AWS ID da sua conta no Condition elemento. A expressão no Condition elemento garante que ele AWS Serverless Application Repository tenha permissão para acessar somente aplicativos da AWS conta especificada. Para obter mais informações sobre declarações de política, consulte Referência de elementos de política JSON do IAM no Guia do usuário do IAM.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "serverlessrepo.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<your-bucket-name>/*", "Condition" : { "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }
    6. Escolha Save changes (Salvar alterações).

Publicar um novo aplicativo

Etapa 1: adicionar uma Metadata seção ao AWS SAM modelo

Primeiro, adicione uma Metadata seção ao seu AWS SAM modelo. Forneça as informações do aplicativo a serem publicadas no AWS Serverless Application Repository.

A seguir está uma seção de exemplo 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 Resources: HelloWorldFunction: Type: AWS::Lambda::Function Properties: ... CodeUri: source-code1 ...

Para obter mais informações sobre a Metadata seção do AWS SAM modelo, consulteAWS SAM propriedades da seção de metadados do modelo.

Etapa 2: Empacotar o aplicativo

Execute o seguinte AWS SAMCLI comando, que faz upload dos artefatos do aplicativo para o Amazon S3 e gera um novo arquivo de modelo chamadopackaged.yaml:

sam package --output-template-file packaged.yaml --s3-bucket <your-bucket-name>

Você usa o packaged.yaml arquivo de modelo na próxima etapa para publicar o aplicativo no arquivo AWS Serverless Application Repository. Esse arquivo é semelhante ao arquivo de modelo original (template.yaml), mas tem uma diferença importante: as propriedades CodeUri,LicenseUrl, e ReadmeUrl apontam para o bucket do Amazon S3 e os objetos que contêm os respectivos artefatos.

O seguinte trecho de um arquivo de modelo de exemplo packaged.yaml mostra a propriedade CodeUri:

MySampleFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://bucketname/fbd77a3647a4f47a352fcObjectGUID ...

Etapa 3: publicar o aplicativo

Para publicar uma versão privada do seu AWS SAM aplicativo no AWS Serverless Application Repository, execute o seguinte AWS SAMCLI comando:

sam publish --template packaged.yaml --region us-east-1

A saída do comando sam publish inclui um link para seu aplicativo no AWS Serverless Application Repository. Você também pode ir diretamente para a AWS Serverless Application Repository página de destino e pesquisar seu aplicativo.

Etapa 4: compartilhar o aplicativo (opcional)

Por padrão, seu aplicativo está definido como privado, portanto, não é visível para outras contas da AWS . Para compartilhar seu aplicativo com outras pessoas, você deve torná-lo público ou conceder permissão para uma lista específica de AWS contas.

Para obter informações sobre como compartilhar seu aplicativo usando o AWS CLI, consulte Exemplos de políticas AWS Serverless Application Repository baseadas em recursos no Guia do AWS Serverless Application Repository desenvolvedor. Para obter informações sobre como compartilhar seu aplicativo usando o AWS Management Console, consulte Compartilhamento de um aplicativo no AWS Serverless Application Repository Guia do desenvolvedor.

Publicar uma nova versão de um aplicativo existente

Depois de publicar um aplicativo no AWS Serverless Application Repository, talvez você queira publicar uma nova versão dele. Por exemplo, você pode ter alterado o código da função do Lambda ou adicionado um novo componente à arquitetura do aplicativo.

Para atualizar um aplicativo que você publicou anteriormente, publique-o novamente usando o mesmo processo detalhado anteriormente. Na seção Metadata do arquivo de modelo AWS SAM , forneça o mesmo nome do aplicativo com o qual você o publicou originalmente, mas inclua um novo valor SemanticVersion.

Por exemplo, considere um aplicativo publicado com o nome de SampleApp e um SemanticVersion de 1.0.0. Para atualizar esse aplicativo, o modelo AWS SAM deve ter o nome do aplicativo SampleApp e um SemanticVersion de 1.0.1 (ou qualquer outra coisa que não seja 1.0.0).

Tópicos adicionais