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_instances REST API 程序化地创建服务实例,您必须在 中拥有创建服务实例 IBM Software Hub (can_provision) 权限。
你需要在什么时候完成这项任务?
仅当您希望通过调用 /v3/service_instances REST API 程序化地创建服务实例时,才执行此任务。
创建服务实例的替代方法
  • 来自网页客户端。 有关更多信息,请阅从 Web Analytics Engine powered by Apache Spark 客户端创建服务实例。
  • 通过使用该 cpd-cli service-instance create 命令。 有关更多信息,请阅使用 cpd-cli Analytics Engine powered by Apache Spark service-instance create 命令创建服务实例。

完成此任务所需的信息

在为创建服务实例 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(can_provision) 权限的用户。

如果此任务尚未完成,请参阅生成 API 授权令牌

过程

完成以下任务以创建服务实例:

  1. 创建服务实例
  2. 验证服务实例是否已创建
  3. 下一步该做什么

创建服务实例

要创建服务实例:

  1. 切换到工作站上您希望创建定义服务实例有效负载的 JSON 文件的目录。
  2. 设置用于填充服务实例 JSON 负载的环境变量:
    1. INSTANCE_NAME 环境变量设置为要用作服务实例显示名称的唯一名称:
      export INSTANCE_NAME="<display-name>"

      此名称显示在 Web IBM Software Hub 客户端的实例页面上。

      显示名称是一个 string 字符串,可包含字母数字字符(a-z、A-Z、0-9)、空格( )、连字符(-)、下划线(_)和句点(.)。请确保用引号将显示名称括起来,如前面的 export 命令所示。

    2. INSTANCE_DESCRIPTION 环境变量设置为要用于服务实例的描述:
      export INSTANCE_DESCRIPTION="<description>"

      此描述显示在 Web IBM Software Hub 客户端的实例页面上。

      描述是一个字符串 string ,可以包含字母数字字符、空格、连字符、下划线和句点。 请确保将显示名称用引号括起来,如前面的 export 命令所示。

    3. INSTANCE_VERSION 环境变量设置 IBM Software Hub 为与集群中版本对应的版本:
      export INSTANCE_VERSION=<version>

      请使用下表确定相应的数值:

      IBM Software Hub 版本 服务实例版本
      5.3.1 5.3.1
      5.3.0 5.3.0
    4. VOLUME_NAME 环境变量设置为存储卷的名称,该存储卷用于存储与该服务实例相关的数据:
      export VOLUME_NAME=<volume-name>

      卷名采用以下格式 <namespace>::<unique-name>

  3. 创建有效 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}
  4. PAYLOAD_FILE 环境变量设置为工作站上 JSON 有效负载文件的完全限定名称:
    export PAYLOAD_FILE=<fully-qualified-JSON-file-name>
  5. 设置用于连接目标 IBM Software Hub 服务实例所在实例的环境变量:
    1. 设置 CPD_ROUTE 环境变量:
      export CPD_ROUTE=$(oc get route cpd -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath={".spec.host"})

      该命令使用了已在您的安装环境变量脚本中定义的变量 PROJECT_CPD_INST_OPERANDS

    2. API_KEY 环境变量设置为您创建的 API 密钥:
      export API_KEY=<your_api_key>
  6. 从有效负载文件创建服务实例。

    您执行的命令取决于您要创建服务实例的实例所在位置 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 代码确定原因。

验证服务实例是否已创建

验证服务实例是否已创建:

  1. INSTANCE_ID 环境变量设置为由命令 POSTcURL 返回的ID:
    export INSTANCE_ID=<ID-from-response>
  2. 获取服务实例的状态。

    您执行的命令取决于您要创建服务实例的实例所在位置 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-watcher Pod zen-core-api 的日志以排查可能原因。
    • 如果请求未成功,请使用响应 HTTP 代码确定原因。

下一步操作

您必须为用户提供对服务实例的访问权限。 有关更多信息,请参阅管理用户对实例的访问权限

您可以管理已配置的实例。 有关更多信息,请参阅《 管理已配置实例 》。