

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

# Atualizando um recurso com AWS API Cloud Control
<a name="resource-operations-update"></a>

Use o comando `update-resource` para fazer atualizações em um recurso existente. Isso inclui recursos que não foram provisionados originalmente usando a API de controle da nuvem.

**Importante**  
É altamente desaconselhável usar a API de controle da nuvem para atualizar recursos que estão sob gerenciamento ativo por outros serviços. Fazer isso pode levar a resultados inesperados. Por exemplo, não use a Cloud Control API para atualizar recursos que atualmente fazem parte de uma CloudFormation pilha.

Para atualizar um recurso existente, você deve especificar o identificador do recurso. Para obter mais informações sobre como determinar o identificador de um recurso, consulte [Utilizando o identificador primário de um recurso](resource-identifier.md#resource-identifier-using).

A atualização de um recurso envolve a alteração dos valores das propriedades do recurso. As propriedades de um recurso são definidas em seu esquema de tipo de recurso. Isso inclui se a propriedade é obrigatória, valores válidos e outras restrições de propriedade. Para obter mais informações sobre como visualizar definições de propriedades de recursos, consulte [Visualizando esquemas de tipos de recursos](resource-types.md#resource-types-schemas).

## Redigir o documento de patch
<a name="resource-operations-update-patch"></a>

Para atualizar um recurso, primeiro você define as atualizações como uma lista de *operações de patch* contidas em um documento de patch JSON. Este documento de patch deve seguir o padrão definido no [https://datatracker.ietf.org/doc/html/rfc6902](https://datatracker.ietf.org/doc/html/rfc6902)JSON) Patch.

Cada operação de patch define uma única atualização para uma propriedade específica do recurso. As seguintes propriedades são necessárias:
+ `op`: O tipo de operação. A API de controle da nuvem é compatível com todas as operações definidas no RFC 6902: `add`, `remove`, `replace`, `move`, `copy` e `test`.
+ `path`: o caminho para a propriedade do recurso, em relação à seção `properties` do esquema do recurso.

Dependendo da operação, propriedades adicionais podem ser necessárias. Consulte a RFC 6902 para obter detalhes.

Ao usar o comando `update-resource`, você pode especificar o documento de patch embutido como uma string ou especificar a localização do arquivo.

O exemplo a seguir atualiza a política de retenção de um [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)recurso chamado `CloudControlApiLogGroup` para 90 dias.

```
$ aws cloudcontrol update-resource --type-name AWS::Logs::LogGroup \
    --identifier CloudControlApiLogGroup \
    --patch-document '[{"op":"replace","path":"RetentionInDays","value":90}]'
```

## Como a API de controle da nuvem atualiza os recursos
<a name="resource-operations-update-how"></a>

Para atualizar um recurso, a API de controle da nuvem primeiro recupera o estado atual do recurso e, em seguida, atualiza o recurso em um processo de duas etapas: 
+ A API de controle da nuvem combina as operações de patch especificadas na solicitação de atualização com o estado atual do recurso para gerar o estado desejado do recurso após a atualização. As operações são aplicadas sequencialmente na ordem em que aparecem no documento de patch. Cada operação na sequência é aplicada ao estado atual do recurso; o estado resultante do recurso se torna o alvo da próxima operação.

  Neste ponto do tutorial, a solicitação de atualização inteira falhará se:
  + Uma operação de patch incluída na solicitação é inválida.
  + Uma operação de patch de `test` do tipo `op` falha.

  Nesses casos, toda a solicitação de atualização falha e a API de controle da nuvem não faz atualizações no recurso.
+ Em seguida, a API de controle da nuvem chama o manipulador de atualizações do tipo de recurso para atualizar o recurso.

  Se o manipulador de atualizações falhar em algum momento, *a API de controle da nuvem não reverterá o recurso para o estado anterior*.

Por exemplo, considere o seguinte documento de patch definido para atualizar um [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)recurso. O documento contém duas operações de patch. A primeira operação é do tipo `test` e verifica se a política de retenção do recurso está definida para 3653 dias. Se for esse o caso, o recurso passa no teste e a API de controle da nuvem prossegue para a próxima operação. Essa operação substitui o valor atual da política de retenção por 180 dias. Se a política de retenção do recurso for definida com um valor diferente de 3.653 dias, a primeira operação `test` falhará e a API de controle da nuvem nunca executará a segunda operação `replace`.

```
[
  {
    "op": "test",
    "path": "/RetentionInDays",
    "value":3653
  },
  {
    "op": "replace",
    "path": "/RetentionInDays",
    "value":180
  }
]
```

## Acompanhando o progresso de uma solicitação de atualização de recurso
<a name="resource-operations-update-progress"></a>

O comando `update-resource` retorna um objeto `ProgressEvent` que você pode usar para rastrear o status atual da sua solicitação de operação de recursos. Para obter mais informações, consulte [Acompanhando o progresso de uma solicitações de operações de recursos](resource-operations-manage-requests.md#resource-operations-manage-requests-track).