服务参数定义和示例

当 IBM Cloud 客户创建服务实例时,服务参数用于收集和添加呼叫的附加数据点。 以下各部分提供了如何使用服务参数的示例和定义。 要开始为产品添加定制服务参数,请参阅 为服务添加定制服务参数

服务参数示例

以下示例说明如何为必需文本字段指定定制服务参数。

在周围的 metadataservice JSON 结构中,parameters 键标识定制服务参数的 JSON 数组。 在此示例中,数组仅包含一个具有标识 subscription_id 的定制参数。 这是一个必填文本字段,标签为 Subscription ID,说明为 Subscription ID that will be used when provisioning the service instance。 当用户选择 068f8a20-8b27-4049-91fe-a3ff5f50535245333bd7-79f5-475f-9b14-9fe99734592a 两种相关价格计划中的任何一种时,用户界面都会显示该自定义参数:

{
  "metadata": {
    //...
    "service": {
      //...
      "parameters": [{
          "associations": {
              "plan": {
                  "showFor": [
                      "068f8a20-8b27-4049-91fe-a3ff5f505352",
                      "45333bd7-79f5-475f-9b14-9fe99734592a"
                  ]
              }
          },
          "description": "Subscription ID that will be used when provisioning the service instance",
          "displayname": "Subscription ID",
          "name": "subscription_id",
          "required": true,
          "type": "text"
      }]
  }
}

此定制参数不仅必须添加到 服务 对象,还必须添加到与该参数关联的两个服务计划的所有 部署 对象。 此外,必须更新部署对象的部署以处理定制参数。

请务必在 IBM Cloud 控制台中测试您的参数,以验证您指定的更改是否正确。

服务参数定义

parameters 结构定义定制服务参数的 JSON 数组。 创建服务实例时,它会使用数组中的信息来管理定制服务参数。 有关示例,请参阅本主题中的前面的子主题。

parameters 结构中的每个定制服务参数都具有以下布局。 许多属性是可选的:

parameters.name
参数的键。
parameters.displayname
显示的参数名称。
parameters.type
IBM Cloud 用户界面显示的输入字段类型。 值可以是 text, password, dropdown, check boxradio

此值是必需的。

以下代码块显示了 namedisplaynametype 参数的示例:

{
  "name": "pwd",
  "displayname": "Password",
  "type": "password"
}
parameters.options
一个 JSON 结构,用于指定 dropdowncheck boxradio 输入类型的可用值。
parameters.options.displayname
要在 UI 中显示的下拉列表、复选框或单选按钮的名称。
parameters.options.value
创建服务时要发送给服务代理程序的参数值。
{
  "options": [
    {
      "displayname": "HDFS",
      "value": "hdfs"
    },
    {
      "displayname": "YARN",
      "value": "yarn"
    },
  ]
}
parameters.value
参数的缺省值。 对于 checkbox 输入类型,可以是值的数组。
{
  ["hfs","yarn"]
}
parameters.layout
指定 checkbox 或 radio 输入类型的布局。 未指定时,缺省布局为 horizontal。
parameters.associations
描述与价格计划和/或其他自定义参数交互的 JSON 结构。

此值为可选值,其后附加到 parameters.associations.<value> 的所有值均为可选值。

{
  "type": "text",
  "associations": {
    "plan": {
    "showFor": ["apsMyserviceParametersDemo-entry","apsMyserviceParametersDemo-enterprise"]
    }
  }
}
parameters.associations.plan
一个 JSON 结构,用于描述与价格套餐的交互。
parameters.associations.plan.showFor
价格套餐标识的数组。 如果指定,那么在选择了相应的价格套餐后,此参数会显示在 UI 中。
parameters.associations.plan.optionsRefresh
指定时,在选择关联的价格套餐后,将调用 optionsUrl
parameters.associations.parameters
JSON 数组,用于描述与其他定制参数的交互。
parameters.associations.parameters.name
要与之交互的其他自定义参数的名称。

使用 parameters.associations.parameters 时需要。

parameters.associations.parameters.showFor
与要交互的自定义参数相关联的选定值数组。 选择其中一个值时,此参数会显示在 UI 中。
parameters.associations.parameters.optionsRefresh
当该参数设置为 true 时,当相关参数值发生变化且该参数在用户界面中可见时,optionsUrl 将被调用。
parameters.optionsUrl
控制台调用的 API,用于获取 dropdown、check box 或 radio 输入类型的选项列表。 响应是一个 JSON 结构,包含两个字段:
parameters.optionsUrl.options
将返回 parameters.options 的 JSON 数组;详情请查看 parameters.options 条目。
parameters.optionsUrl.value
参数的新缺省值。 更多详情,请参见 parameters.value 条目。

控制台会传递 ace_config 查询参数,其中包含当前的 org GUID、空间 GUID、所有自定义参数的当前值以及当前的价格计划 ID。 在头中传播的是不记名令牌。

parameters.invalidmessage
当文本框的内容无效时显示的消息。
parameters.description
显示的参数描述,用于帮助用户理解参数值。
parameters.required
布尔值,指示是否必须在 IBM Cloud 用户界面中输入参数。
parameters.pattern
用于检查值的正则表达式。
parameters.placeholder
描述预期值的简短提示。
parameters.readonly
布尔值,指示参数的值是否为仅显示而不可由用户进行更改。 缺省值为 false。
parameters.hidden
布尔值,指示是否对用户隐藏键/值对。 缺省值为 false。