Administración de complementos personalizados en Amazon OpenSearch Service - Amazon OpenSearch Service

Administración de complementos personalizados en Amazon OpenSearch Service

Al utilizar complementos personalizados para OpenSearch Service, puede ampliar la funcionalidad de OpenSearch en áreas como el análisis del idioma, el filtrado personalizado, la clasificación, etc., lo que le permite crear experiencias de búsqueda personalizadas. Se pueden desarrollar complementos personalizados para OpenSearch ampliando la clase org.opensearch.plugins.Plugin y luego empaquetándola en un archivo .zip.

Amazon OpenSearch Service admite actualmente las siguientes extensiones de complementos:

  • AnalysisPlugin: amplía la funcionalidad de análisis al agregar, por ejemplo, analizadores personalizados, tokenizadores de caracteres o filtros para el procesamiento de texto.

  • SearchPlugin: mejora las capacidades de búsqueda con tipos de consultas personalizados, algoritmos de similitud, opciones de sugerencias y agregaciones.

  • MapperPlugin: le permite crear tipos de campos personalizados y sus configuraciones de mapeo en OpenSearch, lo que le permite definir cómo se deben almacenar e indexar los diferentes tipos de datos.

  • ScriptPlugin: le permite agregar capacidades de scripting personalizadas a OpenSearch, por ejemplo, scripts personalizados para operaciones como puntuación, ordenamiento y transformación de valores de campo durante la búsqueda o la indexación.

Puede utilizar la consola de OpenSearch Service o los comandos de API existentes para paquetes personalizados para cargar y asociar el complemento al clúster de Amazon OpenSearch Service. También puede usar el comando DescribePackages para describir todos los paquetes en su cuenta y ver detalles como la versión de OpenSearch y la información de errores. OpenSearch Service valida el paquete de complementos para verificar la compatibilidad de la versión, las vulnerabilidades de seguridad y las operaciones de complementos permitidas. Para obtener más información sobre los paquetes personalizados, consulte Importación y administración de paquetes en Amazon OpenSearch Service.

Versión de OpenSearch y compatibilidad con la Región de AWS

Los complementos personalizados son compatibles con los dominios de OpenSearch Service que ejecutan OpenSearch versión 2.15 en las siguientes Regiones de AWS:

  • Este de EE. UU. (Ohio) (us-east-2)

  • Este de EE. UU. (Norte de Virginia) (us-east-1)

  • Oeste de EE. UU. (Oregón) (us-west-2)

  • Asia-Pacífico (Mumbai) (ap-south-1)

  • Asia-Pacífico (Seúl) (ap-northeast-2)

  • Asia-Pacífico (Singapur) (ap-southeast-1)

  • Asia-Pacífico (Sídney) (ap-southeast-2)

  • Asia-Pacífico (Tokio) (ap-northeast-1)

  • Canadá (centro) (ca-central-1)

  • Europa (Fráncfort) (eu-central-1)

  • Europa (Irlanda) (eu-west-1)

  • Europa (Londres) (eu-west-2)

  • Europa (París) (eu-west-3)

  • América del Sur (São Paulo) (sa-east-1)

nota

Los complementos personalizados contienen código desarrollado por el usuario. Cualquier problema, incluido el incumplimiento del SLA, causado por un código desarrollado por el usuario no da derecho a los créditos del SLA. Para obtener más información, consulte el Acuerdo de nivel de Amazon OpenSearch Service.

Cuotas de complementos

  • Puede crear hasta 25 complementos personalizados por región para cada cuenta.

  • El tamaño máximo sin comprimir de un complemento es 1 GB.

  • El número máximo de complementos que se pueden asociar con un solo dominio es 20. Esta cuota se aplica a todos los tipos de complementos combinados: opcionales, de terceros y personalizados.

  • Los complementos personalizados son compatibles con los dominios que ejecuten la versión 2.15 o una posterior de OpenSearch.

  • El archivo descriptor.properties para su complemento debe ser compatible con una versión de motor similar a 2.15.0 o cualquier versión 2.x.x, donde la versión de parche esté establecida en cero.

