

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á.

# Como publicar aplicativos
<a name="serverlessrepo-how-to-publish"></a>

Esta seção fornece procedimentos para publicar seu aplicativo sem servidor no AWS Serverless Application Repository usando a AWS SAM CLI ou o. Console de gerenciamento da AWS Ela também mostra como compartilhar seu aplicativo para permitir que outras pessoas o implantem e como excluir seu aplicativo do AWS Serverless Application Repository.

**Importante**  
As informações que você insere ao publicar um aplicativo não são criptografadas. Essas informações incluem dados como o nome do autor. Se você tiver informações de identificação pessoal que você não deseja que sejam armazenadas ou tornadas públicas, recomendamos que você não insira essas informações ao publicar o aplicativo.

## Publicar um aplicativo (AWS CLI)
<a name="publishing-application-through-cli"></a>

A maneira mais fácil de publicar um aplicativo no AWS Serverless Application Repository é usar um conjunto de comandos da AWS SAM CLI. Para obter mais informações, consulte [Publicar um aplicativo usando a AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html) no *AWS Serverless Application Model (AWS SAM) Developer* Guide.

## Publicar um novo aplicativo (console)
<a name="publishing-application-through-aws-console"></a>

Esta seção mostra como usar o Console de gerenciamento da AWS para publicar um novo aplicativo no AWS Serverless Application Repository. Para obter instruções sobre como publicar uma nova versão de um aplicativo existente, consulte [Publicar a nova versão de um aplicativo existente](serverlessrepo-how-to-publish-new-version.md).

### Pré-requisitos
<a name="publishing-application-prerequisites"></a>

