Publicar su solicitud con el AWS SAMCLI - AWS Serverless Application Model

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Publicar su solicitud con el AWS SAMCLI

Para que su AWS SAM aplicación esté disponible para que otros la encuentren y la desplieguen, puede utilizarla AWS SAMCLI para publicarla en AWS Serverless Application Repository. Para publicar su aplicación mediante el AWS SAMCLI, debe definirla mediante una AWS SAM plantilla. También debe haberla probado localmente o en AWS Cloud.

Siga las instrucciones de este tema para crear una nueva aplicación, crear una nueva versión de una aplicación existente o actualizar los metadatos de una aplicación existente. (Lo que haga dependerá de si la aplicación ya existe en la AWS Serverless Application Repository aplicación y de si algún metadato de la aplicación está cambiando). Para obtener más información acerca de los metadatos de la aplicación, consulte Propiedades de la sección de metadatos de la plantilla de AWS SAM.

Requisitos previos

Antes de publicar una aplicación en el AWS Serverless Application Repository mediante AWS SAMCLI, debe disponer de lo siguiente:

  • La (CLI) de AWS SAM debe estar instalada Para obtener más información, consulte Instale la CLIAWS SAM. Para determinar si la CLI de AWS SAM está instalado en su clúster, ejecute el siguiente comando:

    sam --version
  • Una AWS SAM plantilla válida.

  • El código de su aplicación y las dependencias a las que hace referencia la AWS SAM plantilla.

  • Una versión semántica, necesaria solo para compartir la aplicación públicamente. Este valor puede ser tan simple como 1.0.

  • Una URL que apunta al código fuente de la aplicación.

  • Un archivo README.md En este archivo se describe cómo se utiliza la aplicación y cómo configurarla antes de implementarla en las cuentas de AWS .

  • Un archivo LICENSE.txt, necesario solo para compartir la aplicación públicamente.

  • Si su aplicación contiene aplicaciones anidadas, debe haberlas publicado ya en AWS Serverless Application Repository.

  • Una política de bucket válida de Amazon Simple Storage Service (Amazon S3) que conceda al servicio permisos de lectura para los artefactos que cargue en Amazon S3 cuando empaquete su aplicación. Para configurar esta política, haga lo siguiente:

    1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3.

    2. Elija el nombre del bucket de Amazon S3 que utilizó para empaquetar su aplicación.

    3. Elija Permisos.

    4. En la pestaña Permissions (Permisos), en Bucket policy (Política de bucket), elija Edit (Editar).

    5. En la página Editar política de buckets, pegue la siguiente instrucción de Política en el editor de políticas. En la instrucción de política, asegúrese de usar el nombre del bucket en el elemento Resource y el ID de la cuenta AWS en el elemento Condition. La expresión del Condition elemento garantiza que AWS Serverless Application Repository tiene permiso para acceder únicamente a las aplicaciones de la AWS cuenta especificada. Para obtener más información acerca de las secciones dentro de una instrucción de política de IAM, consulte Referencia de los elementos de la política de IAM en la Guía del usuario de 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. Elija Guardar cambios.

Publicación de una aplicación

Paso 1: Añadir una Metadata sección a la AWS SAM plantilla

Primero, agrega una Metadata sección a tu AWS SAM plantilla. Proporcione la información de la solicitud que se publicará en AWS Serverless Application Repository.

A continuación, se ofrece un ejemplo de sección 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 obtener más información sobre la Metadata sección de la AWS SAM plantilla, consultePropiedades de la sección de metadatos de la plantilla de AWS SAM.

Paso 2: crear el paquete de la aplicación

Ejecute el siguiente comando en la CLI de AWS SAM, que carga los artefactos de la aplicación en Amazon S3 y genera un nuevo archivo de plantilla llamado packaged.yaml:

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

En el siguiente paso, utilice el archivo de plantilla packaged.yaml para publicar la aplicación en AWS Serverless Application Repository Este archivo es similar al archivo de plantilla original (template.yaml), pero tiene una diferencia clave: las propiedades CodeUri, LicenseUrl, y ReadmeUrl apuntan al bucket de Amazon S3 y a los objetos que contienen los artefactos respectivos.

El siguiente fragmento de un ejemplo de archivo de plantilla packaged.yaml muestra la propiedad CodeUri:

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

Paso 3: publicar la aplicación

Para publicar una versión privada de la AWS SAM aplicación en AWS Serverless Application Repository, ejecute el siguiente AWS SAMCLI comando:

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

El resultado del comando sam publish incluye un enlace a su aplicación en el AWS Serverless Application Repository. También puede ir directamente a la AWS Serverless Application Repository página de inicio y buscar su solicitud.

Paso 4: compartir la aplicación (opcional)

De forma predeterminada, la aplicación está configurada como privada, por lo que no es visible para otras cuentas de AWS . Para compartir tu aplicación con otras personas, debes hacerla pública o conceder permiso a una lista específica de AWS cuentas.

Para obtener información sobre cómo compartir su aplicación mediante el AWS CLI, consulte los ejemplos de políticas AWS Serverless Application Repository basadas en recursos en la Guía para AWS Serverless Application Repository desarrolladores. Para obtener información sobre cómo compartir su aplicación mediante la AWS Management Console, consulte Compartir una aplicación en la Guía para desarrolladores de AWS Serverless Application Repository .

Publicar una nueva versión de una aplicación existente

Después de publicar una aplicación en el AWS Serverless Application Repository, es posible que desee publicar una nueva versión de la misma. Por ejemplo, es posible que haya cambiado el código de la función de Lambda o haya agregado un nuevo componente a la arquitectura de la aplicación.

Para actualizar una aplicación que haya publicado anteriormente, vuelva a publicarla siguiendo el mismo proceso detallado anteriormente. En la sección Metadata del archivo de plantilla de AWS SAM , proporcione el mismo nombre de aplicación con el que la publicó originalmente, pero incluya un valor SemanticVersion nuevo.

Por ejemplo, considere una aplicación publicada con el nombre SampleApp y una SemanticVersion de 1.0.0. Para actualizar esa aplicación, la plantilla de AWS SAM debe tener el nombre de la aplicación SampleApp y una SemanticVersion de 1.0.1 (o cualquier otro nombre que no sea 1.0.0).

Temas adicionales