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?
>
> 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
> >
>

Reply via email to