Antes de publicar um aplicativo no AWS Serverless Application Repository, você precisa do seguinte:
+ Uma AWS conta válida.
+ Um modelo válido AWS Serverless Application Model (AWS SAM) que define os AWS recursos que são usados. Para obter mais informações sobre AWS SAM modelos, consulte [Noções básicas sobre AWS SAM modelos](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-basics.html). 
+ Um pacote para seu aplicativo que você criou usando o AWS CloudFormation `package` comando para AWS CLI o. Esse comando empacota os artefatos locais (caminhos locais) aos quais seu AWS SAM modelo faz referência. Para obter mais detalhes, consulte o [pacote](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html) na CloudFormation documentação. 
+ Um URL que aponta para o código-fonte do aplicativo, caso você queira torná-lo público.
+ Um arquivo "readme.txt". Esse arquivo deve descrever como os clientes podem usar seu aplicativo e como configurá-lo antes de implantá-lo em suas próprias AWS contas. 
+ Um arquivo license.txt ou um identificador de licença válido do [site SPDX](https://spdx.org/licenses/). Observe que uma licença é necessária somente se você quiser compartilhar o aplicativo publicamente. Se você quiser manter o aplicativo como privado ou apenas compartilhá-lo de forma privada, não será necessário especificar uma licença.
+ Uma política de bucket válida do Amazon S3 que concede ao serviço permissões de leitura para artefatos que foram enviados para o Amazon S3 quando você empacotou seu aplicativo. Para definir essa política, siga essas etapas:

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

  1. Escolha o bucket do Amazon S3 que você usou para empacotar o aplicativo.

  1. Escolha a aba **Permissões**.

  1. Clique no botão de **Política de bucket**.

  1. Cole a declaração da política a seguir no **Bucket policy editor (Editor de política do bucket)**. Certifique-se de substituir o nome do bucket no `Resource` elemento e o ID da AWS conta no `Condition` elemento. A expressão no `Condition` elemento garante que AWS Serverless Application Repository só tenha permissão para acessar 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do 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. Clique no botão **Salvar**.

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

Crie um novo aplicativo no AWS Serverless Application Repository usando o procedimento a seguir.

**Para criar um novo aplicativo no AWS Serverless Application Repository**

1. Abra o console [AWS Serverless Application Repository](https://console.aws.amazon.com/serverlessrepo/home) e escolha **Publicar aplicativos**.

1. Na página **Publish an application (Publicar um aplicativo)**, insira as seguintes informações do aplicativo e escolha **Publish application (Publicar aplicativo)**:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/serverlessrepo/latest/devguide/serverlessrepo-how-to-publish.html)

## Compartilhar um aplicativo
<a name="share-application"></a>

Aplicativos publicados podem ter permissões definidas em uma das três categorias a seguir:
+ **Privado (padrão)** — Aplicativos que foram criados com a mesma conta e não foram compartilhados com nenhuma outra AWS conta. Somente consumidores que compartilham sua AWS conta têm permissão para implantar aplicativos privados.
+ **Compartilhado de forma privada** — Aplicativos que o editor compartilhou explicitamente com um conjunto específico de AWS contas ou com AWS contas em uma AWS organização. Os consumidores têm permissão para implantar aplicativos que foram compartilhados com sua AWS conta ou AWS organização. Para obter mais informações sobre AWS Organizations, consulte o *[Guia AWS Organizations do usuário](https://docs.aws.amazon.com/organizations/latest/userguide/)*.
+ **Compartilhado publicamente** — aplicativos que o editor compartilhou com todos. Todos os consumidores têm permissão para implantar um aplicativo compartilhado publicamente.

Depois de publicar um aplicativo no AWS Serverless Application Repository, por padrão, ele é definido como **privado**. Esta seção mostra como compartilhar um aplicativo de forma privada com AWS contas específicas ou uma AWS organização, ou compartilhá-lo publicamente com todos.

### Compartilhar um aplicativo por meio do console
<a name="share-application-console"></a>

Você tem duas opções para compartilhar seu aplicativo com outras pessoas: 1) Compartilhe-o com AWS contas específicas ou com as AWS contas da sua AWS organização, ou 2) Compartilhe-o publicamente com todos. Para obter mais informações sobre AWS Organizations, consulte o *[Guia AWS Organizations do usuário](https://docs.aws.amazon.com/organizations/latest/userguide/)*.

**Opção 1: compartilhar seu aplicativo com contas ou contas específicas AWS em sua AWS organização**

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

1. No painel de navegação, escolha **Published Applications (Aplicativos publicados)** para ver a lista de aplicativos que você criou.

1. Escolha o aplicativo que você quer compartilhar.

1. Escolha a guia **Sharing (Compartilhamento)**.

1. Na seção **Application policy statements (Declarações de política de aplicativo)**, escolha o botão **Create Statement (Criar declaração)**.

1. Na janela **Statement Configuration (Configuração da declaração)** preencha os campos com base em como você deseja compartilhar seu aplicativo.
**nota**  
Se você estiver compartilhando com uma organização, só poderá especificar a organização da qual sua AWS conta é membro. Se você tentar especificar uma AWS organização da qual não é membro, ocorrerá um erro.  
Para compartilhar seu aplicativo com sua AWS organização, você deve reconhecer que a `UnshareApplication` ação será adicionada à sua declaração de política, caso o compartilhamento precise ser revogado no futuro.

1. Clique no botão **Salvar**.

**Opção 2: como compartilhar seu aplicativo publicamente com todos**

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

1. No painel de navegação, escolha **Published Applications (Aplicativos publicados)** para ver a lista de aplicativos que você criou.

1. Escolha o aplicativo que você quer compartilhar.

1. Escolha a guia **Sharing (Compartilhamento)**.

1. Na seção **Public Sharing (Compartilhamento público)** escolha o botão **Edit (Editar)**.

1. Em **Public sharing (Compartilhamento público)** escolha o botão de opção **Enabled (Habilitado)**.

1. Na caixa de texto digite o nome do aplicativo e escolha o botão **Save (Salvar)**.

**nota**  
Para compartilhar um aplicativo publicamente, ele deve ter as propriedades `LicenseUrl` e `SemanticVersion` definidas.

### Compartilhando um aplicativo por meio do AWS CLI
<a name="share-application-cli"></a>

Para compartilhar um aplicativo usando o, AWS CLI você concede permissões usando o `[put-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/put-application-policy.html)` comando para especificar as AWS contas com as quais deseja compartilhar como principais.

Para obter mais informações sobre como compartilhar seu aplicativo usando a AWS CLI, consulte. [AWS Serverless Application Repository Exemplos de políticas de aplicativos](security_iam_resource-based-policy-examples.md)

## Cancelar o compartilhamento de um aplicativo
<a name="unshare-applications"></a>

Há duas opções para cancelar o compartilhamento de um aplicativo de uma AWS organização:

1. O editor do aplicativo pode remover permissões usando o comando `[put-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/put-application-policy.html)`.

1. Um usuário da *conta de gerenciamento* de uma AWS organização pode realizar uma operação de [cancelamento de compartilhamento do aplicativo](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid-unshare.html) em qualquer aplicativo compartilhado com a organização, mesmo que o aplicativo tenha sido publicado por um usuário de uma conta diferente.
**nota**  
Quando um aplicativo é descompartilhado de uma AWS organização com a operação “cancelar o compartilhamento do aplicativo”, ele não pode ser compartilhado com a AWS organização novamente.

   Para obter mais informações sobre AWS Organizations, consulte o *[Guia AWS Organizations do usuário](https://docs.aws.amazon.com/organizations/latest/userguide/)*.

### Editor remove permissões
<a name="unshare-applications-publisher"></a>

#### Editor remove permissões pelo console
<a name="unshare-application-publisher-console"></a>

Para cancelar o compartilhamento de um aplicativo por meio do Console de gerenciamento da AWS, você remove a declaração de política que o compartilha com outras AWS contas. Para isso, siga estas etapas:

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

1. Escolha **Available Applications (Aplicativos disponíveis)** no painel de navegação esquerdo.

1. Escolha o aplicativo do qual deseja cancelar o compartilhamento.

1. Escolha a guia **Sharing (Compartilhamento)**.

1. Na seção **Application policy statements (Declarações de política de aplicativo)** selecione a declaração de política que está compartilhando o aplicativo com as contas das quais você deseja cancelar o compartilhamento.

1. Escolha **Excluir**.

1. Uma mensagem de confirmação será exibida. Escolha **Delete (Excluir)** novamente.

#### Editor removendo permissões por meio do AWS CLI
<a name="unshare-application-publisher-cli"></a>

Para cancelar o compartilhamento de um aplicativo por meio do AWS CLI, o editor pode remover ou alterar as permissões usando o `[put-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/put-application-policy.html)` comando para tornar o aplicativo privado ou compartilhar com um conjunto diferente de AWS contas.

Para obter mais informações sobre a alteração de permissões usando a AWS CLI, consulte. [AWS Serverless Application Repository Exemplos de políticas de aplicativos](security_iam_resource-based-policy-examples.md)

### Conta de gerenciamento que cancela o compartilhamento de um aplicativo
<a name="unshare-applications-management"></a>

#### Conta de gerenciamento que cancela o compartilhamento de um aplicativo de uma AWS organização por meio do console
<a name="unshare-application-management-console"></a>

Para cancelar o compartilhamento de um aplicativo de uma AWS organização por meio do Console de gerenciamento da AWS, um usuário da *conta de gerenciamento* pode fazer o seguinte:

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

1. Escolha **Available Applications (Aplicativos disponíveis)** no painel de navegação esquerdo.

1. No bloco do aplicativo, escolha **Unshare (Cancelar compartilhamento)**.

1. Na caixa de mensagem de cancelamento de compartilhamento, confirme que deseja cancelar o compartilhamento do aplicativo inserindo o ID da organização e o nome do aplicativo e escolhendo **Save (Salvar)**.

#### Conta de gerenciamento que cancela o compartilhamento de um aplicativo de uma AWS organização por meio do AWS CLI
<a name="unshare-application-management-cli"></a>

Para cancelar o compartilhamento de um aplicativo de uma AWS organização, um usuário da *conta de gerenciamento* pode executar o `aws serverlessrepo unshare-application` comando.

O comando a seguir cancela o compartilhamento de um aplicativo de uma AWS organização, onde *application-id* é o Amazon Resource Name (ARN) do aplicativo *organization-id* e é o ID AWS da organização:

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

## Excluir um aplicativo
<a name="deleting-applications"></a>

Você pode excluir aplicativos do AWS Serverless Application Repository usando a CLI Console de gerenciamento da AWS ou a AWS SAM CLI.

### Excluir um aplicativo (console)
<a name="deleting-application-through-aws-console"></a>

Para excluir um aplicativo publicado por meio do Console de gerenciamento da AWS, faça o seguinte.

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

1. Em **My Applications (Meus aplicativos)**, escolha o aplicativo a ser excluído.

1. Na página de detalhes do aplicativo, escolha **Delete application (Excluir aplicativo)**. 

1. Escolha **Delete application (Excluir aplicativo)** para concluir a exclusão.

### Excluir um aplicativo (AWS CLI)
<a name="deleting-application-through-cli"></a>

Para excluir um aplicativo publicado usando o AWS CLI, execute o `[aws serverlessrepo delete-application](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/delete-application.html)` comando.

O comando a seguir exclui um aplicativo, onde `application-id` é o nome de recurso da Amazon (ARN) do aplicativo:

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

# Publicar a nova versão de um aplicativo existente
<a name="serverlessrepo-how-to-publish-new-version"></a>

Esta seção mostra como publicar uma nova versão de um aplicativo existente no AWS Serverless Application Repository usando a AWS SAM CLI ou o. Console de gerenciamento da AWS Para obter instruções sobre como publicar um novo aplicativo, consulte [Como publicar aplicativos](serverlessrepo-how-to-publish.md).

## Publicar a nova versão de um aplicativo existente (AWS CLI)
<a name="serverlessrepo-how-to-publish-new-version-cli"></a>

A maneira mais fácil de publicar uma nova versão de um aplicativo existente é usar um conjunto de comandos da AWS SAM CLI. Para obter mais informações, consulte [Publicar um aplicativo usando a AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html) no *AWS Serverless Application Model (AWS SAM) Developer* Guide.

## Publicar a nova versão de um aplicativo existente (console)
<a name="serverlessrepo-how-to-publish-new-version-console"></a>

Para publicar uma nova versão de um aplicativo que você publicou anteriormente, siga estas etapas:

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

1. No painel de navegação, escolha **My Applications (Meus aplicativos)** para ver a lista de aplicativos que você criou.

1. Escolha o aplicativo para o qual você quer publicar uma nova versão.

1. Escolha **Publicar nova versão**.

1. Em **Versions (Versões)**, insira as informações do aplicativo:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/serverlessrepo/latest/devguide/serverlessrepo-how-to-publish-new-version.html)

1. Escolha **Publish version (Publicar versão)**.