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.
El bloqueo optimista de las escrituras del modelo de activos
Al actualizar un modelo de activos, el usuario hace lo siguiente:
Lea la definición del modelo de activos actual.
Edite la definición del modelo de activos con los cambios necesarios.
Actualice 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 del modelo de activos X.
El usuario B lee la definición del modelo de activos X 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 optimista 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. AWS IoT SiteWise Esto evita que las actualizaciones accidentales sobrescriban las escrituras del modelo de activos.
Siga estos pasos para escribir el modelo de activos con un bloqueo optimista:
Temas
Realizar la escritura del modelo de activos con un bloqueo optimista (consola)
El siguiente procedimiento describe cómo escribir un modelo de activos con un enfoque optimista sobre la versión activa del modelo de activos en 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 los cambios en la página de edición del modelo.
Seleccione Guardar.
nota
A veces, se han realizado correctamente una o varias actualizaciones 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 desactiva el botón Guardar y solicita al usuario que actualice la página de edición del modelo. El usuario debe volver a actualizar la nueva versión activa del modelo. El usuario debe realizar los siguientes pasos adicionales:
Elija Actualizar.
Vuelva a seguir los pasos 5 y 6.
El modelo de activos que se ejecuta escribe con un bloqueo optimista (AWS CLI)
El siguiente procedimiento describe cómo realizar escrituras de modelos de activos con un bloqueo optimista en el AWS CLI.
-
Obtenga la definición del modelo actual ETag asociada
ETag
es un token único que se genera para cada nueva representación de un modelo de activos. Llame DescribeAssetModelAPIpara obtener la definición del modelo de activos actual y la asociadaETag
a la respuesta.Durante las actualizaciones simultáneas, los usuarios realizan actualizaciones correctas (modelo en
ACTIVE
estado) o actualizaciones incorrectas (modelo enFAILED
estado). Para garantizar que un usuario no sobrescriba accidentalmente una actualización correcta, debe recuperar la versión activa del modelo de Versiones del modelo de activos activos y obtener elETag
valor.Ejecute 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
versión para no sobrescribir ninguna actualización. -
Realiza DELETE operaciones UPDATE y operaciones con condiciones de escritura
El siguiente modelo de activos APIs admite un bloqueo optimista:
nota
Los siguientes escenarios
UpdateAssetModel
API se utilizan 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 ninguna actualización correcta. No debe existir una nueva versión activa desde la última versión activa leída.
e-tag
Sustitúyala por laETag
devuelta en la API operación 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 porque se encuentra en un
FAILED
estado. Aún es 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 ninguna 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 las actualizaciones correctas o incorrectas. Este comando define una condición de escritura que garantiza que no se cree una versión más reciente desde la última versión leída por última vez.
e-tag
Sustitúyalo por elETag
devuelto en la API operación 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 elPreconditionFailedException
.
-