Publicar tu 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 tu solicitud con el AWS SAMCLI

Para que tu aplicación AWS SAM esté disponible para que otros la encuentren e implementen, puedes utilizarla en la CLI de AWS SAM para publicarla en AWS Serverless Application Repository. Para publicar tu aplicación mediante la CLI de AWS SAM, debes definirla mediante una plantilla de AWS SAM. También debes haberla testeado localmente o en AWS la nube.

Sigue 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 hagas dependerá de si la aplicación ya existe en AWS Serverless Application Repository y de si alguno de los metadatos de la aplicación está cambiando). Para obtener más información acerca de los metadatos de la aplicación, consulta Propiedades de la sección de metadatos de la plantilla de AWS SAM.

Requisitos previos

Para publicar una aplicación en AWS Serverless Application Repository utilizando la CLI de AWS SAM, necesitas lo siguiente:

  • La (CLI) de AWS SAM debe estar instalada Para obtener más información, consulta Instala la AWS SAM CLI. Para determinar si la CLI de AWS SAM está instalado, ejecuta el siguiente comando:

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

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

  • Una versión semántica, necesaria solo para compartir la aplicación públicamente. Este valor puedes 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 tu aplicación contienes 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 tu aplicación. Para configurar esta política, haga lo siguiente:

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

    2. Elige el nombre del bucket de Amazon S3 que utilizaste para empaquetar tu aplicación.

    3. Elige Permisos.

    4. En la pestaña Permissions (Permisos), en Bucket policy (Política de bucket), elige 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 elemento Condition garantiza que solo AWS Serverless Application Repository tienes permiso para acceder a las aplicaciones de la cuenta AWS especificada. Para obtener más información acerca de las secciones dentro de una instrucción de política de IAM, consulta 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. Elige Guardar cambios.

Publicación de una aplicación

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

Primero, agrega una sección Metadata a la plantilla de AWS SAM. 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 sección Metadata de la plantilla de AWS SAM, consulta Propiedades de la sección de metadatos de la plantilla de AWS SAM.

Paso 2: crear el paquete de la aplicación

Ejecuta 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, utiliza 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 claves: las propiedades CodeUri, LicenseUrl, y ReadmeUrl apuntan al bucket de Amazon S3 y a los objetos que contienesn 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 aplicación AWS SAM en AWS Serverless Application Repository, ejecuta el siguiente comando en la CLI de AWS SAM:

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

El resultado del comando sam publish incluye un enlace a tu aplicación en el AWS Serverless Application Repository. También puedes ir directamente a la AWS Serverless Application Repositorypágina de inicio y buscar tu 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 la aplicación con otros, debes hacerla pública o conceder permiso a una lista específica de cuentas de AWS.

Para obtener información sobre cómo compartir aplicaciones utilizando la AWS CLI, consulta los Ejemplos de políticas basadas en recursos de AWS Serverless Application Repository en la Guía para desarrolladores de AWS Serverless Application Repository. Para obtener información sobre cómo compartir tu aplicación mediante la AWS Management Console, consulta 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 AWS Serverless Application Repository, es posible que desee publicar una nueva versión de la misma. Por ejemplo, es posible que hayas cambiado el código de la función de Lambda o hayas agregado un nuevo componente a la arquitectura de la aplicación.

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

Por ejemplo, considera 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