Gerenciar plug-ins personalizados no Amazon OpenSearch Service - Amazon OpenSearch Service

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.

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.properties do 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.properties deve ser semelhante à 2.15.0 ou 2.x.0. Ou seja, a versão do patch deve ser zero.

  • Os seguintes atributos devem estar habilitados no domínio:

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
  1. Faça login no console do Amazon OpenSearch Service em https://console.aws.amazon.com/aos/home.

  2. No painel de navegação à esquerda, selecione Pacotes.

  3. Escolha Importar pacote.

  4. Em Nome, insira um nome exclusivo e fácil de identificar para o plug-in.

  5. (Opcional) Em Descrição, forneça todos os detalhes úteis sobre o pacote ou sua finalidade.

  6. Em Tipo de pacote, escolha Plug-in.

  7. Em Origem do pacote, insira o caminho ou navegue até o arquivo ZIP do plug-in no Amazon S3.

  8. Em Versão do mecanismo do OpenSearch, escolha a versão do OpenSearch com que o plug-in é compatível.

  9. 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.

  10. 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.

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
  1. 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 .zip do 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 .zip são compatíveis com pacotes ZIP-PLUGIN.

    • O conteúdo do arquivo .zip deve seguir a estrutura de diretórios conforme esperado pelo plug-in.

    • O valor fornecido em --engine-version deve estar no formato OpenSearch_{MAJOR}.{MINOR}. Por exemplo: OpenSearch_2.17.

    Substitua os valores dos espaços reservados por suas próprias informações:

    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) 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 os valores dos espaços reservados por suas próprias informações:

    aws opensearch describe-packages \ --region region \ --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 valor ZIP-PLUGIN quanto 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 ErrorDetails da resposta da API.

  3. 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 reservados por suas próprias informações:

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

    O plug-in é instalado e desinstalado usando um processo de implantação azul/verde.

  4. (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 ASSOCIATING para ACTIVE. 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 reservado por suas próprias informações.

    aws opensearch list-packages-for-domain \ --region region \ --domain-name domain-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 reservado por suas próprias informações.

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

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
  1. 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.

  2. 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
  1. 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.

  2. Execute o comando a seguir para desinstalar o plug-in. Substitua os valores de espaço reservado por suas próprias informações.

    aws opensearch dissociate-package \ --region region \ --package-id plugin-package-id \ --domain-name domain name
  3. (Opcional) Execute o comando list-packages-for-domain para visualizar o status da desassociação.