ProxyKit | create code-first HTTP reverse proxies | Serverless library

 by   ProxyKit C# Version: v2.3.4 License: Apache-2.0

kandi X-RAY | ProxyKit Summary

kandi X-RAY | ProxyKit Summary

ProxyKit is a C# library typically used in Serverless applications. ProxyKit has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

Whilst it is possible to run full ASP.NET Core web application in AWS Lambda and Azure Functions it should be noted that Serverless systems are message based and not stream based. Incoming and outgoing HTTP request messages will be buffered and potentially encoded as Base64 if binary (so larger). This means ProxyKit should only be used for API (json) proxying in production on Serverless. (Though proxying other payloads is fine for dev / exploration / quick'n'dirty purposes.).
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              ProxyKit has a medium active ecosystem.
              It has 1110 star(s) with 131 fork(s). There are 44 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 0 open issues and 104 have been closed. On average issues are closed in 247 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of ProxyKit is v2.3.4

            kandi-Quality Quality

              ProxyKit has 0 bugs and 0 code smells.

            kandi-Security Security

              ProxyKit has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              ProxyKit code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              ProxyKit is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              ProxyKit releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of ProxyKit
            Get all kandi verified functions for this library.

            ProxyKit Key Features

            No Key Features are available at this moment for ProxyKit.

            ProxyKit Examples and Code Snippets

            No Code Snippets are available at this moment for ProxyKit.

            Community Discussions

            QUESTION

            Kubernetes: What's the idiomatic way in K8s to setup a custom proxy between ingress and its services?
            Asked 2019-Sep-05 at 08:49

            At present we have a lot of ASP.net WebAPI service applications hosted on premises. We are planning to move these to Azure AKS. We've identified a lot of common code across these applications which is mostly implemented as ASP.Net reusable middleware components so that the logic is not duplicated in code.

            In a K8s environment it makes sense to offload this common functionality to one or more proxy applications which intercepts the requests being forwarded from the ingress to the services (assuming this is the correct approach). Some of the request inspection / manipulation logic is based on the service host and path to be defined in the ingress and even on the headers in the incoming requests.

            For e.g. I considered using OAuth2_proxy but found that even though authentication is quite easy to implement, Azure AD group based authorization is impossible to do out of the box with that. So what's the idiomatic way one goes about setting up such a custom proxy application? (I'm familiar with using libraries such as ProxyKit middleware in ASP.Net to develop http proxies.)

            One approach that comes to mind is to deploy such proxies as sidecar containers in each service application pod but that would mean there'd be unnecessary resource usage by all such duplicate container instances in each pod. I don't see the benefit over the use of middleware components as mentioned previously. :(

            The ideal setup would be ingress --> custom proxy 1 --> custom proxy 2 --> custom proxy n --> service where custom proxies would be separately deployable and scalable.

            ...

            ANSWER

            Answered 2019-Sep-05 at 08:49

            So after a lot of reading and googling I found that the solution was to use API Gateways that are available as libraries (preferrably based on .Net):

            Ocelot placed behind the nginx ingress fits the bill perfectly

            Ocelot is a .NET API Gateway. This project is aimed at people using .NET running a micro services / service oriented architecture that need a unified point of entry into their system. However it will work with anything that speaks HTTP and run on any platform that ASP.NET Core supports.

            Ocelot is currently used by Microsoft and Tencent.

            The custom middleware and header/query/claims transformation solves my problem. Here are some worthy links

            Microsoft Docs: Implement API Gateways with Ocelot

            Ocelot on Github

            Ocelot Documentation

            Features

            A quick list of Ocelot's capabilities for more information see the documentation.

            • Routing

            • Request Aggregation

            • Service Discovery with Consul & Eureka

            • Service Fabric

            • Kubernetes

            • WebSockets

            • Authentication

            • Authorisation

            • Rate Limiting

            • Caching

            • Retry policies / QoS

            • Load Balancing

            • Logging / Tracing / Correlation

            • Headers / Query String / Claims Transformation

            • Custom Middleware / Delegating Handlers

            • Configuration / Administration REST API

            • Platform / Cloud Agnostic

            Source https://stackoverflow.com/questions/57782492

            QUESTION

            AspNet Core 3 HttpClientFactory: TaskCanceledException
            Asked 2019-Jul-16 at 12:37

            I'm using an aspnet core 3 reverse proxy in Azure Kubernetes Service, loosely based on ProxyKit, which used to work just fine in a previous cluster. On the new cluster (the only difference I can see is that the old one used kubenet, the new one an azure virtual network) I constantly get TaskCanceledExceptions on HttpClient.SendAsync when an upstream request takes more than a few seconds.

            This is the relevant method that throws the exception:

            ...

            ANSWER

            Answered 2019-Jul-16 at 12:37

            I commented:

            Task cancellation for something like SendAsync is going to occur when the client closes the connection. As such, I think you're looking the wrong place. You need to figure out why the clients are closing the connection prematurely.

            As a result, the OP was able to determine that this issue lied with Azure Application Gateway:

            Makes sense, and you are totally right. Was pulling my remaining hair out the whole day and the culprit is Azure Application Gateway with a request timeout of 1 second.

            Source https://stackoverflow.com/questions/57041377

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install ProxyKit

            ProxyKit is a NetStandard2.0 package. Install into your ASP.NET Core project:.

            Support

            Any ideas for features, bugs or questions, please create an issue. Pull requests gratefully accepted but please create an issue for discussion first. I can be reached on twitter at @randompunter.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Serverless Libraries

            Try Top Libraries by ProxyKit

            Recipes

            by ProxyKitC#

            HttpOverrides

            by ProxyKitC#

            RoutingHandler

            by ProxyKitC#