Requisitos previos

Antes de instalar un complemento personalizado y asociarlo a un dominio, asegúrese de que cumple los siguientes requisitos:

  • La versión de motor compatible con el complemento del archivo descriptor.properties debe ser similar a 2.15.0 o 2.x.0. Es decir, la versión del parche debe ser cero.

  • Las siguientes características deben estar habilitadas en su dominio:

Solución de problemas

Si el sistema devuelve el error PluginValidationFailureReason : The provided plugin could not be loaded, consulte La instalación del complemento personalizado falla debido a la compatibilidad de las versiones para obtener información de solución de problemas.

Instalación de un complemento personalizado mediante la consola

Para asociar un complemento de terceros a un dominio, primero importe la licencia y la configuración del complemento como paquetes.

Para instalar un complemento personalizado
  1. Inicie sesión en la consola de Amazon OpenSearch Service en https://console.aws.amazon.com/aos/home.

  2. En el panel de navegación izquierdo, elija Paquetes.

  3. Seleccione Importar paquete.

  4. En Nombre, ingrese un nombre único y fácil de identificar para el complemento.

  5. (Opcional) En la descripción, proporciona cualquier detalle útil sobre el paquete o su propósito.

  6. En Tipo de paquete, elija Complemento.

  7. En Origen del paquete, ingrese la ruta o busque el archivo ZIP del complemento en Amazon S3.

  8. Para la versión del motor OpenSearch, elija la versión de OpenSearch compatible con el complemento.

  9. Para el cifrado de paquetes, elija si desea personalizar la clave de cifrado del paquete. De forma predeterminada, OpenSearch Service cifra el paquete de complementos con una Clave propiedad de AWS. En su lugar, puede usar una clave administrada por el cliente.

  10. Seleccione Importar.

Después de importar el paquete de complementos, asócielo a un dominio. Para obtener instrucciones, consulte Para importar y asociar un paquete a un dominio.

Administrar los complementos personalizados mediante la AWS CLI.

Puede utilizar la AWS CLI para administrar una serie de tareas de complementos personalizados.

Instalación de un complemento personalizado mediante la AWS CLI

Antes de empezar

Antes de poder asociar un complemento personalizado con su dominio, debe cargarlo en un bucket de Amazon Simple Storage Service (Amazon S3). El bucket debe estar ubicado en la misma Región de AWS donde usted pretende usar el complemento. Para obtener información sobre cómo agregar un objeto a un bucket de S3, consulte Cargar objetos en la Guía del usuario de Amazon Simple Storage Service.

Si su complemento contiene información sensible, especifique el cifrado del lado del servidor con claves administradas por S3 al cargarlo. Después de cargar el archivo, tome nota de su ruta de S3. El formato de la ruta es s3://amzn-s3-demo-bucket/file-path/file-name.

nota

Si lo desea, puede proteger un complemento personalizado al crear el complemento especificando una clave AWS Key Management Service (AWS KMS). Para obtener más información, consulte Crear o actualizar un complemento personalizado con seguridad de clave AWS KMS.

