服务参数定义和示例
当 IBM Cloud 客户创建服务实例时,服务参数用于收集和添加呼叫的附加数据点。 以下各部分提供了如何使用服务参数的示例和定义。 要开始为产品添加定制服务参数,请参阅 为服务添加定制服务参数。
服务参数示例
以下示例说明如何为必需文本字段指定定制服务参数。
在周围的 metadata 和 service JSON 结构中,parameters 键标识定制服务参数的 JSON 数组。 在此示例中,数组仅包含一个具有标识 subscription_id 的定制参数。 这是一个必填文本字段,标签为 Subscription ID,说明为 Subscription ID that will be used when provisioning the service instance。
当用户选择 068f8a20-8b27-4049-91fe-a3ff5f505352 或 45333bd7-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 box或radio。
此值是必需的。
以下代码块显示了 name,displayname 和 type 参数的示例:
{
"name": "pwd",
"displayname": "Password",
"type": "password"
}
parameters.options- 一个 JSON 结构,用于指定
dropdown、check box和radio输入类型的可用值。 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。