Skip to content

Commit d9da197

Browse files
authored
Merge pull request #290431 from ggailey777/ignite-fixup
[Shiproom][Functions] Dirty: fix merge conflict with Ignite integration branch
2 parents c19b200 + fa14f84 commit d9da197

File tree

100 files changed

+3008
-1625
lines changed

Some content is hidden

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

100 files changed

+3008
-1625
lines changed

.openpublishing.redirection.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3714,6 +3714,21 @@
37143714
"source_path_from_root": "/articles/reliability/resiliency-recommendations/recommend-cosmos-db-nosql.md",
37153715
"redirect_url": "/azure/reliability/reliability-cosmos-db-nosql",
37163716
"redirect_document_id": false
3717+
},
3718+
{
3719+
"source_path_from_root": "/articles/virtual-network/tutorial-create-route-table-portal.md",
3720+
"redirect_url": "/azure/virtual-network/tutorial-create-route-table",
3721+
"redirect_document_id": false
3722+
},
3723+
{
3724+
"source_path_from_root": "/articles/virtual-network/tutorial-create-route-table-powershell.md",
3725+
"redirect_url": "/azure/virtual-network/tutorial-create-route-table",
3726+
"redirect_document_id": false
3727+
},
3728+
{
3729+
"source_path_from_root": "/articles/virtual-network/tutorial-create-route-table-cli.md",
3730+
"redirect_url": "/azure/virtual-network/tutorial-create-route-table",
3731+
"redirect_document_id": false
37173732
}
37183733
]
37193734
}

articles/api-center/includes/vscode-extension-basic-prerequisites.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ ms.custom: Include file
1515

1616
* One or more API centers in your Azure subscription.
1717

18-
* Currently, you need to be assigned the Contributor role or higher permissions to manage APIs with the extension.
18+
* Currently, you need to be assigned the Azure API Center Service Contributor role or higher permissions on an API center to manage APIs with the extension.
1919

