Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Bloqueo positivo de las escrituras del modelo de activos
Al actualizar un modelo de activos, el usuario hace lo siguiente:
Lee la definición del modelo de activos actual.
Edita la definición del modelo de activos con los cambios necesarios.
Actualiza el modelo de activos con la nueva definición.
En un escenario en el que dos usuarios actualizan un modelo, es posible hacer lo siguiente:
El usuario A lee la definición X del modelo de activos.
El usuario B lee la definición X del modelo de activos y confirma los cambios, modificando la definición de X.
El usuario A confirma y sobrescribe el cambio realizado por el usuario B para el modelo de activos X, sin verificar ni incorporar los cambios del usuario B.
El bloqueo optimista es un mecanismo que se utiliza AWS IoT SiteWise para evitar sobrescrituras accidentales, como en el escenario anterior. El bloqueo positivo es una estrategia para garantizar que la versión actual del modelo de activos que se está actualizando o eliminando sea la misma que la versión actual de AWS IoT SiteWise. Esto evita que las actualizaciones accidentales sobrescriban las escrituras del modelo de activos.
Siga estos pasos para realizar escrituras del modelo de activos con bloqueo positivo:
Temas
Realización de escrituras del modelo de activos con bloqueo positivo (consola)
El siguiente procedimiento describe cómo realizar escrituras del modelo de activos con bloqueo positivo sobre la versión activa del modelo de activos de la consola.
Vaya a la consola de AWS IoT SiteWise
. En el panel de navegación, elija Models (Modelos).
Elija el modelo de activos o el modelo de componentes que desee actualizar.
Elija Editar.
Realice cambios en la página Editar modelo.
Seleccione Guardar.
nota
Algunas veces se han producido una o varias actualizaciones correctas del modelo entre el momento en que el usuario comienza a editar el modelo y el momento en que guarda las modificaciones realizadas en el modelo.
Para garantizar que el usuario no sobrescriba accidentalmente las nuevas actualizaciones realizadas correctamente, se rechaza la escritura del usuario. La consola deshabilita el botón Guardar y solicita al usuario que actualice la página Editar modelo. El usuario debe volver a actualizar la nueva versión activa del modelo. El usuario debe dar los siguientes pasos adicionales:
Elija Actualizar.
Siga los pasos 5 y 6 de nuevo.
Realización de escrituras del modelo de activos con bloqueo positivo (AWS CLI)
El siguiente procedimiento describe cómo realizar escrituras del modelo de activos con bloqueo positivo en la AWS CLI.
-
Obtenga la definición del modelo ETag asociada al modelo actual
ETag
es un token único que se genera para cada nueva representación de un modelo de activos. Llame a la DescribeAssetModelAPI para obtener la definición del modelo de activos actual y la asociadaETag
a la respuesta.En actualizaciones simultáneas los usuarios realizan actualizaciones correctas (modelo en estado
ACTIVE
) o actualizaciones incorrectas (modelo en estadoFAILED
). Para garantizar que un usuario no sobrescriba accidentalmente una actualización correcta, debe recuperar la versión activa del modelo de activos de Versiones de modelos de activos y obtener el valor deETag
.Ejecuta el siguiente comando:
aws iotsitewise describe-asset-model --asset-model-id asset-model-id \ --asset-model-version ACTIVE
La respuesta devuelve la siguiente estructura:
{ "assetModelId": "
String
", "assetModelArn": "String
", "assetModelName": "String
", ... "eTag": "String
" }nota
Debe recuperar la última versión del modelo de activos y su
ETag
para no sobrescribir ninguna actualización. -
Realice las operaciones UPDATE y DELETE con condiciones de escritura
El siguiente modelo de activos APIs apoya un bloqueo optimista:
nota
Los siguientes escenarios utilizan la API
UpdateAssetModel
como referencia. Las condiciones se aplican a todas las operaciones enumeradas anteriormente.Los siguientes escenarios describen las diferentes condiciones de escritura en función de los requisitos de control de simultaneidad:
-
Ejecute el siguiente comando para no sobrescribir actualizaciones correctas. No debe existir una nueva versión activa desde la última versión activa leída. Sustituya
e-tag
por laETag
devuelta en la operación de la API utilizada en la lectura de la versión activa.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
-
Cuando se produce un error en la creación de un modelo, todavía no existe una versión activa para él, porque se encuentra en estado
FAILED
. Todavía sigue siendo posible sobrescribir una nueva versión activa que esté presente antes de que se confirmen los cambios. Ejecute el siguiente comando para no sobrescribir una nueva versión activa cuando no haya una versión activa durante la última lectura.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
-
Ejecute el siguiente comando para evitar sobrescribir actualizaciones correctas o fallidas. Este comando define una condición de escritura que garantiza que no se cree una versión más reciente desde la versión más reciente leída por última vez. Sustituya
e-tag
por laETag
devuelta en la operación de la API utilizada en la lectura de la versión activa.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
Si la condición de escritura se evalúa como
FALSE
, la solicitud de escritura fallará con laPreconditionFailedException
.
-