

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.

# Actualice los modelos de activos, los modelos de componentes y las interfaces
<a name="update-asset-models"></a>

Utilice la AWS IoT SiteWise consola o la API para actualizar un modelo de activos, un modelo de componentes o una interfaz.

No se puede cambiar el tipo o el tipo de datos de una propiedad existente ni la ventana de una métrica existente. Tampoco puede cambiar el tipo de modelo, de modelo de activos a modelo de componentes o interfaz, o al revés.

**importante**  
Si elimina una propiedad de un modelo de activos o de un modelo de componentes, AWS IoT SiteWise elimina todos los datos anteriores de esa propiedad. En el caso de los modelos de componentes, esto afecta a **todos los modelos de activos que utilizan ese modelo de componentes**, por lo que hay que tener especial cuidado de entender hasta qué punto se puede aplicar el cambio.
Si elimina una definición de jerarquía de un modelo de activos, AWS IoT SiteWise disocia todos los activos de esa jerarquía.

Al actualizar un modelo de activos, todos los activos basados en ese modelo reflejan los cambios que realice en el modelo subyacente. Hasta que los cambios se propaguen, cada activo tiene el estado `UPDATING`. Debe esperar hasta que esos activos vuelvan al estado `ACTIVE` antes de interactuar con ellos. Durante este tiempo, el estado del modelo de activos actualizado será `PROPAGATING`.

Al actualizar un modelo de componentes, todos los modelos de activos que incorporan ese modelo de componentes reflejan los cambios. Hasta que los cambios en el modelo de componentes se propaguen, cada modelo de activos afectado tiene el estado `UPDATING`, seguido de `PROPAGATING` cuando actualiza sus activos asociados, tal como se describe en el párrafo anterior. Debe esperar hasta que esos modelos de activos vuelvan al estado `ACTIVE` antes de interactuar con ellos. Durante este tiempo, el estado del modelo de componentes actualizado será `PROPAGATING`.

Para obtener más información, consulte [Estados de activos y modelos](asset-and-model-states.md).