2020
* [Visual Studio Code](https://code.visualstudio.com/)
2121

22-
* [Azure API Center extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=apidev.azure-api-center)
22+
* [Azure API Center extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=apidev.azure-api-center)

articles/api-center/register-apis-github-actions.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ In the following steps, create a Microsoft Entra ID service principal, which wil
5555
> [!NOTE]
5656
> Configuring a service principal is shown for demonstration purposes. The recommended way to authenticate with Azure for GitHub Actions is with OpenID Connect, an authentication method that uses short-lived tokens. Setting up OpenID Connect with GitHub Actions is more complex but offers hardened security. [Learn more](../app-service/deploy-github-actions.md?tabs=openid%2Caspnetcore#1-generate-deployment-credentials)
5757
58-
Create a service principal using the [az ad sp create-for-rbac](/cli/azure/ad#az-ad-sp-create-for-rbac) command. The following example first uses the [az apic show](/cli/azure/apic#az-apic-show) command to retrieve the resource ID of the API center. The service principal is then created with the Contributor role for the API center.
58+
Create a service principal using the [az ad sp create-for-rbac](/cli/azure/ad#az-ad-sp-create-for-rbac) command. The following example first uses the [az apic show](/cli/azure/apic#az-apic-show) command to retrieve the resource ID of the API center. The service principal is then created with the Azure API Center Service Contributor role for the API center.
5959

6060
#### [Bash](#tab/bash)
6161

@@ -67,7 +67,7 @@ spName=<service-principal-name>
6767
6868
apicResourceId=$(az apic show --name $apiCenter --resource-group $resourceGroup --query "id" --output tsv)
6969
70-
az ad sp create-for-rbac --name $spName --role Contributor --scopes $apicResourceId --json-auth
70+
az ad sp create-for-rbac --name $spName --role "Azure API Center Service Contributor" --scopes $apicResourceId --json-auth
7171
```
7272

7373
#### [PowerShell](#tab/powershell)
@@ -80,7 +80,7 @@ $spName = "<service-principal-name>"
8080
8181
$apicResourceId = $(az apic show --name $apiCenter --resource-group $resourceGroup --query "id" --output tsv)
8282
83-
az ad sp create-for-rbac --name $spName --role Contributor --scopes $apicResourceId --json-auth
83+
az ad sp create-for-rbac --name $spName --role "Azure API Center Service Contributor" --scopes $apicResourceId --json-auth
8484
```
8585
---
8686

articles/api-management/migrate-stv1-to-stv2-vnet.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: dlepow
66
ms.service: azure-api-management
77
ms.custom:
88
ms.topic: how-to
9-
ms.date: 09/16/2024
9+
ms.date: 11/04/2024
1010
ms.author: danlep
1111
---
1212

@@ -25,6 +25,8 @@ For a VNet-inject instance, you have the following migration options:
2525

2626
* [**Option 2: Change to a new subnet**](#option-2-migrate-and-change-to-new-subnet) - Migrate your instance by specifying a different subnet in the same or a different VNet. After migration, optionally migrate back to the instance's original subnet. The migration process changes the VIP address(es) of the instance. After migration, you need to update any network dependencies including DNS, firewall rules, and VNets to use the new VIP address(es).
2727

28+
Under certain, less frequent conditions, migration in the same subnet may not be possible or behaves differently. For more information, see [Special conditions and scenarios](#special-conditions-and-scenarios).
29+
2830
If you need to migrate a *non-VNnet-injected* API Management hosted on the `stv1` platform, see [Migrate a non-VNet-injected API Management instance to the stv2 platform](migrate-stv1-to-stv2-no-vnet.md).
2931

3032
[!INCLUDE [api-management-migration-alert](../../includes/api-management-migration-alert.md)]
@@ -217,6 +219,28 @@ After you update the VNet configuration, the status of your API Management insta
217219

218220
[!INCLUDE [api-management-migration-rollback](../../includes/api-management-migration-rollback.md)]
219221

222+
## Special conditions and scenarios
223+
224+
Under certain conditions, [Option 1: Migrate and keep same subnet](#option-1-migrate-and-keep-same-subnet) may not be available or behaves differently. The portal detects these conditions and recommends the migration option(s). If you aren't able to use Option 1, or multiple conditions are present, use [Option 2: Change to a new subnet](#option-2-migrate-and-change-to-new-subnet).
225+
226+
* **VNet with special internal conditions** - If your API Management instance is currently deployed in a VNet with special internal conditions (unrelated to customer configuration), you are notified in the portal that Option 1 for same-subnet migration in the portal includes additional downtime (approximately 1 hour). Using the portal for migration is recommended. You can also use the following modified Azure CLI script for same-subnet migration with approximately 1 hour of downtime:
227+
228+
```azurecli
229+
APIM_NAME={name of your API Management instance}
230+
# In PowerShell, use the following syntax: $APIM_NAME={name of your API Management instance}
231+
RG_NAME={name of your resource group}
232+
# Get resource ID of API Management instance
233+
APIM_RESOURCE_ID=$(az apim show --name $APIM_NAME --resource-group $RG_NAME --query id --output tsv)
234+
# Call REST API to migrate to stv2 and preserve VIP address for special condition
235+
az rest --method post --uri "$APIM_RESOURCE_ID/migrateToStv2?api-version=2024-06-01-preview&migrateWithDowntime=true" --body '{"mode": "PreserveIP"}'
236+
```
237+
238+
* **Multiple stv1 instances in subnet** - Sufficient free IP addresses may not be available for a same-subnet migration if you attempt to migrate the instances simultaneously. You may be able to migrate instances sequentially using Option 1.
239+
240+
* **Subnet delegation** - If the subnet where API Management is deployed is currently delegated to other Azure services, you must migrate using Option 2.
241+
242+
* **Azure Key Vault blocked** - If access to Azure Key Vault is currently blocked, you must migrate using Option 2, including setting up NSG rules in the new subnet for access to Azure Key Vault.
243+
220244
[!INCLUDE [api-management-migration-support](../../includes/api-management-migration-support.md)]
221245

222246
## Frequently asked questions

articles/app-service/configure-language-java-apm.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,22 @@ To enable via the Azure CLI, you need to create an Application Insights resource
6969
7070
# [Linux](#tab/linux)
7171
72+
::: zone pivot="java-jboss"
73+
74+
> [!NOTE]
75+
> The latest [New Relic documentation](https://docs.newrelic.com/install/java/?deployment=appServer&framework=jboss) lists JBoss EAP support up to 7.x. JBoss EAP 8.x is not yet supported.
76+
77+
::: zone-end
78+
7279
1. Create a NewRelic account at [NewRelic.com](https://newrelic.com/signup)
73-
2. Download the Java agent from NewRelic. It has a file name similar to *newrelic-java-x.x.x.zip*.
80+
2. [Download the Java agent from NewRelic](https://download.newrelic.com/newrelic/java-agent/newrelic-agent/current/newrelic-java.zip).
7481
3. Copy your license key, you need it to configure the agent later.
7582
4. [SSH into your App Service instance](configure-linux-open-ssh-session.md) and create a new directory */home/site/wwwroot/apm*.
7683
5. Upload the unpacked NewRelic Java agent files into a directory under */home/site/wwwroot/apm*. The files for your agent should be in */home/site/wwwroot/apm/newrelic*.
7784
6. Modify the YAML file at */home/site/wwwroot/apm/newrelic/newrelic.yml* and replace the placeholder license value with your own license key.
7885
7. In the Azure portal, browse to your application in App Service and create a new Application Setting.
7986
80-
::: zone pivot="java-javase"
87+
::: zone pivot="java-javase,java-jboss"
8188
8289
Create an environment variable named `JAVA_OPTS` with the value `-javaagent:/home/site/wwwroot/apm/newrelic/newrelic.jar`.
8390
@@ -89,12 +96,6 @@ To enable via the Azure CLI, you need to create an Application Insights resource
8996
9097
::: zone-end
9198
92-
::: zone pivot="java-jboss"
93-
94-
For **JBoss EAP**, `[TODO]`.
95-
96-
::: zone-end
97-
9899
# [Windows](#tab/windows)
99100
100101
1. Create a NewRelic account at [NewRelic.com](https://newrelic.com/signup)
@@ -117,16 +118,21 @@ To enable via the Azure CLI, you need to create an Application Insights resource
117118
118119
::: zone-end
119120
120-
::: zone pivot="java-jboss"
121+
---
121122
122-
For **JBoss EAP**, `[TODO]`.
123+
::: zone pivot="java-javase,java-jboss"
123124
124-
::: zone-end
125+
> [!NOTE]
126+
> If you already have an environment variable for `JAVA_OPTS`, append the `-javaagent:/...` option to the end of the current value.
125127
126-
---
128+
::: zone-end
129+
130+
::: zone pivot="java-tomcat"
127131
128132
> [!NOTE]
129-
> If you already have an environment variable for `JAVA_OPTS` or `CATALINA_OPTS`, append the `-javaagent:/...` option to the end of the current value.
133+
> If you already have an environment variable for `CATALINA_OPTS`, append the `-javaagent:/...` option to the end of the current value.
134+
135+
::: zone-end
130136
131137
## Configure AppDynamics
132138
@@ -152,7 +158,7 @@ To enable via the Azure CLI, you need to create an Application Insights resource
152158
153159
::: zone pivot="java-jboss"
154160
155-
For **JBoss EAP**, `[TODO]`.
161+
<!-- For **JBoss EAP**, `[TODO]`. -->
156162
157163
::: zone-end
158164
@@ -176,31 +182,25 @@ To enable via the Azure CLI, you need to create an Application Insights resource
176182
177183
::: zone-end
178184
179-
::: zone pivot="java-jboss"
180-
181-
For **JBoss EAP**, `[TODO]`.
182-
183-
::: zone-end
184-
185185
---
186186
187187
## Configure Datadog
188188
189189
# [Linux](#tab/linux)
190-
* The configuration options are different depending on which Datadog site your organization is using. See the official [Datadog Integration for Azure Documentation](https://docs.datadoghq.com/integrations/azure/)
190+
The configuration options are different depending on which Datadog site your organization is using. See the official [Datadog Integration for Azure Documentation](https://docs.datadoghq.com/integrations/azure/)
191191
192192
# [Windows](#tab/windows)
193-
* The configuration options are different depending on which Datadog site your organization is using. See the official [Datadog Integration for Azure Documentation](https://docs.datadoghq.com/integrations/azure/)
193+
The configuration options are different depending on which Datadog site your organization is using. See the official [Datadog Integration for Azure Documentation](https://docs.datadoghq.com/integrations/azure/)
194194
195195
---
196196
197197
## Configure Dynatrace
198198
199199
# [Linux](#tab/linux)
200-
* Dynatrace provides an [Azure Native Dynatrace Service](https://www.dynatrace.com/monitoring/technologies/azure-monitoring/). To monitor Azure App Services using Dynatrace, see the official [Dynatrace for Azure documentation](https://docs.datadoghq.com/integrations/azure/)
200+
Dynatrace provides an [Azure Native Dynatrace Service](https://www.dynatrace.com/monitoring/technologies/azure-monitoring/). To monitor Azure App Services using Dynatrace, see the official [Dynatrace for Azure documentation](https://docs.datadoghq.com/integrations/azure/)
201201
202202
# [Windows](#tab/windows)
203-
* Dynatrace provides an [Azure Native Dynatrace Service](https://www.dynatrace.com/monitoring/technologies/azure-monitoring/). To monitor Azure App Services using Dynatrace, see the official [Dynatrace for Azure documentation](https://docs.datadoghq.com/integrations/azure/)
203+
Dynatrace provides an [Azure Native Dynatrace Service](https://www.dynatrace.com/monitoring/technologies/azure-monitoring/). To monitor Azure App Services using Dynatrace, see the official [Dynatrace for Azure documentation](https://docs.datadoghq.com/integrations/azure/)
204204
205205
---
206206

articles/app-service/configure-language-java-data-sources.md

Lines changed: 15 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ For more information, see the [Spring Boot documentation on data access](https:/
4141
::: zone pivot="java-tomcat"
4242

4343
> [!TIP]
44-
> By default, the Linux Tomcat containers can automatically configure shared data sources for you in the Tomcat server. The only thing for you to do is add an app setting that contains a valid JDBC connection string to an Oracle, SQL Server, PostgreSQL, or MySQL database (including the connection credentials), and App Service automatically adds the cooresponding shared database to */usr/local/tomcat/conf/context.xml* for you, using an appropriate driver available in the container. For an end-to-end scenario using this approach, see [Tutorial: Build a Tomcat web app with Azure App Service on Linux and MySQL](tutorial-java-tomcat-mysql-app.md).
44+
> By default, the Linux Tomcat containers can automatically configure shared data sources for you in the Tomcat server. The only thing for you to do is add an app setting that contains a valid JDBC connection string to an Oracle, SQL Server, PostgreSQL, or MySQL database (including the connection credentials), and App Service automatically adds the corresponding shared database to */usr/local/tomcat/conf/context.xml*, using an appropriate driver available in the container. For an end-to-end scenario using this approach, see [Tutorial: Build a Tomcat web app with Azure App Service on Linux and MySQL](tutorial-java-tomcat-mysql-app.md).
4545

4646
These instructions apply to all database connections. You need to fill placeholders with your chosen database's driver class name and JAR file. Provided is a table with class names and driver downloads for common databases.
4747

@@ -377,46 +377,30 @@ az webapp deploy --resource-group <group-name> --name <app-name> --src-path <jar
377377

378378
::: zone pivot="java-jboss"
379379

380-
There are three core steps when [registering a data source with JBoss EAP](https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html/configuration_guide/datasource_management): uploading the JDBC driver, adding the JDBC driver as a module, and registering the module. App Service is a stateless hosting service, so the configuration commands for adding and registering the data source module must be scripted and applied as the container starts.
380+
> [!TIP]
381+
> By default, the Linux JBoss containers can automatically configure shared data sources for you in the JBoss server. The only thing for you to do is add an app setting that contains a valid JDBC connection string to an Oracle, SQL Server, PostgreSQL, or MySQL database (including the connection credentials), and App Service automatically adds the corresponding shared data source, using an appropriate driver available in the container. For an end-to-end scenario using this approach, see [Tutorial: Build a JBoss web app with Azure App Service on Linux and MySQL](tutorial-java-jboss-mysql-app.md).
381382

382-
1. Obtain your database's JDBC driver.
383-
2. Create an XML module definition file for the JDBC driver. The following example shows a module definition for PostgreSQL.
383+
There are three core steps when [registering a data source with JBoss EAP](https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html/configuration_guide/datasource_management):
384384

385-
```xml
386-
<?xml version="1.0" ?>
387-
<module xmlns="urn:jboss:module:1.1" name="org.postgres">
388-
<resources>
389-
<!-- ***** IMPORTANT : REPLACE THIS PLACEHOLDER *******-->
390-
<resource-root path="/home/site/deployments/tools/postgresql-42.2.12.jar" />
391-
</resources>
392-
<dependencies>
393-
<module name="javax.api"/>
394-
<module name="javax.transaction.api"/>
395-
</dependencies>
396-
</module>
397-
```
385+
1. Upload the JDBC driver.
386+
1. Add the JDBC driver as a module.
387+
1. Add a data source with the module.
398388

399-
1. Put your JBoss CLI commands into a file named `jboss-cli-commands.cli`. The JBoss commands must add the module and register it as a data source. The following example shows the JBoss CLI commands for PostgreSQL.
389+
App Service is a stateless hosting service, so you must put these steps into a startup script and run it each time the JBoss container starts. Using PostgreSQL, MySQL, and SQL Database as an examples:
400390

401-
```bash
402-
#!/usr/bin/env bash
403-
module add --name=org.postgres --resources=/home/site/deployments/tools/postgresql-42.2.12.jar --module-xml=/home/site/deployments/tools/postgres-module.xml
391+
# [PostgreSQL](#tab/postgresql)
404392

405-
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)
393+
[!INCLUDE [configure-jboss-postgresql](includes/configure-language-java-data-sources/configure-jboss-postgresql.md)]
406394

407-
data-source add --name=postgresDS --driver-name=postgres --jndi-name=java:jboss/datasources/postgresDS --connection-url=${POSTGRES_CONNECTION_URL,env.POSTGRES_CONNECTION_URL:jdbc:postgresql://db:5432/postgres} --user-name=${POSTGRES_SERVER_ADMIN_FULL_NAME,env.POSTGRES_SERVER_ADMIN_FULL_NAME:postgres} --password=${POSTGRES_SERVER_ADMIN_PASSWORD,env.POSTGRES_SERVER_ADMIN_PASSWORD:example} --use-ccm=true --max-pool-size=5 --blocking-timeout-wait-millis=5000 --enabled=true --driver-class=org.postgresql.Driver --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter --jta=true --use-java-context=true --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker
408-
```
395+
# [MySQL](#tab/mysql)
409396

410-
1. Create a startup script, `startup_script.sh` that calls the JBoss CLI commands. The following example shows how to call your `jboss-cli-commands.cli`. Later, you'll configure App Service to run this script when the container starts.
397+
[!INCLUDE [configure-jboss-mysql](includes/configure-language-java-data-sources/configure-jboss-mysql.md)]
411398

412-
```bash
413-
$JBOSS_HOME/bin/jboss-cli.sh --connect --file=/home/site/deployments/tools/jboss-cli-commands.cli
414-
```
399+
# [SQL Database](#tab/sqldatabase)
415400

416-
1. Using an FTP client of your choice, upload your JDBC driver, `jboss-cli-commands.cli`, `startup_script.sh`, and the module definition to `/site/deployments/tools/`.
417-
2. Configure your site to run `startup_script.sh` when the container starts. In the Azure portal, navigate to **Configuration** > **General Settings** > **Startup Command**. Set the startup command field to `/home/site/deployments/tools/startup_script.sh`. **Save** your changes.
401+
[!INCLUDE [configure-jboss-sqldatabase](includes/configure-language-java-data-sources/configure-jboss-sql-database.md)]
418402

419-
To confirm that the datasource was added to the JBoss server, SSH into your webapp and run `$JBOSS_HOME/bin/jboss-cli.sh --connect`. Once you're connected to JBoss, run the `/subsystem=datasources:read-resource` to print a list of the data sources.
403+
---
420404

421405
::: zone-end
422406

0 commit comments

Comments
 (0)