Open JiniousChoi opened 4 years ago
I believe you can execute your web action with wsk
.
Could you replace the way you are getting inputs as follow:
def main(args):
val = args.get('__ow_headers', "default")
print(args)
return { "response": args,
"val": val }
I can invoke the action with your code.
$ wsk action invoke /style95/python-web -r
{
"response": {},
"val": "default"
}
When you invoke a web action with wsk
, OW would not populate some information such as __ow_headers
because it treats the action as a normal action.
There is no command to invoke a web action including extension. You should send the request directly using the curl command.
@JiniousChoi Currently, you can easily get the URL of a web action.
$ wsk action get python-web --url
ok: got action python-web
https://{HOST}/api/v1/web/style95/default/python-web
Is there any specific reason that you need to invoke it with wsk
?
I suggest that wsk
should provide a switch for web action invocation.
Say, if there is an action named ACTION:
wsk action invoke -r ACTION -web=[http|json|text|svg|...]
or, we could be more explicit about this matter in wsk action invoke --help
, regarding what's feasible and what isn't.
@style95 While we can make both normal/web action types with the command, we ONLY can invoke normal actions with it. And I don't see any explicit explanation about it.
It's a matter of UX. it seems inconsistent to me.
@style95 And that brings in one more hop here. A user who simply wants to check if one's web action is working or not would need to run like:
curl $(wsk action get python-web --url)
I think wsk action invoke python-web --web
looks intuitive and nicer.
Interesting. Would be a good point to add.
I would move this issue to cli repo to proceed with it.
Indeed a good idea.
apache/openwhisk#4712 Environment details:
local deployment
Steps to reproduce the issue:
make a simple raw HTTP web action in python
try to invoke it with wsk command
check out the activation log
But it works with curl when invoked with .json context extension
What I want
I'd love to know if there is a way for the wsk command to invoke a web action with context extensions. I learned that the default is .http in the docs and I wonder if there is no way for wsk to invoke an action other context extensions but .http.