Instalación de un complemento personalizado mediante la AWS CLI
  1. Cree un nuevo paquete para su complemento personalizado ejecutando el siguiente comando create-package, asegurándose de cumplir con los siguientes requisitos:

    • La ubicación del bucket y la clave debe apuntar al archivo .zip del complemento en un bucket de S3 de la cuenta en la que está ejecutando los comandos.

    • El bucket de S3 debe estar en la misma región en la que se está creando el paquete.

    • Solo se admiten archivos .zip para los paquetes ZIP-PLUGIN.

    • El contenido del archivo .zip debe seguir la estructura de directorios esperada por el complemento.

    • El valor de --engine-version debe estar en el formato OpenSearch_{MAJOR}.{MINOR}. Por ejemplo: OpenSearch_2.17.

    Reemplace los valores de marcador de posición con su información:

    aws opensearch create-package \ --package-name package-name \ --region region \ --package-type ZIP-PLUGIN \ --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=s3-key \ --engine-version opensearch-version
  2. (Opcional) Vea el estado de la operación create-package, incluidos los resultados de validación y las vulnerabilidades de seguridad, usando el comando describe-packages. Reemplace los valores de marcador de posición con su información:

    aws opensearch describe-packages \ --region region \ --filters '[{"Name": "PackageType","Value": ["ZIP-PLUGIN"]}, {"Name": "PackageName","Value": ["package-name"]}]'

    El comando devuelve información similar a la siguiente:

    {
        "PackageDetailsList": [{
            "PackageID": "pkg-identifier",
            "PackageName": "package-name",
            "PackageType": "ZIP-PLUGIN",
            "PackageStatus": "VALIDATION_FAILED",
            "CreatedAt": "2024-11-11T13:07:18.297000-08:00",
            "LastUpdatedAt": "2024-11-11T13:10:13.843000-08:00",
            "ErrorDetails": {
                "ErrorType": "",
                "ErrorMessage": "PluginValidationFailureReason : Dependency Scan reported 3 vulnerabilities for the plugin: CVE-2022-23307, CVE-2019-17571, CVE-2022-23305"
            },
            "EngineVersion": "OpenSearch_2.15",
            "AllowListedUserList": [],
            "PackageOwner": "OWNER-XXXX"
        }]
    }
    nota

    Durante la operación create-package, Amazon OpenSearch Service verifica el valor ZIP-PLUGIN para la compatibilidad de la versión, las extensiones de complemento compatibles y las vulnerabilidades de seguridad. Las vulnerabilidades de seguridad se escanean mediante el servicio Amazon Inspector. Los resultados de estas verificaciones se muestran en el campo ErrorDetails de la respuesta de la API.

  3. Utilice el comando associate-package para asociar el complemento al dominio de OpenSearch Service que elija utilizando el ID de paquete del paquete creado en el paso anterior.

    sugerencia

    Si tiene varios complementos, puede usar el comando associate-packages para asociar múltiples paquetes a un dominio en una sola operación.

    Reemplace los valores de marcador de posición con su información:

    aws opensearch associate-package \ --domain-name domain-name \ --region region \ --package-id package-id
    nota

    El complemento se instala y desinstala utilizando un proceso de implementación azul/verde.

  4. (Opcional) Use el comando list-packages-for-domain para ver el estado de la asociación. El estado de la asociación cambia a medida que el flujo de trabajo avanza de ASSOCIATING a ACTIVE. El estado de la asociación cambia a ACTIVE cuando se completa la instalación del complemento y el complemento está listo para su uso.

    Reemplace los valores de marcador de posición con su información.

    aws opensearch list-packages-for-domain \ --region region \ --domain-name domain-name

Actualización de un complemento personalizado mediante la AWS CLI.

Use el comando update-package para realizar cambios en un complemento.

nota

Si lo desea, puede proteger un complemento personalizado al actualizar el complemento especificando una clave AWS Key Management Service (AWS KMS). Para obtener más información, consulte Crear o actualizar un complemento personalizado con seguridad de clave AWS KMS.

Para actualizar un complemento personalizado mediante la AWS CLI
  • Ejecute el siguiente comando. Reemplace los valores de marcador de posición con su información.

    aws opensearch update-package \ --region region \ --package-id package-id \ --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=s3-key \ --package-description description

Después de actualizar un paquete, puede usar el comando associate-package o associate-packages para aplicar las actualizaciones del paquete a un dominio.

nota

Puede auditar, crear, actualizar, asociar y desasociar operaciones en el complemento mediante AWS CloudTrail. Para obtener más información, consulte Monitoreo de las llamadas a la API de Amazon OpenSearch Service con AWS CloudTrail.

