Atualizar um recurso - Cloud Control API

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

Atualizar um recurso

Use o comando update-resource para fazer atualizações em um recurso existente. Isso inclui recursos que não foram provisionados originalmente usando o Cloud Control API.

Importante

É altamente desaconselhável usar o Cloud Control API 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 o Cloud Control API para atualizar recursos que atualmente fazem parte de uma pilha AWS CloudFormation.

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.

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 exibir definições de propriedades de recursos, consulte Visualizando esquemas de tipos de recursos.

Redigindo o documento de patch

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 RFC 6902 - JavaScript Object Notation (JSON) Patch.

Cada operação de patch define uma única atualização para uma propriedade específica do recurso. As propriedades a seguir são necessárias:

  • op: O tipo de operação. A Cloud Control API é compatível com todas as operações definidas na 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 AWS::Logs::LogGrouprecurso chamado CloudControlApiLogGroup para 90 dias.

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

Como o Cloud Control API atualiza os recursos

Para atualizar um recurso, o Cloud Control API primeiro recupera o estado atual do recurso e, em seguida, atualiza o recurso em um processo de duas etapas:

  • O Cloud Control API 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 o Cloud Control API não faz atualizações no recurso.

  • Em seguida, o Cloud Control API chama o manipulador de atualizações do tipo de recurso para atualizar o recurso.

    Se o manipulador de atualizações falhar em algum momento, o Cloud Control API não reverterá o recurso para o estado anterior.

Por exemplo, considere o seguinte documento de patch definido para atualizar um AWS::Logs::LogGrouprecurso. 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 o Cloud Control API 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 3653 dias, a primeira operação test falhará e o Cloud Control API 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

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 ter mais informações, consulte Acompanhando o progresso de uma solicitações de operações de recursos.