本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义插件
Amazon S OpenSearch ervice 的自定义插件是一个新的插件管理选项,它扩展了语言分析、自定义筛选和排名等领域的 OpenSearch功能,使您能够打造个性化的搜索体验。的自定义插件 OpenSearch 可以通过扩展org.opensearch.plugins.Plugin
类来开发,然后打包为.zip 文件。Amazon OpenSearch 服务目前支持以下插件扩展:
-
分析插件:通过添加自定义分析器、字符分词器或用于文本处理的过滤器来扩展分析功能。
-
搜索插件:通过自定义查询类型、相似度算法、建议选项和聚合增强搜索功能。
您可以使用 Amazon S OpenSearch ervice 控制台或自定义包的现有APIs控制台上传插件并将插件与您的亚马逊 OpenSearch 服务域关联,有关自定义包的更多信息,请参阅亚马逊 OpenSearch 服务的自定义软件包。此外,您可以使用DescribePackages
描述账户中的所有软件包,以查看详细信息,例如当前正在使用的 OpenSearch 版本或错误详情。Amazon Serv OpenSearch ice 会验证插件包的版本兼容性、安全漏洞和允许的插件操作。
运行 OpenSearch 版本 2.15 或更高版本的 OpenSearch 服务域支持自定义插件,并且在全球 14 个地区可用:美国西部(俄勒冈)、美国东部(俄亥俄州)、美国东部(弗吉尼亚北部)、南美洲(圣保罗)、欧洲(巴黎)、欧洲(伦敦)、欧洲(爱尔兰)、欧洲(法兰克福)、加拿大(中部)、亚太地区(东京)、亚太地区(悉尼)、亚太(新加坡)、亚太(新加坡)、亚太(新加坡)、亚太(新加坡)、亚太(新加坡)、亚太(新加坡)、亚太(新加坡)、亚太(新加坡)、亚太(新加坡)、亚太(新加坡)、亚洲(新加坡)、太平洋(首尔)和亚太地区(孟买)。
注意
自定义插件包含用户开发的代码。由用户开发的代码造成的任何问题(包括SLA漏洞)都没有资格获得SLA积分。有关更多信息,请参阅 “亚马逊 OpenSearch 服务-服务等级协议” 下的亚马逊 OpenSearch 服务SLA
插件限制
每个账户最多可以创建 25 个自定义插件。可以与单个域名关联的最大插件数量为 20,此数字包括所有插件类型,即可选、第三方或自定义。插件允许的最大未压缩大小为 1 GB。
下表列出了使用自定义插件时不可用的功能:
亚马逊 OpenSearch 服务功能 | 自定义插件 |
---|---|
不支持。 | |
不支持 | |
不支持 | |
不支持 | |
不支持 | |
不支持 |
在 OpenSearch 服务中使用自定义插件
在 S OpenSearch ervice 中使用自定义插件的先决条件
在将自定义插件与 Amazon S OpenSearch ervice 配合使用之前,您需要确保已进行以下设置:
-
强制HTTPS设置为
true
-
客户端必须支持 TLSSecurityPolicy '
Policy-Min-TLS-1-2-PFS-2023-10'
,你可以用以下命令进行设置:aws opensearch update-domain-config —domain-name
domain-name
—domain-endpoint-options '{"TLSSecurityPolicy":"Policy-Min-TLS-1-2-PFS-2023-10" }'有关更多信息,请参阅 DomainEndpointOptions。
-
插件支持的引擎版本的 descriptor.properties 文件应类似于 2.15.0,或者 2.x.0.ie 补丁版本应为零。
使用安装自定义插件 Amazon CLI
您可以使用安装自定义插件 Amazon CLI。在将自定义插件与您的域关联之前,必须将其上传到 Amazon S3 存储桶。您必须在要使用该插件的同一区域创建 Amazon S3 存储桶。有关如何执行此操作的说明,请参阅什么是 Amazon S3 指南中的上传对象。如果您的插件包含敏感信息,请在上传时选择使用 S3 托管密钥进行服务器端加密。上传文件后,记下它的 Amazon S3 路径。请参阅以下 Amazon S3 路径格式示例:
s3://
bucket-name
/file-path/file-name
你需要为你的自定义插件创建一个新的软件包。你可以使用现有的CreatePackageAPI。创建新包时,请更新存储桶和密钥位置,使其指向调用账户的 Amazon S3 存储桶中自定义插件的.zip 文件。请注意,您的 Amazon S3 存储桶必须与正在创建的包位于同一区域。ZIP-PLUGIN
软件包仅支持.zip 文件。.zip 文件的内容必须符合插件预期的目录结构。要创建软件包,请参阅以下示例:
aws opensearch --region $REGION create-package --package-name <
package-name
> --package-type ZIP-PLUGIN --package-source S3BucketName=<bucket
>,S3Key=<key
> --engine-version OpenSearch_2.15
您可以使用 descri be-packages 查看创建软件包操作的状态,包括任何验证和安全漏洞发现的错误。为此,请参阅以下示例:
aws opensearch --region $REGION describe-packages --filters '[{"Name": "PackageType","Value": ["ZIP-PLUGIN"]}, {"Name": "PackageName","Value": ["<
package-name
>"]}]'
以下是 desc ribe API-packages 的示例响应:
{ "PackageDetailsList": [ { "PackageID": "pkg-identifier", "PackageName": "custom-plugin-test", "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" } ] }
注意
在创建软件包操作期间,Amazon Serv OpenSearch ice 会检查版本兼容性、支持的插件扩展和安全漏洞。ZIP-PLUGIN
特别是,使用 Amazon Inspector 服务ErrorDetails
字段中。
使用使用上AssociatePackageAPI一步中创建的包裹的包裹编号将插件与您的 Amazon S OpenSearch ervice 域关联起来。如果您有多个插件,则可以使用在单个操作中将多个软件包关联AssociatePackagesAPI到一个域。为此,请参阅以下示例:
aws opensearch --region $REGION associate-package --domain-name <
domain-name
> --package-id <package-id
>
注意
插件是使用蓝/绿部署过程安装和卸载的。
您可以使用ListPackagesForDomainAPI来查看关联的状态。随着工作流程从变为的进展,关联状态将发生变化ASSOCIATING
。ACTIVE
插件安装工作流程完成且您的插件准备就绪ACTIVE
后,关联状态将更改为。为此,请参阅以下示例:
aws opensearch --region $REGION list-packages-for-domain --domain-name <
domain-name
>
更新自定义插件
您可以使用现有插件更新自定义插件UpdatePackageAPI。您可以使用以下 associate-pack API ages 示例将软件包更新应用于域。为此,请参阅以下示例:
aws opensearch --region $REGION update-package --package-id <
package-id
> --package-source S3BucketName=<bucket
>,S3Key=<key
> --package-description <description
>
注意
您可以使用审核插件上的创建、更新、关联和取消关联操作。 Amazon CloudTrail有关更多信息,请参阅API调用的 “监控 Amazon OpenSearch 服务” 文档 Amazon CloudTrail。
使用自定义插件升级您的域名
要将关联自定义插件的 Amazon Serv OpenSearch ice 域升级CreatePackageAPI到更高版本的 OpenSearch,您可以使用为您的插件创建新的软件包。
注意
请确保所有引擎版本的插件的软件包名称都相同。更改软件包名称将导致升级域过程在蓝/绿部署期间失败。
有关升级亚马逊 OpenSearch 服务域名的说明,请参阅升级亚马逊 OpenSearch 服务。Amazon Serv OpenSearch ice 将取消关联您的插件包的先前版本,并通过蓝/绿部署安装新版本的插件。
加密自定义插件
使用时 CreatePackageAPI,您可以将设置PackageEncryptionOptions
为true
并传递要用于加密的密KMS钥ARN。为此,请参阅以下示例:
aws opensearch --region $REGION create-package --package-name <
package-name
> --package-type ZIP-PLUGIN --package-source S3BucketName=<bucket
>,S3Key=<key
> --engine-version OpenSearch_2.15 "PackageConfigOptions": { ... } "PackageEncryptionOptions": { "Enabled": true, "KmsKeyId":"kms_key_arn" }
在更新软件包时,您可以使用启用相同的选项UpdatePackageAPI。
注意
如果密KMS钥被禁用或删除,它可能会使集群处于运行状态。
卸载自定义插件
您可以使用现有插件卸载自定义插件 DissociatePackageAPI,以便从域中卸载插件。此步骤还会删除与该插件关联的所有相关配置和/或许可证包。您可以使用现有的ListPackagesForDomainAPI来查看解除关联的状态。此外,您还可以使用在DissociatePackagesAPI单个操作中从一个域中卸载多个插件。
您可以使用以下取消关联软件包API示例将软件包更新应用于域。为此,请参阅以下示例:
aws opensearch --region $REGION dissociate-package --package-id <
plugin-package-id
> --domain-name <domain-name
>
注意
要卸载插件,您需要先从每个索引中禁用该插件,然后再解除该插件包的关联。如果您尝试卸载插件而不从每个索引中将其禁用,则蓝/绿部署过程将停留在处理状态。