由于 'Invalid tag names',调用 API 方法 SoftLayer_Virtual_Guest/setTags.json 失败
call API method SoftLayer_Virtual_Guest/setTags.json failed due to 'Invalid tag names'
当我posthttps://api.softlayer.com/rest/v3.1/SoftLayer_Virtual_Guest/{vmid}/setTags.json
带参数:
{"parameters":["id: 899a9411-a08b-4d31-8dc6-cb2712c608dc, index: 0, job: redis-master, name: redis-master/899a9411-a08b-4d31-8dc6-cb2712c608dc, cpi-tag: redis-deployment, created_at: 2017-11-09T07:19:43Z, deployment: my-redis-deployment, director: ed-demo-director"]}
API return 错误 '{"error":"Invalid value provided for 'tags'. Invalid tag names: name: redis-master/899a9411-a08b-4d31-8dc6-cb2712c608dc.","code":"SoftLayer_Exception_InvalidValue"}'。如错误所述,'name' 不是有效的标签名称。我不知道为什么它无效。以及我们在哪里可以设置无效标签名称列表。
又做了更多的测试,发现是字符'/'造成的。
无效的原因是因为 SoftLayer_Virtual_Guest::setTags 方法不允许使用某些字符,例如您发现的“/”,允许的字符为 A-Z、0-9、空格、_ (下划线), - (hypen), . (句点)和 :(冒号),因此恐怕您将无法使用允许以外的其他字符的标签名称。
尝试以下 REST 请求以使该方法起作用,“/”已被连字符“-”替换,因为它是允许的字符:
https://[username]:[apiKey]@api.softlayer.com/rest/v3.1/SoftLayer_Virtual_Guest/35747489/setTags
method (POST)
Body (json):
{"parameters":["id: 899a9411-a08b-4d31-8dc6-cb2712c608dc,index: 0,job: redis-master,name: redis-master-899a9411-a08b-4d31-8dc6-cb2712c608dc,cpi-tag: redis-deployment,created_at: 2017-11-09T07:19:43Z,deployment: my-redis-deployment,director: ed-demo-director"]}
更多信息请见下方:
https://sldn.softlayer.com/reference/services/SoftLayer_Tag/setTags
当我posthttps://api.softlayer.com/rest/v3.1/SoftLayer_Virtual_Guest/{vmid}/setTags.json
带参数:
{"parameters":["id: 899a9411-a08b-4d31-8dc6-cb2712c608dc, index: 0, job: redis-master, name: redis-master/899a9411-a08b-4d31-8dc6-cb2712c608dc, cpi-tag: redis-deployment, created_at: 2017-11-09T07:19:43Z, deployment: my-redis-deployment, director: ed-demo-director"]}
API return 错误 '{"error":"Invalid value provided for 'tags'. Invalid tag names: name: redis-master/899a9411-a08b-4d31-8dc6-cb2712c608dc.","code":"SoftLayer_Exception_InvalidValue"}'。如错误所述,'name' 不是有效的标签名称。我不知道为什么它无效。以及我们在哪里可以设置无效标签名称列表。
又做了更多的测试,发现是字符'/'造成的。
无效的原因是因为 SoftLayer_Virtual_Guest::setTags 方法不允许使用某些字符,例如您发现的“/”,允许的字符为 A-Z、0-9、空格、_ (下划线), - (hypen), . (句点)和 :(冒号),因此恐怕您将无法使用允许以外的其他字符的标签名称。
尝试以下 REST 请求以使该方法起作用,“/”已被连字符“-”替换,因为它是允许的字符:
https://[username]:[apiKey]@api.softlayer.com/rest/v3.1/SoftLayer_Virtual_Guest/35747489/setTags
method (POST)
Body (json):
{"parameters":["id: 899a9411-a08b-4d31-8dc6-cb2712c608dc,index: 0,job: redis-master,name: redis-master-899a9411-a08b-4d31-8dc6-cb2712c608dc,cpi-tag: redis-deployment,created_at: 2017-11-09T07:19:43Z,deployment: my-redis-deployment,director: ed-demo-director"]}
更多信息请见下方:
https://sldn.softlayer.com/reference/services/SoftLayer_Tag/setTags