

Aviso de fim do suporte: em 7 de outubro de 2026, AWS encerrará o suporte para AWS Proton. Depois de 7 de outubro de 2026, você não poderá mais acessar o AWS Proton console ou os AWS Proton recursos. Sua infraestrutura implantada permanecerá intacta. Para obter mais informações, consulte o Guia [AWS Proton de descontinuação e migração de serviços](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

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

# Editar um serviço
<a name="ag-svc-update"></a>

Você pode fazer as seguintes edições em um AWS Proton serviço.
+ Editar a descrição do serviço.
+ Edite um serviço adicionando e removendo instâncias de serviço.

## Editar a descrição do serviço.
<a name="ag-svc-metadata"></a>

Você pode usar o console ou o AWS CLI para editar a descrição de um serviço.

------
#### [ Console de gerenciamento da AWS ]

**Edite um serviço usando o console conforme descrito nas etapas a seguir.**

**Na lista de serviços.**

1. No [console do AWS Proton](https://console.aws.amazon.com//proton/), selecione Serviços.

1. Na lista de serviços, escolha o botão de rádio à esquerda do serviço que deseja atualizar.

1. Escolha **Editar**.

1. Na página **Configurar serviço**, preencha o formulário e escolha **Avançar**.

1. Na página **Definir configurações personalizadas**, escolha **Avançar**.

1. Revise suas edições e escolha **Salvar alterações**.

**Na página de detalhes do serviço.**

1. No [console do AWS Proton](https://console.aws.amazon.com//proton/), selecione Serviços.

1. Na lista de serviços, escolha o nome do serviço que deseja editar.

1. Na página de detalhes do serviço, escolha **Editar**.

1. Na página **Configurar serviço**, preencha o formulário e escolha **Avançar**.

1. Na página **Configurar ajustes personalizados**, preencha o formulário e escolha **Avançar**.

1. Revise suas edições e escolha **Salvar alterações**.

------
#### [ AWS CLI ]

**Edite uma descrição conforme mostrado no exemplo de comando e resposta da CLI a seguir.**

Comando:

```
$ aws proton update-service \
    --name "MySimpleService" \
    --description "Edit by updating description"
```

Resposta:

```
{
    "service": {
        "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService",
        "branchName": "main",
        "createdAt": "2021-03-12T22:39:42.318000+00:00",
        "description": "Edit by updating description",
        "lastModifiedAt": "2021-03-12T22:44:21.975000+00:00",
        "name": "MySimpleService",
        "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "repositoryId": "my-repository/myorg-myapp",
        "status": "ACTIVE",
        "templateName": "fargate-service"
    }
}
```

------

## Editar um serviço para adicionar ou remover instâncias de serviço
<a name="ag-svc-update-instances"></a>

Para um AWS Proton serviço, você pode adicionar ou excluir instâncias de serviço enviando uma especificação editada. As seguintes condições devem ser satisfeitas para que uma solicitação seja bem-sucedida:
+ Seu serviço e pipeline ainda não estão sendo editados ou excluídos quando você envia a solicitação de edição.
+ Sua especificação editada não inclui edições que modifiquem o pipeline de serviço ou edições em instâncias de serviço existentes que *não* devem ser excluídas.
+ Sua especificação editada não remove nenhuma instância de serviço existente que tenha um componente anexado. Para excluir essa instância de serviço, você deve primeiro atualizar o componente para desanexá-lo de sua instância de serviço. Para obter mais informações sobre componentes, consulte [AWS Proton componentes](ag-components.md).

As instâncias com falha de exclusão são instâncias de serviço no estado `DELETE_FAILED`. Quando você solicita uma edição de serviço, AWS Proton tenta remover as instâncias que falharam na exclusão para você, como parte do processo de edição. Se alguma de suas instâncias de serviço falhar na exclusão, ainda poderá haver recursos associados às instâncias, mesmo que eles não estejam visíveis no console ou no AWS CLI. Verifique os recursos de infraestrutura da instância que falharam na exclusão e limpe-os para que AWS Proton você possa removê-los.

Para a cota de instâncias de serviço de um serviço, consulte [AWS Proton cotas](ag-limits.md). Você também deve manter pelo menos uma instância de serviço para seu serviço após sua criação. Durante o processo de atualização, AWS Proton faz uma contagem das instâncias de serviço existentes e das instâncias a serem adicionadas ou removidas. As instâncias com falha de exclusão estão incluídas nessa contagem e você deve contabilizá-las ao editar suas `spec`. 

### Use o console ou AWS CLI para adicionar ou remover instâncias de serviço
<a name="ag-svc-update-console-cli"></a>

------
#### [ Console de gerenciamento da AWS ]

**Edite seu serviço para adicionar ou remover instâncias de serviço usando o console.**

No [console do AWS Proton](https://console.aws.amazon.com//proton/)

1. No painel de navegação, escolha **Serviços**.

1. Selecione o serviço a ser editado.

1. Escolha **Editar**.

1. (Opcional) Na página **Configurar serviço**, edite o nome ou a descrição do serviço e escolha **Avançar**.

1. Na página **Definir configurações personalizadas**, escolha **Excluir** para excluir uma instância de serviço e escolha **Adicionar nova instância** para adicionar uma instância de serviço e preencher o formulário.

1. Escolha **Próximo**.

1. Revise a atualização e escolha **Salvar alterações**.

1. Um modal solicita que você verifique a exclusão das instâncias de serviço. Siga as instruções e escolha **Sim, excluir**.

1. Na página de detalhes do serviço, veja os detalhes do status do seu serviço.

------
#### [ AWS CLI ]

**Adicione e exclua instâncias de serviço com uma versão editada`spec`, conforme mostrado nos AWS CLI exemplos de comandos e respostas a seguir.**

Ao usar a CLI, sua você `spec` deve *excluir* as instâncias de serviço a serem excluídas e *incluir* as instâncias de serviço a serem adicionadas e as instâncias de serviço existentes que você *não* marcou para exclusão.

A lista a seguir mostra o exemplo de `spec` antes da edição e uma lista das instâncias de serviço implantadas pela especificação. Essa especificação foi usada no exemplo anterior para editar uma descrição de serviço.

Especificação:

```
proton: ServiceSpec

pipeline:
  my_sample_pipeline_optional_input: "abc"
  my_sample_pipeline_required_input: "123"

instances:
  - name: "my-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_optional_input: "def"
      my_sample_service_instance_required_input: "456"
  - name: "my-other-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "789"
```

O exemplo de comando `list-service-instances` e resposta da CLI a seguir mostra as instâncias ativas antes de adicionar ou excluir uma instância de serviço.

Comando:

```
$ aws proton list-service-instances \
    --service-name "MySimpleService"
```

Resposta:

```
{
    "serviceInstances": [
        {
            "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-other-instance",
            "createdAt": "2021-03-12T22:39:42.318000+00:00",
            "deploymentStatus": "SUCCEEDED",
            "environmentName": "simple-env",
            "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.109000+00:00",
            "lastDeploymentSucceededAt": "2021-03-12T22:39:43.109000+00:00",
            "name": "my-other-instance",
            "serviceName": "example-svc",
            "templateMajorVersion": "1",
            "templateMinorVersion": "0",
            "templateName": "fargate-service"
        },
        {
            "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-instance",
            "createdAt": "2021-03-12T22:39:42.318000+00:00",
            "deploymentStatus": "SUCCEEDED",
            "environmentName": "simple-env",
            "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.160000+00:00",
            "lastDeploymentSucceededAt": "2021-03-12T22:39:43.160000+00:00",
            "name": "my-instance",
            "serviceName": "example-svc",
            "serviceTemplateArn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service",
            "templateMajorVersion": "1",
            "templateMinorVersion": "0",
            "templateName": "fargate-service"
        }
    ]
}
```

A lista a seguir mostra o exemplo editado `spec` usado para excluir e adicionar uma instância. A instância existente chamada `my-instance` é removida e uma nova instância chamada `yet-another-instance` é adicionada.

Especificação:

```
proton: ServiceSpec

pipeline:
  my_sample_pipeline_optional_input: "abc"
  my_sample_pipeline_required_input: "123"

instances:
  - name: "my-other-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "789"
  - name: "yet-another-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "789"
```

Você pode usar `"${Proton::CURRENT_VAL}"` para indicar quais valores de parâmetros devem ser preservados da `spec` original, se os valores existirem na `spec`. Use `get-service` para visualizar a `spec` original de um serviço, conforme descrito em [Exibir dados do serviço](ag-svc-view.md).

A lista a seguir mostra como você pode usar `"${Proton::CURRENT_VAL}"` para garantir que sua `spec` *não* inclua alterações nos valores dos parâmetros para que as instâncias de serviços existentes permaneçam.

Especificação:

```
proton: ServiceSpec

pipeline:
  my_sample_pipeline_optional_input: "${Proton::CURRENT_VAL}"
  my_sample_pipeline_required_input: "${Proton::CURRENT_VAL}"

instances:
  - name: "my-other-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "${Proton::CURRENT_VAL}"
  - name: "yet-another-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "789"
```

A próxima listagem mostra o comando e a resposta da CLI para editar o serviço.

Comando:

```
$ aws proton update-service 
    --name "MySimpleService" \
    --description "Edit by adding and deleting a service instance" \
    --spec "file://spec.yaml"
```

Resposta:

```
{
    "service": {
        "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService",
        "branchName": "main",
        "createdAt": "2021-03-12T22:39:42.318000+00:00",
        "description": "Edit by adding and deleting a service instance",
        "lastModifiedAt": "2021-03-12T22:55:48.169000+00:00",
        "name": "MySimpleService",
        "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "repositoryId": "my-repository/myorg-myapp",
        "status": "UPDATE_IN_PROGRESS",
        "templateName": "fargate-service"
    }
}
```

O comando `list-service-instances` e a resposta a seguir confirmam que a instância existente chamada `my-instance` foi removida e uma nova instância chamada `yet-another-instance` foi adicionada.

Comando:

```
$ aws proton list-service-instances \
    --service-name "MySimpleService"
```

Resposta:

```
{
    "serviceInstances": [
        {
            "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/yet-another-instance",
            "createdAt": "2021-03-12T22:39:42.318000+00:00",
            "deploymentStatus": "SUCCEEDED",
            "environmentName": "simple-env",
            "lastDeploymentAttemptedAt": "2021-03-12T22:56:01.565000+00:00",
            "lastDeploymentSucceededAt": "2021-03-12T22:56:01.565000+00:00",
            "name": "yet-another-instance",
            "serviceName": "MySimpleService",
            "templateMajorVersion": "1",
            "templateMinorVersion": "0",
            "templateName": "fargate-service"
        },
        {
            "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-other-instance",
            "createdAt": "2021-03-12T22:39:42.318000+00:00",
            "deploymentStatus": "SUCCEEDED",
            "environmentName": "simple-env",
            "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.109000+00:00",
            "lastDeploymentSucceededAt": "2021-03-12T22:39:43.109000+00:00",
            "name": "my-other-instance",
            "serviceName": "MySimpleService",
            "templateMajorVersion": "1",
            "templateMinorVersion": "0",
            "templateName": "fargate-service"
        }
    ]
}
```

------

### O que acontece quando você adiciona ou remove instâncias de serviço
<a name="ag-svc-add-delete"></a>

Depois de enviar uma edição de serviço para excluir e adicionar instâncias de serviço AWS Proton , execute as seguintes ações.
+ Configura o serviço em `UPDATE_IN_PROGRESS`
+ Se o serviço tiver um pipeline, definirá seu status como `IN_PROGRESS` e bloqueará as ações do pipeline.
+ Define todas as instâncias de serviço que devem ser excluídas para `DELETE_IN_PROGRESS`.
+ Bloqueia as ações do serviço.
+ Bloqueia ações em instâncias de serviço marcadas para exclusão.
+ Cria novas instâncias de serviço.
+ Exclui instâncias que você listou para exclusão.
+ Tenta remover instâncias cuja exclusão falhou.
+ Depois que as adições e exclusões forem concluídas, reprovisiona o pipeline de serviços (se houver), configura seu serviço para `ACTIVE` e habilita ações de serviço e pipeline.

AWS Proton tenta remediar os modos de falha da seguinte forma.
+ Se uma ou mais instâncias de serviço *falharem na criação*, AWS Proton tente desprovisionar todas as instâncias de serviço recém-criadas e reverta `spec` para o estado anterior. Ele *não* exclui nenhuma instância de serviço e *não* modifica o pipeline de forma alguma.
+ Se uma ou mais instâncias de serviço *não forem excluídas*, AWS Proton reprovisione o pipeline sem as instâncias excluídas. O `spec` é atualizado para incluir as instâncias adicionadas e excluir as instâncias que foram marcadas para exclusão.
+ Se o *pipeline falhar no provisionamento*, *não* haverá uma tentativa de reversão e tanto o serviço quanto o pipeline refletirão um estado de falha na atualização.

### Marcação e edições de serviço
<a name="ag-svc-update-tagging"></a>

Quando você adiciona instâncias de serviço como parte da edição do serviço, as tags AWS gerenciadas se propagam e são criadas automaticamente para as novas instâncias e recursos provisionados. Se você criar novas tags, essas tags serão aplicadas somente às novas instâncias. As tags de serviço gerenciadas pelo cliente existentes também se propagam para as novas instâncias. Para obter mais informações, consulte [AWS Proton recursos e marcação](resources.md).