本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将已保存的对象从 OpenSearch 仪表板迁移到 OpenSearch 用户界面
如果您在 OpenSearch 仪表板中有现有的仪表板、可视化效果、索引模式和其他已保存的对象,则可以在 OpenSearch 用户界面中迁移和重复使用它们。
迁移到 OpenSearch UI 的好处:
-
高可用性 — OpenSearch 用户界面托管在中, AWS Cloud 并在域升级和维护期间保持可用,而 OpenSearch 仪表板托管在域中,将暂时不可用。
-
多数据源 — OpenSearch UI 可以提供跨多个数据源的整合单一管理面板,包括 OpenSearch 域、无服务器集合以及与 Amazon S3 和 Amazon 的数据连接 CloudWatch;而每个 OpenSearch 控制面板只能处理一个域或集合。
-
OpenSearch 用户界面上还提供了 AI 助手和工作区等其他功能。了解更多:在 Amazon OpenSearch 服务中使用 OpenSearch 用户界面.
迁移概述
迁移过程包括以下高级步骤:
-
从 OpenSearch 仪表板导出保存的对象-使用 OpenSearch 仪表板保存的对象管理 UI 或导出 API 将仪表板、可视化效果、索引模式和其他对象下载为以换行符分隔的 JSON (NDJSON) 文件。
-
创建 OpenSearch UI 应用程序和工作区-如果尚未创建,请创建 OpenSearch UI 应用程序和工作区来接收导入的对象。
-
在 OpenSearch UI 中注册数据源-将您的 OpenSearch 域与 OpenSearch UI 应用程序关联并将其注册为工作空间内的数据源。导入对象中的索引模式引用此数据源。
-
将@@ 保存的对象导入 OpenSearch 用户界面-使用 OpenSearch 用户界面保存的对象管理用户界面或导入 API 将 NDJSON 文件上传到目标工作区。
-
验证导入的对象-在 OpenSearch 用户界面中打开仪表板和可视化效果以验证它们是否显示正确,以及数据是否来自关联的域或集合。
先决条件
在迁移之前,请验证以下先决条件:
-
您拥有调用 Amazon OpenSearch 服务所需的必要 IAM 权限,并且 OpenSearch APIs。有关更多信息,请参阅 创建 Amazon OpenSearch 服务应用程序所需的权限。
-
您可以访问要迁移的域或集合以及 OpenSearch 控制面板。
-
您已创建一个 OpenSearch UI 应用程序。有关创建应用程序和工作区的信息,请参阅开始使用 Amazon OpenSearch 服务中的 OpenSearch 用户界面。
-
您已将同一个域名或集合关联到 OpenSearch UI 应用程序。有关关联数据源的信息,请参见管理数据来源关联和虚拟私有云访问权限。
注意
OpenSearch 用户界面仅支持 1.3 及更高 OpenSearch 版本。在尝试迁移已保存的对象之前,请确认您的 OpenSearch 域运行的是 1.3 或更高版本。
步骤 1:从 OpenSearch 仪表板导出已保存的对象
使用管理 UI 或导出 API 从 OpenSearch 仪表板中导出保存的对象。导出会生成一个以换行符分隔的 JSON (NDJSON) 文件,其中包含所有选定的已保存对象类型及其依赖关系。
在 OpenSearch 仪表板上手动导出
使用 OpenSearch 仪表板管理 UI 导出已保存的对象
-
打开您的 OpenSearch 仪表板实例。
-
在左侧导航面板中,选择管理。
-
在 “仪表板管理” 下,选择 “已保存的对象”。
-
选择要导出的已保存对象。要导出特定类型的所有对象,请使用搜索栏按类型进行筛选。要导出所有对象,请选中表格标题中的复选框。
-
选择导出。
-
在 “导出保存的对象” 对话框中,确保选中 “包括相关对象”。此选项包括所选已保存对象所依赖的所有对象,例如可视化所引用的索引模式。只有当您打算手动管理依赖关系时,才清除此选项。
-
选择 “导出” 将
.ndjson文件下载到本地计算机。
提示
当您选择 “包括相关对象” 时,导出的 NDJSON 文件将包含呈现所选仪表板和可视化效果所需的所有已保存对象,包括它们的相关索引模式、可视化和搜索对象。这简化了导入步骤并避免了缺少参考错误。
通过 API 导出
您可以使用 OpenSearch 仪表板已保存对象导出 API 以编程方式导出已保存的对象。这对于自动迁移或将导出步骤集成到管道中非常有用。 CI/CD
注意
如果您的 OpenSearch 域名启用了精细访问控制,则必须在导出请求中提供身份验证凭证。通过添加带有用户名和密码的-u标志,使用 HTTP 基本身份验证。有关身份验证选项的更多信息,请参阅 Amazon 服务中的精细访问控制 OpenSearch。
以下示例导出所有仪表板及其相关对象。将 placeholder values 替换为您自己的信息。
curl -X POST \ "https://dashboards-endpoint/_dashboards/api/saved_objects/_export" \ -u 'master-username:master-password' \ -H "Content-Type: application/json" \ -H "osd-xsrf: true" \ -d '{ "type": ["dashboard", "visualization", "index-pattern", "search"], "includeReferencesDeep": true, "excludeExportDetails": false }' \ -osaved-objects-export.ndjson
如果您的域未启用细粒度访问控制,则可以省略该标志。-u
要按 ID 导出特定的已保存对象,请使用objects参数代替type:
curl -X POST \ "https://dashboards-endpoint/_dashboards/api/saved_objects/_export" \ -u 'master-username:master-password' \ -H "Content-Type: application/json" \ -H "osd-xsrf: true" \ -d '{ "objects": [ {"type": "dashboard", "id": "dashboard-id"}, {"type": "visualization", "id": "visualization-id"} ], "includeReferencesDeep": true }' \ -osaved-objects-export.ndjson
注意
要查找已保存的对象 IDs,您可以使用 “已保存对象” API 列出特定类型的所有对象。以下示例列出了所有仪表板:
curl -X GET \ "https://dashboards-endpoint/_dashboards/api/saved_objects/_find?type=dashboard" \ -u 'master-username:master-password'
响应中包含每个已保存对象的 ID。在 OpenSearch 仪表板中查看对象时,您还可以在浏览器 URL 中找到 ID。
第 2 步:将保存的对象导入 OpenSearch 用户界面
导出保存的对象后,您可以手动或通过 API 将 NDJSON 文件导入 OpenSearch 用户界面。
在 OpenSearch UI 上手动导入
使用 OpenSearch UI 管理 UI 导入已保存的对象
-
打开您的 OpenSearch UI 应用程序并导航到目标工作区。
-
在工作区中,从顶部导航栏中选择 “资产” 或转到工作区资产页面。
-
选择 “导入”,打开 “导入资源” 对话框。
-
选择 “选择文件”,然后选择从 OpenSearch 仪表板中导出的
.ndjson文件。 -
对于冲突管理,请选择以下选项之一:
-
创建具有唯一性的新资源 IDs(默认)- IDs 为所有导入的对象生成新资源,避免与现有资源发生冲突。
-
检查现有资产-检查与现有对象是否存在冲突。选中后,选择以下子选项之一:
-
自动覆盖冲突-自动替换具有相同 ID 的现有资产。
-
请求对冲突采取行动-系统会提示您单独解决每个冲突。
-
-
-
选择导入。
-
查看导入摘要。
通过 API 导入
要使用带有 AWS 签名版本 4 身份验证的 API 导入保存的对象,必须先获取数据源 ID,然后在导入请求中使用它。将 placeholder values 替换为您自己的信息。
步骤 1:获取工作空间的数据源 ID:
curl -X GET \ "https://opensearch-ui-endpoint/w/workspace-id/api/saved_objects/_find?type=data-source" \ --aws-sigv4 "aws:amz:region:opensearch" \ --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \ -H "x-amz-security-token: $AWS_SESSION_TOKEN" \ -H "osd-xsrf: true"
注意
响应包含数据源 ID。在 OpenSearch UI 中查看数据源时,您还可以在浏览器 URL 中找到数据源 ID。
步骤 2:使用步骤 1 中的数据源 ID 导入已保存的对象:
curl -X POST \ "https://opensearch-ui-endpoint/w/workspace-id/api/saved_objects/_import?overwrite=true&dataSourceId=data-source-id" \ --aws-sigv4 "aws:amz:region:opensearch" \ --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \ -H "x-amz-security-token: $AWS_SESSION_TOKEN" \ -H "osd-xsrf: true" \ -F "file=@saved-objects-export.ndjson"
注意
这些示例使用 curl 的内置--aws-sigv4选项(在 curl 7.75 或更高版本中可用)对请求进行签名。在运行命令之前,请将您的 AWS
凭证设置为环境变量:AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY、和AWS_SESSION_TOKEN(如果使用临时证书)。