Bluemix 使用 cf bind-service 自定义配置绑定 WIoTP 服务

Bluemix binding WIoTP service using cf bind-service custom configuration

Cloud Foundry 提供了将凭据指定为 cf bind-service 命令一部分的工具。在将 WIoTP 服务绑定到 Bluemix 中的应用程序时,我正在使用此工具指定自定义凭据。如下面的匿名命令

 cf bind-service demo-app dev-iotf-service -c   '{"apiKey":"a-dummyorg-dummy12345","apiToken":"dummyapikey","base_uri":"https://dummyorg.internetofthings.ibmcloud.com:443/api/v0001","http_host":"dummyorg.internetofthings.ibmcloud.com","iotCredentialsIdentifier":"dummyid","mqtt_host":"dummyorg.messaging.internetofthings.ibmcloud.com","mqtt_s_port":8883,"mqtt_u_port":1883,"org":"dummyorg"}'

我已经使用 cf create-service-key 命令生成了服务密钥。

Invalid configuration provided for -c flag. Please provide a valid JSON object or path to a file containing a valid JSON object.

我做错了什么?或者是 Bluemix,WIoTP 当前不支持将自定义凭证指定为 cf bind-service 命令的一部分。我真的不想走 CUP 路线,因为这需要在很多应用程序中进行更改,这些应用程序希望 WIoTP 凭据出现在 iotf-service 对象中。

我可以使用 bx 客户端完全按照您指定的方式调用命令(除了替换我的应用程序和服务名称):

bx cf bind-service myapp my-iotf-service -c '{"apiKey":"a-dummyorg-dummy12345","apiToken":"dummyapikey","base_uri":"https://dummyorg.internetofthings.ibmcloud.com:443/api/v0001","http_host":"dummyorg.internetofthings.ibmcloud.com","iotCredentialsIdentifier":"dummyid","mqtt_host":"dummyorg.messaging.internetofthings.ibmcloud.com","mqtt_s_port":8883,"mqtt_u_port":1883,"org":"dummyorg"}'

并且有效。可能您只是有一个旧的 cf 客户端。您应该使用 https://console.bluemix.net/docs/cli/index.html#downloads

上可用的 bx 客户端

但是,IoTP 不支持这种方式,因此会忽略通过这种方式发送的任何内容。最明显的情况是要么创建一个有限的 API 密钥,要么使用您在尝试时已经创建的 API 密钥。很遗憾,您需要在 https://ibmcloud.ideas.aha.io/?category=6343565373323972470 提交想法才能得到考虑。