Skip to content

Commit 729e6f4

Browse files
authored
Merge pull request #294235 from MicrosoftDocs/main
2/6/2025 PM Publish
2 parents e5a931f + 5e91aca commit 729e6f4

File tree

74 files changed

+1560
-1367
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+1560
-1367
lines changed

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"redirections": [
3+
{
4+
"source_path": "articles/databox-online/azure-stack-edge-gpu-deploy-sample-module-marketplace.md",
5+
"redirect_url": "https://azuremarketplace.microsoft.com/marketplace/apps?page=1",
6+
"redirect_document_id": false
7+
},
38
{
49
"source_path": "articles/partner-solutions/logzio/create.md",
510
"redirect_url": "/previous-versions/azure/partner-solutions/logzio/create",

articles/active-directory-b2c/tutorial-create-user-flows.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,9 @@ Next, specify that the application should be treated as a public client:
212212
1. Select **Save**.
213213
1. Ensure that **"isFallbackPublicClient": true** is set in the application manifest:
214214
1. In the left menu, under **Manage**, select **Manifest** to open application manifest.
215-
1. Find **isFallbackPublicClient** key and ensure its value is set to **true**.
215+
1. Switch from the **Microsoft Graph App Manifest (New)** tab to the **AAD Graph App Manifest (Deprecating Soon)** tab.
216+
1. Find **allowPublicClient** key and ensure its value is set to **true**.
217+
216218

217219
Now, grant permissions to the API scope you exposed earlier in the *IdentityExperienceFramework* registration:
218220

articles/app-service/configure-ssl-certificate.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,13 @@ If you use Azure Key Vault to manage your certificates, you can import a PKCS12
136136

137137
By default, the App Service resource provider doesn't have access to your key vault. To use a key vault for a certificate deployment, you must authorize read access for the resource provider (App Service) to the key vault. You can grant access either with access policy or RBAC.
138138

139-
### [RBAC permissions](#tab/RBAC)
139+
### [RBAC permissions](#tab/rbac)
140140
| Resource provider | Service principal app ID / assignee | Key vault RBAC role |
141141
|--|--|--|
142142
| **Microsoft Azure App Service** or **Microsoft.Azure.WebSites** | - `abfa0a7c-a6b6-4736-8310-5855508787cd` for public Azure cloud environment <br><br>- `6a02c803-dafd-4136-b4c3-5a6f318b4714` for Azure Government cloud environment | Certificate User |
143143

144144
The service principal app ID or assignee value is the ID for the App Service resource provider. To learn how to authorize key vault permissions for the App Service resource provider using an access policy, see the [provide access to Key Vault keys, certificates, and secrets with an Azure role-based access control documentation](/azure/key-vault/general/rbac-guide?tabs=azure-portal#key-vault-scope-role-assignment).
145145

146-
> [!NOTE]
147-
> Do not delete these RBAC permissions from key vault. If you do, App Service will not be able to sync your web app with the latest key vault certificate version.
148-
149146
### [Access policy permissions](#tab/accesspolicy)
150147

151148
| Resource provider | Service principal app ID | Key vault secret permissions | Key vault certificate permissions |
@@ -159,6 +156,23 @@ The service principal app ID or assignee value is the ID for the App Service res
159156
160157
---
161158

159+
#### [Azure CLI](#tab/azure-cli/rbac)
160+
```azurecli-interactive
161+
az role assignment create --role "Key Vault Certificate User" --assignee "abfa0a7c-a6b6-4736-8310-5855508787cd" --scope "/subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}"
162+
```
163+
164+
#### [Azure PowerShell](#tab/azure-powershell/rbac)
165+
```azurepowershell
166+
#Assign by Service Principal ApplicationId
167+
New-AzRoleAssignment -RoleDefinitionName "Key Vault Certificate User" -ApplicationId "abfa0a7c-a6b6-4736-8310-5855508787cd" -Scope "/subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}"
168+
```
169+
170+
> [!NOTE]
171+
> Do not delete these RBAC permissions from key vault. If you do, App Service will not be able to sync your web app with the latest key vault certificate version.
172+
173+
---
174+
175+
162176
### Import a certificate from your vault to your app
163177

164178
1. In the [Azure portal](https://portal.azure.com), from the left menu, select **App Services** > **\<app-name>**.

articles/app-service/getting-started.md

Lines changed: 47 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ms.author: msangapu
55
author: msangapu-msft
66
ms.topic: overview
77
ms.custom: devx-track-extended-java, devx-track-python, devx-track-js
8-
ms.date: 8/27/2024
8+
ms.date: 02/05/2025
99
zone_pivot_groups: app-service-getting-started-stacks
1010
---
1111

@@ -30,19 +30,52 @@ Use the following resources to get started with .NET.
3030
| **Review best practices** | - [Scale your app](./manage-scale-up.md)<br>- [Deployment](./deploy-best-practices.md)<br>- [Security](/security/benchmark/azure/baselines/app-service-security-baseline?toc=/azure/app-service/toc.json)<br>- [Virtual Network](./configure-vnet-integration-enable.md)|
3131

3232
::: zone-end
33-
::: zone pivot="stack-python"
33+
::: zone pivot="stack-java"
3434

35-
## Python
35+
## Java
36+
37+
App Service aims to provide robust support for Java. To cover the depth and breadth of
38+
Java applications, App Service supports the Java Standard Edition (SE), Tomcat, and
39+
JBoss Enterprise Application Platform (EAP) technology stacks. At the base of these
40+
stacks, App Service supports all recent Java long-term support (LTS) versions. There are
41+
several key scenarios for which you should consider adopting App Service for your Java
42+
applications.
43+
44+
### Java SE on App Service
45+
Java SE on App Service allows you to effortlessly deploy your applications to fully
46+
managed Java Virtual Machine (JVM) instances. You should consider this stack if you
47+
have Spring Boot and Quarkus web applications. However, you can use this stack for any
48+
application that can be started directly from a JVM and includes an embedded
49+
HyperText Transfer Protocol (HTTP) server. You can deploy your
50+
Java archive (JAR) file and let App Service do the rest.
51+
52+
### Tomcat on App Service
53+
This App Service stack supports all recent major and minor versions of Tomcat.
54+
You should consider migrating on-premises Tomcat web applications to App Service using
55+
this stack. Such applications often use technologies such as the Spring Framework and
56+
Hibernate. The stack is also suitable for applications currently running on servers such
57+
as WebLogic or WebSphere that can be easily migrated to Tomcat. You can deploy
58+
your web application archive (WAR) file and let App Service do the rest.
59+
60+
### JBoss EAP on App Service
61+
You can effortlessly run any JBoss EAP version currently supported by Red Hat on this
62+
App Service stack. JBoss EAP is fully compatible with the Java Enterprise Edition (EE)
63+
and Jakarta EE standards. The stack can optionally support any application that requires
64+
JBoss EAP clustering. You should consider migrating applications currently running
65+
on-premises on JBoss EAP and WildFly to this stack. The stack is also suitable for
66+
applications running on servers such as WebLogic or WebSphere that can be easily migrated
67+
to JBoss EAP. You can deploy your web application archive (WAR) or
68+
enterprise archive (EAR) file and let App Service do the rest.
3669

37-
Use the following resources to get started with Python.
70+
Use the following resources to get started with Java.
3871

3972
| Action | Resources |
4073
| --- | --- |
41-
| **Create your first Python app** | Use one of the following tools:<br><br>- [Flask - CLI](./quickstart-python.md?tabs=flask%2Cwindows%2Cazure-cli%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli)<br>- [Flask - Visual Studio Code](./quickstart-python.md?tabs=flask%2Cwindows%2Cvscode-aztools%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli)<br>- [Django - CLI](./quickstart-python.md?tabs=django%2Cwindows%2Cazure-cli%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli)<br>- [Django - Visual Studio Code](./quickstart-python.md?tabs=django%2Cwindows%2Cvscode-aztools%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli)<br>- [Django - Azure portal](./quickstart-python.md?tabs=django%2Cwindows%2Cazure-portal%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli) |
42-
| **Deploy your app** | - [Configure Python](configure-language-python.md)<br>- [GitHub Actions](./deploy-github-actions.md) |
43-
| **Monitor your app**| - [Log stream](./troubleshoot-diagnostic-logs.md#stream-logs)<br>- [Diagnose and solve tool](./overview-diagnostics.md)|
74+
| **Create your first Java app** | Use one of the following tools:<br><br>- [Maven deploy with an embedded web server](./quickstart-java.md?pivots=java-javase)<br>- [Maven deploy to a Tomcat server](./quickstart-java.md?pivots=java-tomcat)<br>- [Maven deploy to a JBoss EAP server](./quickstart-java.md?pivots=java-jboss) |
75+
| **Deploy your app** | - [With Maven](configure-language-java-deploy-run.md?pivots=platform-linux#maven)<br>- [With Gradle](configure-language-java-deploy-run.md?pivots=platform-linux#gradle)<br>- [With popular IDEs (Visual Studio Code, IntelliJ, and Eclipse)](configure-language-java-deploy-run.md?pivots=platform-linux#ides)<br>- [Deploy JAR, WAR, or EAR packages directly](./deploy-zip.md?tabs=cli#deploy-warjarear-packages)<br>- [With GitHub Actions](./deploy-github-actions.md)<br>- [With Azure DevOps](./deploy-azure-pipelines.md)|
76+
| **Monitor your app**| - [Monitoring overview](./monitor-app-service.md)<br>- [Log stream](./troubleshoot-diagnostic-logs.md#stream-logs)<br>- [Diagnose and solve tool](./overview-diagnostics.md)|
4477
| **Add domains & certificates** |- [Map a custom domain](./app-service-web-tutorial-custom-domain.md?tabs=root%2Cazurecli)<br>- [Add an SSL certificate](./configure-ssl-certificate.md)|
45-
| **Connect to a database** | - [PostgreSQL - CLI](./tutorial-python-postgresql-app-flask.md?pivots=azure-developer-cli)<br>- [PostgreSQL - Azure portal](./tutorial-python-postgresql-app-flask.md?pivots=azure-portal)|
78+
| **Connect to a database** |- [Spring Boot with Azure Cosmos DB](./tutorial-java-spring-cosmosdb.md)<br>- [Tomcat with PostgreSQL](./tutorial-java-tomcat-connect-managed-identity-postgresql-database.md)<br>- [JBoss EAP with PostgreSQL](./tutorial-java-jboss-mysql-app.md)|
4679
| **Custom containers** |- [Linux - Visual Studio Code](./quickstart-custom-container.md?tabs=python&pivots=container-linux-vscode)|
4780
| **Review best practices** | - [Scale your app](./manage-scale-up.md)<br>- [Deployment](./deploy-best-practices.md)<br>- [Security](/security/benchmark/azure/baselines/app-service-security-baseline?toc=/azure/app-service/toc.json)<br>- [Virtual networks](./configure-vnet-integration-enable.md)|
4881

@@ -64,19 +97,19 @@ Use the following resources to get started with Node.js.
6497
| **Review best practices** | - [Scale your app](./manage-scale-up.md)<br>- [Deployment](./deploy-best-practices.md)<br>- [Security](/security/benchmark/azure/baselines/app-service-security-baseline?toc=/azure/app-service/toc.json)<br>- [Virtual networks](./configure-vnet-integration-enable.md)|
6598

6699
::: zone-end
67-
::: zone pivot="stack-java"
100+
::: zone pivot="stack-python"
68101

69-
## Java
102+
## Python
70103

71-
Use the following resources to get started with Java.
104+
Use the following resources to get started with Python.
72105

73106
| Action | Resources |
74107
| --- | --- |
75-
| **Create your first Java app** | Use one of the following tools:<br><br>- [Maven deploy with an embedded web server](./quickstart-java.md?pivots=java-javase)<br>- [Maven deploy to a Tomcat server](./quickstart-java.md?pivots=java-tomcat)<br>- [Maven deploy to a JBoss server](./quickstart-java.md?pivots=java-jboss) |
76-
| **Deploy your app** | - [With Maven](configure-language-java-deploy-run.md?pivots=platform-linux#maven)<br>- [With Gradle](configure-language-java-deploy-run.md?pivots=platform-linux#gradle)<br>- [With popular IDEs (Visual Studio Code, IntelliJ, and Eclipse)](configure-language-java-deploy-run.md?pivots=platform-linux#ides)<br>- [Deploy WAR or JAR packages directly](./deploy-zip.md?tabs=cli#deploy-warjarear-packages)<br>- [With GitHub Actions](./deploy-github-actions.md) |
108+
| **Create your first Python app** | Use one of the following tools:<br><br>- [Flask - CLI](./quickstart-python.md?tabs=flask%2Cwindows%2Cazure-cli%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli)<br>- [Flask - Visual Studio Code](./quickstart-python.md?tabs=flask%2Cwindows%2Cvscode-aztools%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli)<br>- [Django - CLI](./quickstart-python.md?tabs=django%2Cwindows%2Cazure-cli%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli)<br>- [Django - Visual Studio Code](./quickstart-python.md?tabs=django%2Cwindows%2Cvscode-aztools%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli)<br>- [Django - Azure portal](./quickstart-python.md?tabs=django%2Cwindows%2Cazure-portal%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli) |
109+
| **Deploy your app** | - [Configure Python](configure-language-python.md)<br>- [GitHub Actions](./deploy-github-actions.md) |
77110
| **Monitor your app**| - [Log stream](./troubleshoot-diagnostic-logs.md#stream-logs)<br>- [Diagnose and solve tool](./overview-diagnostics.md)|
78111
| **Add domains & certificates** |- [Map a custom domain](./app-service-web-tutorial-custom-domain.md?tabs=root%2Cazurecli)<br>- [Add an SSL certificate](./configure-ssl-certificate.md)|
79-
| **Connect to a database** |- [Java Spring with Azure Cosmos DB](./tutorial-java-spring-cosmosdb.md)|
112+
| **Connect to a database** | - [PostgreSQL - CLI](./tutorial-python-postgresql-app.md?tabs=flask%2Cwindows&pivots=azure-developer-cli)<br>- [PostgreSQL - Azure portal](./tutorial-python-postgresql-app.md?tabs=flask%2Cwindows&pivots=azure-portal)|
80113
| **Custom containers** |- [Linux - Visual Studio Code](./quickstart-custom-container.md?tabs=python&pivots=container-linux-vscode)|
81114
| **Review best practices** | - [Scale your app](./manage-scale-up.md)<br>- [Deployment](./deploy-best-practices.md)<br>- [Security](/security/benchmark/azure/baselines/app-service-security-baseline?toc=/azure/app-service/toc.json)<br>- [Virtual networks](./configure-vnet-integration-enable.md)|
82115

articles/app-service/monitor-instances-health-check.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,9 @@ Imagine you have two applications (or one app with a slot) with Health check ena
202202

203203
If all instances of your application are unhealthy, App Service won't remove instances from the load balancer. In this scenario, taking all unhealthy app instances out of the load balancer rotation would effectively cause an outage for your application. However, the instance replacement will still occur.
204204

205+
### What happens during a slot swap?
206+
Health check configuration is not slot-specific, so after a swap, the Health check configuration of the swapped slot will be applied to the destination slot and vice-versa. For example, if you have Health Check enabled for your staging slot the endpoint configured will be applied to the production slot after a swap.
207+
205208
### Does Health check work on App Service Environments?
206209

207210
Yes, health check is available for App Service Environment v3, but not for versions 1 or 2. If you're using the older versions of App Service Environment, you can use the [migration feature](environment/migrate.md) to migrate your App Service Environment to version 3.

articles/azure-cache-for-redis/cache-best-practices-client-libraries.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ description: Learn about client libraries for Azure Cache for Redis.
44

55

66
ms.topic: conceptual
7-
ms.date: 01/04/2022
7+
ms.date: 02/06/2025
88
ms.custom: devx-track-java, devx-track-javaee, devx-track-javaee-liberty, devx-track-javaee-liberty-aks, devx-track-extended-java, ignite-2024
99
---
1010

1111
# Client libraries
1212

13-
Azure Cache for Redis is based on the popular open-source in-memory data store, open-source Redis. Azure Cache for Redis can be accessed by a wide variety of Redis clients for many programming languages. Each client library has its own API that makes calls to Redis server using Redis commands, but the client libraries are built to talk to any Redis server.
13+
Azure Cache for Redis is based on the popular open-source in-memory data store, open-source Redis. Redis clients for many programming languages can access Azure Managed Redis. Each client library has its own API that makes calls to Redis server using Redis commands, but the client libraries are built to talk to any Redis server.
1414

1515
Each client maintains its own reference documentation for its library. The clients also provide links to get support through the client library developer community. The Azure Cache for Redis team doesn't own the development, or the support for any client libraries.
1616

@@ -33,7 +33,6 @@ Although we don't own or support any client libraries, we do recommend some libr
3333
For information on client library-specific guidance best practices, see the following links:
3434

3535
- [StackExchange.Redis (.NET)](cache-best-practices-connection.md#using-forcereconnect-with-stackexchangeredis)
36-
- [Java - Which client should I use?](https://gist.github.com/warrenzhu25/1beb02a09b6afd41dff2c27c53918ce7#file-azure-redis-java-best-practices-md)
3736
- [Lettuce (Java)](https://github.com/Azure/AzureCacheForRedis/blob/main/Lettuce%20Best%20Practices.md)
3837
- [Jedis (Java)](https://gist.github.com/JonCole/925630df72be1351b21440625ff2671f#file-redis-bestpractices-java-jedis-md)
3938
- [Redisson (Java)](cache-best-practices-client-libraries.md#redisson-java)
@@ -48,9 +47,9 @@ We _recommend_ you use redisson 3.14.1 or higher. Older versions contain known
4847

4948
Other notes:
5049

51-
- Redisson defaults to 'read from replica' strategy, unlike some other clients. To change this, modify the 'readMode' config setting.
52-
- Redisson has a connection pooling strategy with configurable minimum and maximum settings, and the default minimum values are large. The large defaults could contribute to aggressive reconnect behaviors or 'connection storms'. To reduce the risk, consider using fewer connections because you can efficiently pipeline commands, or batches of commands, over a few connections.
53-
- Redisson has a default idle connection timeout of 10 seconds, which leads to more closing and reopening of connections than ideal.
50+
- Redisson defaults to 'read from replica' strategy, unlike some other clients. To change this default, modify the 'readMode' config setting.
51+
- Redisson has a connection pooling strategy with configurable minimum and maximum settings, and the default minimum values are large. The large defaults could contribute to aggressive reconnect behaviors or 'connection storms.' To reduce the risk, consider using fewer connections because you can efficiently pipeline commands, or batches of commands, over a few connections.
52+
- Redisson has a default idle connection time out of 10 seconds, which leads to more closing and reopening of connections than ideal.
5453

5554
Here's a recommended baseline configuration for cluster mode that you can modify as needed:
5655

@@ -83,7 +82,7 @@ clusterServersConfig:
8382
tcpNoDelay: true
8483
```
8584
86-
For an article demonstrating how to use Redisson's support for JCache as the store for HTTP session state in IBM Liberty on Azure, see [Use Java EE JCache with Open Liberty or WebSphere Liberty on an Azure Kubernetes Service (AKS) cluster](/azure/developer/java/ee/how-to-deploy-java-liberty-jcache).
85+
For an article about Redisson's support for JCache as the store for HTTP session state in IBM Liberty on Azure, see [Use Java EE JCache with Open Liberty or WebSphere Liberty on an Azure Kubernetes Service (AKS) cluster](/azure/developer/java/ee/how-to-deploy-java-liberty-jcache).
8786
8887
## How to use client libraries
8988

0 commit comments

Comments
 (0)