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
Temas
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.propertiespara 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.propertiesdebe ser similar a2.15.0o2.x.0. Es decir, la versión del parche debe ser cero. -
Las siguientes características deben estar habilitadas en su dominio:
-
EnforceHTTPS está establecido en “verdadero”
Consulte también opensearch-https-required en la Guía para desarrolladores de AWS Config.
-
Los clientes deben admitir Policy-Min-TLS-1-2-PFS-2023-10. Puede especificar esta compatibilidad usando el siguiente comando. Reemplace el
valor de marcadorde posición con su propia información:aws opensearch update-domain-config \ --domain-namedomain-name\ --domain-endpoint-options '{"TLSSecurityPolicy":"Policy-Min-TLS-1-2-PFS-2023-10" }'Para obtener más información, consulte DomainEndpointOptions en la Referencia de API de Amazon OpenSearch Service.
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
-
Inicie sesión en la consola de Amazon OpenSearch Service en https://console.aws.amazon.com/aos/home
. -
En el panel de navegación izquierdo, elija Paquetes.
-
Seleccione Importar paquete.
-
En Nombre, ingrese un nombre único y fácil de identificar para el complemento.
-
(Opcional) En la descripción, proporciona cualquier detalle útil sobre el paquete o su propósito.
-
En Tipo de paquete, elija Complemento.
-
En Origen del paquete, ingrese la ruta o busque el archivo ZIP del complemento en Amazon S3.
-
Para la versión del motor OpenSearch, elija la versión de OpenSearch compatible con el complemento.
-
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.
-
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.
Tareas
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
-
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
.zipdel 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
.zippara los paquetesZIP-PLUGIN. -
El contenido del archivo
.zipdebe seguir la estructura de directorios esperada por el complemento. -
El valor de
--engine-versiondebe estar en el formatoOpenSearch_. Por ejemplo:{MAJOR}.{MINOR}OpenSearch_2.17.
Reemplace los
valores de marcador de posicióncon su información:aws opensearch create-package \ --package-namepackage-name\ --regionregion\ --package-type ZIP-PLUGIN \ --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=s3-key\ --engine-versionopensearch-version -
-
(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 losvalores de marcador de posicióncon su información:aws opensearch describe-packages \ --regionregion\ --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 valorZIP-PLUGINpara 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 ErrorDetailsde la respuesta de la API. -
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óncon su información:aws opensearch associate-package \ --domain-namedomain-name\ --regionregion\ --package-idpackage-idnota
El complemento se instala y desinstala utilizando un proceso de implementación azul/verde.
-
(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
ASSOCIATINGaACTIVE. 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óncon su información.aws opensearch list-packages-for-domain \ --regionregion\ --domain-namedomain-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óncon su información.aws opensearch update-package \ --regionregion\ --package-idpackage-id\ --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=s3-key\ --package-descriptiondescription
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.
-
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.
-
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
-
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. -
Ejecute el siguiente comando para desinstalar el complemento. Reemplace los
valores de marcador de posicióncon su información.aws opensearch dissociate-package \ --regionregion\ --package-idplugin-package-id\ --domain-namedomain name -
(Opcional) Ejecute el comando list-packages-for-domain para ver el estado de la disociación.