Crear o actualizar un complemento personalizado con seguridad de clave AWS KMS

Puede proteger un complemento personalizado al crearlo o actualizarlo especificando una clave AWS KMS. Para lograr esto, configure PackageEncryptionOptions en true y especifique el Nombre de recurso de Amazon (ARN) de la clave, como se muestra en los siguientes ejemplos.

Ejemplo: cree un complemento personalizado con una clave de seguridad de AWS KMS

aws opensearch create-package \ --region us-east-2 --package-name my-custom-package \ --package-type ZIP-PLUGIN \ --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=my-s3-key --engine-version OpenSearch_2.15 "PackageConfigOptions": { ... } "PackageEncryptionOptions": { "Enabled": true, "KmsKeyId":"arn:aws:kms:us-east-2:111222333444:key/2ba228d5-1d09-456c-ash9-daf42EXAMPLE" }

Ejemplo: actualice un complemento personalizado con una clave de seguridad de AWS KMS

aws opensearch update-package \ --region us-east-2 --package-name my-custom-package \ --package-type ZIP-PLUGIN \ --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=my-s3-key --engine-version OpenSearch_2.15 "PackageConfigOptions": { ... } "PackageEncryptionOptions": { "Enabled": true, "KmsKeyId":"arn:aws:kms:us-east-2:111222333444:key/2ba228d5-1d09-456c-ash9-daf42EXAMPLE" }
importante

Si la clave AWS KMS que usted especifica está deshabilitada o eliminada, puede dejar el clúster asociado inoperativo.

Para obtener más información sobre la integración de AWS KMS con paquetes personalizados, Integración de paquete personalizado de AWS KMS de Amazon OpenSearch Service.

Actualizar un dominio de OpenSearch Service con complementos personalizados a una versión posterior de OpenSearch mediante la AWS CLI

Cuando necesite actualizar un dominio del servicio OpenSearch que utiliza complementos personalizados a una versión posterior de OpenSearch, complete los siguientes procesos.

Para actualizar un dominio de OpenSearch Service con complementos personalizados a una versión posterior de OpenSearch mediante la AWS CLI.
  1. Use el comando create-package para crear un nuevo paquete para su complemento especificando la nueva versión de OpenSearch.

    Asegúrese de que el nombre del paquete sea el mismo para el complemento en todas las versiones del motor. Si se cambia el nombre del paquete, se produce un error en el proceso de actualización del dominio durante la implementación azul/verde.

  2. Actualice su dominio a una versión superior siguiendo los pasos que se indican en Actualización de los dominios de Amazon OpenSearch Service.

    Durante este proceso, Amazon OpenSearch Service desasocia la versión anterior del paquete de complementos e instala la nueva versión mediante una implementación azul/verde.

Desinstalar y ver el estado de disociación de un complemento personalizado

Para desinstalar el complemento de cualquier dominio, puede usar el comando dissociate-package. Al ejecutar este comando, también se eliminan todos los paquetes de configuración o licencias relacionados. A continuación, puede utilizar el comando list-packages-for-domain para ver el estado de la disociación.

sugerencia

También puede usar el comando dissociate-packages para desinstalar varios complementos de un dominio en una sola operación.

Desinstalar y ver el estado de disociación de un complemento personalizado
  1. Deshabilita el complemento en todos los índices. Esto debe hacerse antes de disociar el paquete de complementos.

    Si intenta desinstalar un complemento antes de deshabilitarlo en cada índice, el proceso de implementación azul/verde permanecerá atascado en el estado Processing.

  2. Ejecute el siguiente comando para desinstalar el complemento. Reemplace los valores de marcador de posición con su información.

    aws opensearch dissociate-package \ --region region \ --package-id plugin-package-id \ --domain-name domain name
  3. (Opcional) Ejecute el comando list-packages-for-domain para ver el estado de la disociación.