Skip to content

Commit 4e24614

Browse files
author
AbhishekMallick-MS
committed
Dirty PR
2 parents 9fa78fa + cd67eaf commit 4e24614

File tree

187 files changed

+4069
-2218
lines changed

Some content is hidden

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

187 files changed

+4069
-2218
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/api-management-howto-disaster-recovery-backup-restore.md

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: dlepow
77

88
ms.service: azure-api-management
99
ms.topic: how-to
10-
ms.date: 01/31/2023
10+
ms.date: 09/06/2024
1111
ms.author: danlep
1212
ms.custom: devx-track-azurepowershell
1313
---
@@ -129,6 +129,38 @@ Backup-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $api
129129

130130
Backup is a long-running operation that may take several minutes to complete. During this time the API gateway continues to handle requests, but the state of the service is Updating.
131131

132+
### [CLI](#tab/cli)
133+
134+
[Sign in](/cli/azure/authenticate-azure-cli) with Azure CLI.
135+
136+
In the following examples:
137+
138+
* An API Management instance named *myapim* is in resource group *apimresourcegroup*.
139+
* A storage account named *backupstorageaccount* is in resource group *storageresourcegroup*. The storage account has a container named *backups*.
140+
* A backup blob will be created with name *ContosoBackup.apimbackup*.
141+
142+
Set variables in Bash:
143+
144+
```azurecli-interactive
145+
apiManagementName="myapim";
146+
apiManagementResourceGroup="apimresourcegroup";
147+
storageAccountName="backupstorageaccount";
148+
storageResourceGroup="storageresourcegroup";
149+
containerName="backups";
150+
backupName="ContosoBackup.apimbackup";
151+
```
152+
153+
### Access using storage access key
154+
155+
```azurecli-interactive
156+
storageKey=$(az storage account keys list --resource-group $storageResourceGroup --account-name $storageAccountName --query [0].value --output tsv)
157+
158+
az apim backup --resource-group $apiManagementResourceGroup --name $apiManagementName \
159+
--storage-account-name $storageAccountName --storage-account-key $storageKey --storage-account-container $containerName --backup-name $backupName
160+
```
161+
162+
Backup is a long-running operation that may take several minutes to complete. During this time the API gateway continues to handle requests, but the state of the service is Updating.
163+
132164
### [REST](#tab/rest)
133165

134166
See [Azure REST API reference](/rest/api/azure/) for information about authenticating and calling Azure REST APIs.
@@ -261,6 +293,35 @@ Restore-AzApiManagement -ResourceGroupName $apiManagementResourceGroup -Name $ap
261293

262294
Restore is a long-running operation that may take up to 45 minutes or more to complete.
263295

296+
### [CLI](#tab/cli)
297+
298+
In the following examples,
299+
300+
* An API Management instance named *myapim* is restored from the backup blob named *ContosoBackup.apimbackup* in storage account *backupstorageaccount*.
301+
* The backup blob is in a container named *backups*.
302+
303+
Set variables in Bash:
304+
305+
```azurecli-interactive
306+
apiManagementName="myapim";
307+
apiManagementResourceGroup="apimresourcegroup";
308+
storageAccountName="backupstorageaccount";
309+
storageResourceGroup="storageresourcegroup";
310+
containerName="backups";
311+
backupName="ContosoBackup.apimbackup"
312+
```
313+
314+
### Access using storage access key
315+
316+
```azurecli-interactive
317+
storageKey=$(az storage account keys list --resource-group $storageResourceGroup --account-name $storageAccountName --query [0].value --output tsv)
318+
319+
az apim restore --resource-group $apiManagementResourceGroup --name $apiManagementName \
320+
--storage-account-name $storageAccountName --storage-account-key $storageKey --storage-account-container $containerName --backup-name $backupName
321+
```
322+
323+
Restore is a long-running operation that may take up to 45 minutes or more to complete.
324+
264325
### [REST](#tab/rest)
265326

266327
To restore an API Management service from a previously created backup, make the following HTTP request:

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

0 commit comments

Comments
 (0)