You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Learn how to configure a gRPC application with Azure App Service on Linux.
4
4
author: jefmarti
5
5
ms.topic: how-to
6
6
ms.date: 11/10/2023
@@ -10,70 +10,78 @@ ms.author: jefmarti
10
10
11
11
# Configure gRPC on App Service
12
12
13
-
This article explains how to configure your Web App for gRPC.
13
+
This article explains how to configure your web app for gRPC.
14
14
15
-
gRPC is a Remote Procedure Call framework that is used to streamline messages between your client and server over HTTP/2. Using gRPC protocol over HTTP/2 enables the use of features like multiplexing to send multiple parallel requests over the same connection and bi-directional streaming for sending requests and responses simultaneously. Support for gRPC on App Service (Linux) is currently available.
15
+
gRPC is a Remote Procedure Call framework that can streamline messages between your client and server over HTTP/2. Using the gRPC protocol over HTTP/2 enables the use of features like:
16
16
17
-
To use gRPC on your application, you'll need to configure your application by selecting the HTTP Version, enabling the HTTP 2.0 Proxy, and setting the HTTP20_ONLY_PORT value.
17
+
- Multiplexing to send multiple parallel requests over the same connection.
18
+
- Bidirectional streaming to send requests and responses simultaneously.
18
19
19
-
Follow the steps below to configure a gRPC application with Azure App Service on Linux.
20
-
21
-
> [!NOTE]
22
-
> For gRPC client and server samples for each supported language, please visit the [documentation on GitHub](https://github.com/Azure/app-service-linux-docs/tree/master/HowTo/gRPC).
20
+
Support for gRPC is currently available on Azure App Service for Linux. To use gRPC on your web app, you need to configure your app by selecting the HTTP version, proxy, and port.
23
21
22
+
For gRPC client and server samples for each supported language, see the [documentation on GitHub](https://github.com/Azure/app-service-linux-docs/tree/master/HowTo/gRPC).
24
23
25
24
## Prerequisite
26
-
Create your [Web App](getting-started.md) as you normally would. Choose your preferred Runtime stack and **Linux** as your Operating System.
27
25
28
-
After your Web App is created, you'll need to configure the following to enable gRPC before deploying your application:
26
+
Create your [web app](getting-started.md) as you normally would. Choose your preferred runtime stack, and choose Linux as your operating system.
27
+
28
+
After you create your web app, configure the following details to enable gRPC before you deploy your application.
29
29
30
30
> [!NOTE]
31
-
> If you are deploying a .NET gRPC app to App Service with Visual Studio, skip to step 3. Visual Studio will set the HTTP version and HTTP 2.0 Proxy configuration for you.
31
+
> If you're deploying a .NET gRPC app to App Service by using Visual Studio, skip to [step 3](#3-configure-the-http2-port). Visual Studio sets the HTTP version and the HTTP 2.0 proxy configuration for you.
32
+
33
+
## 1. Configure the HTTP version
34
+
35
+
The first setting that you need to configure is the HTTP version:
36
+
37
+
1. On the left pane of your web app, under **Settings**, go to **Configuration**.
38
+
2. On the **General Settings** tab, scroll down to **Platform settings**.
39
+
3. In the **HTTP version** dropdown list, select **2.0**.
40
+
4. Select **Save**.
41
+
42
+
This setting restarts your application and configures the front end to allow clients to make HTTP/2 calls.
32
43
33
-
## 1. Enable HTTP version
34
-
The first setting you need to configure is the HTTP version
35
-
1. Navigate to **Configuration** under **Settings** in the left pane of your web app
36
-
2. Click on the **General Settings** tab and scroll down to **Platform settings**
37
-
3. Go to the **HTTP version** drop-down and select **2.0**
38
-
4. Click **save**
44
+
## 2. Configure the HTTP 2.0 proxy
39
45
40
-
This restarts your application and configure the front end to allow clients to make HTTP/2 calls.
46
+
Next, you need to configure the HTTP 2.0 proxy:
41
47
42
-
## 2. Enable HTTP 2.0 Proxy
43
-
Next, you'll need to configure the HTTP 2.0 Proxy:
44
-
1. Under the same **Platform settings** section, find the **HTTP 2.0 Proxy** setting and select **gRPC Only**.
45
-
2. Click **save**
48
+
1. In the same **Platform settings** section, find the **HTTP 2.0 Proxy** setting and select **gRPC Only**.
49
+
2. Select **Save**.
46
50
47
-
Once turned on, this setting configures your site to be forwarded HTTP/2 requests.
51
+
This setting configures your site to receive HTTP/2 requests.
48
52
49
-
## 3. Add HTTP20_ONLY_PORT application setting
50
-
App Service requires an application setting that specifically listens for HTTP/2 traffic in addition to the HTTP/1.1 port. The HTTP/2 port will be defined in the App Settings.
51
-
1. Navigate to the **Environment variables** under **Settings** on the left pane of your web app.
52
-
2. Under the **App settings** tab, add the following app setting to your application.
53
-
1. **Name =** HTTP20_ONLY_PORT
54
-
2. **Value =** 8585
53
+
## 3. Configure the HTTP/2 port
55
54
56
-
This setting will configure the port on your application that is specified to listen for HTTP/2 request.
55
+
App Service requires an application setting that specifically listens for HTTP/2 traffic in addition to HTTP/1.1 traffic. You define the HTTP/2 port in the app settings:
57
56
58
-
Once these three steps are configured, you can successfully make HTTP/2 calls to your Web App with gRPC.
57
+
1. On the left pane of your web app, under **Settings**, go to **Environment variables**.
58
+
2. On the **App settings** tab, add the following app settings to your application:
59
+
-**Name** = **HTTP20_ONLY_PORT**
60
+
-**Value** = **8585**
59
61
60
-
### (Optional) Python Startup command
61
-
For Python applications only, you'll also need to set a custom startup command.
62
-
1. Navigate to the **Configuration** under **Settings** on the left pane of your web app.
63
-
2. Under **General Settings**, add the following **Startup Command**`python app.py`.
62
+
These settings configure the port on your application that's specified to listen for HTTP/2 requests.
64
63
65
-
## FAQ
64
+
Now that you've configured the HTTP version, port, and proxy, you can successfully make HTTP/2 calls to your web app by using gRPC.
65
+
66
+
### (Optional) Python startup command
67
+
68
+
For Python applications only, you also need to set a custom startup command:
69
+
70
+
1. On the left pane of your web app, under **Settings**, go to **Configuration**.
71
+
2. Under **General Settings**, add the following value for **Startup Command**: `python app.py`.
72
+
73
+
## Common topics
74
+
75
+
The following table can answer your questions about using gRPC with App Service.
66
76
67
77
> [!NOTE]
68
-
> gRPC is not a supported feature on ASEv2 SKUs. Please use an ASEv3 SKU.
78
+
> gRPC is not a supported feature in App Service Environment v2. Use App Service Environment v3.
69
79
70
80
| Topic | Answer |
71
81
| --- | --- |
72
-
|**OS support**| Currently gRPC is a Linux only feature. Support for Windows is coming in 2024 for .NET workloads. |
73
-
|**Language support**| gRPC is supported for each language that supports gRPC. |
74
-
|**Client Certificates**| HTTP/2 enabled on App Service doesn't currently support client certificates. Client certificates will need to be ignored when using gRPC. |
75
-
|**Secure calls**| gRPC must make secure HTTP calls to App Service. You cannot make insecure calls. |
76
-
|**Activity Timeout**| gRPC requests on App Service have a timeout request limit. gRPC requests will time out after 20 minutes of inactivity. |
77
-
|**Custom Containers**| HTTP/2 & gRPC support is in addition to App Service HTTP/1.1 support. Custom containers that would like to support HTTP/2 must still support HTTP/1.1. |
78
-
79
-
82
+
| OS support | Currently, gRPC is a Linux-only feature. It's not yet supported for .NET workloads in Windows. |
83
+
| Language support | gRPC is supported for each language that supports gRPC. |
84
+
| Client certificates | HTTP/2 enabled on App Service doesn't currently support client certificates. Client certificates need to be ignored when you're using gRPC. |
85
+
| Secure calls | gRPC must make secure HTTP calls to App Service. You can't make nonsecure calls. |
86
+
| Activity timeout | gRPC requests on App Service have a timeout request limit. gRPC requests time out after 20 minutes of inactivity. |
87
+
| Custom containers | HTTP/2 and gRPC support is in addition to App Service HTTP/1.1 support. Custom containers that support HTTP/2 must also support HTTP/1.1. |
Copy file name to clipboardExpand all lines: articles/app-service/language-support-policy.md
+18-15Lines changed: 18 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,34 +1,38 @@
1
1
---
2
-
title: Language Support Policy
3
-
description: App Service language runtime support policies
2
+
title: Language runtime support policy
3
+
description: Learn about the language runtime support policy for Azure App Service.
4
4
author: jeffwmartinez
5
5
ms.topic: article
6
6
ms.date: 01/23/2023
7
7
ms.author: jefmarti
8
8
ms.custom: seodec18
9
9
10
10
---
11
-
# App Service language runtime support policy
12
11
13
-
This document describes the App Service language runtime support policy for updating existing stacks and retiring process for upcoming end-of-life stacks. This policy is to clarify existing practices and doesn't represent a change to customer commitments.
12
+
# Language runtime support policy for App Service
13
+
14
+
This article describes the language runtime support policy for updating existing stacks and retiring end-of-support stacks in Azure App Service. This policy clarifies existing practices and doesn't represent a change to customer commitments.
14
15
15
16
## Updates to existing stacks
16
-
App Service will update existing stacks after they become available from each community. App Service will update major versions of stacks but can't guarantee any specific minor or patch versions. Minor and patch versions are controlled by the platform, and it's not possible for App Service to pin a specific minor or patch version. For example, Node 18 will be updated by App Service but a specific Node 18.x.x version won't be guaranteed. If you need a specific minor or patch version you can use a [custom container](quickstart-custom-container.md).
17
+
18
+
App Service updates existing stacks after they become available from each community. App Service updates major versions of stacks but can't guarantee any specific minor or patch versions. The platform controls minor and patch versions. For example, App Service updates Node 18 but doesn't guarantee a specific Node 18.x.x version. If you need a specific minor or patch version, you can use a [custom container](quickstart-custom-container.md).
17
19
18
20
## Retirements
19
-
App Service follows community support timelines for the lifecycle of the runtime. Once community support for a given language reaches end-of-life, your applications will continue to run unchanged. However, App Service can't provide security patches or related customer support for that runtime version past its end-of-life date. If your application has any issues past the end-of-life date for that version, you should move up to a supported version to receive the latest security patches and features.
21
+
22
+
App Service follows community support timelines for the lifecycle of the runtime. After community support for a language reaches the end of support, your applications continue to run unchanged. However, App Service can't provide security patches or related customer support for that runtime version past its end-of-support date. If your application has any problems past the end-of-support date for that version, you should move up to a supported version to receive the latest security patches and features.
20
23
21
24
> [!IMPORTANT]
22
-
> You're encouraged to upgrade the language version of your affected apps to a currently supported version. If you're running apps using an unsupported language version, you'll be required to upgrade before receiving support for your app.
23
-
>
25
+
> If you're running apps that use an unsupported language version, you need to upgrade to a supported language version before you can get support for those apps.
24
26
25
27
## Notifications
26
-
End-of-life dates for runtime versions are determined independently by their respective stacks and are outside the control of App Service. App Service will send reminder notifications to subscription owners for upcoming end-of-life runtime versions when they become available for each language.
27
28
28
-
Those who receive notifications include account administrators, service administrators, and co-administrators. Contributors, readers, or other roles won't directly receive notifications, unless they opt-in to receive notification emails, using [Service Health Alerts](../service-health/alerts-activity-log-service-notifications-portal.md).
29
+
End-of-support dates for runtime versions are determined independently by their respective stacks and are outside the control of App Service. App Service sends reminder notifications to subscription owners for upcoming end-of-support runtime versions when they become available for each language.
30
+
31
+
People who receive notifications include account administrators, service administrators, and co-administrators. Contributors, readers, or other roles don't directly receive notifications, unless they opt in to receive notification emails through [service health alerts](../service-health/alerts-activity-log-service-notifications-portal.md).
29
32
30
-
## Language runtime version support timelines
31
-
To learn more about specific language support policy timelines, visit the following resources:
33
+
## Timelines for language runtime version support
34
+
35
+
To learn more about specific timelines for the language support policy, see the following resources:
32
36
33
37
-[.NET and ASP.NET Core](https://aka.ms/dotnetrelease)
34
38
-[.NET Framework and ASP.NET](https://aka.ms/aspnetrelease)
@@ -38,10 +42,9 @@ To learn more about specific language support policy timelines, visit the follow
38
42
-[PHP](https://aka.ms/phprelease)
39
43
-[Go](https://aka.ms/gorelease)
40
44
41
-
42
-
43
45
## Configure language versions
44
-
To learn more about how to update your App Service application language versions, see the following resources:
46
+
47
+
To learn more about how to update language versions for your App Service applications, see the following resources:
0 commit comments