

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.

# Personalización de sus componentes de machine learning
<a name="ml-customization"></a>

En AWS IoT Greengrass, puede configurar ejemplos de [componentes de aprendizaje automático](perform-machine-learning-inference.md#ml-components) para personalizar la forma en que realiza la inferencia de aprendizaje automático en sus dispositivos, con los componentes de inferencia, modelo y tiempo de ejecución como componentes básicos. AWS IoT Greengrass también le proporciona la flexibilidad de usar los componentes de muestra como plantillas y crear sus propios componentes personalizados según sea necesario. Puede combinar este enfoque modular para personalizar los componentes de inferencia del machine learning de las siguientes maneras:

**Uso de ejemplos de componentes de inferencia**  
+ Modifique la configuración de los componentes de inferencia cuando los implemente.
+ Utilice un modelo personalizado con el componente de inferencia de muestra sustituyendo el componente almacén de modelos de muestra por un componente de modelo personalizado. El modelo personalizado debe entrenarse con el mismo tiempo de ejecución que el modelo de muestra.

**Uso de componentes de inferencia personalizados**  
+ Use código de inferencia personalizado con los modelos y tiempos de ejecución de muestra agregando componentes de modelos públicos y componentes de tiempo de ejecución como dependencias de los componentes de inferencia personalizados.
+ Cree y agrega componentes de modelo personalizados o componentes de tiempo de ejecución como dependencias de componentes de inferencia personalizados. Debe utilizar componentes personalizados si desea utilizar un código de inferencia personalizado o un entorno de ejecución para el que AWS IoT Greengrass no se proporcione un componente de muestra. 

**Topics**
+ [Modificación de la configuración de un componente de inferencia público](#modify-ml-component-config)
+ [Uso de un modelo personalizado con el componente de inferencia de muestra](#override-public-model-store)
+ [Creación de componentes de machine learning personalizados](#create-private-ml-components)
+ [Creación de un componente de inferencia personalizado](#create-inference-component)

## Modificación de la configuración de un componente de inferencia público
<a name="modify-ml-component-config"></a>

En la [consola de AWS IoT Greengrass](https://console.aws.amazon.com/greengrass), la página del componente muestra la configuración predeterminada de ese componente. Por ejemplo, la configuración predeterminada del componente de clasificación de imágenes de TensorFlow Lite es la siguiente:

```
{
  "accessControl": {
    "aws.greengrass.ipc.mqttproxy": {
      "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": {
        "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.",
        "operations": [
          "aws.greengrass#PublishToIoTCore"
        ],
        "resources": [
          "ml/tflite/image-classification"
        ]
      }
    }
  },
  "PublishResultsOnTopic": "ml/tflite/image-classification",
  "ImageName": "cat.jpeg",
  "InferenceInterval": 3600,
  "ModelResourceKey": {
    "model": "TensorFlowLite-Mobilenet"
  }
}
```

Cuando implementa un componente de inferencia público, puede modificar la configuración predeterminada para personalizar su implementación. Para obtener información sobre los parámetros de configuración disponibles para cada componente de inferencia pública, consulte el tema del componente en [Componentes de machine learning proporcionados por AWS](perform-machine-learning-inference.md#ml-components).

En esta sección se describe cómo implementar un componente modificado desde la AWS IoT Greengrass consola. Para obtener información sobre la implementación de componentes mediante el AWS CLI, consulte[Crear implementaciones](create-deployments.md).<a name="modify-ml-component-config-console"></a>

**Cómo implementar un componente de inferencia pública modificado (consola)**

1. Inicie sesión en la [consola de AWS IoT Greengrass](https://console.aws.amazon.com/greengrass).

1. En el menú de navegación, elija **Componentes**.

1. En la página **Componentes**, en la pestaña **Componentes públicos**, elija el componente que desea implementar.

1. En la página del componente, elija **Implementar**.

1. <a name="add-deployment"></a>En **Agregar a la implementación**, elija una de las siguientes opciones:

   1. Para combinar este componente con una implementación existente en el dispositivo de destino, elija **Agregar a la implementación existente** y, a continuación, seleccione la implementación que desee revisar.

   1. Para crear una nueva implementación en el dispositivo de destino, elija **Crear nueva implementación**. Si tiene una implementación existente en su dispositivo, al elegir este paso se reemplaza la implementación existente. 

1. <a name="specify-deployment-target"></a>En la página **Especificar detalles**, haga lo siguiente: 

   1. En **Información de implementación**, introduzca o modifique el nombre descriptivo de su implementación.

   1. En **Objetivos de implementación**, seleccione un objetivo para su implementación y elija **Siguiente**. No puede cambiar el objetivo de implementación si está revisando una implementación existente.

1. En la página **Seleccionar componentes**, en **Componentes públicos**, compruebe que está seleccionado el componente de inferencia con la configuración modificada y elija **Siguiente**.

1. En la página **Configurar componentes**, haga lo siguiente: 

   1. Seleccione el componente de inferencia y elija **Configurar componente**.

   1. En **Actualización de configuración**, introduzca los valores de configuración que desee actualizar. Por ejemplo, introduzca la siguiente actualización de configuración en el cuadro **Configuración para combinar** para cambiar el intervalo de inferencia a 15 segundos e indique al componente que busque la imagen con nombre `custom.jpg` en la carpeta `/custom-ml-inference/images/`. 

      ```
      {
        "InferenceInterval": "15",
        "ImageName": "custom.jpg",
        "ImageDirectory": "/custom-ml-inference/images/"
      }
      ```

      Para restablecer toda la configuración de un componente a sus valores predeterminados, especifique una sola cadena vacía `""` en el cuadro **Restablecer rutas**. 

   1. Seleccione **Confirmar** y, a continuación, elija **Siguiente**.

1. En la página **Configurar ajustes avanzados**, mantenga los ajustes de configuración predeterminados y seleccione **Siguiente**.

1. En la página **Revisar**, elija **Implementar**.

## Uso de un modelo personalizado con el componente de inferencia de muestra
<a name="override-public-model-store"></a>

Si desea utilizar el componente de inferencia de ejemplo con sus propios modelos de aprendizaje automático para un tiempo de ejecución que AWS IoT Greengrass proporcione un componente de tiempo de ejecución de ejemplo, debe anular los componentes del modelo público por componentes que utilicen esos modelos como artefactos. En general, debe completar los siguientes pasos para usar un modelo personalizado con el componente de inferencia de muestra:

1. Cree un componente de modelo que utilice un modelo personalizado en un bucket de S3 como artefacto. Su modelo personalizado debe entrenarse con el mismo tiempo de ejecución que el modelo que desea reemplazar.

1. Modifique el parámetro de configuración `ModelResourceKey` en el componente de inferencia para usar el modelo personalizado. Para obtener información sobre la actualización de la configuración del componente de inferencia, consulte [Modificación de la configuración de un componente de inferencia público](#modify-ml-component-config).

Al implementar el componente de inferencia, AWS IoT Greengrass busca la versión más reciente de las dependencias de sus componentes. Anula el componente del modelo público dependiente si existe una versión personalizada posterior del componente en la misma banda. Cuenta de AWS Región de AWS

### Creación de un componente de modelo personalizado (consola)
<a name="create-model-store-component-console"></a>

1. Suba un modelo en su bucket de S3. Para obtener más información acerca de cargar sus modelos a un bucket de S3, consulte [Cómo trabajar con buckets de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) en la *Guía del usuario de Amazon Simple Storage Service*.
**nota**  <a name="s3-artifacts-note"></a>
<a name="sr-artifacts-req"></a>Debe almacenar sus artefactos en depósitos de S3 que estén en los mismos Cuenta de AWS y Región de AWS como los componentes. Para permitir el acceso AWS IoT Greengrass a estos artefactos, el [rol del dispositivo Greengrass](device-service-role.md) debe permitir la `s3:GetObject` acción. Para obtener más información acerca del rol del dispositivo, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

1. En el menú de navegación de la [consola de AWS IoT Greengrass](https://console.aws.amazon.com/greengrass), elija **Componentes**.

1. Recupere la receta del componente para el componente del almacén de modelos público.

   1. En la página **Componentes**, en la pestaña **Componentes públicos**, busque y elija el componente del modelo público para el que desee crear una nueva versión. Por ejemplo, `variant.DLR.ImageClassification.ModelStore`.

   1. En la página de componentes, elija **Ver receta** y copie la receta JSON que se muestra.

1. En en la página **Componentes**, en la pestaña **Mis componentes**, elija **Crear componente**.

1. En la página **Crear componente**, en **Información del componente**, seleccione **Introducir la receta como JSON** como origen del componente.

1. En el cuadro **Receta**, pegue la receta del componente que copió anteriormente.

1. <a name="override-model-recipe-config"></a>En la receta, actualice los siguientes valores:
   + `ComponentVersion`: aumenta la versión menor del componente. 

     Cuando cree un componente personalizado para anular un componente un modelo público, debe actualizar solo la versión menor de la versión del componente existente. Por ejemplo, si la versión del componente público es `2.1.0`, puede crear un componente personalizado con la versión `2.1.1`.
   + `Manifests.Artifacts.Uri`: actualiza cada valor de URI al URI de Amazon S3 del modelo que desea utilizar.
**nota**  
No cambie el nombre del componente.

1. Seleccione **Crear componente**.

### Creación de un componente de modelo personalizado (AWS CLI)
<a name="create-model-store-component-cli"></a>

1. Suba un modelo en su bucket de S3. Para obtener más información acerca de cargar sus modelos a un bucket de S3, consulte [Cómo trabajar con buckets de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) en la *Guía del usuario de Amazon Simple Storage Service*.
**nota**  <a name="s3-artifacts-note"></a>
<a name="sr-artifacts-req"></a>Debe almacenar sus artefactos en depósitos S3 que estén en el mismo lugar que Cuenta de AWS los Región de AWS componentes. Para permitir el acceso AWS IoT Greengrass a estos artefactos, el [rol del dispositivo Greengrass](device-service-role.md) debe permitir la `s3:GetObject` acción. Para obtener más información acerca del rol del dispositivo, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

1. Ejecute el siguiente comando para recuperar la receta de componente del componente público. Este comando escribe la receta del componente en el archivo de salida que usted proporcione en el comando. Convierta la cadena codificada base64 recuperada a JSON o YAML, según sea necesario.

------
#### [ Linux, macOS, or Unix ]

   ```
   aws greengrassv2 get-component \
       --arn <arn> \
       --recipe-output-format <recipe-format> \
       --query recipe \
       --output text | base64 --decode > <recipe-file>
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws greengrassv2 get-component ^
       --arn <arn> ^
       --recipe-output-format <recipe-format> ^
       --query recipe ^
       --output text > <recipe-file>.base64
   
   certutil -decode <recipe-file>.base64 <recipe-file>
   ```

------
#### [ PowerShell ]

   ```
   aws greengrassv2 get-component `
       --arn <arn> `
       --recipe-output-format <recipe-format> `
       --query recipe `
       --output text > <recipe-file>.base64
   
   certutil -decode <recipe-file>.base64 <recipe-file>
   ```

------

1. Actualice el nombre del archivo de recetas a `<component-name>-<component-version>`, donde la versión del componente sea la versión de destino del nuevo componente. Por ejemplo, `variant.DLR.ImageClassification.ModelStore-2.1.1.yaml`. 

1. <a name="override-model-recipe-config"></a>En la receta, actualice los siguientes valores:
   + `ComponentVersion`: aumenta la versión menor del componente. 

     Cuando cree un componente personalizado para anular un componente un modelo público, debe actualizar solo la versión menor de la versión del componente existente. Por ejemplo, si la versión del componente público es `2.1.0`, puede crear un componente personalizado con la versión `2.1.1`.
   + `Manifests.Artifacts.Uri`: actualiza cada valor de URI al URI de Amazon S3 del modelo que desea utilizar.
**nota**  
No cambie el nombre del componente.

1. Ejecute el siguiente comando para crear un componente nuevo con la receta que recuperó y modificó.

   ```
   aws greengrassv2 create-component-version \
       --inline-recipe fileb://path/to/component/recipe
   ```
**nota**  
Este paso crea el componente del AWS IoT Greengrass servicio en. Nube de AWS Puede utilizar la CLI de Greengrass para desarrollar, probar e implementar su componente de forma local antes de cargarlo en la nube. Para obtener más información, consulte [Desarrollo de componentes de AWS IoT Greengrass](develop-greengrass-components.md).

Para obtener más información sobre cómo crear componentes, consulte [Desarrollo de componentes de AWS IoT Greengrass](develop-greengrass-components.md).

## Creación de componentes de machine learning personalizados
<a name="create-private-ml-components"></a>

Debe crear componentes personalizados si desea utilizar un código de inferencia personalizado o un tiempo de ejecución para el que AWS IoT Greengrass no se proporcione un componente de muestra. Puede usar su código de inferencia personalizado con los modelos de aprendizaje automático y tiempos de ejecución de muestra AWS proporcionados, o puede desarrollar una solución de inferencia de aprendizaje automático completamente personalizada con sus propios modelos y tiempo de ejecución. Si sus modelos utilizan un entorno de ejecución para el que se AWS IoT Greengrass proporciona un ejemplo de componente de tiempo de ejecución, puede utilizar ese componente de tiempo de ejecución y tendrá que crear componentes personalizados únicamente para el código de inferencia y los modelos que desee utilizar. 

**Topics**
+ [Obtención de la receta de un componente público](#get-ml-component-recipes)
+ [Obtención de artefactos de componentes de muestra](#get-ml-component-artifacts)
+ [Carga de artefactos de componentes en un bucket de S3](#upload-ml-component-artifacts)
+ [Creación de componentes personalizados](#create-ml-components)

### Obtención de la receta de un componente público
<a name="get-ml-component-recipes"></a>

Puede utilizar la receta de un componente público de machine learning existente como plantilla para crear un componente personalizado. Para ver la receta de componentes de la última versión de un componente público, utilice la consola o utilice la AWS CLI siguiente opción:
+ **Uso de la consola**

  1. En la página **Componentes**, en la pestaña **Componentes públicos**, busque y elija el componente público.

  1. En la página del componente, elija **Ver receta**.
+ **Usando AWS CLI**

  Ejecute el siguiente comando para recuperar la receta de componente del componente de la variante pública. Este comando escribe la receta del componente en el archivo de receta JSON o YAML que proporcione en el comando. 

------
#### [ Linux, macOS, or Unix ]

  ```
  aws greengrassv2 get-component \
      --arn <arn> \
      --recipe-output-format <recipe-format> \
      --query recipe \
      --output text | base64 --decode > <recipe-file>
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  aws greengrassv2 get-component ^
      --arn <arn> ^
      --recipe-output-format <recipe-format> ^
      --query recipe ^
      --output text > <recipe-file>.base64
  
  certutil -decode <recipe-file>.base64 <recipe-file>
  ```

------
#### [ PowerShell ]

  ```
  aws greengrassv2 get-component `
      --arn <arn> `
      --recipe-output-format <recipe-format> `
      --query recipe `
      --output text > <recipe-file>.base64
  
  certutil -decode <recipe-file>.base64 <recipe-file>
  ```

------

  Sustituya los valores del comando de la siguiente manera:
  + `<arn>`. El Nombre de recurso de Amazon (ARN) del componente público. 
  + `<recipe-format>`. El formato en el que desea crear el archivo de recetas. Los valores admitidos son `JSON` y `YAML`.
  + `<recipe-file>`. El nombre de la receta en el formato `<component-name>-<component-version>`. 

### Obtención de artefactos de componentes de muestra
<a name="get-ml-component-artifacts"></a>

Puede utilizar los artefactos que utilizan los componentes públicos de machine learning como plantillas para crear sus artefactos de componentes personalizados, como códigos de inferencia o cadenas de instalación en tiempo de ejecución. 

Para ver los artefactos de muestra que se incluyen en los componentes públicos de machine learning, implemente el componente de inferencia público y, a continuación, visualice los artefactos del dispositivo en la carpeta `/greengrass/v2/packages/artifacts-unarchived/component-name/component-version/`. 

### Carga de artefactos de componentes en un bucket de S3
<a name="upload-ml-component-artifacts"></a>

Antes de poder crear un componente personalizado, debe cargar los artefactos del componente en un bucket de S3 y utilizar el S3 URIs en la receta del componente. Por ejemplo, para usar un código de inferencia personalizado en su componente de inferencia, cargue el código en un bucket de S3. A continuación, puede utilizar el URI de Amazon S3 de su código de inferencia como un artefacto en su componente. 

Para obtener más información acerca de cargar contenido a un bucket de S3, consulte [Cómo trabajar con buckets de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) en la *Guía del usuario de Amazon Simple Storage Service*.

**nota**  <a name="s3-artifacts-note"></a>
<a name="sr-artifacts-req"></a>Debe almacenar los artefactos en depósitos de S3 que estén en el mismo lugar que Cuenta de AWS Región de AWS los componentes. Para permitir el acceso AWS IoT Greengrass a estos artefactos, el [rol del dispositivo Greengrass](device-service-role.md) debe permitir la `s3:GetObject` acción. Para obtener más información acerca del rol del dispositivo, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

### Creación de componentes personalizados
<a name="create-ml-components"></a>

Puede utilizar los artefactos y las recetas que haya recuperado para crear sus componentes de machine learning personalizados. Para ver un ejemplo, consulta [Creación de un componente de inferencia personalizado](#create-inference-component).

Para obtener información detallada sobre la creación e implementación de componentes en los dispositivos de Greengrass, consulte [Desarrollo de componentes de AWS IoT Greengrass](develop-greengrass-components.md) y [Implemente AWS IoT Greengrass componentes en los dispositivos](manage-deployments.md).

## Creación de un componente de inferencia personalizado
<a name="create-inference-component"></a>

En esta sección, se muestra cómo crear un componente de inferencia personalizado con el componente de clasificación de imágenes de DLR como una plantilla.

**Topics**
+ [Carga de su código de inferencia a un bucket de Amazon S3](#create-inference-code)
+ [Creación de una receta para su componente de inferencia](#create-inference-component-recipe)
+ [Creación del componente de inferencia](#create-private-inference-component)

### Carga de su código de inferencia a un bucket de Amazon S3
<a name="create-inference-code"></a>

Cree su código de inferencia y, a continuación, cárguelo en un bucket de S3. Para obtener más información acerca de cargar contenido a un bucket de S3, consulte [Cómo trabajar con buckets de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) en la *Guía del usuario de Amazon Simple Storage Service*.

**nota**  <a name="s3-artifacts-note"></a>
<a name="sr-artifacts-req"></a>Debe almacenar sus artefactos en depósitos S3 que estén en el mismo lugar que Cuenta de AWS los Región de AWS componentes. Para permitir el acceso AWS IoT Greengrass a estos artefactos, el [rol del dispositivo Greengrass](device-service-role.md) debe permitir la `s3:GetObject` acción. Para obtener más información acerca del rol del dispositivo, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

### Creación de una receta para su componente de inferencia
<a name="create-inference-component-recipe"></a>

1. Ejecute el siguiente comando para recuperar la receta de componente del componente de clasificación de imágenes de DLR. Este comando escribe la receta del componente en el archivo de receta JSON o YAML que proporcione en el comando. 

------
#### [ Linux, macOS, or Unix ]

   ```
   aws greengrassv2 get-component \
       --arn arn:aws:greengrass:region:aws:components:aws.greengrass.DLRImageClassification:versions:version \
       --recipe-output-format JSON | YAML \
       --query recipe \
       --output text | base64 --decode > <recipe-file>
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws greengrassv2 get-component ^
       --arn arn:aws:greengrass:region:aws:components:aws.greengrass.DLRImageClassification:versions:version ^
       --recipe-output-format JSON | YAML ^
       --query recipe ^
       --output text > <recipe-file>.base64
   
   certutil -decode <recipe-file>.base64 <recipe-file>
   ```

------
#### [ PowerShell ]

   ```
   aws greengrassv2 get-component `
       --arn arn:aws:greengrass:region:aws:components:aws.greengrass.DLRImageClassification:versions:version `
       --recipe-output-format JSON | YAML `
       --query recipe `
       --output text > <recipe-file>.base64
   
   certutil -decode <recipe-file>.base64 <recipe-file>
   ```

------

   *<recipe-file>*Sustitúyalo por el nombre de la receta en el formato`<component-name>-<component-version>`. 

1. En el objeto `ComponentDependencies` de la receta, realice una o varias de las siguientes acciones según el modelo y los componentes del tiempo de ejecución que desee utilizar:
   + Mantenga la dependencia de los componentes del DLR si desea utilizar modelos compilados por el DLR. También puede reemplazarlo por una dependencia de un componente de tiempo de ejecución personalizado, como se muestra en el ejemplo siguiente.

     **Componente de tiempo de ejecución**

------
#### [ JSON ]

     ```
     { 
         "<runtime-component>": {
             "VersionRequirement": "<version>",
             "DependencyType": "HARD"
         }
     }
     ```

------
#### [ YAML ]

     ```
     <runtime-component>:
         VersionRequirement: "<version>"
         DependencyType: HARD
     ```

------
   + Mantenga la dependencia del almacén de modelos de clasificación de imágenes del DLR para utilizar los modelos ResNet -50 previamente entrenados que AWS proporciona, o modifíquelo para utilizar un componente de modelo personalizado. Al incluir una dependencia para un componente de modelo público, si existe una versión personalizada posterior del componente en el mismo Cuenta de AWS y Región de AWS, entonces, el componente de inferencia utiliza ese componente personalizado. Especifique la dependencia del componente del modelo como se muestra en los siguientes ejemplos.

     **Componente de modelo público**

------
#### [ JSON ]

     ```
     {
         "variant.DLR.ImageClassification.ModelStore": {
             "VersionRequirement": "<version>",
             "DependencyType": "HARD"
         }
     }
     ```

------
#### [ YAML ]

     ```
     variant.DLR.ImageClassification.ModelStore:
         VersionRequirement: "<version>"
         DependencyType: HARD
     ```

------

     **Componente de modelo personalizado**

------
#### [ JSON ]

     ```
     {
         "<custom-model-component>": {
             "VersionRequirement": "<version>",
             "DependencyType": "HARD"
         }
     }
     ```

------
#### [ YAML ]

     ```
     <custom-model-component>:
         VersionRequirement: "<version>"
         DependencyType: HARD
     ```

------

1. En el objeto `ComponentConfiguration`, agregue la configuración por defecto para este componente. Más adelante podrá modificar esta configuración cuando implemente el componente. El siguiente extracto muestra la configuración del componente de clasificación de imágenes de DLR. 

   Por ejemplo, si usa un componente de modelo personalizado como dependencia para su componente de inferencia personalizado, modifique `ModelResourceKey` para proporcionar los nombres de los modelos que está utilizando.

------
#### [ JSON ]

   ```
   {
     "accessControl": {
       "aws.greengrass.ipc.mqttproxy": {
         "aws.greengrass.ImageClassification:mqttproxy:1": {
           "policyDescription": "Allows access to publish via topic ml/dlr/image-classification.",
           "operations": [
             "aws.greengrass#PublishToIoTCore"
           ],
           "resources": [
             "ml/dlr/image-classification"
           ]
         }
       }
     },
     "PublishResultsOnTopic": "ml/dlr/image-classification",
     "ImageName": "cat.jpeg",
     "InferenceInterval": 3600,
     "ModelResourceKey": {
       "armv7l": "DLR-resnet50-armv7l-cpu-ImageClassification",
       "x86_64": "DLR-resnet50-x86_64-cpu-ImageClassification",
       "aarch64": "DLR-resnet50-aarch64-cpu-ImageClassification"
     }
   }
   ```

------
#### [ YAML ]

   ```
   accessControl:
       aws.greengrass.ipc.mqttproxy:
           'aws.greengrass.ImageClassification:mqttproxy:1':
               policyDescription: 'Allows access to publish via topic ml/dlr/image-classification.'
               operations:
                   - 'aws.greengrass#PublishToIoTCore'
               resources:
                   - ml/dlr/image-classification
   PublishResultsOnTopic: ml/dlr/image-classification
   ImageName: cat.jpeg
   InferenceInterval: 3600
   ModelResourceKey:
       armv7l: "DLR-resnet50-armv7l-cpu-ImageClassification"
       x86_64: "DLR-resnet50-x86_64-cpu-ImageClassification"
       aarch64: "DLR-resnet50-aarch64-cpu-ImageClassification"
   ```

------

1. En el objeto `Manifests`, proporcione información sobre los artefactos y la configuración de este componente que se utilizan cuando el componente se implementa en diferentes plataformas y cualquier otra información necesaria para ejecutar correctamente el componente. El siguiente extracto muestra la configuración del objeto `Manifests` para la plataforma Linux en el componente de clasificación de imágenes de DLR.

------
#### [ JSON ]

   ```
   {
     "Manifests": [
       {
         "Platform": {
           "os": "linux",
           "architecture": "arm"
         },
         "Name": "32-bit armv7l - Linux (raspberry pi)",
         "Artifacts": [
           {
             "URI": "s3://SAMPLE-BUCKET/sample-artifacts-directory/image_classification.zip",
             "Unarchive": "ZIP"
           }
         ],
         "Lifecycle": {
           "Setenv": {
             "DLR_IC_MODEL_DIR": "{variant.DLR.ImageClassification.ModelStore:artifacts:decompressedPath}/{configuration:/ModelResourceKey/armv7l}",
             "DEFAULT_DLR_IC_IMAGE_DIR": "{artifacts:decompressedPath}/image_classification/sample_images/"
           },
           "Run": {
             "RequiresPrivilege": true,
             "script": ". {variant.DLR:configuration:/MLRootPath}/greengrass_ml_dlr_venv/bin/activate\npython3 {artifacts:decompressedPath}/image_classification/inference.py"
           }
         }
       }
     ]
   }
   ```

------
#### [ YAML ]

   ```
   Manifests:
     - Platform:
         os: linux
         architecture: arm
       Name: 32-bit armv7l - Linux (raspberry pi)
       Artifacts:
         - URI: s3://SAMPLE-BUCKET/sample-artifacts-directory/image_classification.zip
           Unarchive: ZIP
       Lifecycle:
         SetEnv:
           DLR_IC_MODEL_DIR: "{variant.DLR.ImageClassification.ModelStore:artifacts:decompressedPath}/{configuration:/ModelResourceKey/armv7l}"
           DEFAULT_DLR_IC_IMAGE_DIR: "{artifacts:decompressedPath}/image_classification/sample_images/"
         Run:
           RequiresPrivilege: true
           script: |-
             . {variant.DLR:configuration:/MLRootPath}/greengrass_ml_dlr_venv/bin/activate
             python3 {artifacts:decompressedPath}/image_classification/inference.py
   ```

------

 Para obtener más información acerca de la creación de recetas de componentes, consulte [AWS IoT Greengrass referencia de recetas de componentes](component-recipe-reference.md).

### Creación del componente de inferencia
<a name="create-private-inference-component"></a>

Utilice la AWS IoT Greengrass consola o el AWS CLI para crear un componente con la receta que acaba de definir. Una vez creado el componente, puede implementarlo para realizar inferencias en su dispositivo. Para ver un ejemplo de cómo implementar un componente de inferencia, consulte [Tutorial: Realice una inferencia de clasificación de imágenes de muestra con Lite TensorFlow](ml-tutorial-image-classification.md).

#### Creación de un componente de inferencia personalizado (consola)
<a name="create-inference-component-console"></a>

1. Inicie sesión en la [consola de AWS IoT Greengrass](https://console.aws.amazon.com/greengrass).

1. En el menú de navegación, elija **Componentes**.

1. En en la página **Componentes**, en la pestaña **Mis componentes**, elija **Crear componente**.

1. En la página **Crear componente**, en **Información del componente**, seleccione **Introducir la receta como JSON** o **Introducir la receta como YAML** como origen del componente.

1. En el cuadro **Receta**, introduzca la receta personalizada que haya creado. 

1. Haga clic en **Crear componente**.

#### Creación de un componente de inferencia personalizado (AWS CLI)
<a name="create-inference-component-cli"></a>

Ejecute el siguiente comando para crear un componente personalizado nuevo con la receta que creó.

```
aws greengrassv2 create-component-version \
    --inline-recipe fileb://path/to/recipe/file
```

**nota**  
Este paso crea el componente del AWS IoT Greengrass servicio en Nube de AWS. Puede utilizar la CLI de Greengrass para desarrollar, probar e implementar su componente de forma local antes de cargarlo en la nube. Para obtener más información, consulte [Desarrollo de componentes de AWS IoT Greengrass](develop-greengrass-components.md).