Bloqueio otimista para gravações de modelos de ativos - AWS IoT SiteWise

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

Bloqueio otimista para gravações de modelos de ativos

Ao atualizar um modelo de ativo, o usuário faz o seguinte:

  1. Leia a definição atual do modelo de ativos.

  2. Edite a definição do modelo de ativo com as alterações necessárias.

  3. Atualize o modelo de ativos com a nova definição.

Em um cenário com dois usuários atualizando um modelo, o seguinte é possível:

  • O usuário A lê a definição do modelo de ativos X.

  • O usuário B lê a definição do modelo de ativos X e confirma as alterações, modificando a definição de X.

  • O usuário A confirma e substitui a alteração feita pelo usuário B para o modelo de ativo X, sem verificar ou incorporar as alterações do usuário B.

O bloqueio otimista é um mecanismo usado AWS IoT SiteWise para evitar substituições acidentais, como no cenário acima. O bloqueio otimista é uma estratégia para garantir que a versão atual do modelo de ativos que está sendo atualizada ou excluída seja a mesma da versão atual em. AWS IoT SiteWise Isso evita que as gravações do modelo de ativos sejam substituídas por atualizações acidentais.

Siga estas etapas para realizar gravações de modelos de ativos com bloqueio otimista:

Executando gravações de modelos de ativos com bloqueio otimista (console)

O procedimento abaixo descreve como realizar gravações de modelos de ativos com um bloqueio otimista na versão ativa do modelo de ativos no console.

  1. Navegue até o console do AWS IoT SiteWise.

  2. No painel de navegação, selecione Modelos.

  3. Escolha o modelo do ativo ou o modelo do componente a ser atualizado.

  4. Selecione a opção Editar.

  5. Faça alterações na página Editar modelo.

  6. Escolha Salvar.

    nota

    Às vezes, uma ou mais atualizações bem-sucedidas do modelo ocorreram entre o momento em que o usuário começa a editar o modelo e salva as edições feitas no modelo.

    Para garantir que o usuário não substitua acidentalmente novas atualizações bem-sucedidas, a gravação do usuário é rejeitada. O console desativa o botão Salvar e solicita que o usuário atualize a página Editar modelo. O usuário deve atualizar a nova versão ativa do modelo novamente. O usuário deve executar as seguintes etapas adicionais:

  7. Escolha Refresh.

  8. Siga as etapas 5 e 6 novamente.

Executando gravações de modelos de ativos com bloqueio otimista ()AWS CLI

O procedimento abaixo descreve como realizar gravações de modelos de ativos com bloqueio otimista no. AWS CLI

  1. Busque o ETag associado à definição do modelo atual

    ETagé um token exclusivo gerado para cada nova representação de um modelo de ativo. Ligue DescribeAssetModelAPIpara obter a definição atual do modelo de ativo e a associada a ETag partir da resposta.

    Durante as atualizações simultâneas, os usuários realizam atualizações bem-sucedidas (modelo no ACTIVE estado) ou atualizações malsucedidas (modelo no FAILED estado). Para garantir que um usuário não substitua acidentalmente uma atualização bem-sucedida, você deve recuperar a versão ativa do modelo de Versões do modelo de ativos ativo e obter o valor. ETag

    Execute o seguinte comando:

    aws iotsitewise describe-asset-model --asset-model-id asset-model-id \ --asset-model-version ACTIVE

    A resposta retorna a seguinte estrutura:

    { "assetModelId": "String", "assetModelArn": "String", "assetModelName": "String", ... "eTag": "String" }
    nota

    Você deve recuperar a versão mais recente do modelo de ativo e ETag dela para não substituir nenhuma atualização.

  2. Execute UPDATE e DELETE opere com condições de gravação

    O seguinte modelo de ativos APIs oferece suporte ao bloqueio otimista:

    nota

    Os cenários abaixo são usados UpdateAssetModel API como referência. As condições se aplicam a todas as operações listadas acima.

    Os cenários abaixo descrevem as diferentes condições de gravação, dependendo dos requisitos de controle de concorrência:

    • Execute o comando a seguir para não sobrescrever nenhuma atualização bem-sucedida. Uma nova versão ativa não deve existir, desde a última versão ativa lida. e-tagSubstitua pelo ETag retornado na API operação usada na leitura da versão ativa.

      aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --if-match e-tag \ --match-for-version-type ACTIVE \ --cli-input-json file://model-payload.json
    • Quando a criação de um modelo falha, ainda não existe uma versão ativa para ele, porque ele está em um FAILED estado. Ainda é possível sobrescrever uma nova versão ativa que esteja presente, antes que suas alterações sejam confirmadas. Execute o comando a seguir para não sobrescrever uma nova versão ativa, quando uma versão ativa não existir durante sua última leitura.

      aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --if-none-match "*" \ --match-for-version-type ACTIVE \ --cli-input-json file://model-payload.json
    • Execute o comando a seguir para evitar a substituição de atualizações bem-sucedidas ou malsucedidas. Esse comando define uma condição de gravação que garante que uma versão mais recente não seja criada desde a última leitura da versão mais recente. e-tagSubstitua pelo ETag retornado na API operação usada na leitura da versão ativa.

      aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --if-match eTag \ --match-for-version-type LATEST \ --cli-input-json file://model-payload.json

      Se a condição de gravação for avaliada comoFALSE, a solicitação de gravação falhará com o. PreconditionFailedException