Microsoft announced today that gRPC is now available and supported on Azure App Service for Linux workloads. This was made possible by recent platform upgrades to the HTTP reverse proxy layer to leverage YARP and Kestrel.
This is an important announcement as it removes the native support limitation in Azure App Service which prevented the migration and usage of gRPC-enabled applications in Azure App Service. In such cases, running the Azure App Service migration assessment tools would report incompatibility errors, leaving you with the pain of having to decide upon an alternative design option for your net.tcp, wcf or gRPC applications.
gRPC utilizes the remote procedure call (RPC) framework to streamline messages between clients and servers over the HTTP/2 protocol. Using gRPC protocol over HTTP/2 enables the use of features like multiplexing to send multiple parallel requests over the same connection. gRPC is currently available for use with .NET Core 3.1 and .NET 6. Node and Python will soon be supported as well.
Microsoft also provides a step-by-step guide on how to deploy a .NET 6 gRPC app on Azure App Service. This involves first carrying out a few configuration steps in the gRPC server before uploading the application code to Azure App Service. After uploading the code and before deploying the new Azure App Service, you will need to perform the following additional actions:
- Enable HTTP version
- Enable HTTP20ProxyFlag
- Add HTTP20_ONLY_PORT application setting