Skip to content

Commit 3a36ad7

Browse files
authored
Merge pull request #157369 from MicrosoftDocs/master
5/05 AM Publish
2 parents 4b23803 + 3eee881 commit 3a36ad7

File tree

123 files changed

+1398
-1161
lines changed

Some content is hidden

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

123 files changed

+1398
-1161
lines changed

.openpublishing.redirection.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13480,6 +13480,16 @@
1348013480
"redirect_url": "/azure/azure-toolkit-for-intelliJ",
1348113481
"redirect_document_id": false
1348213482
},
13483+
{
13484+
"source_path_from_root": "/articles/azure-vmware/set-up-backup-server-for-azure-vmware-solution.md",
13485+
"redirect_url": "/azure/backup/backup-azure-microsoft-azure-backup",
13486+
"redirect_document_id": false
13487+
},
13488+
{
13489+
"source_path_from_root": "/articles/azure-vmware/backup-azure-vmware-solution-virtual-machines.md",
13490+
"redirect_url": "/azure/backup/backup-azure-backup-server-vmware",
13491+
"redirect_document_id": false
13492+
},
1348313493
{
1348413494
"source_path_from_root": "/articles/azure-vmware/windows-server-failover-cluster.md",
1348513495
"redirect_url": "/azure/azure-vmware/configure-windows-server-failover-cluster",

articles/active-directory/develop/quickstart-register-app.md

Lines changed: 32 additions & 28 deletions
Large diffs are not rendered by default.

articles/aks/csi-secrets-store-driver.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,10 @@ az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluste
8989

9090
## Verify Secrets Store CSI Driver installation
9191

92-
These commands will install the Secrets Store CSI Driver and the Azure Key Vault provider on your nodes. Verify by listing all pods from all namespaces and ensuring your output looks similar to the following:
92+
These commands will install the Secrets Store CSI Driver and the Azure Key Vault provider on your nodes. Verify by listing all pods with the secrets-store-csi-driver and secrets-store-provider-azure labels in the kube-system namespace and ensuring your output looks similar to the following:
9393

9494
```bash
95-
kubectl get pods -n kube-system
95+
kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver, secrets-store-provider-azure)'
9696

9797
NAMESPACE NAME READY STATUS RESTARTS AGE
9898
kube-system aks-secrets-store-csi-driver-4vpkj 3/3 Running 2 4m25s
@@ -141,6 +141,15 @@ Take note of the following properties for use in the next section:
141141
- Name of Key Vault resource
142142
- Azure Tenant ID the Subscription belongs to
143143

144+
## Provide identity to access Azure Key Vault
145+
146+
The example in this article uses a Service Principal, but the Azure Key Vault provider offers four methods of access. Review them and choose the one that best fits your use case. Be aware additional steps may be required depending on the chosen method, such as granting the Service Principal permissions to get secrets from key vault.
147+
148+
- [Service Principal][service-principal-access]
149+
- [Pod Identity][pod-identity-access]
150+
- [User-assigned Managed Identity][ua-mi-access]
151+
- [System-assigned Managed Identity][sa-mi-access]
152+
144153
## Create and apply your own SecretProviderClass object
145154

146155
To use and configure the Secrets Store CSI driver for your AKS cluster, create a SecretProviderClass custom resource.
@@ -173,15 +182,6 @@ spec:
173182
174183
For more information, see [Create your own SecretProviderClass Object][sample-secret-provider-class]. Be sure to use the values you took note of above.
175184
176-
## Provide identity to access Azure Key Vault
177-
178-
The example in this article uses a Service Principal, but the Azure Key Vault provider offers four methods of access. Review them and choose the one that best fits your use case. Be aware additional steps may be required depending on the chosen method, such as granting the Service Principal permissions to get secrets from key vault.
179-
180-
- [Service Principal][service-principal-access]
181-
- [Pod Identity][pod-identity-access]
182-
- [User-assigned Managed Identity][ua-mi-access]
183-
- [System-assigned Managed Identity][sa-mi-access]
184-
185185
### Apply the SecretProviderClass to your cluster
186186
187187
Next, deploy the SecretProviderClass you created. For example:

articles/azure-app-configuration/concept-enable-rbac.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,8 @@ Azure provides the following Azure built-in roles for authorizing access to App
3333
- **Contributor**: Use this role to manage the App Configuration resource. While the App Configuration data can be accessed using access keys, this role does not grant direct access to the data using Azure AD.
3434
- **Reader**: Use this role to give read access to the App Configuration resource. This does not grant access to the resource's access keys, nor to the data stored in App Configuration.
3535

36+
> [!NOTE]
37+
> After a role assignment is made for an identity, allow up to 15 minutes for the permission to propagate before accessing data stored in App Configuration using this identity.
38+
3639
## Next steps
3740
Learn more about using [managed identities](howto-integrate-azure-managed-service-identity.md) to administer your App Configuration service.

articles/azure-cache-for-redis/cache-web-app-arm-with-redis-cache-provision.md

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ The template creates the cache in the same location as the resource group.
7878
```
7979

8080

81-
### Web app
81+
### Web app (Azure Cache for Redis)
8282
Creates the web app with name specified in the **webSiteName** variable.
8383

8484
Notice that the web app is configured with app setting properties that enable it to work with the Azure Cache for Redis. These app settings are dynamically created based on values provided during deployment.
@@ -90,8 +90,7 @@ Notice that the web app is configured with app setting properties that enable it
9090
"type": "Microsoft.Web/sites",
9191
"location": "[resourceGroup().location]",
9292
"dependsOn": [
93-
"[concat('Microsoft.Web/serverFarms/', variables('hostingPlanName'))]",
94-
"[concat('Microsoft.Cache/Redis/', variables('cacheName'))]"
93+
"[concat('Microsoft.Web/serverFarms/', variables('hostingPlanName'))]"
9594
],
9695
"tags": {
9796
"[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', variables('hostingPlanName'))]": "empty",
@@ -111,7 +110,45 @@ Notice that the web app is configured with app setting properties that enable it
111110
"[concat('Microsoft.Cache/Redis/', variables('cacheName'))]"
112111
],
113112
"properties": {
114-
"CacheConnection": "[concat(variables('cacheName'),'.redis.cache.windows.net,abortConnect=false,ssl=true,password=', listKeys(resourceId('Microsoft.Cache/Redis', variables('cacheName')), '2015-08-01').primaryKey)]"
113+
"CacheConnection": "[concat(variables('cacheHostName'),'.redis.cache.windows.net,abortConnect=false,ssl=true,password=', listKeys(resourceId('Microsoft.Cache/Redis', variables('cacheName')), '2015-08-01').primaryKey)]"
114+
}
115+
}
116+
]
117+
}
118+
```
119+
120+
121+
### Web app (RedisEnterprise)
122+
For RedisEnterprise, because the resource types are slightly different, the way to do **listKeys** is different:
123+
124+
```json
125+
{
126+
"apiVersion": "2015-08-01",
127+
"name": "[variables('webSiteName')]",
128+
"type": "Microsoft.Web/sites",
129+
"location": "[resourceGroup().location]",
130+
"dependsOn": [
131+
"[concat('Microsoft.Web/serverFarms/', variables('hostingPlanName'))]"
132+
],
133+
"tags": {
134+
"[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', variables('hostingPlanName'))]": "empty",
135+
"displayName": "Website"
136+
},
137+
"properties": {
138+
"name": "[variables('webSiteName')]",
139+
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]"
140+
},
141+
"resources": [
142+
{
143+
"apiVersion": "2015-08-01",
144+
"type": "config",
145+
"name": "appsettings",
146+
"dependsOn": [
147+
"[concat('Microsoft.Web/Sites/', variables('webSiteName'))]",
148+
"[concat('Microsoft.Cache/RedisEnterprise/databases/', variables('cacheName'), "/default")]",
149+
],
150+
"properties": {
151+
"CacheConnection": "[concat(variables('cacheHostName'),abortConnect=false,ssl=true,password=', listKeys(resourceId('Microsoft.Cache/RedisEnterprise', variables('cacheName'), 'default'), '2020-03-01').primaryKey)]"
115152
}
116153
}
117154
]

