Thanks guys, for the cool responses and feedbacks. @spacewander - You are right, we can provide the flexibility. Let's change the min value to 100ms and the default value of ssl_verify to true.
Thank you! On Thu, 11 Nov 2021 at 10:14, Ayush das <[email protected]> wrote: > Hi Bisakh, > Your proposal SGTM, > Ping me if you need any sort of help. > > Thank you > Best regards > Ayush Das<https://github.com/iamayushdas> > > On Thu, 11 Nov 2021 at 10:08 AM, Zeping Bai <[email protected]> wrote: > > > Hi, Bisakh. > > > > Your Proposal looks great. But I have a little question. > > > > > I am trying to maintain a generic schema so that it can be extended in > > > cloud functions from multiple cloud providers. We just have to take > care > > of > > > the schema.authorization part and the related nuisances > > > > Can you tell me more about this part? Are you trying to implement an > > easily extensible Serverless BasePlugin? > > > Hi Zeping, Yes kinda like that to reduce code duplication. See the thing is, for every serverless plugin, we have to make a request to the cloud provider's endpoint whenever the route is invoked. They all differ in the way authorization is handled. What I have though is like this - a base package module with a function that has the schema except for the authorization part. It takes the authorization schema as a request argument and returns the full schema (here plugins for the different service providers can define their respective authorization schema in the respective plugin Lua file). Another method that takes the HTTP params to invoke the function URI. This is just a rough draft that I thought. Let's see how I end up implementing it. > > Best regards! > > Zeping Bai @bzp2010 > > > > Bisakh Mondal <[email protected]> 于2021年11月11日周四 上午4:02写道: > > > > > Hi folks, > > > > > > This proposal is for integrating a new plugin to support Microsoft > Azure > > > cloud functions into Apache APISIX. > > > > > > proposed plugin_name = "azure-functions" > > > > > > The idea is fairly simple. Whenever a route is called with the plugin > > > enabled, the serverless function will be treated as an upstream and > will > > be > > > called in OpenResty "access" phase. The request headers, body and > request > > > params will be forwarded to the upstream and the response header, body > > and > > > status code will be returned back to the client which has invoked the > > > route. > > > > > > Plugin schema: > > > > > > { > > > type = "object", > > > properties = { > > > function_uri = {type = "string"}, > > > authorization = { > > > type = "object", > > > properties = { > > > apikey = {type = "string"}, > > > clientid = {type = "string"} > > > } > > > }, > > > timeout = {type = "integer", minimum = 1000, default = 3000}, > > > ssl_verify = {type = "boolean", default = false}, > > > keepalive = {type = "boolean", default = true}, > > > keepalive_timeout = {type = "integer", minimum = 1000, default > = > > > 60000}, > > > keepalive_pool = {type = "integer", minimum = 1, default = 5} > > > }, > > > required = {"function_uri"} > > > } > > > > > > function_uri is the field where the users will pass the URI of the > azure > > > function. For example ( > > > https://test-apisix.azurewebsites.net/api/HttpTrigger1). > > > The authorization subschema has two fields > > > - apikey - this could be either Function specific key or a host key > > > (azure specific). > > > - clientid: mainly for webhooks (secured by azure active directory) > > > The rest of the fields are pretty much normal for any proxy plugins to > > > provide the users with the flexibility of customizing an HTTP request. > > > (I am trying to maintain a generic schema so that it can be extended in > > > cloud functions from multiple cloud providers. We just have to take > care > > of > > > the schema.authorization part and the related nuisances) > > > > > > For the first version of the plugin, we are going to support only HTTP > > and > > > HTTPS schemes. We will think about different schemes (gRPC, WebSockets) > > in > > > the subsequent upgrades. > > > > > > I have started working with a draft PR[1]. If you have any updates, > > > suggestions, recommendations, feel free to add so. > > > Thank you. > > > > > > Best regards, > > > Bisakh <https://github.com/bisakhmondal> > > > > > > [1]: https://github.com/apache/apisix/pull/5479 > > > > > >
