为 Analytics Engine powered by Apache Spark 程序化创建服务实例
安装完成后,您必须在操作数项目 Analytics Engine powered by Apache Spark 中创建至少一个 Analytics Engine powered by Apache Spark 服务实例。 若您是用户 IBM® Software
Hub ,可通过 REST API /v3/service_instances 调用以编程方式创建服务实例。
- 谁需要完成这项任务?
- 要通过调用
/v3/service_instancesREST API 程序化地创建服务实例,您必须在 中拥有创建服务实例 IBM Software Hub (can_provision) 权限。
- 你需要在什么时候完成这项任务?
- 仅当您希望通过调用
/v3/service_instancesREST API 程序化地创建服务实例时,才执行此任务。
创建服务实例的替代方法
完成此任务所需的信息
在为创建服务实例 Analytics Engine powered by Apache Spark 之前,请先查看以下信息:
- 版本需求
与实例 IBM Software Hub 相关的所有组件必须在同一版本中安装或创建。 例如,如果 Analytics Engine powered by Apache Spark 安装在版本 上 5.3.1 ,则必须在版本 上创建 5.3.1 服务实例。
- 环境变量
本任务中的命令使用环境变量,因此您可以完全按照所写的命令运行。
- 若您尚未拥有定义环境变量的脚本,请参阅 《设置安装环境变量》。
- 要使用脚本中的环境变量,必须在本任务中运行命令之前加载这些环境变量。 例如,运行以下命令:
source ./cpd_vars.sh
开始之前
此任务要求满足以下先决条件:
| 预备条件 | 在何处查找更多信息 |
|---|---|
| Analytics Engine powered by Apache Spark 已安装。 | 如果此任务尚未完成,请参阅安装部分 Analytics Engine powered by Apache Spark。 |
命令行 cpd-cli 界面安装在您将用于创建服务实例的工作站上。 |
如果此任务尚未完成,请参阅设置客户端工作站。 |
| 您已生成一个 API 密钥或授权令牌 API密钥或令牌必须关联到在 中拥有创建服务实例 Cloud Pak for Data( |
如果此任务尚未完成,请参阅生成 API 授权令牌。 |
过程
完成以下任务以创建服务实例:
创建服务实例
要创建服务实例:
- 切换到工作站上您希望创建定义服务实例有效负载的 JSON 文件的目录。
- 设置用于填充服务实例 JSON 负载的环境变量:
- 将
INSTANCE_NAME环境变量设置为要用作服务实例显示名称的唯一名称:export INSTANCE_NAME="<display-name>"此名称显示在 Web IBM Software Hub 客户端的实例页面上。
显示名称是一个
string字符串,可包含字母数字字符(a-z、A-Z、0-9)、空格( )、连字符(-)、下划线(_)和句点(.)。请确保用引号将显示名称括起来,如前面的export命令所示。 - 将
INSTANCE_DESCRIPTION环境变量设置为要用于服务实例的描述:export INSTANCE_DESCRIPTION="<description>"此描述显示在 Web IBM Software Hub 客户端的实例页面上。
描述是一个字符串
string,可以包含字母数字字符、空格、连字符、下划线和句点。 请确保将显示名称用引号括起来,如前面的export命令所示。 - 将
INSTANCE_VERSION环境变量设置 IBM Software Hub 为与集群中版本对应的版本:export INSTANCE_VERSION=<version>请使用下表确定相应的数值:
IBM Software Hub 版本 服务实例版本 5.3.1 5.3.1 5.3.0 5.3.0 - 将
VOLUME_NAME环境变量设置为存储卷的名称,该存储卷用于存储与该服务实例相关的数据:export VOLUME_NAME=<volume-name>卷名采用以下格式
<namespace>::<unique-name>:
- 将
- 创建有效
analytics-engine-instance.json负载文件:cat << EOF > ./analytics-engine-instance.json{ "addon_type": "spark", "display_name": "${INSTANCE_NAME}", "namespace": "${PROJECT_CPD_INST_OPERANDS}", "addon_version": "${INSTANCE_VERSION}", "preExistingOwner": false, "create_arguments": { "description": "${INSTANCE_DESCRIPTION}", "metadata": { "storageClass": "", "storageSize": "", "volumeName": "${VOLUME_NAME}" } } } EOF以下环境变量将使用您安装环境变量脚本中已定义的值:${PROJECT_CPD_INST_OPERANDS}
- 将
PAYLOAD_FILE环境变量设置为工作站上 JSON 有效负载文件的完全限定名称:export PAYLOAD_FILE=<fully-qualified-JSON-file-name> - 设置用于连接目标 IBM Software
Hub 服务实例所在实例的环境变量:
- 设置
CPD_ROUTE环境变量:export CPD_ROUTE=$(oc get route cpd -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath={".spec.host"})该命令使用了已在您的安装环境变量脚本中定义的变量
PROJECT_CPD_INST_OPERANDS。 - 将
API_KEY环境变量设置为您创建的 API 密钥:export API_KEY=<your_api_key>
- 设置
- 从有效负载文件创建服务实例。
您执行的命令取决于您要创建服务实例的实例所在位置 IBM Software Hub 所使用的证书类型——是自签名证书还是由受信任的证书颁发机构签发的证书。
该实例使用由可信证书颁发机构签名的证书
curl --request POST \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json' \ --data @${PAYLOAD_FILE}
该实例使用自签名证书(默认)
curl -k --request POST \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json' \ --data @${PAYLOAD_FILE}
如果请求成功,该命令将返回以下 HTTP 响应代码之一:- 200 - 请求已成功完成,服务实例已配置完毕。
- 202 - 请求已成功提交。 正在为服务实例分配资源。
如果请求未成功,请使用响应 HTTP 代码确定原因。
验证服务实例是否已创建
验证服务实例是否已创建:
- 将
INSTANCE_ID环境变量设置为由命令POSTcURL 返回的ID:export INSTANCE_ID=<ID-from-response> - 获取服务实例的状态。
您执行的命令取决于您要创建服务实例的实例所在位置 IBM Software Hub 所使用的证书类型——是自签名证书还是由受信任的证书颁发机构签发的证书。
该实例使用由可信证书颁发机构签名的证书
curl --request GET \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json'
该实例使用自签名证书(默认)
curl -k --request GET \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json'
- 如果请求成功,该命令将返回以下 HTTP 响应代码: 200在 JSON 响应中查找该
provision_status参数。- 如果值为
PROVISIONED,则服务实例创建成功。 - 如果该
PROVISION_IN_PROGRESS值为,请等待几分钟后重新运行该命令。 - 如果该
FAILED值为,请检查 和zen-watcherPodzen-core-api的日志以排查可能原因。
- 如果值为
- 如果请求未成功,请使用响应 HTTP 代码确定原因。
- 如果请求成功,该命令将返回以下 HTTP 响应代码: 200
下一步操作
您必须为用户提供对服务实例的访问权限。 有关更多信息,请参阅管理用户对实例的访问权限。
您可以管理已配置的实例。 有关更多信息,请参阅《 管理已配置实例 》。