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:
Leia a definição atual do modelo de ativos.
Edite a definição do modelo de ativo com as alterações necessárias.
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:
Tópicos
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.
Navegue até o console do AWS IoT SiteWise
. No painel de navegação, selecione Modelos.
Escolha o modelo do ativo ou o modelo do componente a ser atualizado.
Selecione a opção Editar.
Faça alterações na página Editar modelo.
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:
Escolha Refresh.
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
-
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 aETag
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 noFAILED
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. -
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-tag
Substitua peloETag
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-tag
Substitua peloETag
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 como
FALSE
, a solicitação de gravação falhará com o.PreconditionFailedException
-