Gerenciar plug-ins personalizados no Amazon OpenSearch Service
Usando plug-ins personalizados para o OpenSearch Service, você pode estender a funcionalidade do OpenSearch em áreas como análise de linguagem, filtragem personalizada, classificação e muito mais, possibilitando a criação de experiências de pesquisa personalizadas. Os plug-ins personalizados para o OpenSearch podem ser desenvolvidos estendendo a classe org.opensearch.plugins.Plugin e empacotando-a em um arquivo .zip.
As seguintes extensões de plug-in são compatíveis com o Amazon OpenSearch Service:
-
AnalysisPlugin: estende a funcionalidade de análise adicionando, por exemplo, analisadores personalizados, tokenizadores de caracteres ou filtros para processamento de texto.
-
SearchPlugin: aprimora os recursos de pesquisa com tipos de consulta personalizados, algoritmos de similaridade, opções de sugestão e agregações.
-
MapperPlugin: permite criar tipos de campo personalizados e suas configurações de mapeamento no OpenSearch, permitindo definir como diferentes tipos de dados devem ser armazenados e indexados.
-
ScriptPlugin: permite adicionar recursos de scripts personalizados ao OpenSearch, por exemplo, scripts personalizados para operações como pontuação, classificação e transformações de valor de campo durante a pesquisa ou a indexação.
Você pode usar o console do OpenSearch Service ou os comandos de API existentes para pacotes personalizados para carregar e associar o plug-in ao cluster do Amazon OpenSearch Service. Também é possível usar o comando DescribePackages para descrever todos os pacotes em sua conta e visualizar detalhes como a versão do OpenSearch e detalhes de erros. O OpenSearch Service valida o pacote de plug-in quanto a compatibilidade de versão, vulnerabilidades de segurança e operações de plug-in permitidas. Para obter mais informações sobre pacotes personalizados, consulte Importar e gerenciar pacotes no Amazon OpenSearch Service.
Versão do OpenSearch e compatibilidade com a Região da AWS
Os plug-ins personalizados são compatíveis com os domínios do OpenSearch Service que executam o OpenSearch versão 2.15 nas seguintes Regiões da AWS:
-
Leste dos EUA (Ohio) (us-east-2)
-
Leste dos EUA (Norte da Virgínia) (us-east-1)
-
Oeste dos EUA (Oregon) (us-west-2)
-
Ásia-Pacífico (Mumbai) (ap-south-1)
-
Ásia-Pacífico (Seul) (ap-northeast-2)
-
Ásia-Pacífico (Singapura) (ap-southeast-1)
-
Ásia-Pacífico (Sydney) (ap-southeast-2)
-
Ásia Pacific (Tóquio) (ap-northeast-1)
-
Canadá (Central) (ca-central-1)
-
Europa (Frankfurt) (eu-central-1)
-
Europa (Irlanda) (eu-west-1)
-
Europa (Londres) (eu-west-2)
-
Europa (Paris) (eu-west-3)
-
América do Sul (São Paulo) (sa-east-1)
nota
Os plug-ins personalizados contêm código desenvolvido pelo usuário. Os problemas, incluindo violações de SLA, causados por código desenvolvido pelo usuário não são elegíveis a créditos de SLA. Para obter mais informações, consulte o Contrato de nível de serviço do Amazon OpenSearch Service
Tópicos
Cotas de plug-ins
-
Você pode criar até 25 plugins personalizados por conta, por região.
-
O tamanho máximo de um plug-in sem compactação é 1 GB.
-
O número máximo de servidores que podem ser associados a um único domínio é 20. Essa cota se aplica a todos os tipos de plug-in combinados: opcionais, de terceiros e personalizados.
-
Os plug-ins personalizados são compatíveis com domínios que executam o OpenSearch versão 2.15 ou posterior.
-
O arquivo
descriptor.propertiesdo plug-in deve ser compatível com uma versão de mecanismo semelhante à 2.15.0 ou qualquer versão 2.x.x, na qual a versão do patch é definida como zero.
Pré-requisitos
Antes de instalar um plug-in personalizado e associá-lo a um domínio, certifique-se de que os seguintes requisitos são atendidos:
-
A versão do mecanismo compatível com o plug-in no arquivo
descriptor.propertiesdeve ser semelhante à2.15.0ou2.x.0. Ou seja, a versão do patch deve ser zero. -
Os seguintes atributos devem estar habilitados no domínio:
-
EnforceHTTPS está definido como 'verdadeiro'
Consulte também opensearch-https-required no Guia do desenvolvedor do AWS Config.
-
Os clientes devem ser compatíveis com a Policy-Min-TLS-1-2-PFS-2023-10. É possível especificar essa compatibilidade usando o comando a seguir. Substitua o
valor do espaço reservadopor suas próprias informações:aws opensearch update-domain-config \ --domain-namedomain-name\ --domain-endpoint-options '{"TLSSecurityPolicy":"Policy-Min-TLS-1-2-PFS-2023-10" }'Para obter mais informações, consulte DomainEndpointOptions na Referência da API do Amazon OpenSearch Service.
Solução de problemas
Se o sistema retornar o erro PluginValidationFailureReason : The provided
plugin could not be loaded, consulte Ocorre falha na instalação do plug-in personalizado devido a incompatibilidade entre versões para obter informações de solução de problemas.
Instalar um plug-in personalizado usando o console
Para associar um plug-in de terceiros a um domínio, primeiro importe a licença e a configuração do plug-in como pacotes.
Para instalar um plug-in personalizado
-
Faça login no console do Amazon OpenSearch Service em https://console.aws.amazon.com/aos/home
. -
No painel de navegação à esquerda, selecione Pacotes.
-
Escolha Importar pacote.
-
Em Nome, insira um nome exclusivo e fácil de identificar para o plug-in.
-
(Opcional) Em Descrição, forneça todos os detalhes úteis sobre o pacote ou sua finalidade.
-
Em Tipo de pacote, escolha Plug-in.
-
Em Origem do pacote, insira o caminho ou navegue até o arquivo ZIP do plug-in no Amazon S3.
-
Em Versão do mecanismo do OpenSearch, escolha a versão do OpenSearch com que o plug-in é compatível.
-
Em Criptografia de pacote, escolha se a chave de criptografia do pacote será personalizada ou não. Por padrão, o OpenSearch Service criptografa o pacote do plug-in com uma Chave pertencente à AWS. Também é possível usar uma chave gerenciada pelo cliente.
-
Escolha Importar.
Depois de importar o pacote do plug-in, associe-o a um domínio. Para instruções, consulte Importar e associar um pacote a um domínio.
Gerenciar plug-ins personalizados usando a AWS CLI
Você pode usar a AWS CLI para gerenciar várias tarefas de plug-in personalizado.
Tarefas
Instalar um plug-in personalizado usando a AWS CLI
Antes de começar
Antes de associar um plug-in personalizado ao domínio, você deve carregá-lo em um bucket do Amazon Simple Storage Service (Amazon S3). O bucket deve estar na mesma Região da AWS em que você pretende usar o plug-in. Para mais informações sobre carregar um objeto em um buckets do S3, consulte Fazer upload de objetos no Guia do usuário do Amazon Simple Storage Service.
Se o pacote contiver informações sensíveis, especifique a criptografia no lado do servidor com chaves gerenciadas pelo S3 ao carregá-lo. Depois de carregar o arquivo, anote o caminho do S3. O formato do caminho é s3://.amzn-s3-demo-bucket/file-path/file-name
nota
Opcionalmente, você pode proteger um plug-in personalizado ao criá-lo especificando uma chave do AWS Key Management Service (AWS KMS). Para mais informações, consulte Criar ou atualizar um plug-in personalizado com uma chave de segurança do AWS KMS.
Para instalar um plug-in personalizado usando a AWS CLI
-
Crie um novo pacote para seu plug-in personalizado executando o seguinte comando create-package e garantindo que os seguintes requisitos sejam atendidos:
-
O bucket e a localização da chave devem apontar para o arquivo
.zipdo plug-in em um bucket do S3 na conta em que você executa os comandos. -
O bucket do S3 deve estar na mesma região em que o pacote está sendo criado.
-
Somente arquivos
.zipsão compatíveis com pacotesZIP-PLUGIN. -
O conteúdo do arquivo
.zipdeve seguir a estrutura de diretórios conforme esperado pelo plug-in. -
O valor fornecido em
--engine-versiondeve estar no formatoOpenSearch_. Por exemplo:{MAJOR}.{MINOR}OpenSearch_2.17.
Substitua os
valores dos espaços reservadospor suas próprias informações: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) Visualize o status da operação
create-package, incluindo quaisquer descobertas de validação e vulnerabilidade de segurança, usando o comando describe-packages. Substitua osvalores dos espaços reservadospor suas próprias informações:aws opensearch describe-packages \ --regionregion\ --filters '[{"Name": "PackageType","Value": ["ZIP-PLUGIN"]}, {"Name": "PackageName","Value": ["package-name"]}]'O comando retorna informações semelhantes às seguintes:
{ "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 a operação
create-package, o Amazon OpenSearch Service verifica o valorZIP-PLUGINquanto a compatibilidade de versões, extensões de plug-in compatíveis e vulnerabilidades de segurança. As vulnerabilidades de segurança são examinadas usando o serviço Amazon Inspector. Os resultados dessas verificações são mostrados no campo ErrorDetailsda resposta da API. -
Use o comando associate-package para associar o plug-in ao domínio do OpenSearch Service de sua escolha usando o ID do pacote criado na etapa anterior.
dica
Se você tiver vários plug-ins, poderá usar o comando associate-packages para associar vários pacotes a um domínio em uma única operação.
Substitua os
valores dos espaços reservadospor suas próprias informações:aws opensearch associate-package \ --domain-namedomain-name\ --regionregion\ --package-idpackage-idnota
O plug-in é instalado e desinstalado usando um processo de implantação azul/verde.
-
(Opcional) Use o comando list-packages-for-domain para visualizar o status da associação. O status da associação se altera à medida que o fluxo de trabalho avança de
ASSOCIATINGparaACTIVE. O status da associação passa para ATIVO após a conclusão da instalação do plug-in, e ele está pronto para uso.Substitua os
valores de espaço reservadopor suas próprias informações.aws opensearch list-packages-for-domain \ --regionregion\ --domain-namedomain-name
Atualizar um plug-in personalizado usando a AWS CLI
Use o comando update-package para fazer alterações em um plug-in.
nota
Opcionalmente, você pode proteger um plug-in personalizado ao atualizá-lo especificando uma chave do AWS Key Management Service (AWS KMS). Para mais informações, consulte Criar ou atualizar um plug-in personalizado com uma chave de segurança do AWS KMS.
Para atualizar um plug-in personalizado usando a AWS CLI
-
Execute o comando a seguir. Substitua os
valores de espaço reservadopor suas próprias informações.aws opensearch update-package \ --regionregion\ --package-idpackage-id\ --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=s3-key\ --package-descriptiondescription
Depois de atualizar um pacote, você pode usar o comando associate-package ou associate-packages para aplicar atualizações de pacote em um domínio.
nota
Você pode auditar, criar, atualizar, associar e desassociar operações no plug-in usando o AWS CloudTrail. Para obter mais informações, consulte Monitoramento de chamadas de API do Amazon OpenSearch Service com o AWS CloudTrail.
Criar ou atualizar um plug-in personalizado com uma chave de segurança do AWS KMS
Opcionalmente, você pode proteger um plug-in personalizado ao atualizá-lo ou atualizá-lo especificando uma chave do AWS KMS. Para fazer isso, defina PackageEncryptionOptions como true e especifique o nome do recurso da Amazon (ARN) da chave, como mostrado nos exemplos a seguir.
Exemplo: criar ou atualizar um plug-in personalizado com uma chave de segurança do 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" }
Exemplo: atualizar um plug-in personalizado com uma chave de segurança do 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
Se a chave do AWS KMS que você especificar for desabilitada ou excluída, o cluster associado poderá deixar de ser operacional.
Para obter mais informações sobre a integração do AWS KMS com pacotes personalizados, consulte Integração do AWS KMS com pacotes personalizados do Amazon OpenSearch Service.
Atualizar um domínio do OpenSearch Service com plug-ins personalizados para uma versão mais nova do OpenSearch usando o AWS CLI
Quando você precisar atualizar um domínio do OpenSearch Service que usa plug-ins personalizados para uma versão mais nova do OpenSearch, realize os processos a seguir.
Para atualizar um domínio do OpenSearch Service com plug-ins personalizados para uma versão mais nova do OpenSearch usando a AWS CLI
-
Use o comando create-package para criar um novo pacote para o plug-in especificando a nova versão do OpenSearch.
Certifique-se de que o nome do pacote seja o mesmo para o plug-in de todas as versões do mecanismo. A alteração do nome do pacote causa falha no processo de atualização do domínio durante a implantação azul/verde.
-
Atualize o domínio para a versão acima seguindo as etapas em Atualização de domínios do Amazon OpenSearch Service.
Durante esse processo, o Amazon OpenSearch Service desassocia a versão anterior do pacote de plug-in e instala a nova versão usando uma implantação azul/verde.
Desinstalar e visualizar o status de desassociação de um plug-in personalizado
Para desinstalar o plug-in de qualquer domínio, você pode usar o comando dissociate-package. A execução desse comando também remove as configurações ou pacotes de licença relacionados. Depois, você pode usar o comando list-packages-for-domain para visualizar o status da desassociação.
dica
Você também pode usar o comando dissociate-packages para desinstalar vários plug-ins de um domínio em uma única operação.
Para desinstalar e visualizar o status de desassociação de um plug-in personalizado
-
Desabilite o plug-in em todos os índices. Faça isso antes de desassociar o pacote de plug-in.
Se você tentar desinstalar um plug-in antes de desabilitá-lo em todos os índices, o processo de implantação azul/verde ficará preso no estado
Processing. -
Execute o comando a seguir para desinstalar o plug-in. Substitua os
valores de espaço reservadopor suas próprias informações.aws opensearch dissociate-package \ --regionregion\ --package-idplugin-package-id\ --domain-namedomain name -
(Opcional) Execute o comando list-packages-for-domain para visualizar o status da desassociação.