**Topics**
+ [Actualización de un modelo de activos, un modelo de componentes o una interfaz (consola)](#update-asset-model-console)
+ [Actualice un modelo de activo, un modelo de componentes o una interfaz (AWS CLI)](#update-asset-model-cli)

## Actualización de un modelo de activos, un modelo de componentes o una interfaz (consola)
<a name="update-asset-model-console"></a>

Puede utilizar la AWS IoT SiteWise consola para actualizar un modelo de activos, un modelo de componentes o una interfaz.

**Para actualizar un modelo de activos, un modelo de componentes o una interfaz (consola)**

1. <a name="sitewise-open-console"></a>Vaya a la [consola de AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/).

1. <a name="sitewise-choose-models"></a>En el panel de navegación, elija **Models (Modelos)**.

1. Elija el modelo de activo, el modelo de componentes o la interfaz que desee actualizar.

1. Elija **Edit (Edición de)**.

1. En la página **Editar el modelo**, realice alguna de las siguientes acciones:
   + En **Detalles del modelo**, cambie el **Nombre** del modelo.
   + Cambie cualquiera de las **Definiciones de atributos**. No se puede cambiar el **Tipo de datos** de los atributos existentes. Para obtener más información, consulte [Definición de datos estáticos (atributos)](attributes.md).
   + Cambie cualquiera de las **Definiciones de mediciones**. No se puede cambiar el **Tipo de datos** de las mediciones existentes. Para obtener más información, consulte [Definición de flujos de datos procedentes del equipo (mediciones)](measurements.md).
   + Cambie cualquiera de las **Definiciones de transformación**. Para obtener más información, consulte [Datos de transformación (transformaciones)](transforms.md).
   + Cambie cualquiera de las **Definiciones de métricas**. No se puede cambiar el **Intervalo de tiempo** de las métricas existentes. Para obtener más información, consulte [Agregación de datos desde propiedades y otros activos (métricas)](metrics.md).
   + (Solo modelos de activos) Cambie cualquiera de las **Definiciones de la jerarquía**. No se puede cambiar el **Modelo de jerarquía** de las jerarquías existentes. Para obtener más información, consulte [Definición de jerarquías de modelos de activos](define-asset-hierarchies.md).

1. Seleccione **Save**.

**nota**  
 Las solicitudes de actualización realizadas en la consola se rechazan si otro usuario actualiza correctamente el modelo de activos desde la última vez que usted abrió la página **Editar modelo**. La consola solicita al usuario que **actualice** la página **Editar modelo** para obtener el modelo actualizado. Debe volver a realizar las actualizaciones e intentar guardarlas. Consulte [Bloqueo positivo de las escrituras del modelo de activos](opt-locking-for-model.md) para obtener más detalles. 

## Actualice un modelo de activo, un modelo de componentes o una interfaz (AWS CLI)
<a name="update-asset-model-cli"></a>

Utilice AWS Command Line Interface (AWS CLI) para actualizar un modelo de activos, un modelo de componentes o una interfaz.

Utilice la [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html)API para actualizar el nombre, la descripción y las propiedades de un modelo de activos, un modelo de componentes o una interfaz. Solo en el caso de los modelos de activos, puede actualizar las jerarquías. En el caso de las interfaces, puede actualizar las propiedades y jerarquías. Especifique los siguientes parámetros:
+ `assetModelId`: el ID del activo. Es el ID real en formato UUID o el `externalId:myExternalId` si lo tiene. Para obtener más información, consulte [Objetos de referencia con objetos externos IDs](object-ids.md#external-id-references) en la *Guía del usuario de AWS IoT SiteWise *.

Especifique el modelo actualizado en la carga útil. Para obtener información sobre el formato esperado de un modelo de activos o de componentes, consulte [Cree modelos de activos en AWS IoT SiteWise](create-asset-models.md). 

**aviso**  
La [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html)API sobrescribe el modelo existente con el modelo que usted proporciona en la carga útil. Para evitar eliminar las propiedades o jerarquías del modelo, debes incluir sus propiedades IDs y sus definiciones en la carga útil del modelo actualizado. Para obtener información sobre cómo consultar la estructura existente del modelo, consulte la [DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html)operación.

**nota**  
El siguiente procedimiento solo puede actualizar modelos compuestos de tipo `AWS/ALARM`. Si desea actualizar los modelos `CUSTOM` compuestos, utilícelos [UpdateAssetModelCompositeModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModelCompositeModel.html)en su lugar. Para obtener más información, consulte [Actualización de modelos compuestos personalizados (componentes)](update-custom-composite-models.md).

**Actualización de un modelo de activos o un modelo de componentes (AWS CLI)**

1. Ejecute el siguiente comando para recuperar la definición del modelo existente. *asset-model-id*Sustitúyalo por el ID o el ID externo del modelo de activos o del modelo de componentes que desee actualizar.

   ```
   aws iotsitewise describe-asset-model --asset-model-id asset-model-id
   ```

   El comando anterior devuelve la definición del modelo correspondiente a la última versión del modelo.

    Para un caso de uso en el que un modelo de activos esté en estado `FAILED`, recupere la definición del modelo válida correspondiente a su versión activa para crear su solicitud de actualización. Para obtener más información, consulte [Versiones de modelos de activos](model-active-version.md). Ejecute el siguiente comando para recuperar la definición del modelo de activos activa:

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

   La operación devuelve una respuesta que contiene los detalles del modelo. La respuesta tiene la siguiente estructura.

   ```
   {
       "assetModelId": "String",
       "assetModelArn": "String",
       "assetModelName": "String",
       "assetModelDescription": "String",
       "assetModelProperties": Array of AssetModelProperty,
       "assetModelHierarchies": Array of AssetModelHierarchyDefinition,
       "assetModelCompositeModels": Array of AssetModelCompositeModel,
       "assetModelCompositeModelSummaries": Array of AssetModelCompositeModelSummary,
       "assetModelCreationDate": "String",
       "assetModelLastUpdateDate": "String",
       "assetModelStatus": {
         "state": "String",
         "error": {
           "code": "String",
           "message": "String"
         },
       "assetModelType": "String"
       },
       "assetModelVersion": "String",
       "eTag": "String"
   }
   ```

   Para obtener más información, consulte la operación [DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html).

1. Cree un archivo llamado `update-asset-model.json` y copie la respuesta del comando anterior en el archivo.

1. Elimine los siguientes pares de clave-valor del objeto JSON en `update-asset-model.json`:
   + `assetModelId`
   + `assetModelArn`
   + `assetModelCompositeModelSummaries`
   + `assetModelCreationDate`
   + `assetModelLastUpdateDate`
   + `assetModelStatus`
   + `assetModelType`
   + `assetModelVersion`
   + `eTag`

   La [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html)operación espera una carga útil con la siguiente estructura:

   ```
   {
     "assetModelName": "String",
     "assetModelDescription": "String",
     "assetModelProperties": Array of AssetModelProperty,
     "assetModelHierarchies": Array of AssetModelHierarchyDefinition,
     "assetModelCompositeModels": Array of AssetModelCompositeModel
   }
   ```

1. En `update-asset-model.json`, realice una de las siguientes acciones:
   + Cambie el nombre del modelo de activos (`assetModelName`).
   + Cambie, agregue o elimine la descripción del modelo de activos (`assetModelDescription`).
   + Cambie, agregue o elimine cualquiera de las propiedades del modelo de activos (`assetModelProperties`). No puede cambiar `dataType` de las propiedades existentes ni `window` de las métricas existentes. Para obtener más información, consulte [Definición de propiedades de datos](asset-properties.md).
   + Cambie, agregue o elimine cualquiera de las jerarquías del modelo de activos (`assetModelHierarchies`). No puede cambiar `childAssetModelId` de las jerarquías existentes. Para obtener más información, consulte [Definición de jerarquías de modelos de activos](define-asset-hierarchies.md).
   + Cambie, añada o elimine cualquiera de los modelos compuestos del modelo de activos de tipo `AWS/ALARM` (`assetModelCompositeModels`). Las alarmas monitorean otras propiedades para que pueda identificar cuándo requieren atención los equipos o procesos. Cada definición de alarma es un modelo compuesto que estandariza el conjunto de propiedades que utiliza la alarma. Para obtener más información, consulte [Supervise los datos con las alarmas integradas AWS IoT SiteWise](industrial-alarms.md) y [Defina las alarmas en los modelos de activos en AWS IoT SiteWise](define-alarms.md).

1. Ejecute el siguiente comando para actualizar el modelo de activos con la definición almacenada en `update-asset-model.json`. *asset-model-id*Sustitúyala por el ID del modelo de activos:

   ```
   aws iotsitewise update-asset-model \
     --asset-model-id asset-model-id \
     --cli-input-json file://model-payload.json
   ```

**importante**  
 Cuando varios usuarios actualizan un modelo de activos al mismo tiempo, es posible que un usuario sobrescriba sin darse cuenta los cambios de otro usuario. Para evitarlo, debe definir una solicitud de actualización condicional. Consulte [Bloqueo positivo de las escrituras del modelo de activos](opt-locking-for-model.md). 