

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.

# Cómo publicar aplicaciones
<a name="serverlessrepo-how-to-publish"></a>

Esta sección le proporciona los procedimientos para publicar su aplicación sin servidor en el AWS Serverless Application Repository mediante la AWS SAM CLI o el Consola de administración de AWS. También muestra cómo compartir la aplicación para permitir que otros usuarios la implementen y cómo eliminar la aplicación del AWS Serverless Application Repository.

**importante**  
La información que se introduce al publicar una aplicación no está cifrada. Esta información incluye datos como el nombre del autor. Si tiene información que puede identificarle personalmente y no quiere que se almacene ni se haga pública, le recomendamos que no la especifique al publicar la aplicación.

## Publicación de una aplicación (AWS CLI)
<a name="publishing-application-through-cli"></a>

La forma más sencilla de publicar una aplicación en el AWS Serverless Application Repository es utilizar un conjunto de comandos AWS SAM CLI. Para obtener más información, consulte [Publicar una aplicación mediante la AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html) en la *Guía para desarrolladores AWS Serverless Application Model (AWS SAM)*.

## Publicación de una nueva aplicación (consola)
<a name="publishing-application-through-aws-console"></a>

En esta sección se muestra cómo utilizar el Consola de administración de AWS para publicar una nueva aplicación en AWS Serverless Application Repository. Para obtener instrucciones sobre cómo publicar una nueva versión de una aplicación existente, consulte [Publicación de una nueva versión de una aplicación existente](serverlessrepo-how-to-publish-new-version.md).

### Requisitos previos
<a name="publishing-application-prerequisites"></a>

