以编程方式为 Watson Discovery 创建服务实例
在 IBM Cloud Pak for Data 4.7 版本支持结束之前,升级到 IBM Software Hub 5.1 版本。 更多信息,请参阅 IBM Software Hub 版本 5.1 文档中的升级 IBM Software Hub。
安装 Watson Discovery之后,必须在 操作数项目中至少创建一个 Watson Discovery 服务实例。 如果您是 Cloud Pak for Data 用户,那么可以使用 /v3/service_instances REST API 调用以编程方式创建服务实例。
- 谁需要完成此任务?
- 要使用
/v3/service_instancesREST API 调用以编程方式创建服务实例,您必须在 Cloud Pak for Data中具有 创建服务实例 (can_provision) 许可权。
- 何时需要完成此任务?
- 仅当要使用
/v3/service_instancesREST API 调用以编程方式创建服务实例时,才应完成此任务。
用于创建服务实例的替代方法
- 从 Web 客户机。 有关更多信息,请参阅 从 Web 客户机为 Watson Discovery。
- 通过使用
cpd-cli service-instance create命令。 有关更多信息,请参阅 使用 cpd-cli service-instance create 命令为 Watson Discovery。
完成此任务所需的信息
在为 Watson Discovery创建服务实例之前,请查看以下信息:
- 版本需求
必须在同一发行版上安装或创建与 Cloud Pak for Data 实例相关联的所有组件。 例如,如果 Watson Discovery 安装在 V 4.7.4上,那么必须在 V 4.7.4上创建服务实例。
重要信息: Watson Discovery 使用与 Cloud Pak for Data不同的版本号。 本主题包含一个表,其中显示每次刷新 Cloud Pak for Data时的 Watson Discovery 版本。 使用此表可根据所安装的 Cloud Pak for Data 版本来查找正确的版本。
- 环境变量
此任务中的命令使用环境变量,以便您可以完全按照编写的方式运行命令。
- 如果没有用于定义环境变量的脚本,请参阅 设置安装环境变量。
- 要使用脚本中的环境变量,必须先确定环境变量的来源,然后再运行此任务中的命令。 例如,运行以下命令:
source ./cpd_vars.sh
准备工作
此任务假定满足以下先决条件:
| 先决条件 | 在何处查找更多信息 |
|---|---|
| 已安装 Watson Discovery 。 | 如果此任务未完成,请参阅 安装 Watson Discovery。 |
cpd-cli 命令行界面安装在您将从中创建服务实例的工作站上。 |
如果此任务未完成,请参阅 设置客户机工作站。 |
| 您已生成 API 密钥或授权令牌 API 密钥或令牌必须与在 Cloud Pak for Data中具有 创建服务实例 ( |
如果此任务未完成,请参阅 生成授权令牌或 API 密钥。 |
过程
完成以下任务以创建服务实例:
创建服务实例
要创建服务实例:
- 切换到工作站上要在其中创建用于定义服务实例有效内容的 JSON 文件的目录。
- 设置用于填充服务实例的 JSON 有效内容的环境变量:
- 将
INSTANCE_NAME环境变量设置为要用作服务实例的显示名称的唯一名称:export INSTANCE_NAME="<display-name>"此名称显示在 Cloud Pak for Data Web 客户机的 " 实例 " 页面上。
显示名称为
string,可以包含字母数字字符 (a-z , A-Z , 0-9) ,空格 () ,短划线 (-) ,下划线 (_) 和句点 (.)。 确保使用引号将显示名括起来,如前面的export命令中所示。
- 将
- 创建
discovery-instance.json有效内容文件:cat << EOF > ./discovery-instance.json{ "addon_type": "discovery", "display_name": "${INSTANCE_NAME}", "addon_version": "${VERSION}", "namespace": "${PROJECT_CPD_INST_OPERANDS}" "create_arguments": { "deployment_id": "${PROJECT_CPD_INST_OPERANDS}-wd", "parameters": { "serviceId": "discovery", "url": "https://wd-discovery-gateway.${PROJECT_CPD_INST_OPERANDS}.svc.cluster.local:60443/v2/service_instances", "watson": true } }, } EOF以下环境变量使用已在安装环境变量脚本中定义的值:${VERSION}${PROJECT_CPD_INST_OPERANDS}
- 将
PAYLOAD_FILE环境变量设置为工作站上 JSON 有效内容文件的标准名称:export PAYLOAD_FILE=<fully-qualified-JSON-file-name> - 设置用于连接到要在其中创建服务实例的 Cloud Pak for Data 实例的环境变量:
- 设置
CPD_ROUTE环境变量:export CPD_ROUTE=$(oc get route cpd -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath={".spec.host"})此命令使用已在安装环境变量脚本中定义的
PROJECT_CPD_INST_OPERANDS变量。 - 将
AUTH_TOKEN环境变量设置为您创建的认证令牌:export AUTH_TOKEN=<your_authorization_token>
- 设置
- 从有效内容文件创建服务实例。
您运行的命令取决于您要在其中创建服务实例的 Cloud Pak for Data 实例是使用自签名证书还是由可信认证中心签署的证书。
实例使用由可信认证中心签署的证书
curl --request POST \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \ --header "Authorization: Bearer ${AUTH_TOKEN}" \ --header 'Content-Type: application/json' \ --data @${PAYLOAD_FILE}
实例使用自签名证书 (缺省值)
curl -k --request POST \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \ --header "Authorization: Bearer ${AUTH_TOKEN}" \ --header 'Content-Type: application/json' \ --data @${PAYLOAD_FILE}
如果请求成功,那么该命令将返回下列其中一个 HTTP 响应代码:- 200 -请求已成功完成,并且已供应服务实例。
- 202 -已成功提交请求。 正在供应服务实例。
如果请求未成功,请使用 HTTP 响应代码来确定原因。
正在验证是否已创建服务实例
要验证是否已创建服务实例,请执行以下操作:
- 将
INSTANCE_ID环境变量设置为POSTcURL 命令返回的标识:export INSTANCE_ID=<ID-from-response> - 运行以下命令以获取服务实例的状态:
curl --request GET \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \ --header "Authorization: Bearer ${AUTH_TOKEN}" \ --header 'Content-Type: application/json'- 如果请求成功,那么该命令将返回以下 HTTP 响应代码: 200在 JSON 响应中查找
provision_status参数。- 如果值为
PROVISIONED,那么已成功创建服务实例。 - 如果值为
PROVISION_IN_PROGRESS,请等待几分钟,然后再次运行该命令。 - 如果值为
FAILED,请查看zen-core-api和zen-watcherpod 的 pod 日志以了解可能的原因。
- 如果值为
- 如果请求未成功,请使用 HTTP 响应代码来确定原因。
- 如果请求成功,那么该命令将返回以下 HTTP 响应代码: 200
下一步操作
您必须授予用户对服务实例的访问权。 有关更多信息,请参阅 授予用户对 Watson Discovery 实例的访问权。