Publicación de aplicaciones sin servidor mediante elAWS 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.

Publicación de aplicaciones sin servidor mediante elAWS SAMCLI

Para hacer suAWS SAMAplicación disponible para que otros usuarios la encuentren e implementen, puede utilizar laAWS SAMCLI para publicarlo en elAWS Serverless Application Repository. Para publicar su aplicación mediante laAWS SAMCLI, debe definirlo mediante unAWS SAMPlantilla. También debe haberlo probado localmente o en elAWSCloud.

Siga las instrucciones de este tema para crear una nueva aplicación, cree una nueva versión de una aplicación existente o actualice los metadatos de una aplicación existente. (Lo que haga depende de si la aplicación ya existe en elAWS Serverless Application Repositoryy si los metadatos de la aplicación están cambiando.) Para obtener más información acerca de los metadatos de la aplicación, consulteAWS SAMPropiedades de la sección de metadatos de plantilla.

Requisitos previos

Antes de publicar una aplicación enAWS Serverless Application RepositoryUtilizar laAWS SAMCLI, debe disponer de lo siguiente:

  • LaAWS SAMCLI instalada. Para obtener más información, consulte Instalación de la CLI de AWS SAM. Para determinar si elAWS SAMLa CLI está instalada, ejecute el siguiente comando:

    sam --version
  • Una validezAWS SAMPlantilla.

  • Su código de aplicación y las dependencias deAWS SAMreferencias de plantilla.

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

  • Una URL que indica 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 sí.AWScuentas.

  • UNALICENSE.txt, necesario solo para compartir la aplicación públicamente.

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

  • Una política de buckets de Amazon Simple Storage Service (Amazon S3) válida que garantice los permisos de lectura del servicio para artefactos que se cargan en Amazon S3 cuando empaqueta la 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 la aplicación.

    3. Elija Permissions (Permisos).

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

    5. En la páginaEditar política de buckets, pegue la instrucción de política siguiente enPolítica deEditor de . En la instrucción de política, asegúrese de utilizar el nombre del bucket enResourceElementos yAWSID de Cuenta enConditionelemento. La expresión en elConditionelemento asegura queAWS Serverless Application Repositorytiene permiso para acceder solo a las aplicaciones desde la especificadaAWSaccount. Para obtener más información acerca de las declaraciones de políticas, consulteReferencia de los elementos de las políticas de JSON de IAMen laIAM User Guide.

      { "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 Save changes (Guardar cambios).

Publicación de una nueva aplicación

Paso 1: Adición de unMetadatasección de laAWS SAMplantilla

En primer lugar, agregue unMetadatasección a tuAWS SAMPlantilla. Proporcionar la información de la solicitud que se publicará en elAWS Serverless Application Repository.

A continuación se muestra un ejemploMetadatasección :

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 acerca de laMetadataSección sobre de laAWS SAMplantilla, consulteAWS SAMPropiedades de la sección de metadatos de plantilla.

Paso 2: Package la aplicación

Ejecute lo siguiente:AWS SAMComando CLI, que carga los artefactos de la aplicación en Amazon S3 y genera un nuevo archivo de plantilla llamadopackaged.yaml:

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

Usa lapackaged.yamlPlantilla de archivo en el siguiente paso para publicar la aplicación enAWS Serverless Application Repository. Este archivo es similar al archivo de plantilla original (template.yaml), pero tiene una diferencia clave: elCodeUri,LicenseUrl, yReadmeUrllas propiedades 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 suAWS SAMaplicación a laAWS Serverless Application Repository, ejecute lo siguienteAWS SAMComando de la CLI:

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

La salida de lasam publishincluye un enlace a su aplicación en elAWS Serverless Application Repository. También puede ir directamente a laAWS Serverless Application Repositorypágina de inicioy busque su aplicación.

Paso 4: Compartir la aplicación (opcional)

De forma predeterminada, la aplicación está configurada en privada, por lo que no es visible para otrosAWScuentas. Para compartir su aplicación con otros usuarios, debe hacerla pública o conceder permiso a una lista específica deAWScuentas.

Para obtener información acerca de cómo compartir su aplicación medianteAWS CLI, consulteAWS Serverless Application RepositoryEjemplo de política basada en recursos deen laAWS Serverless Application RepositoryGuía para desarrolladores. Para obtener información sobre cómo compartir su aplicación medianteAWS Management Console, consulteCompartir una aplicaciónen laAWS Serverless Application RepositoryGuía para desarrolladores.

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

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

Para actualizar una aplicación que ha publicado anteriormente, publique de nuevo la aplicación utilizando el mismo proceso detallado anteriormente. En el navegadorMetadataSección sobre de laAWS SAMarchivo de plantilla, proporcione el mismo nombre de aplicación con el que lo publicó originalmente, pero incluya un nuevoSemanticVersionValor .

Por ejemplo, considere una aplicación publicada con el nombreSampleAppy unSemanticVersionde1.0.0. Para actualizar esa aplicación, elAWS SAMla plantilla debe tener el nombre de la aplicaciónSampleAppy unSemanticVersionde1.0.1(o cualquier otra cosa que no sea1.0.0).

Temas adicionales