articles/azure-monitor/alerts/alerts-unified-log.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Log alerts are one of the alert types that are supported in [Azure Alerts](./ale
2121
2222
## Prerequisites
2323

24-
Log alerts run queries on Log Analytics data. First you should start [collecting log data](../essentials/resource-logs.md) and query the log data for issues. You can use the [alert query examples topic](../logs/example-queries.md) in Log Analytics to understand what you can discover or [get started on writing your own query](../logs/log-analytics-tutorial.md).
24+
Log alerts run queries on Log Analytics data. First you should start [collecting log data](../essentials/resource-logs.md) and query the log data for issues. You can use the [alert query examples article](../logs/example-queries.md) in Log Analytics to understand what you can discover or [get started on writing your own query](../logs/log-analytics-tutorial.md).
2525

2626
[Azure Monitoring Contributor](../roles-permissions-security.md) is a common role that is needed for creating, modifying, and updating log alerts. Access & query execution rights for the resource logs are also needed. Partial access to resource logs can fail queries or return partial results. [Learn more about configuring log alerts in Azure](./alerts-log.md).
2727

@@ -115,7 +115,7 @@ In workspaces and Application Insights, it's supported only in **Metric measurem
115115

116116
Split alerts by number or string columns into separate alerts by grouping into unique combinations. When creating resource-centric alerts at scale (subscription or resource group scope), you can split by Azure resource ID column. Splitting on Azure resource ID column will change the target of the alert to the specified resource.
117117

118-
Splitting by Azure resource ID column is recommended when you want to monitor the same condition on multiple Azure resources. For example, monitoring all virtual machines for CPU usage over 80%. You may also decide not to split when you want a condition on multiple resources in the scope, such as monitoring that at least five machines in the resource group scope have CPU usage over 80%.
118+
Splitting by Azure resource ID column is recommended when you want to monitor the same condition on multiple Azure resources. For example, monitoring all virtual machines for CPU usage over 80%. You may also decide not to split when you want a condition on multiple resources in the scope. Such as monitoring that at least five machines in the resource group scope have CPU usage over 80%.
119119

120120
In workspaces and Application Insights, it's supported only in **Metric measurement** measure type. The field is called **Aggregate On**. It's limited to three columns. Having more than three groups by columns in the query could lead to unexpected results. In all other resource types, it's configured in **Split by dimensions** section of the condition (limited to six splits).
121121

@@ -175,7 +175,7 @@ For example, if your rule [**Aggregation granularity**](#aggregation-granularity
175175
176176
## State and resolving alerts
177177
178-
Log alerts can either be stateless or stateful (currently in preview when using the API).
178+
Log alerts can either be stateless or stateful (currently in preview).
179179
180180
Stateless alerts fire each time the condition is met, even if fired previously. You can [mark the alert as closed](../alerts/alerts-managing-alert-states.md) once the alert instance is resolved. You can also mute actions to prevent them from triggering for a period after an alert rule fired. In Log Analytics Workspaces and Application Insights, it's called **Suppress Alerts**. In all other resource types, it's called **Mute Actions**.
181181
@@ -188,7 +188,13 @@ See this alert evaluation example:
188188
| 00:15 | TRUE | Alert fires and action groups called. New alert state ACTIVE.
189189
| 00:20 | FALSE | Alert doesn't fire. No actions called. Pervious alerts state remains ACTIVE.
190190
191-
Stateful alerts fire once per incident and resolve. When creating new or updating existing log alert rules, add the `autoMitigate` flag with value `true` of type `Boolean`, under the `properties` section. You can use this feature in these API versions: `2018-04-16` and `2020-05-01-preview`.
191+
Stateful alerts fire once per incident and resolve. You can set this using **Automatically resolve alerts** in the alert details section.
192+
193+
## Location selection in log alerts
194+
195+
Log alerts allow you to set a location for alert rules. In Log Analytics Workspaces, the rule location must match the workspace location. In all other resources, you can select any of the supported locations, which align to [Log Analytics supported region list](https://azure.microsoft.com/global-infrastructure/services/?products=monitor).
196+
197+
Location affects which region the alert rule is evaluated in. Queries are executed on the log data in the selected region, that said, the alert service end to end is global. Meaning alert rule definition, fired alerts, notifications, and actions aren't bound to the location in the alert rule. Data is transfer from the set region since the Azure Monitor alerts service is a [non-regional service](https://azure.microsoft.com/global-infrastructure/services/?products=monitor&regions=non-regional).
192198
193199
## Pricing and billing of log alerts
194200

articles/azure-resource-manager/templates/deploy-portal.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Deploy resources with Azure portal
33
description: Use Azure portal and Azure Resource Manage to deploy your resources to a resource group in your subscription.
44
ms.topic: conceptual
5-
ms.date: 10/22/2020
5+
ms.date: 05/05/2021
66
---
77

88
# Deploy resources with ARM templates and Azure portal
@@ -113,7 +113,7 @@ If you want to execute a deployment but not use any of the templates in the Mark
113113
- **Subscription**: Select an Azure subscription.
114114
- **Resource group**: Select **Create new** and give a name.
115115
- **Location**: Select an Azure location.
116-
- **Storage Account Type**: Use the default value.
116+
- **Storage Account Type**: Use the default value. The camel-cased parameter name, *storageAccountType*, defined in the template is turned into a space-separated string when displayed on the portal.
117117
- **Location**: Use the default value.
118118
- **I agree to the terms and conditions stated above**: (select)
119119

articles/azure-resource-manager/templates/deploy-to-azure-button.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Deploy to Azure button
33
description: Use button to deploy Azure Resource Manager templates from a GitHub repository.
44
ms.topic: conceptual
5-
ms.date: 03/25/2021
5+
ms.date: 05/05/2021
66
---
77

88
# Use a deployment button to deploy templates from GitHub repository
@@ -111,7 +111,7 @@ To test the full solution, select the following button:
111111

112112
[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json)
113113

114-
The portal displays a pane that allows you to easily provide parameter values. The parameters are pre-filled with the default values from the template.
114+
The portal displays a pane that allows you to easily provide parameter values. The parameters are pre-filled with the default values from the template. The camel-cased parameter name, *storageAccountType*, defined in the template is turned into a space-separated string when displayed on the portal.
115115

116116
![Use portal to deploy](./media/deploy-to-azure-button/portal.png)
117117

articles/azure-resource-manager/templates/template-functions-logical.md

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Template functions - logical
33
description: Describes the functions to use in an Azure Resource Manager template (ARM template) to determine logical values.
44
ms.topic: conceptual
5-
ms.date: 11/18/2020
5+
ms.date: 05/05/2021
66
---
77
# Logical functions for ARM templates
88

@@ -322,8 +322,30 @@ The following [example template](https://github.com/krnese/AzureDeploy/blob/mast
322322

323323
# [Bicep](#tab/bicep)
324324

325-
> [!NOTE]
326-
> `Conditions` are not yet implemented in Bicep. See [Conditions](https://github.com/Azure/bicep/issues/186).
325+
```bicep
326+
param vmName string
327+
param location string
328+
param logAnalytics string = ''
329+
330+
resource vmName_omsOnboarding 'Microsoft.Compute/virtualMachines/extensions@2017-03-30' = if (!empty(logAnalytics)) {
331+
name: '${vmName}/omsOnboarding'
332+
location: location
333+
properties: {
334+
publisher: 'Microsoft.EnterpriseCloud.Monitoring'
335+
type: 'MicrosoftMonitoringAgent'
336+
typeHandlerVersion: '1.0'
337+
autoUpgradeMinorVersion: true
338+
settings: {
339+
workspaceId: ((!empty(logAnalytics)) ? reference(logAnalytics, '2015-11-01-preview').customerId : json('null'))
340+
}
341+
protectedSettings: {
342+
workspaceKey: ((!empty(logAnalytics)) ? listKeys(logAnalytics, '2015-11-01-preview').primarySharedKey : json('null'))
343+
}
344+
}
345+
}
346+
347+
output mgmtStatus string = ((!empty(logAnalytics)) ? 'Enabled monitoring for VM!' : 'Nothing to enable')
348+
```
327349

328350
---
329351

articles/azure-resource-manager/templates/template-parameters.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Parameters in templates
33
description: Describes how to define parameters in an Azure Resource Manager template (ARM template) and Bicep file.
44
ms.topic: conceptual
5-
ms.date: 03/03/2021
5+
ms.date: 05/05/2021
66
---
77

88
# Parameters in ARM templates
@@ -19,6 +19,8 @@ Each parameter must be set to one of the [data types](data-types.md).
1919

2020
At a minimum, every parameter needs a name and type. In Bicep, a parameter can't have the same name as a variable, resource, output, or other parameter in the same scope.
2121

22+
When you deploy a template via the Azure portal, camel-cased parameter names are turned into space-separated names. For example, *demoString* in the following example is shown as *Demo String*. For more information, see [Use a deployment button to deploy templates from GitHub repository](./deploy-to-azure-button.md) and [Deploy resources with ARM templates and Azure portal](./deploy-portal.md).
23+
2224
# [JSON](#tab/json)
2325

2426
```json

0 commit comments

Comments
 (0)