将 curl 与 OpenWhisk 结合使用
Using curl with OpenWhisk
我正在尝试使用 IBM OpenWhisk。它有自己的 CLI,但我想使用 curl
.
调用一个简单的 "echo" 示例
curl -d-data '{"message": "hellow world"}' https://user:password@openwhisk.ng.bluemix.net:443/api/v1/namespaces/whisk.system/action/samples/echo
curl: (6) Couldn't resolve host '"message": "hello world"'
{
"error": "HTTP method not allowed, supported methods: GET",
"code": 81107
}
如何通过 curl 或类似工具调用 OpenWhisk,如何进行身份验证?
身份验证是通过 curl 中的 Basic Authentication, hence you can use the -u
标志完成的。使用您使用的 user:pass@url
版本应该也可以。
要调用一个动作,您必须使用 POST
,因此在 curl 中使用 -XPOST
. Also, the API expects application/json
as the Content-Type. Data is sent via the -d
标志。
您的 url 中也有错别字。您需要使用 actions
而不是 action
(整个 API 使用复数)。
总而言之,您的请求应如下所示:
curl -XPOST -H "Content-Type: application/json" -d '{"message": "hello world"}' -u $USERNAME:$PASSWORD https://openwhisk.ng.bluemix.net/api/v1/namespaces/whisk.system/actions/samples/echo
有一个 blog article 涵盖了这个主题。对于阻止操作,只需添加 ?blocking=true
作为参数。
wsk CLI 还有一个非常方便的“-v”选项,它可以显示 HTTP 请求和 headers 所以如果你这样做:
wsk -v action invoke hello --blocking
您将看到实际的 REST API 调用。
身份验证是通过基本身份验证完成的。为 'Authorization' 添加 HTTP Header。使用字符串
'Basic'+base64Encoded(username+':'+password)
其中 base64Encoded(str) 是一种 base64 加密字符串的方法。
您可以通过 https://console.ng.bluemix.net/openwhisk/learn/cli 在 Bluemix 上找到您的 OpenWhisk 帐户的用户名和密码
或者通过 wsk cli: wsk 属性 get
它包含格式为 'username:password'
的 'whisk auth' 属性
我正在尝试使用 IBM OpenWhisk。它有自己的 CLI,但我想使用 curl
.
curl -d-data '{"message": "hellow world"}' https://user:password@openwhisk.ng.bluemix.net:443/api/v1/namespaces/whisk.system/action/samples/echo
curl: (6) Couldn't resolve host '"message": "hello world"'
{
"error": "HTTP method not allowed, supported methods: GET",
"code": 81107
}
如何通过 curl 或类似工具调用 OpenWhisk,如何进行身份验证?
身份验证是通过 curl 中的 Basic Authentication, hence you can use the -u
标志完成的。使用您使用的 user:pass@url
版本应该也可以。
要调用一个动作,您必须使用 POST
,因此在 curl 中使用 -XPOST
. Also, the API expects application/json
as the Content-Type. Data is sent via the -d
标志。
您的 url 中也有错别字。您需要使用 actions
而不是 action
(整个 API 使用复数)。
总而言之,您的请求应如下所示:
curl -XPOST -H "Content-Type: application/json" -d '{"message": "hello world"}' -u $USERNAME:$PASSWORD https://openwhisk.ng.bluemix.net/api/v1/namespaces/whisk.system/actions/samples/echo
有一个 blog article 涵盖了这个主题。对于阻止操作,只需添加 ?blocking=true
作为参数。
wsk CLI 还有一个非常方便的“-v”选项,它可以显示 HTTP 请求和 headers 所以如果你这样做:
wsk -v action invoke hello --blocking
您将看到实际的 REST API 调用。
身份验证是通过基本身份验证完成的。为 'Authorization' 添加 HTTP Header。使用字符串
'Basic'+base64Encoded(username+':'+password)
其中 base64Encoded(str) 是一种 base64 加密字符串的方法。
您可以通过 https://console.ng.bluemix.net/openwhisk/learn/cli 在 Bluemix 上找到您的 OpenWhisk 帐户的用户名和密码 或者通过 wsk cli: wsk 属性 get 它包含格式为 'username:password'
的 'whisk auth' 属性