Antes de publicar una aplicación en el AWS Serverless Application Repository, necesitará lo siguiente:
+ Una AWS cuenta válida.
+ Una plantilla AWS Serverless Application Model (AWS SAM) válida que define los AWS recursos que se utilizan. Para obtener más información sobre AWS SAM las plantillas, consulte [Conceptos básicos sobre las AWS SAM plantillas](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-basics.html). 
+ Un paquete para su aplicación que creó mediante el AWS CloudFormation `package` comando de AWS CLI. Este comando empaqueta los artefactos locales (rutas locales) a los que hace referencia la AWS SAM plantilla. Para obtener más información, consulte el [paquete](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html) en la CloudFormation documentación. 
+ Una URL que señala al código fuente de la aplicación, por si quiere publicar la aplicación.
+ Un archivo readme (léame). Este archivo debe describir cómo los clientes pueden usar su aplicación y cómo configurarla antes de implementarla en sus propias AWS cuentas. 
+ Un archivo license.txt o un identificador de licencia válido desde el [sitio web de SPDX](https://spdx.org/licenses/). Tenga en cuenta que solo se requiere una licencia si desea compartir la aplicación públicamente. Si va a mantener su aplicación privada o solo la va a compartir en privado, no necesita especificar una licencia.
+ Una política de bucket de Amazon S3 válida que concede al servicio permisos de lectura para los artefactos que se cargaron en Amazon S3 al empaquetar la aplicación. Para establecer esta política, siga estos pasos:

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

  1. Elija el bucket de Amazon S3 que usó para empaquetar su aplicación.

  1. Elija la pestaña **Permisos**.

  1. Elija el botón **Bucket Policy (Política de bucket)**.

  1. Pegue la siguiente instrucción de política en el **editor de políticas de buckets**. Asegúrese de sustituir el nombre de su bucket en el `Resource` elemento y el ID de su AWS cuenta en el `Condition` elemento. La expresión del `Condition` elemento garantiza que AWS Serverless Application Repository solo tenga permiso para acceder 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, consulta [Referencia de los elementos de la política de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la *Guía del usuario de IAM*.

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service":  "serverlessrepo.amazonaws.com"
                 },
                 "Action": "s3:GetObject",
                 "Resource": "arn:aws:s3:::bucketname/*",
                 "Condition" : {
                     "StringEquals": {
                         "aws:SourceAccount": "123456789012"
                     }
                 }
             }
         ]
     }
     ```

------

  1. Seleccione el botón **Guardar**.

### Procedimiento
<a name="create-new-application"></a>

Cree una nueva aplicación en el AWS Serverless Application Repository mediante el siguiente procedimiento.

**Para crear una nueva aplicación en el AWS Serverless Application Repository**

1. Abra la [AWS Serverless Application Repository console (consola de &SARlong;)](https://console.aws.amazon.com/serverlessrepo/home) y elija **Publish applications (Publicar aplicaciones)**.

1. En la página **Publish an application (Publicar una aplicación)** escriba la siguiente información de aplicación y, a continuación, elija **Publish application (Publicar aplicación)**:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/serverlessrepo/latest/devguide/serverlessrepo-how-to-publish.html)

## Compartir una aplicación
<a name="share-application"></a>

Las aplicaciones publicadas pueden tener permisos establecidos en una de las tres categorías siguientes:
+ **Privada (predeterminada)**: aplicaciones que se crearon con la misma cuenta y que no se compartieron con ninguna otra AWS cuenta. Solo los consumidores que comparten tu AWS cuenta tienen permiso para implementar aplicaciones privadas.
+ **Compartidas de forma privada**: aplicaciones que el editor ha compartido de forma explícita con un conjunto específico de AWS cuentas o con AWS cuentas de una AWS organización. Los consumidores tienen permiso para implementar aplicaciones que se han compartido con su AWS cuenta u AWS organización. Para obtener más información al respecto AWS Organizations, consulte la *[Guía AWS Organizations del usuario](https://docs.aws.amazon.com/organizations/latest/userguide/)*.
+ **Compartidas públicamente**: aplicaciones que el editor ha compartido con todo el mundo. Todos los consumidores tienen permiso para implementar cualquier aplicación compartida públicamente.

Una vez publicada una aplicación en AWS Serverless Application Repository, de forma predeterminada, se establece como **privada**. En esta sección se muestra cómo compartir una aplicación de forma privada con AWS cuentas específicas o una AWS organización, o compartirla públicamente con todo el mundo.

### Compartir aplicaciones mediante la consola
<a name="share-application-console"></a>

Tienes dos opciones para compartir tu aplicación con otras personas: 1) Compártela con AWS cuentas específicas o con las AWS cuentas de tu AWS organización, o 2) Compártela públicamente con todo el mundo. Para obtener más información al respecto AWS Organizations, consulte la *[Guía AWS Organizations del usuario](https://docs.aws.amazon.com/organizations/latest/userguide/)*.

**Opción 1: compartir la aplicación con cuentas o cuentas específicas AWS de su AWS organización**

1. Abra la [consola de AWS Serverless Application Repository](https://console.aws.amazon.com/serverlessrepo/home).

1. En el panel de navegación, elija **Published Applications (Aplicaciones publicadas)** para mostrar la lista de las aplicaciones que ha creado.

1. Elija la aplicación que desea compartir.

1. Elija la pestaña **Sharing (Compartir)** .

1. En la sección **Application policy statements (Instrucciones de política de aplicación)**, elija el botón **Create Statement (Crear instrucción)** .

1. En la ventana **Statement Configuration (Configuración de la instrucción)**, rellene los campos en función de cómo desea compartir su aplicación.
**nota**  
Si compartes con una organización, solo puedes especificar la organización de la que forma parte tu AWS cuenta. Si intenta especificar una AWS organización de la que no es miembro, se producirá un error.  
Para compartir su solicitud con su AWS organización, debe reconocer que la `UnshareApplication` acción se añadirá a su declaración de política, en caso de que sea necesario revocar el intercambio en el futuro.

1. Seleccione el botón **Guardar**.

**Opción 2: Para compartir su aplicación públicamente con todo el mundo**

1. Abra la [consola de AWS Serverless Application Repository](https://console.aws.amazon.com/serverlessrepo/home).

1. En el panel de navegación, elija **Published Applications (Aplicaciones publicadas)** para mostrar la lista de las aplicaciones que ha creado.

1. Elija la aplicación que desea compartir.

1. Elija la pestaña **Sharing (Compartir)** .

1. En la sección **Public Sharing (Compartir públicamente)**, elija el botón **Edit (Editar)** .

1. En **Public sharing (Compartir públicamente)** elija el botón de opción **Enabled (Habilitado)** .

1. En el cuadro de texto escriba el nombre de la aplicación y, a continuación, elija el botón **Save (Guardar)** .

**nota**  
Para compartir una aplicación públicamente, esta debe tener las propiedades `SemanticVersion` y `LicenseUrl` establecidas.

### Compartir una solicitud a través del AWS CLI
<a name="share-application-cli"></a>

Para compartir una aplicación mediante el, AWS CLI debe conceder permisos mediante el `[put-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/put-application-policy.html)` comando para especificar las AWS cuentas con las que desea compartir como principales.

Para obtener más información sobre cómo compartir la aplicación mediante la AWS CLI, consulte[AWS Serverless Application Repository Ejemplos de políticas de aplicación](security_iam_resource-based-policy-examples.md).

## Dejar de compartir una aplicación
<a name="unshare-applications"></a>

Existen dos opciones para dejar de compartir una aplicación de una AWS organización:

1. El editor de la aplicación puede eliminar los permisos mediante el comando `[put-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/put-application-policy.html)`.

1. Un usuario de la *cuenta de administración* de una AWS organización puede realizar una [operación para dejar de compartir](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid-unshare.html) la aplicación en cualquier aplicación compartida con la organización, incluso si la publicó un usuario de otra cuenta.
**nota**  
Si una AWS organización deja de compartir una aplicación mediante la operación de «dejar de compartir la aplicación», no se puede volver a compartir con AWS la organización.

   Para obtener más información al respecto AWS Organizations, consulta la Guía del *[AWS Organizations usuario](https://docs.aws.amazon.com/organizations/latest/userguide/)*.

### Eliminación de los permisos por parte del editor
<a name="unshare-applications-publisher"></a>

#### Eliminación de los permisos por parte del editor a través de la consola
<a name="unshare-application-publisher-console"></a>

Para dejar de compartir una aplicación a través de Consola de administración de AWS, se elimina la declaración de política que la comparte con otras AWS cuentas. Para ello, sigue estos pasos:

1. Abra la [consola de AWS Serverless Application Repository](https://console.aws.amazon.com/serverlessrepo/home).

1. Elija **Available Applications (Aplicaciones disponibles)** en el panel de navegación izquierdo.

1. Elija la aplicación que desea dejar de compartir.

1. Elija la pestaña **Sharing (Compartir)** .

1. En la sección **Application policy statements (Instrucciones de política de aplicación)**, seleccione la instrucción de política que comparte la aplicación con las cuentas que desea dejar de compartir.

1. Elija **Eliminar**.

1. Aparecerá un mensaje de confirmación. Elija **Eliminar** de nuevo.

#### El editor elimina los permisos a través del AWS CLI
<a name="unshare-application-publisher-cli"></a>

Para dejar de compartir una aplicación mediante el AWS CLI, el editor puede eliminar o cambiar los permisos mediante el `[put-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/put-application-policy.html)` comando para hacer que la aplicación sea privada o compartirlos con un conjunto diferente de AWS cuentas.

Para obtener más información sobre cómo cambiar los permisos mediante la AWS CLI, consulte[AWS Serverless Application Repository Ejemplos de políticas de aplicación](security_iam_resource-based-policy-examples.md).

### Cuenta de administración que deja de compartir una aplicación
<a name="unshare-applications-management"></a>

#### Cuenta de administración que deja de compartir una aplicación de una AWS organización a través de la consola
<a name="unshare-application-management-console"></a>

Para dejar de compartir una aplicación de una AWS organización a través de Consola de administración de AWS, un usuario de la *cuenta de administración* puede hacer lo siguiente:

1. Abra la [consola de AWS Serverless Application Repository](https://console.aws.amazon.com/serverlessrepo/home).

1. Elija **Available Applications (Aplicaciones disponibles)** en el panel de navegación izquierdo.

1. En el icono de la aplicación, elija **Unshare (Dejar de compartir)**.

1. En el cuadro de mensaje Unshare (Dejar de compartir), confirme que desea dejar de compartir la aplicación especificando el ID de la organización y el nombre de la aplicación y, a continuación, eligiendo **Save (Guardar)**.

#### Cuenta de administración que deja de compartir una aplicación de una AWS organización mediante el AWS CLI
<a name="unshare-application-management-cli"></a>

Para dejar de compartir una aplicación de una AWS organización, un usuario de la *cuenta de administración* puede ejecutar el `aws serverlessrepo unshare-application` comando.

El siguiente comando deja de compartir una aplicación de una AWS organización, donde *application-id* es el nombre de recurso de Amazon (ARN) de la aplicación *organization-id* y el ID de AWS la organización:

```
1. aws serverlessrepo unshare-application --application-id application-id --organization-id organization-id
```

## Eliminar una aplicación
<a name="deleting-applications"></a>

Puede eliminar aplicaciones del AWS Serverless Application Repository mediante la CLI Consola de administración de AWS o la AWS SAM CLI.

### Eliminación de una aplicación (consola)
<a name="deleting-application-through-aws-console"></a>

Para eliminar una aplicación publicada a través de Consola de administración de AWS, haga lo siguiente.

1. Abra la [consola de AWS Serverless Application Repository](https://console.aws.amazon.com/serverlessrepo/home).

1. En **My Applications (Mis aplicaciones)** elija la aplicación que desea eliminar.

1. En la página de detalles de la aplicación elija **Delete application (Eliminar aplicación)**. 

1. Elija **Delete application (Eliminar aplicación)** para completar la eliminación.

### Eliminación de una aplicación (AWS CLI)
<a name="deleting-application-through-cli"></a>

Para eliminar una aplicación publicada mediante el AWS CLI, ejecute el `[aws serverlessrepo delete-application](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/delete-application.html)` comando.

El siguiente comando elimina una aplicación, donde `application-id` es el nombre de recurso de Amazon (ARN) de la aplicación:

```
1. aws serverlessrepo delete-application --application-id application-id
```

# Publicación de una nueva versión de una aplicación existente
<a name="serverlessrepo-how-to-publish-new-version"></a>

En esta sección se muestra cómo publicar una nueva versión de una aplicación existente en el AWS Serverless Application Repository mediante la AWS SAM CLI o el Consola de administración de AWS. Para obtener instrucciones sobre cómo publicar una nueva aplicación, consulte [Cómo publicar aplicaciones](serverlessrepo-how-to-publish.md).

## Publicación de una nueva versión de una aplicación existente (AWS CLI)
<a name="serverlessrepo-how-to-publish-new-version-cli"></a>

La forma más sencilla de publicar una nueva versión de una aplicación existente es utilizar un conjunto de comandos AWS SAM CLI. Para obtener más información, consulte [Publicar una aplicación mediante la AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html) en la *Guía para desarrolladores AWS Serverless Application Model (AWS SAM)*.

## Publicación de una nueva versión de una aplicación existente (consola)
<a name="serverlessrepo-how-to-publish-new-version-console"></a>

Para publicar una nueva versión de una aplicación que ha publicado anteriormente, siga estos pasos:

1. Abra la [consola de AWS Serverless Application Repository](https://console.aws.amazon.com/serverlessrepo/home).

1. En el panel de navegación, elija **My Applications (Mis aplicaciones)** para mostrar la lista de las aplicaciones que ha creado.

1. Elija la aplicación de la quiere publicar una nueva versión.

1. Elija **Publicar nueva versión**.

1. En **Versions (Versiones)**, introduzca la siguiente información de la aplicación:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/serverlessrepo/latest/devguide/serverlessrepo-how-to-publish-new-version.html)

1. Elija **Publicar versión**.