Updates from: 03/25/2022 02:26:10
Service Microsoft Docs article Related commit history on GitHub Change details
active-directory-b2c Deploy Custom Policies Devops https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory-b2c/deploy-custom-policies-devops.md
Previously updated : 08/26/2021 Last updated : 03/25/2022
## Prerequisites * Complete the steps in the [Get started with custom policies in Active Directory B2C](tutorial-create-user-flows.md).
-* If you haven't created an DevOps organization, create one by following the instructions in [Sign up, sign in to Azure DevOps](/azure/devops/user-guide/sign-up-invite-teammates).
+* If you haven't created a DevOps organization, create one by following the instructions in [Sign up, sign in to Azure DevOps](/azure/devops/user-guide/sign-up-invite-teammates).
## Register an application for management tasks
try {
$graphuri = 'https://graph.microsoft.com/beta/trustframework/policies/' + $PolicyId + '/$value' $content = [System.Text.Encoding]::UTF8.GetBytes($policycontent)
- $response = Invoke-RestMethod -Uri $graphuri -Method Put -Body $content -Headers $headers
+ $response = Invoke-RestMethod -Uri $graphuri -Method Put -Body $content -Headers $headers -ContentType "application/xml; charset=utf-8"
Write-Host "Policy" $PolicyId "uploaded successfully." }
A pipeline task is a pre-packaged script that performs an action. Add a task tha
1. In the pipeline you created, select the **Tasks** tab. 1. Select **Agent job**, and then select the plus sign (**+**) to add a task to the Agent job.
-1. Search for and select **PowerShell**. Do not select "Azure PowerShell," "PowerShell on target machines," or another PowerShell entry.
+1. Search for and select **PowerShell**. Don't select "Azure PowerShell," "PowerShell on target machines," or another PowerShell entry.
1. Select newly added **PowerShell Script** task. 1. Enter following values for the PowerShell Script task: * **Task version**: 2.*
active-directory-domain-services Concepts Migration Benefits https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory-domain-services/concepts-migration-benefits.md
After migration, Azure AD DS provides many features that are only available for
* [Email notifications for alerts on your managed domain][email-alerts]. * [Use Azure Workbooks and Azure monitor to view audit logs and sign-in activity][workbooks]. * In supported regions, [Azure Availability Zones][availability-zones].
-* Integrations with other Azure products such as [Azure Files][azure-files], [HD Insights][hd-insights], and [Windows Virtual Desktop][wvd].
+* Integrations with other Azure products such as [Azure Files][azure-files], [HD Insights][hd-insights], and [Azure Virtual Desktop][avd].
* Support has access to more telemetry and can help troubleshoot more effectively. * Encryption at rest using [Azure Managed Disks][managed-disks] for the data on the managed domain controllers.
To get started, see [Migrate Azure AD Domain Services from the Classic virtual n
[workbooks]: use-azure-monitor-workbooks.md [azure-files]: ../storage/files/storage-files-identity-auth-active-directory-domain-service-enable.md [hd-insights]: ../hdinsight/domain-joined/apache-domain-joined-configure-using-azure-adds.md
-[wvd]: ../virtual-desktop/overview.md
+[avd]: ../virtual-desktop/overview.md
[availability-zones]: ../availability-zones/az-overview.md [howto-migrate]: migrate-from-classic-vnet.md [attributes]: synchronization.md#attribute-synchronization-and-mapping-to-azure-ad-ds
active-directory Application Proxy Release Version History https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/app-proxy/application-proxy-release-version-history.md
Previously updated : 04/27/2021 Last updated : 03/24/2022
Here is a list of related resources:
| Understand Azure AD Application Proxy connectors | Find out more about [connector management](application-proxy-connectors.md) and how connectors [auto-upgrade](application-proxy-connectors.md#automatic-updates). | | Azure AD Application Proxy Connector Download | [Download the latest connector](https://download.msappproxy.net/subscription/d3c8b69d-6bf7-42be-a529-3fe9c2e70c90/connector/download). |
+## 1.5.2846.0
+
+### Release status
+
+March 22, 2022: Released for download. This version is only available for install via the download page.
+
+### New features and improvements
+
+- Increased the number of HTTP headers supported on HTTP requests from 41 to 60.
+- Improved error handling of SSL failures between the connector and Azure services.
+- Updated the default connection limit to 200 for connector traffic when going through outbound proxy. To learn more about outbound proxy, see [Work with existing on-premises proxy servers](application-proxy-configure-connectors-with-proxy-servers.md#use-the-outbound-proxy-server).
+- Deprecated the use of ADAL and implemented MSAL as part of the connector installation flow.
+
+### Fixed issues
+- Return original error code and response instead of a 400 Bad Request code for failing websocket connect attempts.
+ ## 1.5.1975.0 ### Release status
active-directory Fido2 Compatibility https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/authentication/fido2-compatibility.md
This table shows support for authenticating Azure Active Directory (Azure AD) an
|::|::|::|::|::|::|::|::|::|::| | | USB | NFC | BLE | USB | NFC | BLE | USB | NFC | BLE | | **Windows** | ![Chrome supports USB on Windows for AAD accounts.][y] | ![Chrome supports NFC on Windows for AAD accounts.][y] | ![Chrome supports BLE on Windows for AAD accounts.][y] | ![Edge supports USB on Windows for AAD accounts.][y] | ![Edge supports NFC on Windows for AAD accounts.][y] | ![Edge supports BLE on Windows for AAD accounts.][y] | ![Firefox supports USB on Windows for AAD accounts.][y] | ![Firefox supports NFC on Windows for AAD accounts.][y] | ![Firefox supports BLE on Windows for AAD accounts.][y] |
-| **macOS** | ![Chrome supports USB on macOS for AAD accounts.][y] | ![Chrome does not support NFC on macOS for AAD accounts.][n] | ![Chrome does not support BLE on macOS for AAD accounts.][n] | ![Edge supports USB on macOS for AAD accounts.][y] | ![Edge does not support NFC on macOS for AAD accounts.][n] | ![Edge does not support BLE on macOS for AAD accounts.][n] | ![Firefox does not support USB on macOS for AAD accounts.][n] | ![Firefox does not support NFC on macOS for AAD accounts.][n] | ![Firefox does not support BLE on macOS for AAD accounts.][n] |
+| **MacOS** | ![Chrome supports USB on MacOS for AAD accounts.][y] | ![Chrome does not support NFC on MacOS for AAD accounts.][n] | ![Chrome does not support BLE on MacOS for AAD accounts.][n] | ![Edge supports USB on MacOS for AAD accounts.][y] | ![Edge does not support NFC on MacOS for AAD accounts.][n] | ![Edge does not support BLE on MacOS for AAD accounts.][n] | ![Firefox supports USB on MacOS for AAD accounts.][y] | ![Firefox does not support NFC on MacOS for AAD accounts.][n] | ![Firefox does not support BLE on MacOS for AAD accounts.][n] |
+| **ChromeOS** | ![Chrome supports USB on ChromeOS for AAD accounts.][y] | ![Chrome supports NFC on ChromeOS for AAD accounts.][n] | ![Chrome supports BLE on ChromeOS for AAD accounts.][n] | ![Edge supports USB on ChromeOS for AAD accounts.][n] | ![Edge supports NFC on ChromeOS for AAD accounts.][n] | ![Edge supports BLE on ChromeOS for AAD accounts.][n] | ![Firefox supports USB on ChromeOS for AAD accounts.][n] | ![Firefox supports NFC on ChromeOS for AAD accounts.][n] | ![Firefox supports BLE on ChromeOS for AAD accounts.][n] |
| **Linux** | ![Chrome supports USB on Linux for AAD accounts.][y] | ![Chrome does not support NFC on Linux for AAD accounts.][n] | ![Chrome does not support BLE on Linux for AAD accounts.][n] | ![Edge does not support USB on Linux for AAD accounts.][n] | ![Edge does not support NFC on Linux for AAD accounts.][n] | ![Edge does not support BLE on Linux for AAD accounts.][n] | ![Firefox does not support USB on Linux for AAD accounts.][n] | ![Firefox does not support NFC on Linux for AAD accounts.][n] | ![Firefox does not support BLE on Linux for AAD accounts.][n] |
The following operating system and browser combinations are not supported, but f
| iOS | Safari, Brave | | macOS | Safari | | Android | Chrome |
-| ChromeOS | Chrome |
## Minimum browser version
active-directory Howto Mfa Nps Extension https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/authentication/howto-mfa-nps-extension.md
The following script is available to perform basic health check steps when troub
[MFA_NPS_Troubleshooter.ps1](/samples/azure-samples/azure-mfa-nps-extension-health-check/azure-mfa-nps-extension-health-check/)
+### How to fix the error "Service principal was not found" while running `AzureMfaNpsExtnConfigSetup.ps1` script?
+
+If for any reason the "Azure Multi-Factor Auth Client" service principal was not created in the tenant , it can be manually created by running the `New-MsolServicePrincipal` cmdlet as shown below.
+
+```powershell
+import-module MSOnline
+Connect-MsolService
+New-MsolServicePrincipal -AppPrincipalId 981f26a1-7f43-403b-a875-f8b09b8cd720 -DisplayName "Azure Multi-Factor Auth Client"
+```
+Once done , go to https://aad.portal.azure.com > "Enterprise Applications" > Search for "Azure Multi-Factor Auth Client" > Check properties for this app > Confirm if the service principal is enabled or disabled > Click on the application entry > Go to Properties of the app > If the option "Enabled for users to sign-in? is set to No in Properties of this app , please set it to Yes.
+
+Run the `AzureMfaNpsExtnConfigSetup.ps1` script again and it should not return the `Service principal was not found` error.
+ ### How do I verify that the client cert is installed as expected? Look for the self-signed certificate created by the installer in the cert store, and check that the private key has permissions granted to user *NETWORK SERVICE*. The cert has a subject name of **CN \<tenantid\>, OU = Microsoft NPS Extension**
active-directory Howto Sspr Deployment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/authentication/howto-sspr-deployment.md
+adobe-target: true
# Plan an Azure Active Directory self-service password reset deployment
active-directory Concept Conditional Access Cloud Apps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/conditional-access/concept-conditional-access-cloud-apps.md
The following key applications are included in the Office 365 client app:
- Microsoft Whiteboard Services - Office Delve - Office Online-- Office.com - OneDrive - Power Apps - Power Automate
For more information about authentication context use in applications, see the f
- [Conditional Access: Conditions](concept-conditional-access-conditions.md) - [Conditional Access common policies](concept-conditional-access-policy-common.md)-- [Client application dependencies](service-dependencies.md)
+- [Client application dependencies](service-dependencies.md)
active-directory Howto Vm Sign In Azure Ad Linux https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/devices/howto-vm-sign-in-azure-ad-linux.md
Azure Cloud Shell is a free, interactive shell that you can use to run the steps
If you choose to install and use the CLI locally, this article requires that youΓÇÖre running the Azure CLI version 2.22.1 or later. Run `az --version` to find the version. If you need to install or upgrade, see the article Install Azure CLI.
-1. Create a resource group with [az group create](/cli/azure/group#az_group_create).
-1. Create a VM with [az vm create](/cli/azure/vm#az_vm_create&preserve-view=true) using a supported distribution in a supported region.
-1. Install the Azure AD login VM extension with [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set).
+1. Create a resource group with [az group create](/cli/azure/group#az-group-create).
+1. Create a VM with [az vm create](/cli/azure/vm#az-vm-create&preserve-view=true) using a supported distribution in a supported region.
+1. Install the Azure AD login VM extension with [az vm extension set](/cli/azure/vm/extension#az-vm-extension-set).
The following example deploys a VM and then installs the extension to enable Azure AD login for Linux VM. VM extensions are small applications that provide post-deployment configuration and automation tasks on Azure virtual machines.
After a few moments, the security principal is assigned the role at the selected
### Using the Azure Cloud Shell experience
-The following example uses [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) to assign the Virtual Machine Administrator Login role to the VM for your current Azure user. The username of your current Azure account is obtained with [az account show](/cli/azure/account#az_account_show), and the scope is set to the VM created in a previous step with [az vm show](/cli/azure/vm#az_vm_show). The scope could also be assigned at a resource group or subscription level, normal Azure RBAC inheritance permissions apply.
+The following example uses [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) to assign the Virtual Machine Administrator Login role to the VM for your current Azure user. The username of your current Azure account is obtained with [az account show](/cli/azure/account#az-account-show), and the scope is set to the VM created in a previous step with [az vm show](/cli/azure/vm#az-vm-show). The scope could also be assigned at a resource group or subscription level, normal Azure RBAC inheritance permissions apply.
```azurecli-interactive username=$(az account show --query user.name --output tsv)
az role assignment create \
``` > [!NOTE]
-> If your Azure AD domain and logon username domain do not match, you must specify the object ID of your user account with the `--assignee-object-id`, not just the username for `--assignee`. You can obtain the object ID for your user account with [az ad user list](/cli/azure/ad/user#az_ad_user_list).
+> If your Azure AD domain and logon username domain do not match, you must specify the object ID of your user account with the `--assignee-object-id`, not just the username for `--assignee`. You can obtain the object ID for your user account with [az ad user list](/cli/azure/ad/user#az-ad-user-list).
For more information on how to use Azure RBAC to manage access to your Azure subscription resources, see the article [Steps to assign an Azure role](../../role-based-access-control/role-assignments-steps.md).
Solution 2: Perform these actions:
Virtual machine scale set VM connections may fail if the virtual machine scale set instances are running an old model. Upgrading virtual machine scale set instances to the latest model may resolve issues, especially if an upgrade hasnΓÇÖt been done since the Azure AD Login extension was installed. Upgrading an instance applies a standard virtual machine scale set configuration to the individual instance.
+### AllowGroups / DenyGroups statements in sshd_config cause first login to fail for Azure AD users
+
+Cause 1: If sshd_config contains either AllowGroups or DenyGroups statements, the very first login fails for Azure AD users. If the statement was added after a user already has a successful login, they can log in.
+
+Solution 1: Remove AllowGroups and DenyGroups statements from sshd_config.
+
+Solution 2: Move AllowGroups and DenyGroups to a "match user" section in sshd_config. Make sure the match template excludes Azure AD users.
+ ## Next steps [What is a device identity?](overview.md)
active-directory Howto Vm Sign In Azure Ad Windows https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/devices/howto-vm-sign-in-azure-ad-windows.md
Azure Cloud Shell is a free, interactive shell that you can use to run the steps
If you choose to install and use the CLI locally, this article requires that you are running the Azure CLI version 2.0.31 or later. Run az --version to find the version. If you need to install or upgrade, see the article [Install Azure CLI](/cli/azure/install-azure-cli).
-1. Create a resource group with [az group create](/cli/azure/group#az_group_create).
-1. Create a VM with [az vm create](/cli/azure/vm#az_vm_create) using a supported distribution in a supported region.
+1. Create a resource group with [az group create](/cli/azure/group#az-group-create).
+1. Create a VM with [az vm create](/cli/azure/vm#az-vm-create) using a supported distribution in a supported region.
1. Install the Azure AD login VM extension. The following example deploys a VM named myVM that uses Win2019Datacenter, into a resource group named myResourceGroup, in the southcentralus region. In the following examples, you can provide your own resource group and VM names as needed.
az vm create \
It takes a few minutes to create the VM and supporting resources.
-Finally, install the Azure AD login VM extension to enable Azure AD login for Windows VM. VM extensions are small applications that provide post-deployment configuration and automation tasks on Azure virtual machines. Use [az vm extension](/cli/azure/vm/extension#az_vm_extension_set) set to install the AADLoginForWindows extension on the VM named `myVM` in the `myResourceGroup` resource group:
+Finally, install the Azure AD login VM extension to enable Azure AD login for Windows VM. VM extensions are small applications that provide post-deployment configuration and automation tasks on Azure virtual machines. Use [az vm extension](/cli/azure/vm/extension#az-vm-extension-set) set to install the AADLoginForWindows extension on the VM named `myVM` in the `myResourceGroup` resource group:
> [!NOTE] > You can install AADLoginForWindows extension on an existing Windows Server 2019 or Windows 10 1809 and later VM to enable it for Azure AD authentication. An example of AZ CLI is shown below.
To configure role assignments for your Azure AD enabled Windows Server 2019 Data
### Using the Azure Cloud Shell experience
-The following example uses [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) to assign the Virtual Machine Administrator Login role to the VM for your current Azure user. The username of your active Azure account is obtained with [az account show](/cli/azure/account#az_account_show), and the scope is set to the VM created in a previous step with [az vm show](/cli/azure/vm#az_vm_show). The scope could also be assigned at a resource group or subscription level, and normal Azure RBAC inheritance permissions apply. For more information, see [Log in to a Linux virtual machine in Azure using Azure Active Directory authentication](../../virtual-machines/linux/login-using-aad.md).
+The following example uses [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) to assign the Virtual Machine Administrator Login role to the VM for your current Azure user. The username of your active Azure account is obtained with [az account show](/cli/azure/account#az-account-show), and the scope is set to the VM created in a previous step with [az vm show](/cli/azure/vm#az-vm-show). The scope could also be assigned at a resource group or subscription level, and normal Azure RBAC inheritance permissions apply. For more information, see [Log in to a Linux virtual machine in Azure using Azure Active Directory authentication](../../virtual-machines/linux/login-using-aad.md).
``` AzureCLI $username=$(az account show --query user.name --output tsv)
az role assignment create \
``` > [!NOTE]
-> If your AAD domain and logon username domain do not match, you must specify the object ID of your user account with the `--assignee-object-id`, not just the username for `--assignee`. You can obtain the object ID for your user account with [az ad user list](/cli/azure/ad/user#az_ad_user_list).
+> If your AAD domain and logon username domain do not match, you must specify the object ID of your user account with the `--assignee-object-id`, not just the username for `--assignee`. You can obtain the object ID for your user account with [az ad user list](/cli/azure/ad/user#az-ad-user-list).
For more information on how to use Azure RBAC to manage access to your Azure subscription resources, see the following articles:
active-directory Active Directory How To Find Tenant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/active-directory-how-to-find-tenant.md
az account list
az account tenant list ```
-For more information, see [az login](/cli/azure/reference-index#az_login) command reference, [az account](/cli/azure/account) command reference, or [az account tenant](/cli/azure/account/tenant) command reference.
+For more information, see [az login](/cli/azure/reference-index#az-login) command reference, [az account](/cli/azure/account) command reference, or [az account tenant](/cli/azure/account/tenant) command reference.
For Microsoft 365 CLI, use the cmdlet **tenant id** as shown in the following example:
active-directory Entitlement Management Access Package Approval Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/governance/entitlement-management-access-package-approval-policy.md
If you selected a multi-stage approval, you'll need to add an approver for each
1. Set the Require approver justification toggle to **Yes** or **No**.
- You also have the option to add an additional stage for a three-stage approval process. For example, you might want an employeeΓÇÖs manager to be the first stage approver for an access package. But, one of the resources in the access package contains confidential information. In this case, you could designate the resource owner as a second approver and a security reviewer as the third approver (Preview).
+ You also have the option to add an additional stage for a three-stage approval process. For example, you might want an employeeΓÇÖs manager to be the first stage approver for an access package. But, one of the resources in the access package contains confidential information. In this case, you could designate the resource owner as a second approver and a security reviewer as the third approver. That allows a security team to have oversight into the process and the ability to, for example, reject a request based on risk criteria not known to the resource owner.
-1. Add the **Third Approver (Preview)**:
+1. Add the **Third Approver**:
If the users are in your directory, add a specific user as the third approver by clicking **Add approvers** under Choose specific approvers.
- If the users aren't in your directory, select **Internal sponsor** or **External sponsor** as the third approver. After selecting the approver, add the fallback approvers.
+ If the users aren't in your directory, you also have the option to select **Internal sponsor** or **External sponsor** as the third approver. After selecting the approver, add the fallback approvers.
> [!NOTE] > <ul>Like the second stage, if the users are in your directory and **Manager as approver** is selected in either the first or second stage of approval, you will only see an option to select specific approvers for the third stage of approval.</ul><ul>If you want to designate the manager as a third approver, you can adjust your selections in the previous approval stages to ensure that **Manager as approver** isnΓÇÖt selected. Then, you should see **Manager as approver** as an option in the dropdown.</ul><ul>If the users arenΓÇÖt in your directory and you have not selected **Internal sponsor** or **External sponsor** as approvers in previous stages, you will see them as options for **Third Approver**. Otherwise, you will only be able to select **Choose specific approvers**.</ul>
-1. Specify the number of days the third approver (Preview) has to approve the request in the box under **Decision must be made in how many days?**.
+1. Specify the number of days the third approver has to approve the request in the box under **Decision must be made in how many days?**.
1. Set the Require approver justification toggle to **Yes** or **No**.
active-directory How To Connect Password Hash Synchronization https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/hybrid/how-to-connect-password-hash-synchronization.md
To support temporary passwords in Azure AD for synchronized users, you can enabl
> [!NOTE] > Forcing a user to change their password on next logon requires a password change at the same time. Azure AD Connect will not pick up the force password change flag by itself; it is supplemental to the detected password change that occurs during password hash sync.
+>
+> If the user has the option "Password never expires" set in Active Directory (AD), the force password change flag will not be set in Active Directory (AD), so the user will not be prompted to change the password during the next sign-in.
> [!CAUTION] > You should only use this feature when SSPR and Password Writeback are enabled on the tenant. This is so that if a user changes their password via SSPR, it will be synchronized to Active Directory.
active-directory How Manage User Assigned Managed Identities https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/how-manage-user-assigned-managed-identities.md
In this article, you learn how to create, list, delete, or assign a role to a us
To create a user-assigned managed identity, your account needs the [Managed Identity Contributor](../../role-based-access-control/built-in-roles.md#managed-identity-contributor) role assignment.
-Use the [az identity create](/cli/azure/identity#az_identity_create) command to create a user-assigned managed identity. The `-g` parameter specifies the resource group where to create the user-assigned managed identity. The `-n` parameter specifies its name. Replace the `<RESOURCE GROUP>` and `<USER ASSIGNED IDENTITY NAME>` parameter values with your own values.
+Use the [az identity create](/cli/azure/identity#az-identity-create) command to create a user-assigned managed identity. The `-g` parameter specifies the resource group where to create the user-assigned managed identity. The `-n` parameter specifies its name. Replace the `<RESOURCE GROUP>` and `<USER ASSIGNED IDENTITY NAME>` parameter values with your own values.
[!INCLUDE [ua-character-limit](~/includes/managed-identity-ua-character-limits.md)]
az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
To list or read a user-assigned managed identity, your account needs the [Managed Identity Operator](../../role-based-access-control/built-in-roles.md#managed-identity-operator) or [Managed Identity Contributor](../../role-based-access-control/built-in-roles.md#managed-identity-contributor) role assignment.
-To list user-assigned managed identities, use the [az identity list](/cli/azure/identity#az_identity_list) command. Replace the `<RESOURCE GROUP>` value with your own value.
+To list user-assigned managed identities, use the [az identity list](/cli/azure/identity#az-identity-list) command. Replace the `<RESOURCE GROUP>` value with your own value.
```azurecli-interactive az identity list -g <RESOURCE GROUP>
In the JSON response, user-assigned managed identities have the `"Microsoft.Mana
To delete a user-assigned managed identity, your account needs the [Managed Identity Contributor](../../role-based-access-control/built-in-roles.md#managed-identity-contributor) role assignment.
-To delete a user-assigned managed identity, use the [az identity delete](/cli/azure/identity#az_identity_delete) command. The -n parameter specifies its name. The -g parameter specifies the resource group where the user-assigned managed identity was created. Replace the `<USER ASSIGNED IDENTITY NAME>` and `<RESOURCE GROUP>` parameter values with your own values.
+To delete a user-assigned managed identity, use the [az identity delete](/cli/azure/identity#az-identity-delete) command. The -n parameter specifies its name. The -g parameter specifies the resource group where the user-assigned managed identity was created. Replace the `<USER ASSIGNED IDENTITY NAME>` and `<RESOURCE GROUP>` parameter values with your own values.
```azurecli-interactive az identity delete -n <USER ASSIGNED IDENTITY NAME> -g <RESOURCE GROUP>
In this article, you learn how to create, list, and delete a user-assigned manag
az login ```
-1. Obtain an access token by using [az account get-access-token](/cli/azure/account#az_account_get_access_token).
+1. Obtain an access token by using [az account get-access-token](/cli/azure/account#az-account-get-access-token).
```azurecli-interactive az account get-access-token
active-directory Howto Assign Access Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/howto-assign-access-cli.md
If you don't already have an Azure account, [sign up for a free account](https:/
After you've enabled managed identity on an Azure resource, such as an [Azure virtual machine](qs-configure-cli-windows-vm.md) or [Azure virtual machine scale set](qs-configure-cli-windows-vmss.md):
-1. In this example, we are giving an Azure virtual machine access to a storage account. First we use [az resource list](/cli/azure/resource/#az_resource_list) to get the service principal for the virtual machine named myVM:
+1. In this example, we are giving an Azure virtual machine access to a storage account. First we use [az resource list](/cli/azure/resource/#az-resource-list) to get the service principal for the virtual machine named myVM:
```azurecli-interactive spID=$(az resource list -n myVM --query [*].identity.principalId --out tsv)
After you've enabled managed identity on an Azure resource, such as an [Azure vi
spID=$(az resource list -n DevTestVMSS --query [*].identity.principalId --out tsv) ```
-1. Once you have the service principal ID, use [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) to give the virtual machine or virtual machine scale set "Reader" access to a storage account called "myStorageAcct":
+1. Once you have the service principal ID, use [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) to give the virtual machine or virtual machine scale set "Reader" access to a storage account called "myStorageAcct":
```azurecli-interactive az role assignment create --assignee $spID --role 'Reader' --scope /subscriptions/<mySubscriptionID>/resourceGroups/<myResourceGroup>/providers/Microsoft.Storage/storageAccounts/myStorageAcct
active-directory Msi Tutorial Linux Vm Access Arm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/msi-tutorial-linux-vm-access-arm.md
In this tutorial, you learn how to:
- You also need a Linux Virtual machine. If you need to create a virtual machine for this tutorial, you can follow the article titled [Create a Linux virtual machine with the Azure portal](../../virtual-machines/linux/quick-create-portal.md#create-virtual-machine) - To run the example scripts, you have two options: - Use the [Azure Cloud Shell](../../cloud-shell/overview.md), which you can open using the **Try It** button on the top-right corner of code blocks.
- - Run scripts locally by installing the latest version of the [Azure CLI](/cli/azure/install-azure-cli), then sign in to Azure using [az login](/cli/azure/reference-index#az_login).
+ - Run scripts locally by installing the latest version of the [Azure CLI](/cli/azure/install-azure-cli), then sign in to Azure using [az login](/cli/azure/reference-index#az-login).
## Create a user-assigned managed identity
-Create a user-assigned managed identity using [az identity create](/cli/azure/identity#az_identity_create). The `-g` parameter specifies the resource group where the user-assigned managed identity is created, and the `-n` parameter specifies its name. Be sure to replace the `<RESOURCE GROUP>` and `<UAMI NAME>` parameter values with your own values:
+Create a user-assigned managed identity using [az identity create](/cli/azure/identity#az-identity-create). The `-g` parameter specifies the resource group where the user-assigned managed identity is created, and the `-n` parameter specifies its name. Be sure to replace the `<RESOURCE GROUP>` and `<UAMI NAME>` parameter values with your own values:
[!INCLUDE [ua-character-limit](~/includes/managed-identity-ua-character-limits.md)]
active-directory Qs Configure Cli Windows Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/qs-configure-cli-windows-vm.md
In this section, you learn how to enable and disable the system-assigned managed
To create an Azure VM with the system-assigned managed identity enabled, your account needs the [Virtual Machine Contributor](../../role-based-access-control/built-in-roles.md#virtual-machine-contributor) role assignment. No other Azure AD directory role assignments are required.
-1. Create a [resource group](../../azure-resource-manager/management/overview.md#terminology) for containment and deployment of your VM and its related resources, using [az group create](/cli/azure/group/#az_group_create). You can skip this step if you already have resource group you would like to use instead:
+1. Create a [resource group](../../azure-resource-manager/management/overview.md#terminology) for containment and deployment of your VM and its related resources, using [az group create](/cli/azure/group/#az-group-create). You can skip this step if you already have resource group you would like to use instead:
```azurecli-interactive az group create --name myResourceGroup --location westus ```
-1. Create a VM using [az vm create](/cli/azure/vm/#az_vm_create). The following example creates a VM named *myVM* with a system-assigned managed identity, as requested by the `--assign-identity` parameter. The `--admin-username` and `--admin-password` parameters specify the administrative user name and password account for virtual machine sign-in. Update these values as appropriate for your environment:
+1. Create a VM using [az vm create](/cli/azure/vm/#az-vm-create). The following example creates a VM named *myVM* with a system-assigned managed identity, as requested by the `--assign-identity` parameter. The `--admin-username` and `--admin-password` parameters specify the administrative user name and password account for virtual machine sign-in. Update these values as appropriate for your environment:
```azurecli-interactive az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --admin-username azureuser --admin-password myPassword12
To create an Azure VM with the system-assigned managed identity enabled, your ac
To enable system-assigned managed identity on a VM, your account needs the [Virtual Machine Contributor](../../role-based-access-control/built-in-roles.md#virtual-machine-contributor) role assignment. No other Azure AD directory role assignments are required.
-1. If you're using the Azure CLI in a local console, first sign in to Azure using [az login](/cli/azure/reference-index#az_login). Use an account that is associated with the Azure subscription that contains the VM.
+1. If you're using the Azure CLI in a local console, first sign in to Azure using [az login](/cli/azure/reference-index#az-login). Use an account that is associated with the Azure subscription that contains the VM.
```azurecli-interactive az login
In this section, you will learn how to add and remove a user-assigned managed id
To assign a user-assigned identity to a VM during its creation, your account needs the [Virtual Machine Contributor](../../role-based-access-control/built-in-roles.md#virtual-machine-contributor) and [Managed Identity Operator](../../role-based-access-control/built-in-roles.md#managed-identity-operator) role assignments. No other Azure AD directory role assignments are required.
-1. You can skip this step if you already have a resource group you would like to use. Create a [resource group](~/articles/azure-resource-manager/management/overview.md#terminology) for containment and deployment of your user-assigned managed identity, using [az group create](/cli/azure/group/#az_group_create). Be sure to replace the `<RESOURCE GROUP>` and `<LOCATION>` parameter values with your own values. :
+1. You can skip this step if you already have a resource group you would like to use. Create a [resource group](~/articles/azure-resource-manager/management/overview.md#terminology) for containment and deployment of your user-assigned managed identity, using [az group create](/cli/azure/group/#az-group-create). Be sure to replace the `<RESOURCE GROUP>` and `<LOCATION>` parameter values with your own values. :
```azurecli-interactive az group create --name <RESOURCE GROUP> --location <LOCATION> ```
-2. Create a user-assigned managed identity using [az identity create](/cli/azure/identity#az_identity_create). The `-g` parameter specifies the resource group where the user-assigned managed identity is created, and the `-n` parameter specifies its name.
+2. Create a user-assigned managed identity using [az identity create](/cli/azure/identity#az-identity-create). The `-g` parameter specifies the resource group where the user-assigned managed identity is created, and the `-n` parameter specifies its name.
[!INCLUDE [ua-character-limit](~/includes/managed-identity-ua-character-limits.md)]
To assign a user-assigned identity to a VM during its creation, your account nee
} ```
-3. Create a VM using [az vm create](/cli/azure/vm/#az_vm_create). The following example creates a VM associated with the new user-assigned identity, as specified by the `--assign-identity` parameter. Be sure to replace the `<RESOURCE GROUP>`, `<VM NAME>`, `<USER NAME>`, `<PASSWORD>`, and `<USER ASSIGNED IDENTITY NAME>` parameter values with your own values.
+3. Create a VM using [az vm create](/cli/azure/vm/#az-vm-create). The following example creates a VM associated with the new user-assigned identity, as specified by the `--assign-identity` parameter. Be sure to replace the `<RESOURCE GROUP>`, `<VM NAME>`, `<USER NAME>`, `<PASSWORD>`, and `<USER ASSIGNED IDENTITY NAME>` parameter values with your own values.
```azurecli-interactive az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image UbuntuLTS --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME>
To assign a user-assigned identity to a VM during its creation, your account nee
To assign a user-assigned identity to a VM, your account needs the [Virtual Machine Contributor](../../role-based-access-control/built-in-roles.md#virtual-machine-contributor) and [Managed Identity Operator](../../role-based-access-control/built-in-roles.md#managed-identity-operator) role assignments. No other Azure AD directory role assignments are required.
-1. Create a user-assigned identity using [az identity create](/cli/azure/identity#az_identity_create). The `-g` parameter specifies the resource group where the user-assigned identity is created, and the `-n` parameter specifies its name. Be sure to replace the `<RESOURCE GROUP>` and `<USER ASSIGNED IDENTITY NAME>` parameter values with your own values:
+1. Create a user-assigned identity using [az identity create](/cli/azure/identity#az-identity-create). The `-g` parameter specifies the resource group where the user-assigned identity is created, and the `-n` parameter specifies its name. Be sure to replace the `<RESOURCE GROUP>` and `<USER ASSIGNED IDENTITY NAME>` parameter values with your own values:
> [!IMPORTANT] > Creating user-assigned managed identities with special characters (i.e. underscore) in the name is not currently supported. Please use alphanumeric characters. Check back for updates. For more information, see [FAQs and known issues](known-issues.md)
active-directory Qs Configure Cli Windows Vmss https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/qs-configure-cli-windows-vmss.md
In this section, you learn how to enable and disable the system-assigned managed
To create a virtual machine scale set with the system-assigned managed identity enabled:
-1. Create a [resource group](../../azure-resource-manager/management/overview.md#terminology) for containment and deployment of your virtual machine scale set and its related resources, using [az group create](/cli/azure/group/#az_group_create). You can skip this step if you already have a resource group you would like to use instead:
+1. Create a [resource group](../../azure-resource-manager/management/overview.md#terminology) for containment and deployment of your virtual machine scale set and its related resources, using [az group create](/cli/azure/group/#az-group-create). You can skip this step if you already have a resource group you would like to use instead:
```azurecli-interactive az group create --name myResourceGroup --location westus ```
-1. [Create](/cli/azure/vmss/#az_vmss_create) a virtual machine scale set. The following example creates a virtual machine scale set named *myVMSS* with a system-assigned managed identity, as requested by the `--assign-identity` parameter. The `--admin-username` and `--admin-password` parameters specify the administrative user name and password account for virtual machine sign-in. Update these values as appropriate for your environment:
+1. [Create](/cli/azure/vmss/#az-vmss-create) a virtual machine scale set. The following example creates a virtual machine scale set named *myVMSS* with a system-assigned managed identity, as requested by the `--assign-identity` parameter. The `--admin-username` and `--admin-password` parameters specify the administrative user name and password account for virtual machine sign-in. Update these values as appropriate for your environment:
```azurecli-interactive az vmss create --resource-group myResourceGroup --name myVMSS --image win2016datacenter --upgrade-policy-mode automatic --custom-data cloud-init.txt --admin-username azureuser --admin-password myPassword12 --assign-identity --generate-ssh-keys
To create a virtual machine scale set with the system-assigned managed identity
### Enable system-assigned managed identity on an existing Azure virtual machine scale set
-If you need to [Enable](/cli/azure/vmss/identity/#az_vmss_identity_assign) the system-assigned managed identity on an existing Azure virtual machine scale set:
+If you need to [Enable](/cli/azure/vmss/identity/#az-vmss-identity-assign) the system-assigned managed identity on an existing Azure virtual machine scale set:
```azurecli-interactive az vmss identity assign -g myResourceGroup -n myVMSS
In this section, you learn how to enable and remove a user-assigned managed iden
This section walks you through creation of a virtual machine scale set and assignment of a user-assigned managed identity to the virtual machine scale set. If you already have a virtual machine scale set you want to use, skip this section and proceed to the next.
-1. You can skip this step if you already have a resource group you would like to use. Create a [resource group](~/articles/azure-resource-manager/management/overview.md#terminology) for containment and deployment of your user-assigned managed identity, using [az group create](/cli/azure/group/#az_group_create). Be sure to replace the `<RESOURCE GROUP>` and `<LOCATION>` parameter values with your own values. :
+1. You can skip this step if you already have a resource group you would like to use. Create a [resource group](~/articles/azure-resource-manager/management/overview.md#terminology) for containment and deployment of your user-assigned managed identity, using [az group create](/cli/azure/group/#az-group-create). Be sure to replace the `<RESOURCE GROUP>` and `<LOCATION>` parameter values with your own values. :
```azurecli-interactive az group create --name <RESOURCE GROUP> --location <LOCATION> ```
-2. Create a user-assigned managed identity using [az identity create](/cli/azure/identity#az_identity_create). The `-g` parameter specifies the resource group where the user-assigned managed identity is created, and the `-n` parameter specifies its name. Be sure to replace the `<RESOURCE GROUP>` and `<USER ASSIGNED IDENTITY NAME>` parameter values with your own values:
+2. Create a user-assigned managed identity using [az identity create](/cli/azure/identity#az-identity-create). The `-g` parameter specifies the resource group where the user-assigned managed identity is created, and the `-n` parameter specifies its name. Be sure to replace the `<RESOURCE GROUP>` and `<USER ASSIGNED IDENTITY NAME>` parameter values with your own values:
[!INCLUDE [ua-character-limit](~/includes/managed-identity-ua-character-limits.md)]
This section walks you through creation of a virtual machine scale set and assig
} ```
-3. [Create](/cli/azure/vmss/#az_vmss_create) a virtual machine scale set. The following example creates a virtual machine scale set associated with the new user-assigned managed identity, as specified by the `--assign-identity` parameter. Be sure to replace the `<RESOURCE GROUP>`, `<VMSS NAME>`, `<USER NAME>`, `<PASSWORD>`, and `<USER ASSIGNED IDENTITY>` parameter values with your own values.
+3. [Create](/cli/azure/vmss/#az-vmss-create) a virtual machine scale set. The following example creates a virtual machine scale set associated with the new user-assigned managed identity, as specified by the `--assign-identity` parameter. Be sure to replace the `<RESOURCE GROUP>`, `<VMSS NAME>`, `<USER NAME>`, `<PASSWORD>`, and `<USER ASSIGNED IDENTITY>` parameter values with your own values.
```azurecli-interactive az vmss create --resource-group <RESOURCE GROUP> --name <VMSS NAME> --image UbuntuLTS --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY>
This section walks you through creation of a virtual machine scale set and assig
### Assign a user-assigned managed identity to an existing virtual machine scale set
-1. Create a user-assigned managed identity using [az identity create](/cli/azure/identity#az_identity_create). The `-g` parameter specifies the resource group where the user-assigned managed identity is created, and the `-n` parameter specifies its name. Be sure to replace the `<RESOURCE GROUP>` and `<USER ASSIGNED IDENTITY NAME>` parameter values with your own values:
+1. Create a user-assigned managed identity using [az identity create](/cli/azure/identity#az-identity-create). The `-g` parameter specifies the resource group where the user-assigned managed identity is created, and the `-n` parameter specifies its name. Be sure to replace the `<RESOURCE GROUP>` and `<USER ASSIGNED IDENTITY NAME>` parameter values with your own values:
```azurecli-interactive az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
This section walks you through creation of a virtual machine scale set and assig
### Remove a user-assigned managed identity from an Azure virtual machine scale set
-To [remove](/cli/azure/vmss/identity#az_vmss_identity_remove) a user-assigned managed identity from a virtual machine scale set use `az vmss identity remove`. If this is the only user-assigned managed identity assigned to the virtual machine scale set, `UserAssigned` will be removed from the identity type value. Be sure to replace the `<RESOURCE GROUP>` and `<VIRTUAL MACHINE SCALE SET NAME>` parameter values with your own values. The `<USER ASSIGNED IDENTITY>` will be the user-assigned managed identity's `name` property, which can be found in the identity section of the virtual machine scale set using `az vmss identity show`:
+To [remove](/cli/azure/vmss/identity#az-vmss-identity-remove) a user-assigned managed identity from a virtual machine scale set use `az vmss identity remove`. If this is the only user-assigned managed identity assigned to the virtual machine scale set, `UserAssigned` will be removed from the identity type value. Be sure to replace the `<RESOURCE GROUP>` and `<VIRTUAL MACHINE SCALE SET NAME>` parameter values with your own values. The `<USER ASSIGNED IDENTITY>` will be the user-assigned managed identity's `name` property, which can be found in the identity section of the virtual machine scale set using `az vmss identity show`:
```azurecli-interactive az vmss identity remove -g <RESOURCE GROUP> -n <VIRTUAL MACHINE SCALE SET NAME> --identities <USER ASSIGNED IDENTITY>
active-directory Qs Configure Rest Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/qs-configure-rest-vm.md
In this section, you learn how to enable and disable system-assigned managed ide
To create an Azure VM with the system-assigned managed identity enabled, your account needs the [Virtual Machine Contributor](../../role-based-access-control/built-in-roles.md#virtual-machine-contributor) role assignment. No other Azure AD directory role assignments are required.
-1. Create a [resource group](../../azure-resource-manager/management/overview.md#terminology) for containment and deployment of your VM and its related resources, using [az group create](/cli/azure/group/#az_group_create). You can skip this step if you already have resource group you would like to use instead:
+1. Create a [resource group](../../azure-resource-manager/management/overview.md#terminology) for containment and deployment of your VM and its related resources, using [az group create](/cli/azure/group/#az-group-create). You can skip this step if you already have resource group you would like to use instead:
```azurecli-interactive az group create --name myResourceGroup --location westus ```
-2. Create a [network interface](/cli/azure/network/nic#az_network_nic_create) for your VM:
+2. Create a [network interface](/cli/azure/network/nic#az-network-nic-create) for your VM:
```azurecli-interactive az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
To assign a user-assigned identity to a VM, your account needs the [Virtual Mach
az account get-access-token ```
-2. Create a [network interface](/cli/azure/network/nic#az_network_nic_create) for your VM:
+2. Create a [network interface](/cli/azure/network/nic#az-network-nic-create) for your VM:
```azurecli-interactive az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
active-directory Qs Configure Rest Vmss https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/qs-configure-rest-vmss.md
In this section, you learn how to enable and disable system-assigned managed ide
To create a virtual machine scale set with system-assigned managed identity enabled, you need create a virtual machine scale set and retrieve an access token to use CURL to call the Resource Manager endpoint with the system-assigned managed identity type value.
-1. Create a [resource group](../../azure-resource-manager/management/overview.md#terminology) for containment and deployment of your virtual machine scale set and its related resources, using [az group create](/cli/azure/group/#az_group_create). You can skip this step if you already have resource group you would like to use instead:
+1. Create a [resource group](../../azure-resource-manager/management/overview.md#terminology) for containment and deployment of your virtual machine scale set and its related resources, using [az group create](/cli/azure/group/#az-group-create). You can skip this step if you already have resource group you would like to use instead:
```azurecli-interactive az group create --name myResourceGroup --location westus ```
-2. Create a [network interface](/cli/azure/network/nic#az_network_nic_create) for your virtual machine scale set:
+2. Create a [network interface](/cli/azure/network/nic#az-network-nic-create) for your virtual machine scale set:
```azurecli-interactive az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
In this section, you learn how to add and remove user-assigned managed identity
az account get-access-token ```
-2. Create a [network interface](/cli/azure/network/nic#az_network_nic_create) for your virtual machine scale set:
+2. Create a [network interface](/cli/azure/network/nic#az-network-nic-create) for your virtual machine scale set:
```azurecli-interactive az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
active-directory Tutorial Linux Vm Access Cosmos Db https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-cosmos-db.md
This tutorial shows you how to use a system-assigned managed identity for a Linu
- To perform the required resource creation and role management, your account needs "Owner" permissions at the appropriate scope (your subscription or resource group). If you need assistance with role assignment, see [Assign Azure roles to manage access to your Azure subscription resources](../../role-based-access-control/role-assignments-portal.md). - To run the example scripts, you have two options: - Use the [Azure Cloud Shell](../../cloud-shell/overview.md), which you can open using the **Try It** button on the top right corner of code blocks.
- - Run scripts locally by installing the latest version of the [Azure CLI](/cli/azure/install-azure-cli), then sign in to Azure using [az login](/cli/azure/reference-index#az_login). Use an account associated with the Azure subscription in which you'd like to create resources.
+ - Run scripts locally by installing the latest version of the [Azure CLI](/cli/azure/install-azure-cli), then sign in to Azure using [az login](/cli/azure/reference-index#az-login). Use an account associated with the Azure subscription in which you'd like to create resources.
## Create a Cosmos DB account
active-directory Tutorial Vm Managed Identities Cosmos https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/tutorial-vm-managed-identities-cosmos.md
New-AzVm `
# [Azure CLI](#tab/azure-cli)
-Create a VM using [az vm create](/cli/azure/vm/#az_vm_create). The following example creates a VM named *myVM* with a system-assigned managed identity, as requested by the `--assign-identity` parameter. The `--admin-username` and `--admin-password` parameters specify the administrative user name and password account for virtual machine sign-in. Update these values as appropriate for your environment:
+Create a VM using [az vm create](/cli/azure/vm/#az-vm-create). The following example creates a VM named *myVM* with a system-assigned managed identity, as requested by the `--assign-identity` parameter. The `--admin-username` and `--admin-password` parameters specify the administrative user name and password account for virtual machine sign-in. Update these values as appropriate for your environment:
```azurecli-interactive az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --admin-username azureuser --admin-password myPassword12
active-directory Amazon Web Service Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/amazon-web-service-tutorial.md
Previously updated : 03/08/2022 Last updated : 03/24/2022
We recommend this approach for the following reasons:
To get started, you need the following items: * An Azure AD subscription. If you don't have a subscription, you can get a [free account](https://azure.microsoft.com/free/).
-* An AWS single sign-on (SSO) enabled subscription.
+* An AWS IAM IdP enabled subscription.
+* Along with Cloud Application Administrator, Application Administrator can also add or manage applications in Azure AD.
+For more information, see [Azure built-in roles](../roles/permissions-reference.md).
> [!Note] > Roles should not be manually edited in Azure AD when doing role imports.
active-directory Clarizen Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/clarizen-tutorial.md
Title: 'Tutorial: Azure Active Directory integration with Clarizen One | Microsoft Docs'
+ Title: 'Tutorial: Azure AD SSO integration with Clarizen One'
description: Learn how to configure single sign-on between Azure Active Directory and Clarizen One.
Previously updated : 04/08/2021 Last updated : 03/24/2022
-# Tutorial: Azure Active Directory integration with Clarizen One
+# Tutorial: Azure AD SSO integration with Clarizen One
In this tutorial, you'll learn how to integrate Clarizen One with Azure Active Directory (Azure AD). When you integrate Clarizen One with Azure AD, you can:
To get started, you need the following items:
* An Azure AD subscription. If you don't have a subscription, you can get a [free account](https://azure.microsoft.com/free/). * Clarizen One single sign-on (SSO) enabled subscription.
+* Along with Cloud Application Administrator, Application Administrator can also add or manage applications in Azure AD.
+For more information, see [Azure built-in roles](../roles/permissions-reference.md).
## Scenario description
Follow these steps to enable Azure AD SSO in the Azure portal.
![Edit Basic SAML Configuration](common/edit-urls.png)
-4. On the **Set up Single Sign-On with SAML** page, perform the following steps:
+4. On the **Basic SAML Configuration** section, perform the following steps:
a. In the **Identifier** text box, type the value: `Clarizen`
- b. In the **Reply URL** text box, type the URL:
- `https://.clarizen.com/Clarizen/Pages/Integrations/SAML/SamlResponse.aspx`
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://<SUBDOMAIN>.clarizen.com/Clarizen/Pages/Integrations/SAML/SamlResponse.aspx`
+
+ > [!NOTE]
+ > This value is not real. Update this value with the actual Reply URL. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
4. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
In this section, you test your Azure AD single sign-on configuration with follow
## Next steps
-Once you configure Clarizen One you can enforce session control, which protects exfiltration and infiltration of your organizationΓÇÖs sensitive data in real time. Session control extends from Conditional Access. [Learn how to enforce session control with Microsoft Defender for Cloud Apps](/cloud-app-security/proxy-deployment-any-app).
+Once you configure Clarizen One you can enforce session control, which protects exfiltration and infiltration of your organizationΓÇÖs sensitive data in real time. Session control extends from Conditional Access. [Learn how to enforce session control with Microsoft Defender for Cloud Apps](/cloud-app-security/proxy-deployment-any-app).
active-directory Embed Signage Provisioning Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/embed-signage-provisioning-tutorial.md
+
+ Title: 'Tutorial: Configure embed signage for automatic user provisioning with Azure Active Directory | Microsoft Docs'
+description: Learn how to automatically provision and de-provision user accounts from Azure AD to embed signage.
+
+documentationcenter: ''
+
+writer: Thwimmer
++
+ms.assetid: 92edbf22-3f7b-43ca-9a9e-0209ac9a12ec
+++
+ms.devlang: na
+ Last updated : 03/24/2022+++
+# Tutorial: Configure embed signage for automatic user provisioning
+
+This tutorial describes the steps you need to perform in both embed signage and Azure Active Directory (Azure AD) to configure automatic user provisioning. When configured, Azure AD automatically provisions and de-provisions users and groups to [embed signage](https://embedsignage.com/) using the Azure AD Provisioning service. For important details on what this service does, how it works, and frequently asked questions, see [Automate user provisioning and deprovisioning to SaaS applications with Azure Active Directory](../app-provisioning/user-provisioning.md).
++
+## Capabilities supported
+> [!div class="checklist"]
+> * Create users in embed signage.
+> * Remove users in embed signage when they do not require access anymore.
+> * Keep user attributes synchronized between Azure AD and embed signage.
+> * Provision groups and group memberships in embed signage.
+> * [Single sign-on](./embed-signage-tutorial.md) to embed signage (recommended)
+
+## Prerequisites
+
+The scenario outlined in this tutorial assumes that you already have the following prerequisites:
+
+* [An Azure AD tenant](../develop/quickstart-create-new-tenant.md).
+* A user account in Azure AD with [permission](../roles/permissions-reference.md) to configure provisioning (for example, Application Administrator, Cloud Application administrator, Application Owner, or Global Administrator).
+* A user account in embed signage with Admin rights.
++
+## Step 1. Plan your provisioning deployment
+1. Learn about [how the provisioning service works](../app-provisioning/user-provisioning.md).
+1. Determine who will be in [scope for provisioning](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
+1. Determine what data to [map between Azure AD and embed signage](../app-provisioning/customize-application-attributes.md).
+
+## Step 2. Configure embed signage to support provisioning with Azure AD
+
+1. Login to [embed signage admin console](https://app.embedsignage.com/login).
+1. Navigate to **Account settings > Security > User provisioning**.
+1. Create a token and copy this somewhere safe. This value will be entered in the **Secret Token** * field in the Provisioning tab of your embed signage application in the Azure portal.
+
+## Step 3. Add embed signage from the Azure AD application gallery
+
+Add embed signage from the Azure AD application gallery to start managing provisioning to embed signage. If you have previously setup embed signage for SSO, you can use the same application. However it is recommended that you create a separate app when testing out the integration initially. Learn more about adding an application from the gallery [here](../manage-apps/add-application-portal.md).
+
+## Step 4. Define who will be in scope for provisioning
+
+The Azure AD provisioning service allows you to scope who will be provisioned based on assignment to the application and or based on attributes of the user / group. If you choose to scope who will be provisioned to your app based on assignment, you can use the following [steps](../manage-apps/assign-user-or-group-access-portal.md) to assign users and groups to the application. If you choose to scope who will be provisioned based solely on attributes of the user or group, you can use a scoping filter as described [here](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
+
+* When assigning users and groups to embed signage, you must select a role other than **Default Access**. Users with the Default Access role are excluded from provisioning and will be marked as not effectively entitled in the provisioning logs. If the only role available on the application is the default access role, you can [update the application manifest](../develop/howto-add-app-roles-in-azure-ad-apps.md) to add more roles.
+
+* Start small. Test with a small set of users and groups before rolling out to everyone. When scope for provisioning is set to assigned users and groups, you can control this by assigning one or two users or groups to the app. When scope is set to all users and groups, you can specify an [attribute based scoping filter](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
++
+## Step 5. Configure automatic user provisioning to embed signage
+
+This section guides you through the steps to configure the Azure AD provisioning service to create, update, and disable users and/or groups in embed signage based on user and/or group assignments in Azure AD.
+
+### To configure automatic user provisioning for embed signage in Azure AD:
+
+1. Sign in to the [Azure portal](https://portal.azure.com). Select **Enterprise Applications**, then select **All applications**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+1. In the applications list, select **embed signage**.
+
+ ![The embed signage link in the Applications list](common/all-applications.png)
+
+1. Select the **Provisioning** tab.
+
+ ![Provisioning tab](common/provisioning.png)
+
+1. Set the **Provisioning Mode** to **Automatic**.
+
+ ![Provisioning tab automatic](common/provisioning-automatic.png)
+
+11. Under the **Admin Credentials** section, input your Palo Alto Networks SCIM Connector Tenant URL and Secret Token. Click **Test Connection** to ensure Azure AD can connect to Palo Alto Networks SCIM Connector. If the connection fails, ensure your Palo Alto Networks account has Admin permissions and try again.
+
+ ![Token](common/provisioning-testconnection-tenanturltoken.png)
+
+1. In the **Notification Email** field, enter the email address of a person or group who should receive the provisioning error notifications and select the **Send an email notification when a failure occurs** check box.
+
+ ![Notification Email](common/provisioning-notification-email.png)
+
+1. Select **Save**.
+
+1. Under the **Mappings** section, select **Synchronize Azure Active Directory Users to embed signage**.
+
+1. Review the user attributes that are synchronized from Azure AD to embed signage in the **Attribute-Mapping** section. The attributes selected as **Matching** properties are used to match the user accounts in embed signage for update operations. If you choose to change the [matching target attribute](../app-provisioning/customize-application-attributes.md), you will need to ensure that the embed signage API supports filtering users based on that attribute. Select the **Save** button to commit any changes.
+
+ |Attribute|Type|Supported for filtering|Required by embed signage|
+ |||||
+ |userName|String|&check;|&check;
+ |displayName|String||&check;
+ |name.givenName|String||
+ |name.familyName|String||
+ |active|Boolean||
+
+1. Under the **Mappings** section, select **Synchronize Azure Active Directory Groups to embed signage**.
+
+1. Review the group attributes that are synchronized from Azure AD to embed signage in the **Attribute-Mapping** section. The attributes selected as **Matching** properties are used to match the groups in embed signage for update operations. Select the **Save** button to commit any changes.
+
+ |Attribute|Type|Supported for filtering|Required by embed signage|
+ |||||
+ |displayName|String|&check;|&check;
+ |members|Reference||
+
+1. To configure scoping filters, refer to the following instructions provided in the [Scoping filter tutorial](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
+
+1. To enable the Azure AD provisioning service for embed signage, change the **Provisioning Status** to **On** in the **Settings** section.
+
+ ![Provisioning Status Toggled On](common/provisioning-toggle-on.png)
+
+1. Define the users and/or groups that you would like to provision to embed signage by choosing the desired values in **Scope** in the **Settings** section.
+
+ ![Provisioning Scope](common/provisioning-scope.png)
+
+1. When you are ready to provision, click **Save**.
+
+ ![Saving Provisioning Configuration](common/provisioning-configuration-save.png)
+
+This operation starts the initial synchronization cycle of all users and groups defined in **Scope** in the **Settings** section. The initial cycle takes longer to perform than subsequent cycles, which occur approximately every 40 minutes as long as the Azure AD provisioning service is running.
+
+## Step 6. Monitor your deployment
+Once you've configured provisioning, use the following resources to monitor your deployment:
+
+* Use the [provisioning logs](../reports-monitoring/concept-provisioning-logs.md) to determine which users have been provisioned successfully or unsuccessfully
+* Check the [progress bar](../app-provisioning/application-provisioning-when-will-provisioning-finish-specific-user.md) to see the status of the provisioning cycle and how close it is to completion
+* If the provisioning configuration seems to be in an unhealthy state, the application will go into quarantine. Learn more about quarantine states [here](../app-provisioning/application-provisioning-quarantine-status.md).
+
+## More resources
+
+* [Managing user account provisioning for Enterprise Apps](../app-provisioning/configure-automatic-user-provisioning-portal.md)
+* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+
+## Next steps
+
+* [Learn how to review logs and get reports on provisioning activity](../app-provisioning/check-status-user-account-provisioning.md)
active-directory Iauditor Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/iauditor-tutorial.md
Title: 'Tutorial: Azure Active Directory single sign-on (SSO) integration with iAuditor | Microsoft Docs'
+ Title: 'Tutorial: Azure AD SSO integration with iAuditor'
description: Learn how to configure single sign-on between Azure Active Directory and iAuditor.
Previously updated : 09/01/2021 Last updated : 03/24/2022
-# Tutorial: Azure Active Directory single sign-on (SSO) integration with iAuditor
+# Tutorial: Azure AD SSO integration with iAuditor
In this tutorial, you'll learn how to integrate iAuditor with Azure Active Directory (Azure AD). When you integrate iAuditor with Azure AD, you can:
To get started, you need the following items:
* An Azure AD subscription. If you don't have a subscription, you can get a [free account](https://azure.microsoft.com/free/). * iAuditor single sign-on (SSO) enabled subscription.
+* Along with Cloud Application Administrator, Application Administrator can also add or manage applications in Azure AD.
+For more information, see [Azure built-in roles](../roles/permissions-reference.md).
## Scenario description
Follow these steps to enable Azure AD SSO in the Azure portal.
`urn:auth0:safetyculture:<CustomerName>` b. In the **Reply URL** text box, type a URL using the following pattern:
- `https://safetyculture.au.auth0.com/login/callback?connection=<CustomerName>`
+ `https://auth.safetyculture.com/login/callback?connection=<CustomerName>`
1. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
In this section, you'll enable B.Simon to use Azure single sign-on by granting a
## Configure iAuditor SSO
-To configure single sign-on on **iAuditor** side, you need to send the **Certificate (PEM)** to [iAuditor support team](mailto:support@safetyculture.com). They set this setting to have the SAML SSO connection set properly on both sides.
+To configure single sign-on on **iAuditor** side, you need to send the **Certificate (PEM)** and sign in URL to [iAuditor support team](mailto:support@safetyculture.com). They set this setting to have the SAML SSO connection set properly on both sides.
### Create iAuditor test user
active-directory Intsights Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/intsights-tutorial.md
Title: 'Tutorial: Azure Active Directory single sign-on (SSO) integration with IntSights | Microsoft Docs'
+ Title: 'Tutorial: Azure AD SSO integration with IntSights'
description: Learn how to configure single sign-on between Azure Active Directory and IntSights.
Previously updated : 11/06/2020 Last updated : 03/24/2022
-# Tutorial: Azure Active Directory single sign-on (SSO) integration with IntSights
+# Tutorial: Azure AD SSO integration with IntSights
In this tutorial, you'll learn how to integrate IntSights with Azure Active Directory (Azure AD). When you integrate IntSights with Azure AD, you can:
To get started, you need the following items:
* An Azure AD subscription. If you don't have a subscription, you can get a [free account](https://azure.microsoft.com/free/). * IntSights single sign-on (SSO) enabled subscription.
+* Along with Cloud Application Administrator, Application Administrator can also add or manage applications in Azure AD.
+For more information, see [Azure built-in roles](../roles/permissions-reference.md).
## Scenario description In this tutorial, you configure and test Azure AD SSO in a test environment.
-* IntSights supports **SP and IDP** initiated SSO
+* IntSights supports **SP and IDP** initiated SSO.
-* IntSights supports **Just In Time** user provisioning
+* IntSights supports **Just In Time** user provisioning.
-## Adding IntSights from the gallery
+## Add IntSights from the gallery
To configure the integration of IntSights into Azure AD, you need to add IntSights from the gallery to your list of managed SaaS apps.
To configure the integration of IntSights into Azure AD, you need to add IntSigh
1. In the **Add from the gallery** section, type **IntSights** in the search box. 1. Select **IntSights** from results panel and then add the app. Wait a few seconds while the app is added to your tenant. - ## Configure and test Azure AD SSO for IntSights Configure and test Azure AD SSO with IntSights using a test user called **B.Simon**. For SSO to work, you need to establish a link relationship between an Azure AD user and the related user in IntSights.
Follow these steps to enable Azure AD SSO in the Azure portal.
1. In the Azure portal, on the **IntSights** application integration page, find the **Manage** section and select **single sign-on**. 1. On the **Select a single sign-on method** page, select **SAML**.
-1. On the **Set up single sign-on with SAML** page, click the edit/pen icon for **Basic SAML Configuration** to edit the settings.
+1. On the **Set up single sign-on with SAML** page, click the pencil icon for **Basic SAML Configuration** to edit the settings.
![Edit Basic SAML Configuration](common/edit-urls.png)
-1. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, enter the values for the following fields:
+1. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following steps:
a. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
- `https://<SUBDOMAIN>.intsights.com/auth/saml-callback/azure`
+ `https://<SUBDOMAIN>.ti.insight.rapid7.com/auth/saml-callback/azure`
b. In the **Reply URL** text box, type a URL using the following pattern:
- `https://<SUBDOMAIN>.intsights.com/auth/saml-callback/azure`
+ `https://<SUBDOMAIN>.ti.insight.rapid7.com/auth/saml-callback/azure`
1. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode: In the **Sign-on URL** text box, type a URL using the following pattern:
- `https://<SUBDOMAIN>.intsights.com/auth/saml-callback/azure`
+ `https://<SUBDOMAIN>.ti.insight.rapid7.com/auth/saml-callback/azure`
> [!NOTE]
- > These values are not real. Update these values with the actual Sign-on URL, Identifier and Reply URL. Contact [IntSights Client support team](mailto:supportteam@intsights.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+ > These values are not real. Update these values with the actual Identifier, Reply URL and Sign on URL. Contact [IntSights Client support team](mailto:supportteam@intsights.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
1. IntSights application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes.
active-directory Mimecast Admin Console Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/mimecast-admin-console-tutorial.md
- Title: 'Tutorial: Azure Active Directory integration with Mimecast Admin Console | Microsoft Docs'
-description: Learn how to configure single sign-on between Azure Active Directory and Mimecast Admin Console.
-------- Previously updated : 01/15/2021---
-# Tutorial: Azure Active Directory single sign-on (SSO) integration with Mimecast Admin Console
-
-In this tutorial, you'll learn how to integrate Mimecast Admin Console with Azure Active Directory (Azure AD). When you integrate Mimecast Admin Console with Azure AD, you can:
-
-* Control in Azure AD who has access to Mimecast Admin Console.
-* Enable your users to be automatically signed-in to Mimecast Admin Console with their Azure AD accounts.
-* Manage your accounts in one central location - the Azure portal.
-
-## Prerequisites
-
-To get started, you need the following items:
-
-* An Azure AD subscription. If you don't have a subscription, you can get a [free account](https://azure.microsoft.com/free/).
-* Mimecast Admin Console single sign-on (SSO) enabled subscription.
-
-## Scenario description
-
-In this tutorial, you configure and test Azure AD SSO in a test environment.
-
-* Mimecast Admin Console supports **SP and IDP** initiated SSO
-
-## Add Mimecast Admin Console from the gallery
-
-To configure the integration of Mimecast Admin Console into Azure AD, you need to add Mimecast Admin Console from the gallery to your list of managed SaaS apps.
-
-1. Sign in to the Azure portal using either a work or school account, or a personal Microsoft account.
-1. On the left navigation pane, select the **Azure Active Directory** service.
-1. Navigate to **Enterprise Applications** and then select **All Applications**.
-1. To add new application, select **New application**.
-1. In the **Add from the gallery** section, type **Mimecast Admin Console** in the search box.
-1. Select **Mimecast Admin Console** from results panel and then add the app. Wait a few seconds while the app is added to your tenant.
-
-## Configure and test Azure AD SSO for Mimecast Admin Console
-
-Configure and test Azure AD SSO with Mimecast Admin Console using a test user called **B.Simon**. For SSO to work, you need to establish a link relationship between an Azure AD user and the related user in Mimecast Admin Console.
-
-To configure and test Azure AD SSO with Mimecast Admin Console, perform the following steps:
-
-1. **[Configure Azure AD SSO](#configure-azure-ad-sso)** - to enable your users to use this feature.
- 1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with B.Simon.
- 1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable B.Simon to use Azure AD single sign-on.
-1. **[Configure Mimecast Admin Console SSO](#configure-mimecast-admin-console-sso)** - to configure the single sign-on settings on application side.
- 1. **[Create Mimecast Admin Console test user](#create-mimecast-admin-console-test-user)** - to have a counterpart of B.Simon in Mimecast Admin Console that is linked to the Azure AD representation of user.
-1. **[Test SSO](#test-sso)** - to verify whether the configuration works.
-
-## Configure Azure AD SSO
-
-Follow these steps to enable Azure AD SSO in the Azure portal.
-
-1. In the Azure portal, on the **Mimecast Admin Console** application integration page, find the **Manage** section and select **single sign-on**.
-1. On the **Select a single sign-on method** page, select **SAML**.
-1. On the **Set up single sign-on with SAML** page, click the pencil icon for **Basic SAML Configuration** to edit the settings.
-
- ![Edit Basic SAML Configuration](common/edit-urls.png)
-
-1. On the **Basic SAML Configuration** section, if you wish to configure the application in IDP initiated mode, perform the following steps:
-
- a. In the **Identifier** textbox, type the URL using the following pattern:
-
- | Region | Value |
- | | |
- | Europe | `https://eu-api.mimecast.com/sso/<accountcode>`|
- | United States | `https://us-api.mimecast.com/sso/<accountcode>`|
- | South Africa | `https://za-api.mimecast.com/sso/<accountcode>`|
- | Australia | `https://au-api.mimecast.com/sso/<accountcode>`|
- | Offshore | `https://jer-api.mimecast.com/sso/<accountcode>`|
-
- > [!NOTE]
- > You will find the `accountcode` value in the Mimecast Admin Console under **Account** > **Settings** > **Account Code**. Append the `accountcode` to the Identifier.
-
- b. In the **Reply URL** textbox, type the URL:
-
- | Region | Value |
- | | |
- | Europe | `https://eu-api.mimecast.com/login/saml`|
- | United States | `https://us-api.mimecast.com/login/saml`|
- | South Africa | `https://za-api.mimecast.com/login/saml`|
- | Australia | `https://au-api.mimecast.com/login/saml`|
- | Offshore | `https://jer-api.mimecast.com/login/saml`|
-
-1. If you wish to configure the application in **SP** initiated mode:
-
- In the **Sign-on URL** textbox, type the URL:
-
- | Region | Value |
- | | |
- | Europe | `https://login-eu.mimecast.com/administration/app/#/administration-dashboard`|
- | United States | `https://login-us.mimecast.com/administration/app/#/administration-dashboard`|
- | South Africa | `https://login-za.mimecast.com/administration/app/#/administration-dashboard`|
- | Australia | `https://login-au.mimecast.com/administration/app/#/administration-dashboard`|
- | Offshore | `https://login-jer.mimecast.com/administration/app/#/administration-dashboard`|
-
-1. Click **Save**.
-
-1. On the **Set up single sign-on with SAML** page, In the **SAML Signing Certificate** section, click copy button to copy **App Federation Metadata Url** and save it on your computer.
-
- ![The Certificate download link](common/copy-metadataurl.png)
-
-### Create an Azure AD test user
-
-In this section, you'll create a test user in the Azure portal called B.Simon.
-
-1. From the left pane in the Azure portal, select **Azure Active Directory**, select **Users**, and then select **All users**.
-1. Select **New user** at the top of the screen.
-1. In the **User** properties, follow these steps:
- 1. In the **Name** field, enter `B.Simon`.
- 1. In the **User name** field, enter the username@companydomain.extension. For example, `B.Simon@contoso.com`.
- 1. Select the **Show password** check box, and then write down the value that's displayed in the **Password** box.
- 1. Click **Create**.
-
-### Assign the Azure AD test user
-
-In this section, you'll enable B.Simon to use Azure single sign-on by granting access to Mimecast Admin Console.
-
-1. In the Azure portal, select **Enterprise Applications**, and then select **All applications**.
-1. In the applications list, select **Mimecast Admin Console**.
-1. In the app's overview page, find the **Manage** section and select **Users and groups**.
-1. Select **Add user**, then select **Users and groups** in the **Add Assignment** dialog.
-1. In the **Users and groups** dialog, select **B.Simon** from the Users list, then click the **Select** button at the bottom of the screen.
-1. If you are expecting a role to be assigned to the users, you can select it from the **Select a role** dropdown. If no role has been set up for this app, you see "Default Access" role selected.
-1. In the **Add Assignment** dialog, click the **Assign** button.
-
-## Configure Mimecast Admin Console SSO
-
-1. In a different web browser window, sign into Mimecast Administration Console.
-
-1. Navigate to **Administration** > **Services** > **Applications**.
-
- ![Screenshot shows Mimecast window with Applications selected.](./media/mimecast-admin-console-tutorial/services.png)
-
-1. Click **Authentication Profiles** tab.
-
- ![Screenshot shows the Application tab with Authentication Profiles selected.](./media/mimecast-admin-console-tutorial/authentication-profiles.png)
-
-1. Click **New Authentication Profile** tab.
-
- ![Screenshot shows New Authentication Profile selected.](./media/mimecast-admin-console-tutorial/new-authenticatio-profile.png)
-
-1. Provide a valid description in the **Description** textbox and select **Enforce SAML Authentication for Administration Console** checkbox.
-
- ![Screenshot shows where to select Enforce SAML Authentication for Administration Console.](./media/mimecast-admin-console-tutorial/selecting-admin-consle.png)
-
-1. On the **SAML Configuration for Administration Console** page, perform the following steps:
-
- ![Screenshot shows the SAML Configuration for Administration Console page where you can enter the values described.](./media/mimecast-admin-console-tutorial/sso-settings.png)
-
- a. For **Provider**, select **Azure Active Directory** from the Dropdown.
-
- b. In the **Metadata URL** textbox, paste the **App Federation Metadata URL** value, which you have copied from the Azure portal.
-
- c. Click **Import**. After importing the Metadata URL, the fields will be populated automatically, no need to perform any action on these fields.
-
- d. Make sure you uncheck **Use Password protected Context** and **Use Integrated Authentication Context** checkboxes.
-
- e. Click **Save**.
-
-### Create Mimecast Admin Console test user
-
-1. In a different web browser window, sign into Mimecast Administration Console.
-
-1. Navigate to **Administration** > **Directories** > **Internal Directories**.
-
- ![Screenshot shows Mimecast window with Internal Directories selected.](./media/mimecast-admin-console-tutorial/internal-directories.png)
-
-1. Select on your domain, if the domain is mentioned below, otherwise please create a new domain by clicking on the **New Domain**.
-
- ![Screenshot shows the domain selected.](./media/mimecast-admin-console-tutorial/domain-name.png)
-
-1. Click **New Address** tab.
-
- ![Screenshot shows New Address selected.](./media/mimecast-admin-console-tutorial/new-address.png)
-
-1. Provide the required user information on the following page:
-
- ![Screenshot shows the page where you can enter the values described.](./media/mimecast-admin-console-tutorial/user-information.png)
-
- a. In the **Email Address** textbox, enter the email address of the user like `B.Simon@yourdomainname.com`.
-
- b. In the **Global Name** textbox, enter the **Full name** of the user.
-
- c. In the **Password** and **Confirm Password** textboxes, enter the password of the user.
-
- d. Select **Force Change at Login** checkbox.
-
- e. Click **Save**.
-
- f. To assign roles to the user, click on **Role Edit** and assign the required role to user as per your organization requirement.
-
- ![Screenshot shows Address Settings where you can select Role Edit.](./media/mimecast-admin-console-tutorial/assign-role.png)
-
-## Test SSO
-
-In this section, you test your Azure AD single sign-on configuration with following options.
-
-#### SP initiated:
-
-* Click on **Test this application** in Azure portal. This will redirect to Mimecast Admin Console Sign on URL where you can initiate the login flow.
-
-* Go to Mimecast Admin Console Sign-on URL directly and initiate the login flow from there.
-
-#### IDP initiated:
-
-* Click on **Test this application** in Azure portal and you should be automatically signed in to the Mimecast Admin Console for which you set up the SSO
-
-You can also use Microsoft My Apps to test the application in any mode. When you click the Mimecast Admin Console tile in the My Apps, if configured in SP mode you would be redirected to the application sign on page for initiating the login flow and if configured in IDP mode, you should be automatically signed in to the Mimecast Admin Console for which you set up the SSO. For more information about the My Apps, see [Introduction to the My Apps](https://support.microsoft.com/account-billing/sign-in-and-start-apps-from-the-my-apps-portal-2f3b1bae-0e5a-4a86-a33e-876fbd2a4510).
-
-## Next steps
-
-Once you configure Mimecast Admin Console you can enforce session control, which protects exfiltration and infiltration of your organizationΓÇÖs sensitive data in real time. Session control extends from Conditional Access. [Learn how to enforce session control with Microsoft Defender for Cloud Apps](/cloud-app-security/proxy-deployment-any-app).
active-directory Palo Alto Networks Scim Connector Provisioning Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/palo-alto-networks-scim-connector-provisioning-tutorial.md
This section guides you through the steps to configure the Azure AD provisioning
|urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department|String|| |urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager|String||
- >![NOTE]
- >**Schema Discovery** is enabled on this app. Hence you might see more attributes in the application than mentioned in the table above.
+> [!NOTE]
+> **Schema Discovery** is enabled on this app. Hence you might see more attributes in the application than mentioned in the table above.
1. Under the **Mappings** section, select **Synchronize Azure Active Directory Groups to Palo Alto Networks SCIM Connector**.
active-directory Saml Toolkit Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/saml-toolkit-tutorial.md
Title: 'Tutorial: Azure Active Directory single sign-on (SSO) integration with Azure AD SAML Toolkit | Microsoft Docs'
+ Title: 'Tutorial: Azure AD SSO integration with Azure AD SAML Toolkit'
description: Learn how to configure single sign-on between Azure Active Directory and Azure AD SAML Toolkit.
Previously updated : 09/10/2020 Last updated : 03/24/2022
-# Tutorial: Azure Active Directory single sign-on (SSO) integration with Azure AD SAML Toolkit
+# Tutorial: Azure AD SSO integration with Azure AD SAML Toolkit
In this tutorial, you'll learn how to integrate Azure AD SAML Toolkit with Azure Active Directory (Azure AD). When you integrate Azure AD SAML Toolkit with Azure AD, you can:
To get started, you need the following items:
* An Azure AD subscription. If you don't have a subscription, you can get a [free account](https://azure.microsoft.com/free/). * Azure AD SAML Toolkit single sign-on (SSO) enabled subscription.
+* Along with Cloud Application Administrator, Application Administrator can also add or manage applications in Azure AD.
+For more information, see [Azure built-in roles](../roles/permissions-reference.md).
## Scenario description In this tutorial, you configure and test Azure AD SSO in a test environment.
-* Azure AD SAML Toolkit supports **SP** initiated SSO
+* Azure AD SAML Toolkit supports **SP** initiated SSO.
> [!NOTE] > Identifier of this application is a fixed string value so only one instance can be configured in one tenant.
-## Adding Azure AD SAML Toolkit from the gallery
+## Add Azure AD SAML Toolkit from the gallery
To configure the integration of Azure AD SAML Toolkit into Azure AD, you need to add Azure AD SAML Toolkit from the gallery to your list of managed SaaS apps.
Follow these steps to enable Azure AD SSO in the Azure portal.
1. In the Azure portal, on the **Azure AD SAML Toolkit** application integration page, find the **Manage** section and select **single sign-on**. 1. On the **Select a single sign-on method** page, select **SAML**.
-1. On the **Set up single sign-on with SAML** page, click the edit/pen icon for **Basic SAML Configuration** to edit the settings.
+1. On the **Set up single sign-on with SAML** page, click the pencil icon for **Basic SAML Configuration** to edit the settings.
![Edit Basic SAML Configuration](common/edit-urls.png)
-1. On the **Basic SAML Configuration** page, enter the values for the following fields:
+1. On the **Basic SAML Configuration** section, perform the following steps:
- a. In the **Sign on URL** text box, type the URL:
- `https://samltoolkit.azurewebsites.net/`
-
- b. In the **Reply URL** text box, type the URL:
+ a. In the **Reply URL** text box, type the URL:
`https://samltoolkit.azurewebsites.net/SAML/Consume`
+ b. In the **Sign on URL** text box, type the URL:
+ `https://samltoolkit.azurewebsites.net/`
+ 1. On the **Set up single sign-on with SAML** page, in the **SAML Signing Certificate** section, find **Certificate (Raw)** and select **Download** to download the certificate and save it on your computer. ![The Certificate download link](common/certificateraw.png)
In this section, you'll enable B.Simon to use Azure single sign-on by granting a
## Configure Azure AD SAML Toolkit SSO
-1. Open a new web browser window, if you have not registered in the Azure AD SAML Toolkit website, first register by clicking on the **Register**. If you have registered already, sign into your Azure AD SAML Toolkit company site using the registered sign in credentials.
+1. Open a new web browser window, if you have not registered in the Azure AD SAML Toolkit website, first register by clicking on the **Register**. If you have registered already, sign into your Azure AD SAML Toolkit company site using the registered sign-in credentials.
![Azure AD SAML Toolkit Register](./media/saml-toolkit-tutorial/register.png)
In this section, a user called B.Simon is created in Azure AD SAML Toolkit. Plea
In this section, you test your Azure AD single sign-on configuration with following options.
-1. Click on **Test this application** in Azure portal. This will redirect to SAML Toolkit Sign-on URL where you can initiate the login flow.
+* Click on **Test this application** in Azure portal. This will redirect to Azure AD SAML Toolkit Sign-on URL where you can initiate the login flow.
-2. Go to SAML Toolkit Sign-on URL directly and initiate the login flow from there.
+* Go to Azure AD SAML Toolkit Sign-on URL directly and initiate the login flow from there.
-3. You can use Microsoft Access Panel. When you click the SAML Toolkit tile in the Access Panel, you should be automatically signed in to the SAML Toolkit for which you set up the SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://support.microsoft.com/account-billing/sign-in-and-start-apps-from-the-my-apps-portal-2f3b1bae-0e5a-4a86-a33e-876fbd2a4510).
+* You can use Microsoft My Apps. When you click the Azure AD SAML Toolkit tile in the My Apps, this will redirect to Azure AD SAML Toolkit Sign-on URL. For more information about the My Apps, see [Introduction to the My Apps](../user-help/my-apps-portal-end-user-access.md).
-## Next Steps
+## Next steps
-Once you configure Azure AD SAML Toolkit you can enforce Session Control, which protects exfiltration and infiltration of your organizationΓÇÖs sensitive data in real time. Session Control extends from Conditional Access. [Learn how to enforce session control with Microsoft Defender for Cloud Apps](/cloud-app-security/proxy-deployment-aad).
+Once you configure Azure AD SAML Toolkit you can enforce session control, which protects exfiltration and infiltration of your organizationΓÇÖs sensitive data in real time. Session control extends from Conditional Access. [Learn how to enforce session control with Microsoft Cloud App Security](/cloud-app-security/proxy-deployment-aad).
active-directory Securedeliver Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/securedeliver-tutorial.md
Title: 'Tutorial: Azure Active Directory integration with SECURE DELIVER | Microsoft Docs'
+ Title: 'Tutorial: Azure AD SSO integration with SECURE DELIVER'
description: Learn how to configure single sign-on between Azure Active Directory and SECURE DELIVER.
Previously updated : 09/01/2021 Last updated : 03/24/2022
-# Tutorial: Azure Active Directory integration with SECURE DELIVER
+# Tutorial: Azure AD SSO integration with SECURE DELIVER
In this tutorial, you'll learn how to integrate SECURE DELIVER with Azure Active Directory (Azure AD). When you integrate SECURE DELIVER with Azure AD, you can:
To configure Azure AD integration with SECURE DELIVER, you need the following it
* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/). * SECURE DELIVER single sign-on enabled subscription.
+* Along with Cloud Application Administrator, Application Administrator can also add or manage applications in Azure AD.
+For more information, see [Azure built-in roles](../roles/permissions-reference.md).
## Scenario description
Follow these steps to enable Azure AD SSO in the Azure portal.
4. On the **Basic SAML Configuration** section, perform the following steps:
- a. In the **Sign on URL** text box, type a URL using the following pattern:
- `https://<companyname>.i-securedeliver.jp/sd/<tenantname>/jsf/login/sso`
-
- b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+ a. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
`https://<companyname>.i-securedeliver.jp/sd/<tenantname>/postResponse`
- > [!NOTE]
- > These values are not real. Update these values with the actual Sign on URL and Identifier. Contact [SECURE DELIVER Client support team](mailto:iw-sd-support@fujifilm.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-
-5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
+ b. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://<companyname>.i-securedeliver.jp/sd/<tenantname>/jsf/login/sso`
- ![The Certificate download link](common/certificatebase64.png)
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Identifier and Sign on URL. Contact [SECURE DELIVER Client support team](mailto:iw-sd-support@fujifilm.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-6. On the **Set up SECURE DELIVER** section, copy the appropriate URL(s) as per your requirement.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
- ![Copy configuration URLs](common/copy-configuration-urls.png)
+ ![The Certificate download link](common/metadataxml.png)
### Create an Azure AD test user
In this section, you'll enable B.Simon to use Azure single sign-on by granting a
## Configure SECURE DELIVER SSO
-To configure single sign-on on **SECURE DELIVER** side, you need to send the downloaded **Certificate (Base64)** and appropriate copied URLs from Azure portal to [SECURE DELIVER support team](mailto:iw-sd-support@fujifilm.com). They set this setting to have the SAML SSO connection set properly on both sides.
+To configure single sign-on on **SECURE DELIVER** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [SECURE DELIVER support team](mailto:iw-sd-support@fujifilm.com). They set this setting to have the SAML SSO connection set properly on both sides.
### Create SECURE DELIVER test user
In this section, you test your Azure AD single sign-on configuration with follow
## Next steps
-Once you configure SECURE DELIVER you can enforce session control, which protects exfiltration and infiltration of your organizationΓÇÖs sensitive data in real time. Session control extends from Conditional Access. [Learn how to enforce session control with Microsoft Defender for Cloud Apps](/cloud-app-security/proxy-deployment-aad).
+Once you configure SECURE DELIVER you can enforce session control, which protects exfiltration and infiltration of your organizationΓÇÖs sensitive data in real time. Session control extends from Conditional Access. [Learn how to enforce session control with Microsoft Defender for Cloud Apps](/cloud-app-security/proxy-deployment-aad).
active-directory Yellowbox Provisioning Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/yellowbox-provisioning-tutorial.md
+
+ Title: 'Tutorial: Configure Yellowbox for automatic user provisioning with Azure Active Directory | Microsoft Docs'
+description: Learn how to automatically provision and de-provision user accounts from Azure AD to Yellowbox.
+
+documentationcenter: ''
+
+writer: Thwimmer
++
+ms.assetid: 0899c687-c36b-4b53-8fea-f762f0616521
+++
+ms.devlang: na
+ Last updated : 03/02/2022+++
+# Tutorial: Configure Yellowbox for automatic user provisioning
+
+This tutorial describes the steps you need to perform in both Yellowbox and Azure Active Directory (Azure AD) to configure automatic user provisioning. When configured, Azure AD automatically provisions and de-provisions users and groups to [Yellowbox](https://yellowbox.app/) using the Azure AD Provisioning service. For important details on what this service does, how it works, and frequently asked questions, see [Automate user provisioning and deprovisioning to SaaS applications with Azure Active Directory](../manage-apps/user-provisioning.md).
++
+## Capabilities Supported
+> [!div class="checklist"]
+> * Create users in Yellowbox
+> * Remove users in Yellowbox when they do not require access anymore
+> * Keep user attributes synchronized between Azure AD and Yellowbox
+
+## Prerequisites
+
+The scenario outlined in this tutorial assumes that you already have the following prerequisites:
+
+* [An Azure AD tenant](../develop/quickstart-create-new-tenant.md).
+* A user account in Azure AD with [permission](../roles/permissions-reference.md) to configure provisioning (for example, Application Administrator, Cloud Application administrator, Application Owner, or Global Administrator).
+* A user account in Yellowbox with Admin rights.
+
+## Step 1. Plan your provisioning deployment
+1. Learn about [how the provisioning service works](../app-provisioning/user-provisioning.md).
+1. Determine who will be in [scope for provisioning](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
+1. Determine what data to [map between Azure AD and Yellowbox](../app-provisioning/customize-application-attributes.md).
+
+## Step 2. Configure Yellowbox to support provisioning with Azure AD
+
+Contact [Yellowbox Help desk](https://dashboard.yellowbox.app/#/help-desk) to obtain the SCIM Url and corresponding Token.
+
+## Step 3. Add Yellowbox from the Azure AD application gallery
+
+Add Yellowbox from the Azure AD application gallery to start managing provisioning to Yellowbox. If you have previously setup Yellowbox for SSO, you can use the same application. However it is recommended that you create a separate app when testing out the integration initially. Learn more about adding an application from the gallery [here](../manage-apps/add-application-portal.md).
+
+## Step 4. Define who will be in scope for provisioning
+
+The Azure AD provisioning service allows you to scope who will be provisioned based on assignment to the application and or based on attributes of the user / group. If you choose to scope who will be provisioned to your app based on assignment, you can use the following [steps](../manage-apps/assign-user-or-group-access-portal.md) to assign users and groups to the application. If you choose to scope who will be provisioned based solely on attributes of the user or group, you can use a scoping filter as described [here](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
+
+* When assigning users and groups to Yellowbox, you must select a role other than **Default Access**. Users with the Default Access role are excluded from provisioning and will be marked as not effectively entitled in the provisioning logs. If the only role available on the application is the default access role, you can [update the application manifest](../develop/howto-add-app-roles-in-azure-ad-apps.md) to add more roles.
+
+* Start small. Test with a small set of users and groups before rolling out to everyone. When scope for provisioning is set to assigned users and groups, you can control this by assigning one or two users or groups to the app. When scope is set to all users and groups, you can specify an [attribute based scoping filter](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
++
+## Step 5. Configure automatic user provisioning to Yellowbox
+
+This section guides you through the steps to configure the Azure AD provisioning service to create, update, and disable users and/or groups in Yellowbox based on user and/or group assignments in Azure AD.
+
+### To configure automatic user provisioning for Yellowbox in Azure AD:
+
+1. Sign in to the [Azure portal](https://portal.azure.com). Select **Enterprise Applications**, then select **All applications**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+1. In the applications list, select **Yellowbox**.
+
+ ![The Yellowbox link in the Applications list](common/all-applications.png)
+
+1. elect the **Provisioning** tab.
+
+ ![Provisioning tab](common/provisioning.png)
+
+1. Set the **Provisioning Mode** to **Automatic**.
+
+ ![Provisioning tab automatic](common/provisioning-automatic.png)
+
+1. In the **Admin Credentials** section, input your Yellowbox Tenant URL and Secret Token. Click **Test Connection** to ensure Azure AD can connect to Yellowbox. If the connection fails, ensure your Yellowbox account has Admin permissions and try again.
+
+ ![Token](common/provisioning-testconnection-tenanturltoken.png)
+
+1. In the **Notification Email** field, enter the email address of a person or group who should receive the provisioning error notifications and select the **Send an email notification when a failure occurs** check box.
+
+ ![Notification Email](common/provisioning-notification-email.png)
+
+1. Select **Save**.
+
+1. Under the **Mappings** section, select **Synchronize Azure Active Directory Users to Yellowbox**.
+
+1. Review the user attributes that are synchronized from Azure AD to Yellowbox in the **Attribute-Mapping** section. The attributes selected as **Matching** properties are used to match the user accounts in Yellowbox for update operations. If you choose to change the [matching target attribute](../app-provisioning/customize-application-attributes.md), you will need to ensure that the Yellowbox API supports filtering users based on that attribute. Select the **Save** button to commit any changes.
+
+ |Attribute|Type|Supported for filtering|Required by Yellowbox|
+ |||||
+ |userName|String|&check;|&check;
+ |roles[primary eq "True"].value|String||&check;
+ |active|Boolean||&check;
+ |displayName|String||&check;
+ |externalId|String||&check;
+
+1. To configure scoping filters, refer to the following instructions provided in the [Scoping filter tutorial](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
+
+1. To enable the Azure AD provisioning service for Yellowbox, change the **Provisioning Status** to **On** in the **Settings** section.
+
+ ![Provisioning Status Toggled On](common/provisioning-toggle-on.png)
+
+1. Define the users and/or groups that you would like to provision to Yellowbox by choosing the desired values in **Scope** in the **Settings** section.
+
+ ![Provisioning Scope](common/provisioning-scope.png)
+
+1. When you are ready to provision, click **Save**.
+
+ ![Saving Provisioning Configuration](common/provisioning-configuration-save.png)
+
+This operation starts the initial synchronization cycle of all users and groups defined in **Scope** in the **Settings** section. The initial cycle takes longer to perform than subsequent cycles, which occur approximately every 40 minutes as long as the Azure AD provisioning service is running.
+
+## Step 6. Monitor your deployment
+Once you've configured provisioning, use the following resources to monitor your deployment:
+
+* Use the [provisioning logs](../reports-monitoring/concept-provisioning-logs.md) to determine which users have been provisioned successfully or unsuccessfully
+* Check the [progress bar](../app-provisioning/application-provisioning-when-will-provisioning-finish-specific-user.md) to see the status of the provisioning cycle and how close it is to completion
+* If the provisioning configuration seems to be in an unhealthy state, the application will go into quarantine. Learn more about quarantine states [here](../app-provisioning/application-provisioning-quarantine-status.md).
+
+## More resources
+
+* [Managing user account provisioning for Enterprise Apps](../app-provisioning/configure-automatic-user-provisioning-portal.md)
+* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+
+## Next steps
+
+* [Learn how to review logs and get reports on provisioning activity](../app-provisioning/check-status-user-account-provisioning.md)
advisor Advisor Operational Excellence Recommendations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/advisor/advisor-operational-excellence-recommendations.md
If the customer finds it in their best interest to assign the same policy again,
## No validation environment enabled
-Azure Advisor determines that you do not have a validation environment enabled in current subscription. When creating your host pools, you have selected \"No\" for \"Validation environment\" in the properties tab. Having at least one host pool with a validation environment enabled ensures the business continuity through Windows Virtual Desktop service deployments with early detection of potential issues. [Learn more](../virtual-desktop/create-validation-host-pool.md)
+Azure Advisor determines that you do not have a validation environment enabled in current subscription. When creating your host pools, you have selected \"No\" for \"Validation environment\" in the properties tab. Having at least one host pool with a validation environment enabled ensures the business continuity through Azure Virtual Desktop service deployments with early detection of potential issues. [Learn more](../virtual-desktop/create-validation-host-pool.md)
## Ensure production (non-validation) environment to benefit from stable functionality
-Azure Advisor detects that too many of your host pools have validation environment enabled. In order for validation environments to best serve their purpose, you should have at least one, but never more than half of your host pools in validation environment. By having a healthy balance between your host pools with validation environment enabled and those with it disabled, you will best be able to utilize the benefits of the multistage deployments that Windows Virtual Desktop offers with certain updates. To fix this issue, open your host pool's properties and select \"No\" next to the \"Validation Environment\" setting.
+Azure Advisor detects that too many of your host pools have validation environment enabled. In order for validation environments to best serve their purpose, you should have at least one, but never more than half of your host pools in validation environment. By having a healthy balance between your host pools with validation environment enabled and those with it disabled, you will best be able to utilize the benefits of the multistage deployments that Azure Virtual Desktop offers with certain updates. To fix this issue, open your host pool's properties and select \"No\" next to the \"Validation Environment\" setting.
## Enable Traffic Analytics to view insights into traffic patterns across Azure resources Traffic Analytics is a cloud-based solution that provides visibility into user and application activity in Azure. Traffic analytics analyzes Network Watcher network security group (NSG) flow logs to provide insights into traffic flow. With traffic analytics, you can view top talkers across Azure and non Azure deployments, investigate open ports, protocols and malicious flows in your environment and optimize your network deployment for performance. You can process flow logs at 10 mins and 60 mins processing intervals, giving you faster analytics on your traffic. It's a good practice to enable Traffic Analytics for your Azure resources.
advisor Advisor Performance Recommendations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/advisor/advisor-performance-recommendations.md
Advisor analysis indicates that your MySQL server may be incurring unnecessary I
## Distribute data in server group to distribute workload among nodes Advisor identifies the server groups where the data has not been distributed but stays on the coordinator. Based on this, Advisor recommends that for full Hyperscale (Citus) benefits distribute data on worker nodes for your server groups. This will improve query performance by utilizing resource of each node in the server group. [Learn more](https://go.microsoft.com/fwlink/?linkid=2135201)
-## Improve user experience and connectivity by deploying VMs closer to Windows Virtual Desktop deployment location
-We have determined that your VMs are located in a region different or far from where your users are connecting from, using Windows Virtual Desktop (WVD). This may lead to prolonged connection response times and will impact overall user experience on WVD. When creating VMs for your host pools, you should attempt to use a region closer to the user. Having close proximity ensures continuing satisfaction with the WVD service and a better overall quality of experience. [Learn more about connection latency here](../virtual-desktop/connection-latency.md).
+## Improve user experience and connectivity by deploying VMs closer to Azure Virtual Desktop deployment location
+We have determined that your VMs are located in a region different or far from where your users are connecting from, using Azure Virtual Desktop. This may lead to prolonged connection response times and will impact overall user experience on Azure Virtual Desktop. When creating VMs for your host pools, you should attempt to use a region closer to the user. Having close proximity ensures continuing satisfaction with the Azure Virtual Desktop service and a better overall quality of experience. [Learn more about connection latency here](../virtual-desktop/connection-latency.md).
## Upgrade to the latest version of the Immersive Reader SDK We have identified resources under this subscription using outdated versions of the Immersive Reader SDK. Using the latest version of the Immersive Reader SDK provides you with updated security, performance and an expanded set of features for customizing and enhancing your integration experience.
Learn more about [Immersive reader SDK](../applied-ai-services/immersive-reader/
Advisor detects that you have a host pool that has depth first set as the load balancing algorithm, and that host pool's max session limit is greater than or equal to 999999. Depth first load balancing uses the max session limit to determine the maximum number of users that can have concurrent sessions on a single session host. If the max session limit is too high, all user sessions will be directed to the same session host, and this will cause performance and reliability issues. Therefore, when setting a host pool to have depth first load balancing, you must set an appropriate max session limit according to the configuration of your deployment and capacity of your VMs.
-To learn more about load balancing in Windows Virtual Desktop, see [Configure the Windows Virtual Desktop load-balancing method](../virtual-desktop/troubleshoot-set-up-overview.md).
+To learn more about load balancing in Azure Virtual Desktop, see [Host pool load-balancing algorithms](../virtual-desktop/host-pool-load-balancing.md).
## Upgrade to the latest version of the Azure Communication Services SDKs
advisor Advisor Reference Operational Excellence Recommendations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/advisor/advisor-reference-operational-excellence-recommendations.md
Learn more about [Host Pool - AVDStartVMonConnect (Permissions missing for start
### No validation environment enabled
-We have determined that you do not have a validation environment enabled in current subscription. When creating your host pools, you have selected "No" for "Validation environment" in the properties tab. Having at least one host pool with a validation environment enabled ensures the business continuity through Windows Virtual Desktop service deployments with early detection of potential issues.
+We have determined that you do not have a validation environment enabled in current subscription. When creating your host pools, you have selected "No" for "Validation environment" in the properties tab. Having at least one host pool with a validation environment enabled ensures the business continuity through Azure Virtual Desktop service deployments with early detection of potential issues.
Learn more about [Host Pool - ValidationEnvHostPools (No validation environment enabled)](../virtual-desktop/create-validation-host-pool.md). ### Not enough production environments enabled
-We have determined that too many of your host pools have Validation Environment enabled. In order for Validation Environments to best serve their purpose, you should have at least one, but never more than half of your host pools in Validation Environment. By having a healthy balance between your host pools with Validation Environment enabled and those with it disabled, you will best be able to utilize the benefits of the multistage deployments that Windows Virtual Desktop offers with certain updates. To fix this issue, open your host pool's properties and select "No" next to the "Validation Environment" setting.
+We have determined that too many of your host pools have Validation Environment enabled. In order for Validation Environments to best serve their purpose, you should have at least one, but never more than half of your host pools in Validation Environment. By having a healthy balance between your host pools with Validation Environment enabled and those with it disabled, you will best be able to utilize the benefits of the multistage deployments that Azure Virtual Desktop offers with certain updates. To fix this issue, open your host pool's properties and select "No" next to the "Validation Environment" setting.
Learn more about [Host Pool - ProductionEnvHostPools (Not enough production environments enabled)](../virtual-desktop/create-host-pools-powershell.md).
advisor Advisor Reference Performance Recommendations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/advisor/advisor-reference-performance-recommendations.md
Learn more about [Communication service - UpgradeTurnSdk (Use recommended versio
### Improve user experience and connectivity by deploying VMs closer to userΓÇÖs location.
-We have determined that your VMs are located in a region different or far from where your users are connecting from, using Windows Virtual Desktop (WVD). This may lead to prolonged connection response times and will impact overall user experience on WVD.
+We have determined that your VMs are located in a region different or far from where your users are connecting from, using Azure Virtual Desktop. This may lead to prolonged connection response times and will impact overall user experience on Azure Virtual Desktop.
Learn more about [Virtual machine - RegionProximitySessionHosts (Improve user experience and connectivity by deploying VMs closer to userΓÇÖs location.)](../virtual-desktop/connection-latency.md).
Learn more about [Azure Database for PostgreSQL flexible server - OrcasPostgreSq
### Improve user experience and connectivity by deploying VMs closer to userΓÇÖs location.
-We have determined that your VMs are located in a region different or far from where your users are connecting from, using Windows Virtual Desktop (WVD). This may lead to prolonged connection response times and will impact overall user experience on WVD. When creating VMs for your host pools, you should attempt to use a region closer to the user. Having close proximity ensures continuing satisfaction with the WVD service and a better overall quality of experience.
+We have determined that your VMs are located in a region different or far from where your users are connecting from, using Azure Virtual Desktop. This may lead to prolonged connection response times and will impact overall user experience on Azure Virtual Desktop. When creating VMs for your host pools, you should attempt to use a region closer to the user. Having close proximity ensures continuing satisfaction with the Azure Virtual Desktop service and a better overall quality of experience.
Learn more about [Host Pool - RegionProximityHostPools (Improve user experience and connectivity by deploying VMs closer to userΓÇÖs location.)](../virtual-desktop/connection-latency.md).
advisor Advisor Reference Reliability Recommendations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/advisor/advisor-reference-reliability-recommendations.md
We have identified that your Virtual Machine might be running a version of Check
Learn more about [Virtual machine - CheckPointPlatformServicingKnownIssueA (Check Point Virtual Machine may lose Network Connectivity.)](https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk151752&partition=Advanced&product=CloudGuard).
-### Access to mandatory URLs missing for your Windows Virtual Desktop environment
+### Access to mandatory URLs missing for your Azure Virtual Desktop environment
-In order for a session host to deploy and register to WVD properly, you need to add a set of URLs to allowed list in case your virtual machine runs in restricted environment. After visiting "Learn More" link, you will be able to see the minimum list of URLs you need to unblock to have a successful deployment and functional session host. For specific URL(s) missing from allowed list, you may also search Application event log for event 3702.
+In order for a session host to deploy and register to Azure Virtual Desktop properly, you need to add a set of URLs to allowed list in case your virtual machine runs in restricted environment. After visiting the "Learn More" link, you will be able to see the minimum list of URLs you need to unblock to have a successful deployment and functional session host. For specific URL(s) missing from allowed list, you may also search Application event log for event 3702.
-Learn more about [Virtual machine - SessionHostNeedsAssistanceForUrlCheck (Access to mandatory URLs missing for your Windows Virtual Desktop environment)](../virtual-desktop/safe-url-list.md).
+Learn more about [Virtual machine - SessionHostNeedsAssistanceForUrlCheck (Access to mandatory URLs missing for your Azure Virtual Desktop environment)](../virtual-desktop/safe-url-list.md).
## PostgreSQL
aks Availability Zones https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/availability-zones.md
This article detailed how to create an AKS cluster that uses availability zones.
<!-- LINKS - internal --> [install-azure-cli]: /cli/azure/install-azure-cli
-[az-feature-register]: /cli/azure/feature#az_feature_register
-[az-feature-list]: /cli/azure/feature#az_feature_list
-[az-provider-register]: /cli/azure/provider#az_provider_register
-[az-aks-create]: /cli/azure/aks#az_aks_create
+[az-feature-register]: /cli/azure/feature#az-feature-register
+[az-feature-list]: /cli/azure/feature#az-feature-list
+[az-provider-register]: /cli/azure/provider#az-provider-register
+[az-aks-create]: /cli/azure/aks#az-aks-create
[az-overview]: ../availability-zones/az-overview.md [best-practices-bc-dr]: operator-best-practices-multi-region.md [aks-support-policies]: support-policies.md [aks-faq]: faq.md [standard-lb-limitations]: load-balancer-standard.md#limitations
-[az-extension-add]: /cli/azure/extension#az_extension_add
-[az-extension-update]: /cli/azure/extension#az_extension_update
-[az-aks-nodepool-add]: /cli/azure/aks/nodepool#az_aks_nodepool_add
-[az-aks-get-credentials]: /cli/azure/aks#az_aks_get_credentials
+[az-extension-add]: /cli/azure/extension#az-extension-add
+[az-extension-update]: /cli/azure/extension#az-extension-update
+[az-aks-nodepool-add]: /cli/azure/aks/nodepool#az-aks-nodepool-add
+[az-aks-get-credentials]: /cli/azure/aks#az-aks-get-credentials
[vmss-zone-balancing]: ../virtual-machine-scale-sets/virtual-machine-scale-sets-use-availability-zones.md#zone-balancing [arm-template-null]: ../azure-resource-manager/templates/template-expressions.md#null-values
aks Cluster Autoscaler https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/cluster-autoscaler.md
This article showed you how to automatically scale the number of AKS nodes. You
[aks-view-master-logs]: monitor-aks.md#configure-monitoring [autoscaler-profile-properties]: #using-the-autoscaler-profile [azure-cli-install]: /cli/azure/install-azure-cli
-[az-aks-show]: /cli/azure/aks#az_aks_show
-[az-extension-add]: /cli/azure/extension#az_extension_add
-[az-extension-update]: /cli/azure/extension#az_extension_update
-[az-aks-create]: /cli/azure/aks#az_aks_create
-[az-aks-update]: /cli/azure/aks#az_aks_update
-[az-aks-scale]: /cli/azure/aks#az_aks_scale
-[az-feature-register]: /cli/azure/feature#az_feature_register
-[az-feature-list]: /cli/azure/feature#az_feature_list
-[az-provider-register]: /cli/azure/provider#az_provider_register
+[az-aks-show]: /cli/azure/aks#az-aks-show
+[az-extension-add]: /cli/azure/extension#az-extension-add
+[az-extension-update]: /cli/azure/extension#az-extension-update
+[az-aks-create]: /cli/azure/aks#az-aks-create
+[az-aks-update]: /cli/azure/aks#az-aks-update
+[az-aks-scale]: /cli/azure/aks#az-aks-scale
+[az-feature-register]: /cli/azure/feature#az-feature-register
+[az-feature-list]: /cli/azure/feature#az-feature-list
+[az-provider-register]: /cli/azure/provider#az-provider-register
<!-- LINKS - external --> [az-aks-update-preview]: https://github.com/Azure/azure-cli-extensions/tree/master/src/aks-preview
aks Cluster Container Registry Integration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/cluster-container-registry-integration.md
nginx0-deployment-669dfc4d4b-xdpd6 1/1 Running 0 20s
``` ### Troubleshooting
-* Run the [az aks check-acr](/cli/azure/aks#az_aks_check_acr) command to validate that the registry is accessible from the AKS cluster.
+* Run the [az aks check-acr](/cli/azure/aks#az-aks-check-acr) command to validate that the registry is accessible from the AKS cluster.
* Learn more about [ACR Monitoring](../container-registry/monitor-service.md) * Learn more about [ACR Health](../container-registry/container-registry-check-health.md)
aks Cluster Extensions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/cluster-extensions.md
az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-g
<!-- LINKS --> <!-- INTERNAL --> [arc-k8s-extensions]: ../azure-arc/kubernetes/conceptual-extensions.md
-[az-feature-register]: /cli/azure/feature#az_feature_register
-[az-feature-list]: /cli/azure/feature#az_feature_list
-[az-provider-register]: /cli/azure/provider#az_provider_register
+[az-feature-register]: /cli/azure/feature#az-feature-register
+[az-feature-list]: /cli/azure/feature#az-feature-list
+[az-provider-register]: /cli/azure/provider#az-provider-register
[azure-ml-overview]: ../machine-learning/how-to-attach-arc-kubernetes.md [dapr-overview]: ./dapr.md [gitops-overview]: ../azure-arc/kubernetes/conceptual-gitops-flux2.md
aks Csi Secrets Store Driver https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/csi-secrets-store-driver.md
The following table lists the metrics provided by the Secrets Store CSI Driver:
Now that you've learned how to use the Azure Key Vault Provider for Secrets Store CSI Driver with an AKS cluster, see [Enable CSI drivers for Azure Disks and Azure Files on AKS][csi-storage-drivers]. <!-- LINKS INTERNAL -->
-[az-feature-register]: /cli/azure/feature#az_feature_register
-[az-feature-list]: /cli/azure/feature#az_feature_list
-[az-provider-register]: /cli/azure/provider#az_provider_register
-[az-extension-add]: /cli/azure/extension#az_extension_add
-[az-extension-update]: /cli/azure/extension#az_extension_update
-[az-aks-create]: /cli/azure/aks#az_aks_create
-[az-aks-enable-addons]: /cli/azure/aks#az_aks_enable_addons
-[az-aks-disable-addons]: /cli/azure/aks#az_aks_disable_addons
+[az-feature-register]: /cli/azure/feature#az-feature-register
+[az-feature-list]: /cli/azure/feature#az-feature-list
+[az-provider-register]: /cli/azure/provider#az-provider-register
+[az-extension-add]: /cli/azure/extension#az-extension-add
+[az-extension-update]: /cli/azure/extension#az-extension-update
+[az-aks-create]: /cli/azure/aks#az-aks-create
+[az-aks-enable-addons]: /cli/azure/aks#az-aks-enable-addons
+[az-aks-disable-addons]: /cli/azure/aks#az-aks-disable-addons
[key-vault-provider]: ../key-vault/general/key-vault-integrate-kubernetes.md [csi-storage-drivers]: ./csi-storage-drivers.md [create-key-vault]: ../key-vault/general/quick-create-cli.md
aks Custom Node Configuration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/custom-node-configuration.md
az aks nodepool add --name mynodepool1 --cluster-name myAKSCluster --resource-gr
[aks-view-master-logs]: ../azure-monitor/containers/container-insights-log-query.md#enable-resource-logs [autoscaler-profile-properties]: #using-the-autoscaler-profile [azure-cli-install]: /cli/azure/install-azure-cli
-[az-aks-show]: /cli/azure/aks#az_aks_show
-[az-extension-add]: /cli/azure/extension#az_extension_add
-[az-extension-update]: /cli/azure/extension#az_extension_update
-[az-aks-create]: /cli/azure/aks#az_aks_create
-[az-aks-update]: /cli/azure/aks#az_aks_update
-[az-aks-scale]: /cli/azure/aks#az_aks_scale
-[az-feature-register]: /cli/azure/feature#az_feature_register
-[az-feature-list]: /cli/azure/feature#az_feature_list
-[az-provider-register]: /cli/azure/provider#az_provider_register
+[az-aks-show]: /cli/azure/aks#az-aks-show
+[az-extension-add]: /cli/azure/extension#az-extension-add
+[az-extension-update]: /cli/azure/extension#az-extension-update
+[az-aks-create]: /cli/azure/aks#az-aks-create
+[az-aks-update]: /cli/azure/aks#az-aks-update
+[az-aks-scale]: /cli/azure/aks#az-aks-scale
+[az-feature-register]: /cli/azure/feature#az-feature-register
+[az-feature-list]: /cli/azure/feature#az-feature-list
+[az-provider-register]: /cli/azure/provider#az-provider-register
[upgrade-cluster]: upgrade-cluster.md [use-multiple-node-pools]: use-multiple-node-pools.md [max-surge]: upgrade-cluster.md#customize-node-surge-upgrade
aks Dapr https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/dapr.md
az k8s-extension delete --resource-group myResourceGroup --cluster-name myAKSClu
<!-- LINKS INTERNAL --> [deploy-cluster]: ./tutorial-kubernetes-deploy-cluster.md
-[az-feature-register]: /cli/azure/feature#az_feature_register
-[az-feature-list]: /cli/azure/feature#az_feature_list
-[az-provider-register]: /cli/azure/provider#az_provider_register
+[az-feature-register]: /cli/azure/feature#az-feature-register
+[az-feature-list]: /cli/azure/feature#az-feature-list
+[az-provider-register]: /cli/azure/provider#az-provider-register
[sample-application]: ./quickstart-dapr.md [k8s-version-support-policy]: ./supported-kubernetes-versions.md?tabs=azure-cli#kubernetes-version-support-policy
aks Faq https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/faq.md
AKS doesn't apply Network Security Groups (NSGs) to its subnet and will not modi
[aks-rbac-aad]: ./azure-ad-integration-cli.md [node-updates-kured]: node-updates-kured.md [aks-preview-cli]: /cli/azure/aks
-[az-aks-create]: /cli/azure/aks#az_aks_create
+[az-aks-create]: /cli/azure/aks#az-aks-create
[aks-rm-template]: /azure/templates/microsoft.containerservice/2019-06-01/managedclusters [aks-cluster-autoscaler]: cluster-autoscaler.md [nodepool-upgrade]: use-multiple-node-pools.md#upgrade-a-node-pool
aks Gpu Cluster https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/gpu-cluster.md
Register the `GPUDedicatedVHDPreview` feature:
az feature register --name GPUDedicatedVHDPreview --namespace Microsoft.ContainerService ```
-It might take several minutes for the status to show as **Registered**. You can check the registration status by using the [az feature list](/cli/azure/feature#az_feature_list) command:
+It might take several minutes for the status to show as **Registered**. You can check the registration status by using the [az feature list](/cli/azure/feature#az-feature-list) command:
```azurecli az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/GPUDedicatedVHDPreview')].{Name:name,State:properties.state}" ```
-When the status shows as registered, refresh the registration of the `Microsoft.ContainerService` resource provider by using the [az provider register](/cli/azure/provider#az_provider_register) command:
+When the status shows as registered, refresh the registration of the `Microsoft.ContainerService` resource provider by using the [az provider register](/cli/azure/provider#az-provider-register) command:
```azurecli az provider register --namespace Microsoft.ContainerService
aks Howto Deploy Java Liberty App With Postgresql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/howto-deploy-java-liberty-app-with-postgresql.md
The steps in this section guide you through creating an Azure Database for Postg
An Azure resource group is a logical group in which Azure resources are deployed and managed.
- Create a resource group called *java-liberty-project-postgresql* using the [az group create](/cli/azure/group#az_group_create) command in the *eastus* location.
+ Create a resource group called *java-liberty-project-postgresql* using the [az group create](/cli/azure/group#az-group-create) command in the *eastus* location.
```bash RESOURCE_GROUP_NAME=java-liberty-project-postgresql
The steps in this section guide you through creating an Azure Database for Postg
1. Create the PostgreSQL server
- Use the [az postgres server create](/cli/azure/postgres/server#az_postgres_server_create) command to create the DB server. The following example creates a DB server named *youruniquedbname*. Make sure *youruniqueacrname* is unique within Azure.
+ Use the [az postgres server create](/cli/azure/postgres/server#az-postgres-server-create) command to create the DB server. The following example creates a DB server named *youruniquedbname*. Make sure *youruniqueacrname* is unique within Azure.
> [!TIP] > To help ensure a globally unique name, prepend a disambiguation string such as your intitials and the MMDD of today's date.
The steps in this section deploy and test the application.
## Clean up resources
-To avoid Azure charges, you should clean up unnecessary resources. When the cluster is no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, container service, container registry, and all related resources.
+To avoid Azure charges, you should clean up unnecessary resources. When the cluster is no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, container service, container registry, and all related resources.
```azurecli-interactive az group delete --name <RESOURCE_GROUP_NAME> --yes --no-wait
aks Howto Deploy Java Liberty App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/howto-deploy-java-liberty-app.md
For more details on Open Liberty, see [the Open Liberty project page](https://op
An Azure resource group is a logical group in which Azure resources are deployed and managed.
-Create a resource group called *java-liberty-project* using the [az group create](/cli/azure/group#az_group_create) command in the *eastus* location. This resource group will be used later for creating the Azure Container Registry (ACR) instance and the AKS cluster.
+Create a resource group called *java-liberty-project* using the [az group create](/cli/azure/group#az-group-create) command in the *eastus* location. This resource group will be used later for creating the Azure Container Registry (ACR) instance and the AKS cluster.
```azurecli-interactive RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --location eastus
## Create an ACR instance
-Use the [az acr create](/cli/azure/acr#az_acr_create) command to create the ACR instance. The following example creates an ACR instance named *youruniqueacrname*. Make sure *youruniqueacrname* is unique within Azure.
+Use the [az acr create](/cli/azure/acr#az-acr-create) command to create the ACR instance. The following example creates an ACR instance named *youruniqueacrname*. Make sure *youruniqueacrname* is unique within Azure.
```azurecli-interactive export REGISTRY_NAME=youruniqueacrname
You should see `Login Succeeded` at the end of command output if you have logged
## Create an AKS cluster
-Use the [az aks create](/cli/azure/aks#az_aks_create) command to create an AKS cluster. The following example creates a cluster named *myAKSCluster* with one node. This will take several minutes to complete.
+Use the [az aks create](/cli/azure/aks#az-aks-create) command to create an AKS cluster. The following example creates a cluster named *myAKSCluster* with one node. This will take several minutes to complete.
```azurecli-interactive CLUSTER_NAME=myAKSCluster
After a few minutes, the command completes and returns JSON-formatted informatio
### Connect to the AKS cluster
-To manage a Kubernetes cluster, you use [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/), the Kubernetes command-line client. If you use Azure Cloud Shell, `kubectl` is already installed. To install `kubectl` locally, use the [az aks install-cli](/cli/azure/aks#az_aks_install_cli) command:
+To manage a Kubernetes cluster, you use [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/), the Kubernetes command-line client. If you use Azure Cloud Shell, `kubectl` is already installed. To install `kubectl` locally, use the [az aks install-cli](/cli/azure/aks#az-aks-install-cli) command:
```azurecli-interactive az aks install-cli ```
-To configure `kubectl` to connect to your Kubernetes cluster, use the [az aks get-credentials](/cli/azure/aks#az_aks_get_credentials) command. This command downloads credentials and configures the Kubernetes CLI to use them.
+To configure `kubectl` to connect to your Kubernetes cluster, use the [az aks get-credentials](/cli/azure/aks#az-aks-get-credentials) command. This command downloads credentials and configures the Kubernetes CLI to use them.
```azurecli-interactive az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --overwrite-existing
Open a web browser to the external IP address of your service (`52.152.189.57` f
## Clean up the resources
-To avoid Azure charges, you should clean up unnecessary resources. When the cluster is no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, container service, container registry, and all related resources.
+To avoid Azure charges, you should clean up unnecessary resources. When the cluster is no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, container service, container registry, and all related resources.
```azurecli-interactive az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
aks Http Application Routing https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/http-application-routing.md
ingress "aks-helloworld" deleted
For information on how to install an HTTPS-secured Ingress controller in AKS, see [HTTPS Ingress on Azure Kubernetes Service (AKS)][ingress-https]. <!-- LINKS - internal -->
-[az-aks-create]: /cli/azure/aks#az_aks_create
-[az-aks-show]: /cli/azure/aks#az_aks_show
+[az-aks-create]: /cli/azure/aks#az-aks-create
+[az-aks-show]: /cli/azure/aks#az-aks-show
[ingress-https]: ./ingress-tls.md
-[az-aks-enable-addons]: /cli/azure/aks#az_aks_enable_addons
-[az aks install-cli]: /cli/azure/aks#az_aks_install_cli
-[az aks get-credentials]: /cli/azure/aks#az_aks_get_credentials
+[az-aks-enable-addons]: /cli/azure/aks#az-aks-enable-addons
+[az aks install-cli]: /cli/azure/aks#az-aks-install-cli
+[az aks get-credentials]: /cli/azure/aks#az-aks-get-credentials
<!-- LINKS - external --> [dns-pricing]: https://azure.microsoft.com/pricing/details/dns/
aks Ingress Tls https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/ingress-tls.md
You can also:
- [Create an ingress controller that uses Let's Encrypt to automatically generate TLS certificates with a static public IP address][aks-ingress-static-tls] <!-- LINKS - external -->
-[az-network-dns-record-set-a-add-record]: /cli/azure/network/dns/record-set/#az_network_dns_record_set_a_add_record
+[az-network-dns-record-set-a-add-record]: /cli/azure/network/dns/record-set/#az-network-dns-record-set-a-add-record
[new-az-dns-recordset-create-a-record]: /powershell/module/az.dns/new-azdnsrecordset [custom-domain]: ../app-service/manage-custom-dns-buy-domain.md#buy-an-app-service-domain [dns-zone]: ../dns/dns-getstarted-cli.md
You can also:
[cert-manager-issuer]: https://cert-manager.io/docs/concepts/issuer/ [lets-encrypt]: https://letsencrypt.org/ [nginx-ingress]: https://github.com/kubernetes/ingress-nginx
-[helm-install]: https://docs.helm.sh/using_helm/#installing-helm
+[helm-install]: https://docs.helm.sh/using-helm/#installing-helm
[ingress-nginx-helm-chart]: https://github.com/kubernetes/ingress-nginx/tree/main/charts/ingress-nginx <!-- LINKS - internal -->
aks Kubernetes Action https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/kubernetes-action.md
For a workflow targeting AKS, the file has three sections:
## Create a service principal
-You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) by using the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). You can run this command using [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) by using the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). You can run this command using [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
```azurecli-interactive az ad sp create-for-rbac --name "myApp" --role contributor --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP> --sdk-auth
aks Open Service Mesh Azure Monitor https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/open-service-mesh-azure-monitor.md
- Title: Configure Monitoring and Observability with Open Service Mesh on Azure Kubernetes Service (AKS)
-description: Configure Monitoring and Observability with Open Service Mesh on Azure Kubernetes Service (AKS)
-- Previously updated : 8/26/2021---
-# Configure Monitoring and Observability with Open Service Mesh on Azure Kubernetes Service (AKS)
-
-Both Azure Monitor and Azure Application Insights assist with maximizing the availability and performance of your applications and services. These services deliver a comprehensive solution for collecting, analyzing, and acting on telemetry from your cloud and on-premises environments.
-
-The OSM AKS add-on will have deep integrations into both of these Azure services, and provide a seamless Azure experience for viewing and responding to critical KPIs provided by OSM metrics.
-
-## Enable Azure Monitor
-
-Once the OSM AKS add-on has been enabled on the AKS cluster, Azure Monitor needs to be enabled in the cluster via Azure portal. Click on the AKS cluster, navigate to the "Insights" tab under "Monitoring," and select "Enable."
-
-Once Azure Monitor has been enabled, you should be able to see the following pods in the kube-system namespace:
-
-```
-kube-system omsagent-5pn4c 1/1 Running 0 24m
-kube-system omsagent-6r6zt 1/1 Running 0 24m
-kube-system omsagent-j8xrh 1/1 Running 0 24m
-kube-system omsagent-rs-74b8f7dfd8-rp5vx 1/1 Running 1 24m
-```
-
-## Enable metrics in OSM monitored namespaces
-
-For metrics to be scraped from a particular namespace monitored by the mesh, the following command needs to be run:
-
-```sh
-osm metrics enable --namespace <namespace>
-```
-
-For instance, if you are running the [bookstore demo](https://docs.openservicemesh.io/docs/getting_started/install_apps/), you would run the `osm metrics enable` command on the following namespaces:
-
-```sh
-osm metrics enable --namespace bookbuyer
-osm metrics enable --namespace bookstore
-osm metrics enable --namespace bookthief
-osm metrics enable --namespace bookwarehouse
-```
-
-## Apply ConfigMap
-
-Create the following ConfigMap in `kube-system`, which will tell Azure Monitor what namespaces should be monitored. For instance, for the bookbuyer / bookstore demo, the ConfigMap would look as follows:
-
-```yaml
-kind: ConfigMap
-apiVersion: v1
-data:
- schema-version: v1
- config-version: ver1
- osm-metric-collection-configuration: |-
- # OSM metric collection settings
- [osm_metric_collection_configuration]
- [osm_metric_collection_configuration.settings]
- # Namespaces to monitor
- monitor_namespaces = ["bookstore", "bookbuyer", "bookthief", "bookwarehouse"]
-metadata:
- name: container-azm-ms-osmconfig
- namespace: kube-system
-```
-
-## View metrics in the Azure portal
-
-In Azure portal, select the Kubernetes cluster and then the "Logs" tab under "Monitoring." You should be now able to query the `InsightsMetrics` table to view metrics in the enabled namespaces. For instance, if you wanted to see the envoy metrics for `bookbuyer`, you would use the following query:
-
-```sh
-InsightsMetrics
-| where Name contains "envoy"
-| extend t=parse_json(Tags)
-| where t.app == "bookbuyer"
-```
-
-## Additional information
-
-For more information on how to enable and configure Azure Monitor and Azure Application Insights for the OSM AKS add-on, visit the [Azure Monitor for OSM](https://aka.ms/azmon/osmpreview) page.
-
-In addition, there are open source tools you can use with OSM for observability. For more information, see the [OSM Observability][osm-observeability].
-
-[osm-observeability]: https://docs.openservicemesh.io/docs/guides/observability/
aks Open Service Mesh Deploy Addon Bicep https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/open-service-mesh-deploy-addon-bicep.md
For deployment of a new AKS cluster, you enable the OSM add-on at cluster creati
### Create a resource group
-In Azure, you can associate related resources by using a resource group. Create a resource group by using [az group create](/cli/azure/group#az_group_create). The following example creates a resource group named *my-osm-bicep-aks-cluster-rg* in a specified Azure location (region):
+In Azure, you can associate related resources by using a resource group. Create a resource group by using [az group create](/cli/azure/group#az-group-create). The following example creates a resource group named *my-osm-bicep-aks-cluster-rg* in a specified Azure location (region):
```azurecli-interactive az group create --name <my-osm-bicep-aks-cluster-rg> --location <azure-region>
aks Open Service Mesh Integrations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/open-service-mesh-integrations.md
+
+ Title: Integrations with Open Service Mesh on Azure Kubernetes Service (AKS)
+description: Integrations with Open Service Mesh on Azure Kubernetes Service (AKS)
++ Last updated : 03/23/2022++
+# Integrations with Open Service Mesh on Azure Kubernetes Service (AKS)
+
+The Open Service Mesh (OSM) add-on integrates with features provided by Azure as well as open source projects.
+
+> [!IMPORTANT]
+> Integrations with open source projects are not covered by the [AKS support policy][aks-support-policy].
+
+## Ingress
+
+Ingress allows for traffic external to the mesh to be routed to services within the mesh. With OSM, you can configure most ingress solutions to work with your mesh, but OSM works best with either [NGINX ingress][osm-nginx] or [Contour ingress][osm-contour]. Open source projects integrating with OSM, including NGINX ingress and Contour ingress, are not covered by the [AKS support policy][aks-support-policy].
+
+Using [Azure Gateway Ingress Controller (AGIC)][agic] for ingress with OSM is not supported and not recommended.
+
+## Metrics observability
+
+Observability of metrics allows you to view the metrics of your mesh and the deployments in your mesh. With OSM, you can use [Prometheus and Grafana][osm-metrics] for metrics observability, but those integrations are not covered by the [AKS support policy][aks-support-policy].
+
+You can also integrate OSM with [Azure Monitor][azure-monitor].
+
+Before you can enable metrics on your mesh to integrate with Azure Monitor:
+
+* Enable Azure Monitor on your cluster
+* Enable the OSM add-on for your AKS cluster
+* Onboard your application namespaces to the mesh
+
+To enable metrics for a namespace in the mesh use `osm metrics enable`. For example:
+
+```console
+osm metrics enable --namespace myappnamespace
+```
+
+Create a Configmap in the `kube-system` namespace that enables Azure Monitor to monitor your namespaces. For example, create a `monitor-configmap.yaml` with the following to monitor the `myappnamespace`:
+
+```yaml
+kind: ConfigMap
+apiVersion: v1
+data:
+ schema-version: v1
+ config-version: ver1
+ osm-metric-collection-configuration: |-
+ # OSM metric collection settings
+ [osm_metric_collection_configuration]
+ [osm_metric_collection_configuration.settings]
+ # Namespaces to monitor
+ monitor_namespaces = ["myappnamespace"]
+metadata:
+ name: container-azm-ms-osmconfig
+ namespace: kube-system
+```
+
+Apply that ConfigMap using `kubectl apply`.
+
+```console
+kubectl apply -f monitor-configmap.yaml
+```
+
+To access your metrics from the Azure portal, select your AKS cluster, then select *Logs* under *Monitoring*. From the *Monitoring* section, query the `InsightsMetrics` table to view metrics in the enabled namespaces. For example, the following query shows the *envoy* metrics for the *myappnamespace* namespace.
+
+```sh
+InsightsMetrics
+| where Name contains "envoy"
+| extend t=parse_json(Tags)
+| where t.app == "myappnamespace"
+```
+
+## Automation and developer tools
+
+OSM can integrate with certain automation projects and developer tooling to help operators and developers build and release applications. For example, OSM integrates with [Flagger][osm-flagger] for progressive delivery and [Dapr][osm-dapr] for building applications. OSM's integration with Flagger and Dapr are not covered by the [AKS support policy][aks-support-policy].
+
+## External authorization
+
+External authorization allows you to offload authorization of HTTP requests to an external service. OSM can use external authorization by integrating with [Open Policy Agent (OPA)][osm-opa], but that integration is not covered by the [AKS support policy][aks-support-policy].
+
+## Certificate management
+
+OSM has several types of certificates it uses to operate on your AKS cluster. OSM includes its own certificate manager called Tresor, which is used by default. Alternatively, OSM allows you to integrate with [Hashicorp Vault][osm-hashi-vault], [Tresor][osm-tresor], and [cert-manager][osm-cert-manager], but those integrations are not covered by the [AKS support policy][aks-support-policy].
+++
+[agic]: ../application-gateway/ingress-controller-overview.md
+[agic-aks]: ../application-gateway/tutorial-ingress-controller-add-on-existing.md
+[aks-support-policy]: support-policies.md
+[azure-monitor]: ../azure-monitor/overview.md
+[nginx]: https://github.com/kubernetes/ingress-nginx
+[osm-ingress-policy]: https://release-v1-0.docs.openservicemesh.io/docs/demos/ingress_k8s_nginx/#http-ingress
+[osm-nginx]: https://release-v1-0.docs.openservicemesh.io/docs/demos/ingress_k8s_nginx/
+[osm-contour]: https://release-v1-0.docs.openservicemesh.io/docs/guides/traffic_management/ingress/#1-using-contour-ingress-controller-and-gateway
+[osm-metrics]: https://release-v1-0.docs.openservicemesh.io/docs/guides/observability/metrics/
+[osm-dapr]: https://release-v1-0.docs.openservicemesh.io/docs/guides/integrations/dapr/
+[osm-flagger]: https://release-v1-0.docs.openservicemesh.io/docs/guides/integrations/flagger/
+[osm-opa]: https://release-v1-0.docs.openservicemesh.io/docs/guides/integrations/external_auth_opa/
+[osm-hashi-vault]: https://release-v1-0.docs.openservicemesh.io/docs/guides/certificates/#using-hashicorp-vault
+[osm-cert-manager]: https://release-v1-0.docs.openservicemesh.io/docs/guides/certificates/#using-cert-manager
+[open-source-integrations]: open-service-mesh-integrations.md#additional-open-source-integrations
+[osm-traffic-management-example]: https://github.com/MicrosoftDocs/azure-docs/pull/81085/files
+[osm-tresor]: https://release-v1-0.docs.openservicemesh.io/docs/guides/certificates/#using-osms-tresor-certificate-issuer
aks Out Of Tree https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/out-of-tree.md
az aks upgrade -n aks -g myResourceGroup -k <version> --aks-custom-headers Enabl
<!-- LINKS - internal -->
-[az-provider-register]: /cli/azure/provider#az_provider_register
-[az-feature-register]: /cli/azure/feature#az_feature_register
-[az-feature-list]: /cli/azure/feature#az_feature_list
+[az-provider-register]: /cli/azure/provider#az-provider-register
+[az-feature-register]: /cli/azure/feature#az-feature-register
+[az-feature-list]: /cli/azure/feature#az-feature-list
[csi-docs]: csi-storage-drivers.md <!-- LINKS - External -->
aks Quickstart Dapr https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/quickstart-dapr.md
After successfully deploying this sample application:
<!-- INTERNAL --> [cluster-extensions]: ./cluster-extensions.md [dapr-overview]: ./dapr.md
-[az-group-delete]: /cli/azure/group#az_group_delete
+[az-group-delete]: /cli/azure/group#az-group-delete
<!-- EXTERNAL --> [hello-world-gh]: https://github.com/dapr/quickstarts/tree/v1.4.0/hello-kubernetes
aks Use Labels https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/use-labels.md
+
+ Title: Use labels in an Azure Kubernetes Service (AKS) cluster
+description: Learn how to use labels in an Azure Kubernetes Service (AKS) cluster.
++++ Last updated : 03/03/2022+
+#Customer intent: As a cluster operator, I want to learn how to use labels in an AKS cluster so that I can set scheduling rules for nodes.
++
+# Use labels in an Azure Kubernetes Service (AKS) cluster
+
+If you have multiple node pools, you may want to add a label during node pool creation. [These labels][kubernetes-labels] are visible in Kubernetes for handling scheduling rules for nodes. You can add labels to a node pool anytime, and they'll be set on all nodes in the node pool.
+
+In this how-to guide, you'll learn how to use labels in an AKS cluster.
+
+## Prerequisites
+
+You need the Azure CLI version 2.2.0 or later installed and configured. Run `az --version` to find the version. If you need to install or upgrade, see [Install Azure CLI][install-azure-cli].
+
+## Create an AKS cluster with a label
+
+To create an AKS cluster with a label, use [az aks create][az-aks-create]. Specify the `--node-labels` parameter to set your labels. Labels must be a key/value pair and have a [valid syntax][kubernetes-label-syntax].
+
+```azurecli-interactive
+az aks create \
+ --resource-group myResourceGroup \
+ --name myAKSCluster \
+ --node-count 2 \
+ --nodepool-labels dept=IT costcenter=9000
+```
+
+Verify the labels were set by running `kubectl get nodes --show-labels`.
+
+```bash
+kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
+```
+
+## Create a node pool with a label
+
+To create a node pool with a label, use [az aks nodepool add][az-aks-nodepool-add]. Specify the name *labelnp* and use the `--labels` parameter to specify *dept=HR* and *costcenter=5000* for labels. Labels must be a key/value pair and have a [valid syntax][kubernetes-label-syntax]
+
+```azurecli-interactive
+az aks nodepool add \
+ --resource-group myResourceGroup \
+ --cluster-name myAKSCluster \
+ --name labelnp \
+ --node-count 1 \
+ --labels dept=HR costcenter=5000 \
+ --no-wait
+```
+
+The following example output from the [az aks nodepool list][az-aks-nodepool-list] command shows that *labelnp* is *Creating* nodes with the specified *nodeLabels*:
+
+```azurecli
+az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster
+
+```output
+[
+ {
+ ...
+ "count": 1,
+ ...
+ "name": "labelnp",
+ "orchestratorVersion": "1.15.7",
+ ...
+ "provisioningState": "Creating",
+ ...
+ "nodeLabels": {
+ "costcenter": "5000",
+ "dept": "HR"
+ },
+ ...
+ },
+ ...
+]
+```
+
+Verify the labels were set by running `kubectl get nodes --show-labels`.
+
+```bash
+kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
+```
+
+## Updating labels on existing node pools
+
+To update a label on existing node pools, use [az aks nodepool update][az-aks-nodepool-update]. Updating labels on existing node pools will overwrite the old labels with the new labels. Labels must be a key/value pair and have a [valid syntax][kubernetes-label-syntax].
+
+```azurecli-interactive
+az aks nodepool update \
+ --resource-group myResourceGroup \
+ --cluster-name myAKSCluster \
+ --name labelnp \
+ --labels dept=ACCT costcenter=6000 \
+ --no-wait
+```
+
+Verify the labels were set by running `kubectl get nodes --show-labels`.
+
+```bash
+kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
+```
+
+## Unavailable labels
+
+### Reserved system labels
+
+Since the [2021-08-19 AKS release][aks-release-2021-gh], Azure Kubernetes Service (AKS) has stopped the ability to make changes to AKS reserved labels. Attempting to change these labels will result in an error message.
+
+The following labels are reserved for use by AKS. *Virtual node usage* specifies if these labels could be a supported system feature on virtual nodes.
+
+Some properties that these system features change aren't available on the virtual nodes, because they require modifying the host.
+
+| Label | Value | Example/Options | Virtual node usage |
+| - | | | |
+| kubernetes.azure.com/agentpool | \<agent pool name> | nodepool1 | Same |
+| kubernetes.io/arch | amd64 | runtime.GOARCH | N/A |
+| kubernetes.io/os | \<OS Type> | Linux/Windows | Same |
+| node.kubernetes.io/instance-type | \<VM size> | Standard_NC6 | Virtual |
+| topology.kubernetes.io/region | \<Azure region> | westus2 | Same |
+| topology.kubernetes.io/zone | \<Azure zone> | 0 | Same |
+| kubernetes.azure.com/cluster | \<MC_RgName> | MC_aks_myAKSCluster_westus2 | Same |
+| kubernetes.azure.com/mode | \<mode> | User or system | User |
+| kubernetes.azure.com/role | agent | Agent | Same |
+| kubernetes.azure.com/scalesetpriority | \<VMSS priority> | Spot or regular | N/A |
+| kubernetes.io/hostname | \<hostname> | aks-nodepool-00000000-vmss000000 | Same |
+| kubernetes.azure.com/storageprofile | \<OS disk storage profile> | Managed | N/A |
+| kubernetes.azure.com/storagetier | \<OS disk storage tier> | Premium_LRS | N/A |
+| kubernetes.azure.com/instance-sku | \<SKU family> | Standard_N | Virtual |
+| kubernetes.azure.com/node-image-version | \<VHD version> | AKSUbuntu-1804-2020.03.05 | Virtual node version |
+| kubernetes.azure.com/subnet | \<nodepool subnet name> | subnetName | Virtual node subnet name |
+| kubernetes.azure.com/vnet | \<nodepool vnet name> | vnetName | Virtual node virtual network |
+| kubernetes.azure.com/ppg | \<nodepool ppg name> | ppgName | N/A |
+| kubernetes.azure.com/encrypted-set | \<nodepool encrypted-set name> | encrypted-set-name | N/A |
+| kubernetes.azure.com/accelerator | \<accelerator> | nvidia | N/A |
+| kubernetes.azure.com/fips_enabled | \<is fips enabled?> | true | N/A |
+| kubernetes.azure.com/os-sku | \<os/sku> | [Create or update OS SKU][create-or-update-os-sku] | Linux |
+
+* *Same* is included in places where the expected values for the labels don't differ between a standard node pool and a virtual node pool. As virtual node pods don't expose any underlying virtual machine (VM), the VM SKU values are replaced with the SKU *Virtual*.
+* *Virtual node version* refers to the current version of the [virtual Kubelet-ACI connector release][virtual-kubelet-release].
+* *Virtual node subnet name* is the name of the subnet where virtual node pods are deployed into Azure Container Instance (ACI).
+* *Virtual node virtual network* is the name of the virtual network, which contains the subnet where virtual node pods are deployed on ACI.
+
+### Reserved prefixes
+
+The following list of prefixes are reserved for usage by AKS and can't be used for any node.
+
+* kubernetes.azure.com/
+* kubernetes.io/
+
+For additional reserved prefixes, see [Kubernetes well-known labels, annotations, and taints][kubernetes-well-known-labels].
+
+### Deprecated labels
+
+The following labels are planned for deprecation with the release of [Kubernetes v1.24][aks-release-calendar]. Customers should change any label references to the recommended substitute.
+
+| Label | Recommended substitute | Maintainer |
+| | | |
+| failure-domain.beta.kubernetes.io/region | topology.kubernetes.io/region | [Kubernetes][kubernetes-labels]
+| failure-domain.beta.kubernetes.io/zone | topology.kubernetes.io/zone | [Kubernetes][kubernetes-labels]
+| beta.kubernetes.io/arch | kubernetes.io/arch | [Kubernetes][kubernetes-labels]
+| beta.kubernetes.io/instance-type | node.kubernetes.io/instance-type | [Kubernetes][kubernetes-labels]
+| beta.kubernetes.io/os | kubernetes.io/os | [Kubernetes][kubernetes-labels]
+| node-role.kubernetes.io/agent* | kubernetes.azure.com/role=agent | Azure Kubernetes Service
+| kubernetes.io/role* | kubernetes.azure.com/role=agent | Azure Kubernetes Service
+| Agentpool* | kubernetes.azure.com/agentpool | Azure Kubernetes Service
+| Storageprofile* | kubernetes.azure.com/storageprofile | Azure Kubernetes Service
+| Storagetier* | kubernetes.azure.com/storagetier | Azure Kubernetes Service
+| Accelerator* | kubernetes.azure.com/accelerator | Azure Kubernetes Service
+
+*Newly deprecated. For more information, see [Release Notes][aks-release-notes-gh] on when these labels will no longer be maintained.
+
+## Next steps
+
+Learn more about Kubernetes labels at the [Kubernetes labels documentation][kubernetes-labels].
+
+<!-- LINKS - external -->
+[aks-release-2021-gh]: https://github.com/Azure/AKS/releases/tag/2021-08-19
+[aks-release-notes-gh]: https://github.com/Azure/AKS/releases
+[kubernetes-labels]: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
+[kubernetes-label-syntax]: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set
+[kubernetes-well-known-labels]: https://kubernetes.io/docs/reference/labels-annotations-taints/
+[virtual-kubelet-release]: https://github.com/virtual-kubelet/azure-aci/releases
+
+<!-- LINKS - internal -->
+[aks-release-calendar]: ./supported-kubernetes-versions.md#aks-kubernetes-release-calendar
+[az-aks-create]: /cli/azure/aks#az-aks-create
+[az-aks-nodepool-add]: /cli/azure/aks#az-aks-nodepool-add
+[az-aks-nodepool-list]: /cli/azure/aks/nodepool#az-aks-nodepool-list
+[az-aks-nodepool-update]: /cli/azure/aks/nodepool#az-aks-nodepool-update
+[create-or-update-os-sku]: /rest/api/aks/agent-pools/create-or-update#ossku
+[install-azure-cli]: /cli/azure/install-azure-cli
api-management Api Management Access Restriction Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-access-restriction-policies.md
Title: Azure API Management access restriction policies | Microsoft Docs
-description: Learn about the access restriction policies available for use in Azure API Management.
+description: Reference for the access restriction policies available for use in Azure API Management. Provides policy usage, settings, and examples.
documentationcenter: '' - Previously updated : 02/02/2022+ Last updated : 03/04/2022 # API Management access restriction policies
-This topic provides a reference for the following API Management policies. For information on adding and configuring policies, see [Policies in API Management](./api-management-policies.md).
+This article provides a reference for API Management access restriction policies.
+ ## <a name="AccessRestrictionPolicies"></a> Access restriction policies -- [Check HTTP header](#CheckHTTPHeader) - Enforces existence and/or value of a HTTP header.
+- [Check HTTP header](#CheckHTTPHeader) - Enforces existence and/or value of an HTTP header.
- [Limit call rate by subscription](#LimitCallRate) - Prevents API usage spikes by limiting call rate, on a per subscription basis. - [Limit call rate by key](#LimitCallRateByKey) - Prevents API usage spikes by limiting call rate, on a per key basis. - [Restrict caller IPs](#RestrictCallerIPs) - Filters (allows/denies) calls from specific IP addresses and/or address ranges.
This topic provides a reference for the following API Management policies. For i
Use the `check-header` policy to enforce that a request has a specified HTTP header. You can optionally check to see if the header has a specific value or check for a range of allowed values. If the check fails, the policy terminates request processing and returns the HTTP status code and error message specified by the policy. + ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `rate-limit` policy prevents API usage spikes on a per subscription basis by limiting the call rate to a specified number per a specified time period. When the call rate is exceeded, the caller receives a `429 Too Many Requests` response status code.
+To understand the difference between rate limits and quotas, [see Rate limits and quotas.](./api-management-sample-flexible-throttling.md#rate-limits-and-quotas)
+ > [!IMPORTANT]
-> This policy can be used only once per policy document.
->
-> [Policy expressions](api-management-policy-expressions.md) cannot be used in any of the policy attributes for this policy.
+> * This policy can be used only once per policy document.
+> * [Policy expressions](api-management-policy-expressions.md) cannot be used in any of the policy attributes for this policy.
> [!CAUTION]
-> Due to the distributed nature of throttling architecture, rate limiting is never completely accurate. The difference between configured and the real number of allowed requests vary based on request volume and rate, backend latency, and other factors.
+> Due to the distributed nature of throttling architecture, rate limiting is never completely accurate. The difference between configured and the real number of allowed requests varyies based on request volume and rate, backend latency, and other factors.
-> [!NOTE]
-> To understand the difference between rate limits and quotas, [see Rate limits and quotas.](./api-management-sample-flexible-throttling.md#rate-limits-and-quotas)
### Policy statement
This policy can be used in the following policy [sections](./api-management-howt
The `rate-limit-by-key` policy prevents API usage spikes on a per key basis by limiting the call rate to a specified number per a specified time period. The key can have an arbitrary string value and is typically provided using a policy expression. Optional increment condition can be added to specify which requests should be counted towards the limit. When this call rate is exceeded, the caller receives a `429 Too Many Requests` response status code.
+To understand the difference between rate limits and quotas, [see Rate limits and quotas.](./api-management-sample-flexible-throttling.md#rate-limits-and-quotas)
+ For more information and examples of this policy, see [Advanced request throttling with Azure API Management](./api-management-sample-flexible-throttling.md). > [!CAUTION] > Due to the distributed nature of throttling architecture, rate limiting is never completely accurate. The difference between configured and the real number of allowed requests vary based on request volume and rate, backend latency, and other factors.
-> [!NOTE]
-> To understand the difference between rate limits and quotas, [see Rate limits and quotas.](./api-management-sample-flexible-throttling.md#rate-limits-and-quotas)
### Policy statement
This policy can be used in the following policy [sections](./api-management-howt
The `ip-filter` policy filters (allows/denies) calls from specific IP addresses and/or address ranges. + ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `quota` policy enforces a renewable or lifetime call volume and/or bandwidth quota, on a per subscription basis.
+To understand the difference between rate limits and quotas, [see Rate limits and quotas.](./api-management-sample-flexible-throttling.md#rate-limits-and-quotas)
+ > [!IMPORTANT]
-> This policy can be used only once per policy document.
->
-> [Policy expressions](api-management-policy-expressions.md) cannot be used in any of the policy attributes for this policy.
+> * This policy can be used only once per policy document.
+> * [Policy expressions](api-management-policy-expressions.md) cannot be used in any of the policy attributes for this policy.
-> [!NOTE]
-> To understand the difference between rate limits and quotas, [see Rate limits and quotas.](./api-management-sample-flexible-throttling.md#rate-limits-and-quotas)
### Policy statement
The `quota-by-key` policy enforces a renewable or lifetime call volume and/or ba
For more information and examples of this policy, see [Advanced request throttling with Azure API Management](./api-management-sample-flexible-throttling.md).
-> [!NOTE]
-> To understand the difference between rate limits and quotas, [see Rate limits and quotas.](./api-management-sample-flexible-throttling.md#rate-limits-and-quotas)
+To understand the difference between rate limits and quotas, [see Rate limits and quotas.](./api-management-sample-flexible-throttling.md#rate-limits-and-quotas)
++ ### Policy statement
The `validate-jwt` policy enforces existence and validity of a JSON web token (J
> The `validate-jwt` policy supports HS256 and RS256 signing algorithms. For HS256 the key must be provided inline within the policy in the base64 encoded form. For RS256 the key may be provided either via an Open ID configuration endpoint, or by providing the ID of an uploaded certificate that contains the public key or modulus-exponent pair of the public key. > The `validate-jwt` policy supports tokens encrypted with symmetric keys using the following encryption algorithms: A128CBC-HS256, A192CBC-HS384, A256CBC-HS512. ++ ### Policy statement ```xml
Use this policy to check incoming certificate properties against desired propert
* If you have uploaded custom CA certificates to validate client requests to the managed gateway * If you configured custom certificate authorities to validate client requests to a self-managed gateway
-For more information about custom CA certificates and certificate authorities, see [How to add a custom CA certificate in Azure API Management](api-management-howto-ca-certificates.md).
+For more information about custom CA certificates and certificate authorities, see [How to add a custom CA certificate in Azure API Management](api-management-howto-ca-certificates.md).
+
### Policy statement
This policy can be used in the following policy [sections](./api-management-howt
- **Policy sections:** inbound - **Policy scopes:** all scopes
-## Next steps
-
-For more information working with policies, see:
--- [Policies in API Management](api-management-howto-policies.md)-- [Transform APIs](transform-api.md)-- [Policy Reference](./api-management-policies.md) for a full list of policy statements and their settings-- [Policy samples](./policy-reference.md)
api-management Api Management Advanced Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-advanced-policies.md
Title: Azure API Management advanced policies | Microsoft Docs
-description: Learn about the advanced policies available for use in Azure API Management. See examples and view additional available resources.
+description: Reference for the advanced policies available for use in Azure API Management. Provides policy usage, settings and examples.
- Previously updated : 07/19/2021+ Last updated : 03/07/2022 # API Management advanced policies
-This topic provides a reference for the following API Management policies. For information on adding and configuring policies, see [Policies in API Management](./api-management-policies.md).
+This article provides a reference for advanced API Management policies, such as those that are based on policy expressions.
+ ## <a name="AdvancedPolicies"></a> Advanced policies - [Control flow](api-management-advanced-policies.md#choose) - Conditionally applies policy statements based on the results of the evaluation of Boolean [expressions](api-management-policy-expressions.md). - [Forward request](#ForwardRequest) - Forwards the request to the backend service. - [Limit concurrency](#LimitConcurrency) - Prevents enclosed policies from executing by more than the specified number of requests at a time.-- [Log to Event Hub](#log-to-eventhub) - Sends messages in the specified format to an Event Hub defined by a Logger entity.
+- [Log to event hub](#log-to-eventhub) - Sends messages in the specified format to an event hub defined by a Logger entity.
- [Emit metrics](#emit-metrics) - Sends custom metrics to Application Insights at execution. - [Mock response](#mock-response) - Aborts pipeline execution and returns a mocked response directly to the caller. - [Retry](#Retry) - Retries execution of the enclosed policy statements, if and until the condition is met. Execution will repeat at the specified time intervals and up to the specified retry count.
This topic provides a reference for the following API Management policies. For i
The `choose` policy applies enclosed policy statements based on the outcome of evaluation of Boolean expressions, similar to an if-then-else or a switch construct in a programming language. + ### <a name="ChoosePolicyStatement"></a> Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `forward-request` policy forwards the incoming request to the backend service specified in the request [context](api-management-policy-expressions.md#ContextVariables). The backend service URL is specified in the API [settings](./import-and-publish.md) and can be changed using the [set backend service](api-management-transformation-policies.md) policy.
-> [!NOTE]
-> Removing this policy results in the request not being forwarded to the backend service and the policies in the outbound section are evaluated immediately upon the successful completion of the policies in the inbound section.
+> [!IMPORTANT]
+> * This policy is required to forward requests to an API backend. By default, API Management sets up this policy at the global scope.
+> * Removing this policy results in the request not being forwarded to the backend service. Policies in the outbound section are evaluated immediately upon the successful completion of the policies in the inbound section.
+ ### Policy statement
This operation level policy uses the `base` element to inherit the backend polic
#### Example
-This operation level policy explicitly forwards all requests to the backend service with a timeout of 120 and does not inherit the parent API level backend policy. If the backend service responds with a error status code from 400 to 599 inclusive, [on-error](api-management-error-handling-policies.md) section will be triggered.
+This operation level policy explicitly forwards all requests to the backend service with a timeout of 120 and does not inherit the parent API level backend policy. If the backend service responds with an error status code from 400 to 599 inclusive, [on-error](api-management-error-handling-policies.md) section will be triggered.
```xml <!-- operation level -->
This operation level policy does not forward requests to the backend service.
| | -- | -- | - | | timeout="integer" | The amount of time in seconds to wait for the HTTP response headers to be returned by the backend service before a timeout error is raised. Minimum value is 0 seconds. Values greater than 240 seconds may not be honored as the underlying network infrastructure can drop idle connections after this time. | No | None | | follow-redirects="false &#124; true" | Specifies whether redirects from the backend service are followed by the gateway or returned to the caller. | No | false |
-| buffer-request-body="false &#124; true" | When set to "true" request is buffered and will be reused on [retry](api-management-advanced-policies.md#Retry). | No | false |
-| buffer-response="false &#124; true" | Affects processing of chunked responses. When set to "false", each chunk received from the backend is immediately returned to the caller. When set to "true", chunks are buffered (8KB, unless end of stream is detected) and only then returned to the caller.<br/><br/>Set to "false" with backends such as those implementing [server-sent events (SSE)](how-to-server-sent-events.md) that require content to be returned or streamed immediately to the caller. | No | true |
-| fail-on-error-status-code="false &#124; true" | When set to true triggers [on-error](api-management-error-handling-policies.md) section for response codes in the range from 400 to 599 inclusive. | No | false |
+| buffer-request-body="false &#124; true" | When set to "true", request is buffered and will be reused on [retry](api-management-advanced-policies.md#Retry). | No | false |
+| buffer-response="false &#124; true" | Affects processing of chunked responses. When set to "false", each chunk received from the backend is immediately returned to the caller. When set to "true", chunks are buffered (8 KB, unless end of stream is detected) and only then returned to the caller.<br/><br/>Set to "false" with backends such as those implementing [server-sent events (SSE)](how-to-server-sent-events.md) that require content to be returned or streamed immediately to the caller. | No | true |
+| fail-on-error-status-code="false &#124; true" | When set to true, triggers [on-error](api-management-error-handling-policies.md) section for response codes in the range from 400 to 599 inclusive. | No | false |
### Usage
This policy can be used in the following policy [sections](./api-management-howt
## <a name="LimitConcurrency"></a> Limit concurrency
-The `limit-concurrency` policy prevents enclosed policies from executing by more than the specified number of requests at any time. Upon exceeding that number, new requests will fail immediately with 429 Too Many Requests status code.
+The `limit-concurrency` policy prevents enclosed policies from executing by more than the specified number of requests at any time. When that number is exceeded, new requests will fail immediately with the `429` Too Many Requests status code.
+ ### <a name="LimitConcurrencyStatement"></a> Policy statement
This policy can be used in the following policy [sections](./api-management-howt
- **Policy scopes:** all scopes
-## <a name="log-to-eventhub"></a> Log to Event Hub
+## <a name="log-to-eventhub"></a> Log to event hub
-The `log-to-eventhub` policy sends messages in the specified format to an Event Hub defined by a Logger entity. As its name implies, the policy is used for saving selected request or response context information for online or offline analysis.
+The `log-to-eventhub` policy sends messages in the specified format to an event hub defined by a Logger entity. As its name implies, the policy is used for saving selected request or response context information for online or offline analysis.
> [!NOTE] > For a step-by-step guide on configuring an event hub and logging events, see [How to log API Management events with Azure Event Hubs](./api-management-howto-log-event-hubs.md). ++ ### Policy statement ```xml
The `emit-metric` policy sends custom metrics in the specified format to Applica
> * Custom metrics are a [preview feature](../azure-monitor/essentials/metrics-custom-overview.md) of Azure Monitor and subject to [limitations](../azure-monitor/essentials/metrics-custom-overview.md#design-limitations-and-considerations). > * For more information about the API Management data added to Application Insights, see [How to integrate Azure API Management with Azure Application Insights](./api-management-howto-app-insights.md#what-data-is-added-to-application-insights). + ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `mock-response`, as the name implies, is used to mock APIs and operations. It aborts normal pipeline execution and returns a mocked response to the caller. The policy always tries to return responses of highest fidelity. It prefers response content examples, whenever available. It generates sample responses from schemas, when schemas are provided and examples are not. If neither examples or schemas are found, responses with no content are returned. ++ ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `retry` policy executes its child policies once and then retries their execution until the retry `condition` becomes `false` or retry `count` is exhausted. ++ ### Policy statement ```xml
In the following example, request forwarding is retried up to ten times using an
### Usage
-This policy can be used in the following policy [sections](./api-management-howto-policies.md#sections) and [scopes](./api-management-howto-policies.md#scopes) . Note that child policy usage restrictions will be inherited by this policy.
+This policy can be used in the following policy [sections](./api-management-howto-policies.md#sections) and [scopes](./api-management-howto-policies.md#scopes). Child policy usage restrictions will be inherited by this policy.
- **Policy sections:** inbound, outbound, backend, on-error
This policy can be used in the following policy [sections](./api-management-howt
The `return-response` policy aborts pipeline execution and returns either a default or custom response to the caller. Default response is `200 OK` with no body. Custom response can be specified via a context variable or policy statements. When both are provided, the response contained within the context variable is modified by the policy statements before being returned to the caller. ++ ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `send-one-way-request` policy sends the provided request to the specified URL without waiting for a response. ++ ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `send-request` policy sends the provided request to the specified URL, waiting no longer than the set timeout value. ++ ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `proxy` policy allows you to route requests forwarded to backends via an HTTP proxy. Only HTTP (not HTTPS) is supported between the gateway and the proxy. Basic and NTLM authentication only. ++ ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `set-method` policy allows you to change the HTTP request method for a request. ++ ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `set-status` policy sets the HTTP status code to the specified value. ++ ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `set-variable` policy declares a [context](api-management-policy-expressions.md#ContextVariables) variable and assigns it a value specified via an [expression](api-management-policy-expressions.md) or a string literal. if the expression contains a literal it will be converted to a string and the type of the value will be `System.String`. ++ ### <a name="set-variablePolicyStatement"></a> Policy statement ```xml
The `trace` policy adds a custom trace into the API Inspector output, Applicatio
- The policy creates a [Trace](../azure-monitor/app/data-model-trace-telemetry.md) telemetry in Application Insights, when [Application Insights integration](./api-management-howto-app-insights.md) is enabled and the `severity` specified in the policy is equal to or greater than the `verbosity` specified in the diagnostic setting. - The policy adds a property in the log entry when [Resource Logs](./api-management-howto-use-azure-monitor.md#activity-logs) is enabled and the severity level specified in the policy is at or higher than the verbosity level specified in the diagnostic setting. ++ ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `wait` policy executes its immediate child policies in parallel, and waits for either all or one of its immediate child policies to complete before it completes. The wait policy can have as its immediate child policies [Send request](api-management-advanced-policies.md#SendRequest), [Get value from cache](api-management-caching-policies.md#GetFromCacheByKey), and [Control flow](api-management-advanced-policies.md#choose) policies. ++ ### Policy statement ```xml
The `wait` policy executes its immediate child policies in parallel, and waits f
### Example
-In the following example there are two `choose` policies as immediate child policies of the `wait` policy. Each of these `choose` policies executes in parallel. Each `choose` policy attempts to retrieve a cached value. If there is a cache miss, a backend service is called to provide the value. In this example the `wait` policy does not complete until all of its immediate child policies complete, because the `for` attribute is set to `all`. In this example the context variables (`execute-branch-one`, `value-one`, `execute-branch-two`, and `value-two`) are declared outside of the scope of this example policy.
+In the following example, there are two `choose` policies as immediate child policies of the `wait` policy. Each of these `choose` policies executes in parallel. Each `choose` policy attempts to retrieve a cached value. If there is a cache miss, a backend service is called to provide the value. In this example the `wait` policy does not complete until all of its immediate child policies complete, because the `for` attribute is set to `all`. In this example the context variables (`execute-branch-one`, `value-one`, `execute-branch-two`, and `value-two`) are declared outside of the scope of this example policy.
```xml <wait for="all">
This policy can be used in the following policy [sections](./api-management-howt
- **Policy sections:** inbound, outbound, backend - **Policy scopes:** all scopes
-## Next steps
-
-For more information working with policies, see:
--- [Policies in API Management](api-management-howto-policies.md)-- [Policy expressions](api-management-policy-expressions.md)-- [Policy Reference](./api-management-policies.md) for a full list of policy statements and their settings-- [Policy samples](./policy-reference.md)
api-management Api Management Api Import Restrictions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-api-import-restrictions.md
You can create [SOAP pass-through](import-soap-api.md) and [SOAP-to-REST](restif
- Only SOAP bindings of "document" and ΓÇ£literalΓÇ¥ encoding style are supported. - No support for ΓÇ£rpcΓÇ¥ style or SOAP-Encoding.
-### Unsupported directives
-`wsdl:import`, `xsd:import`, and `xsd:include` aren't supported. Instead, merge the dependencies into one document.
+### Imports and includes
+* The `wsdl:import`, `xsd:import`, and `xsd:include` directives aren't supported. Instead, merge the dependencies into one document.
-For an open-source tool to resolve and merge `wsdl:import`, `xsd:import`, and `xsd:include` dependencies in a WSDL file, see this [GitHub repo](https://github.com/Azure-Samples/api-management-schema-import).
+* For an open-source tool to resolve and merge `wsdl:import`, `xsd:import`, and `xsd:include` dependencies in a WSDL file, see this [GitHub repo](https://github.com/Azure-Samples/api-management-schema-import).
### Messages with multiple parts This message type is not supported.
api-management Api Management Authentication Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-authentication-policies.md
Title: Azure API Management authentication policies | Microsoft Docs
-description: Learn about the authentication policies available for use in Azure API Management.
+description: Reference for the authentication policies available for use in Azure API Management. Provides policy usage, settings, and examples.
documentationcenter: '' - -- Previously updated : 01/27/2021+ Last updated : 03/07/2022 # API Management authentication policies
-This topic provides a reference for the following API Management policies. For information on adding and configuring policies, see [Policies in API Management](./api-management-policies.md).
+
+This article provides a reference for API Management policies used for authentication with API backends.
+ ## <a name="AuthenticationPolicies"></a> Authentication policies
This topic provides a reference for the following API Management policies. For i
## <a name="Basic"></a> Authenticate with Basic Use the `authentication-basic` policy to authenticate with a backend service using Basic authentication. This policy effectively sets the HTTP Authorization header to the value corresponding to the credentials provided in the policy. ++ ### Policy statement ```xml
This topic provides a reference for the following API Management policies. For i
> [!CAUTION] > If the certificate references a certificate stored in Azure Key Vault, identify it using the certificate ID. When a key vault certificate is rotated, its thumbprint in API Management will change, and the policy will not resolve the new certificate if it is identified by thumbprint. ++ ### Policy statement ```xml
In this example, the client certificate is set in the policy rather than retriev
## <a name="ManagedIdentity"></a> Authenticate with managed identity Use the `authentication-managed-identity` policy to authenticate with a backend service using the managed identity. This policy essentially uses the managed identity to obtain an access token from Azure Active Directory for accessing the specified resource. After successfully obtaining the token, the policy will set the value of the token in the `Authorization` header using the `Bearer` scheme.
-Both system-assigned identity and any of the multiple user-assigned identity can be used to request token. If `client-id` is not provided system-assigned identity is assumed. If the `client-id` variable is provided token is requested for that user-assigned identity from Azure Active Directory
+Both system-assigned identity and any of the multiple user-assigned identities can be used to request a token. If `client-id` is not provided, system-assigned identity is assumed. If the `client-id` variable is provided, token is requested for that user-assigned identity from Azure Active Directory.
++ ### Policy statement
Both system-assigned identity and any of the multiple user-assigned identity can
- **Policy scopes:** all scopes
-## Next steps
-For more information working with policies, see:
-
-+ [Policies in API Management](api-management-howto-policies.md)
-+ [Transform APIs](transform-api.md)
-+ [Policy Reference](./api-management-policies.md) for a full list of policy statements and their settings
-+ [Policy samples](./policy-reference.md)
api-management Api Management Caching Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-caching-policies.md
Title: Azure API Management caching policies | Microsoft Docs
-description: Learn about the caching policies available for use in Azure API Management. See examples and view additional available resources.
+description: Reference for the caching policies available for use in Azure API Management. Provides policy usage, settings, and examples.
- Previously updated : 03/08/2021+ Last updated : 03/07/2022 + # API Management caching policies
-This article provides a reference for the following API Management policies. For information on adding and configuring policies, see [Policies in API Management](./api-management-policies.md).
+This article provides a reference for API Management policies used for caching responses.
++ > [!IMPORTANT] > Built-in cache is volatile and is shared by all units in the same region in the same API Management service.
This article provides a reference for the following API Management policies. For
## <a name="CachingPolicies"></a> Caching policies - Response caching policies
- - [Get from cache](#GetFromCache) - Perform cache look up and return a valid cached responses when available.
+ - [Get from cache](#GetFromCache) - Perform cache lookup and return a valid cached response when available.
- [Store to cache](#StoreToCache) - Caches responses according to the specified cache control configuration. - Value caching policies - [Get value from cache](#GetFromCacheByKey) - Retrieve a cached item by key.
This article provides a reference for the following API Management policies. For
- [Remove value from cache](#RemoveCacheByKey) - Remove an item in the cache by key. ## <a name="GetFromCache"></a> Get from cache
-Use the `cache-lookup` policy to perform cache look up and return a valid cached response when available. This policy can be applied in cases where response content remains static over a period of time. Response caching reduces bandwidth and processing requirements imposed on the backend web server and lowers latency perceived by API consumers.
+Use the `cache-lookup` policy to perform cache lookup and return a valid cached response when available. This policy can be applied in cases where response content remains static over a period of time. Response caching reduces bandwidth and processing requirements imposed on the backend web server and lowers latency perceived by API consumers.
> [!NOTE] > This policy must have a corresponding [Store to cache](#StoreToCache) policy. + ### Policy statement ```xml
The `cache-store` policy caches responses according to the specified cache setti
> [!NOTE] > This policy must have a corresponding [Get from cache](api-management-caching-policies.md#GetFromCache) policy. + ### Policy statement ```xml
Use the `cache-lookup-value` policy to perform cache lookup by key and return a
> [!NOTE] > This policy must have a corresponding [Store value in cache](#StoreToCacheByKey) policy. + ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
The `cache-store-value` performs cache storage by key. The key can have an arbitrary string value and is typically provided using a policy expression. > [!NOTE]
-> The operation of storing the value in cache performed by this policy is asynchronous. The stored value can be retrieved using [Get value from cache](#GetFromCacheByKey) policy. However, the stored value may not be immediately available for retrieval since the asynchronous operation that stores the value in cache may still be in progress.
+> The operation of storing the value in cache performed by this policy is asynchronous. The stored value can be retrieved using [Get value from cache](#GetFromCacheByKey) policy. However, the stored value may not be immediately available for retrieval since the asynchronous operation that stores the value in cache may still be in progress.
+ ### Policy statement
This policy can be used in the following policy [sections](./api-management-howt
## <a name="RemoveCacheByKey"></a> Remove value from cache The `cache-remove-value` deletes a cached item identified by its key. The key can have an arbitrary string value and is typically provided using a policy expression. + #### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
- **Policy sections:** inbound, outbound, backend, on-error - **Policy scopes:** all scopes
-## Next steps
-
-For more information working with policies, see:
-
-+ [Policies in API Management](api-management-howto-policies.md)
-+ [Transform APIs](transform-api.md)
-+ [Policy Reference](./api-management-policies.md) for a full list of policy statements and their settings
-+ [Policy samples](./policy-reference.md)
api-management Api Management Cross Domain Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-cross-domain-policies.md
Title: Azure API Management cross domain policies | Microsoft Docs
-description: Learn about the cross domain policies available for use in Azure API Management.
+description: Reference for the cross domain policies available for use in Azure API Management. Provides policy usage, settings, and examples.
- -- Previously updated : 03/01/2021+ Last updated : 03/07/2022 # API Management cross domain policies
-This topic provides a reference for the following API Management policies. For information on adding and configuring policies, see [Policies in API Management](./api-management-policies.md).
+This article provides a reference for API Management policies used to enable cross domain calls from different clients.
+ ## <a name="CrossDomainPolicies"></a> Cross domain policies
This topic provides a reference for the following API Management policies. For i
## <a name="AllowCrossDomainCalls"></a> Allow cross-domain calls Use the `cross-domain` policy to make the API accessible from Adobe Flash and Microsoft Silverlight browser-based clients. ++ ### Policy statement ```xml
CORS allows a browser and a server to interact and determine whether or not to a
You need to apply the CORS policy to enable the interactive console in the developer portal. Refer to the [developer portal documentation](./developer-portal-faq.md#cors) for details. + ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
## <a name="JSONP"></a> JSONP The `jsonp` policy adds JSON with padding (JSONP) support to an operation or an API to allow cross-domain calls from JavaScript browser-based clients. JSONP is a method used in JavaScript programs to request data from a server in a different domain. JSONP bypasses the limitation enforced by most web browsers where access to web pages must be in the same domain. + ### Policy statement ```xml
The `jsonp` policy adds JSON with padding (JSONP) support to an operation or an
<jsonp callback-parameter-name="cb" /> ```
-If you call the method without the callback parameter ?cb=XXX it will return plain JSON (without a function call wrapper).
+If you call the method without the callback parameter `?cb=XXX`, it will return plain JSON (without a function call wrapper).
-If you add the callback parameter `?cb=XXX` it will return a JSONP result, wrapping the original JSON results around the callback function like `XYZ('<json result goes here>');`
+If you add the callback parameter `?cb=XXX`, it will return a JSONP result, wrapping the original JSON results around the callback function like `XYZ('<json result goes here>');`
### Elements
This policy can be used in the following policy [sections](./api-management-howt
- **Policy sections:** outbound - **Policy scopes:** all scopes
-## Next steps
-
-For more information working with policies, see:
-
-+ [Policies in API Management](api-management-howto-policies.md)
-+ [Transform APIs](transform-api.md)
-+ [Policy Reference](./api-management-policies.md) for a full list of policy statements and their settings
-+ [Policy samples](./policy-reference.md)
api-management Api Management Dapr Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-dapr-policies.md
Title: Azure API Management Dapr integration policies | Microsoft Docs
-description: Learn about Azure API Management policies for interacting with Dapr microservices extensions.
+description: Reference for Azure API Management policies for interacting with Dapr microservices extensions. Provides policy usage, settings and examples.
Previously updated : 02/18/2021- Last updated : 03/07/2022+ # API Management Dapr integration policies
-This topic provides a reference for Dapr integration API Management policies. Dapr is a portable runtime for building stateless and stateful microservices-based applications with any language or framework. It codifies the common microservice patterns, like service discovery and invocation with build-in retry logic, publish-and-subscribe with at-least-once delivery semantics, or pluggable binding resources to ease composition using external services. Go to [dapr.io](https://dapr.io) for detailed information and instruction on how to get started with Dapr. For information on adding and configuring policies, see [Policies in API Management](api-management-howto-policies.md).
+This article provides a reference for API Management policies used for integrating with Distributed Application Runtime (Dapr) microservices extensions.
++
+## About Dapr
+
+Dapr is a portable runtime for building stateless and stateful microservices-based applications with any language or framework. It codifies the common microservice patterns, like service discovery and invocation with build-in retry logic, publish-and-subscribe with at-least-once delivery semantics, or pluggable binding resources to ease composition using external services. Go to [dapr.io](https://dapr.io) for detailed information and instruction on how to get started with Dapr.
> [!IMPORTANT] > Policies referenced in this topic work only in the [self-hosted version of the API Management gateway](self-hosted-gateway-overview.md) with Dapr support enabled.
This policy sets the target URL for the current request to `http://localhost:350
The policy assumes that Dapr runs in a sidecar container in the same pod as the gateway. Upon receiving the request, Dapr runtime performs service discovery and actual invocation, including possible protocol translation between HTTP and gRPC, retries, distributed tracing, and error handling. + ### Policy statement ```xml
This policy instructs API Management gateway to send a message to a Dapr Publish
The policy assumes that Dapr runtime is running in a sidecar container in the same pod as the gateway. Dapr runtime implements the Pub/Sub semantics. + ### Policy statement ```xml
This policy instructs API Management gateway to trigger an outbound Dapr [bindin
The policy assumes that Dapr runtime is running in a sidecar container in the same pod as the gateway. Dapr runtime is responsible for invoking the external resource represented by the binding. + ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
- **Policy sections:** inbound, outbound, on-error - **Policy scopes:** all scopes++
api-management Api Management Get Started Publish Versions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-get-started-publish-versions.md
You can interact directly with version sets by using the Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../includes/azure-cli-prepare-your-environment-no-header.md)]
-To see all your version sets, run the [az apim api versionset list](/cli/azure/apim/api/versionset#az_apim_api_versionset_list) command:
+To see all your version sets, run the [az apim api versionset list](/cli/azure/apim/api/versionset#az-apim-api-versionset-list) command:
```azurecli az apim api versionset list --resource-group apim-hello-world-resource-group \
az apim api versionset list --resource-group apim-hello-world-resource-group \
When the Azure portal creates a version set for you, it assigns an alphanumeric name, which appears in the **Name** column of the list. Use this name in other Azure CLI commands.
-To see details about a version set, run the [az apim api versionset show](/cli/azure/apim/api/versionset#az_apim_api_versionset_show) command:
+To see details about a version set, run the [az apim api versionset show](/cli/azure/apim/api/versionset#az-apim-api-versionset-show) command:
```azurecli az apim api versionset show --resource-group apim-hello-world-resource-group \
api-management Api Management Get Started Revise Api https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-get-started-revise-api.md
To begin using Azure CLI:
Use this procedure to create and update a release.
-1. Run the [az apim api list](/cli/azure/apim/api#az_apim_api_list) command to see your API IDs:
+1. Run the [az apim api list](/cli/azure/apim/api#az-apim-api-list) command to see your API IDs:
```azurecli az apim api list --resource-group apim-hello-word-resource-group \
Use this procedure to create and update a release.
The API ID to use in the next command is the `Name` value. The API revision is in the `ApiRevision` column.
-1. To create the release, with a release note, run the [az apim api release create](/cli/azure/apim/api/release#az_apim_api_release_create) command:
+1. To create the release, with a release note, run the [az apim api release create](/cli/azure/apim/api/release#az-apim-api-release-create) command:
```azurecli az apim api release create --resource-group apim-hello-word-resource-group \
Use this procedure to create and update a release.
The revision that you release becomes the current revision.
-1. To see your releases, use the [az apim api release list](/cli/azure/apim/api/release#az_apim_api_release_list) command:
+1. To see your releases, use the [az apim api release list](/cli/azure/apim/api/release#az-apim-api-release-list) command:
```azurecli az apim api release list --resource-group apim-hello-word-resource-group \
Use this procedure to create and update a release.
The notes you specify appear in the changelog. You can see them in the output of the previous command.
-1. When you create a release, the `--notes` parameter is optional. You can add or change the notes later by using the [az apim api release update](/cli/azure/apim/api/release#az_apim_api_release_update) command:
+1. When you create a release, the `--notes` parameter is optional. You can add or change the notes later by using the [az apim api release update](/cli/azure/apim/api/release#az-apim-api-release-update) command:
```azurecli az apim api release update --resource-group apim-hello-word-resource-group \
Use this procedure to create and update a release.
Use the value in the `Name` column for the release ID.
-You can remove any release by running the [az apim api release delete ](/cli/azure/apim/api/release#az_apim_api_release_delete) command:
+You can remove any release by running the [az apim api release delete ](/cli/azure/apim/api/release#az-apim-api-release-delete) command:
```azurecli az apim api release delete --resource-group apim-hello-word-resource-group \
api-management Api Management Howto Add Products https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-howto-add-products.md
To begin using Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../includes/azure-cli-prepare-your-environment-no-header.md)]
-To create a product, run the [az apim product create](/cli/azure/apim/product#az_apim_product_create) command:
+To create a product, run the [az apim product create](/cli/azure/apim/product#az-apim-product-create) command:
```azurecli az apim product create --resource-group apim-hello-word-resource-group \
You can specify various values for your product:
| `--subscriptions-limit` | Optionally, limit the count of multiple simultaneous subscriptions.| | `--legal-terms` | You can include the terms of use for the product, which subscribers must accept to use the product. |
-To see your current products, use the [az apim product list](/cli/azure/apim/product#az_apim_product_list) command:
+To see your current products, use the [az apim product list](/cli/azure/apim/product#az-apim-product-list) command:
```azurecli az apim product list --resource-group apim-hello-word-resource-group \ --service-name apim-hello-world --output table ```
-You can delete a product by using the [az apim product delete](/cli/azure/apim/product#az_apim_product_delete) command:
+You can delete a product by using the [az apim product delete](/cli/azure/apim/product#az-apim-product-delete) command:
```azurecli az apim product delete --product-id contoso-product \
Products are associations of one or more APIs. You can include many APIs and off
### [Azure CLI](#tab/azure-cli)
-1. To see your managed APIs, use the [az apim api list](/cli/azure/apim/api#az_apim_api_list) command:
+1. To see your managed APIs, use the [az apim api list](/cli/azure/apim/api#az-apim-api-list) command:
```azurecli az apim api list --resource-group apim-hello-word-resource-group \ --service-name apim-hello-world --output table ```
-1. To add an API to your product, run the [az apim product api add](/cli/azure/apim/product/api#az_apim_product_api_add) command:
+1. To add an API to your product, run the [az apim product api add](/cli/azure/apim/product/api#az-apim-product-api-add) command:
```azurecli az apim product api add --resource-group apim-hello-word-resource-group \
Products are associations of one or more APIs. You can include many APIs and off
--service-name apim-hello-world ```
-1. Verify the addition by using the [az apim product api list](/cli/azure/apim/product/api#az_apim_product_api_list) command:
+1. Verify the addition by using the [az apim product api list](/cli/azure/apim/product/api#az-apim-product-api-list) command:
```azurecli az apim product api list --resource-group apim-hello-word-resource-group \ --product-id contoso-product --service-name apim-hello-world --output table ```
-You can remove an API from a product by using the [az apim product api delete](/cli/azure/apim/product/api#az_apim_product_api_delete) command:
+You can remove an API from a product by using the [az apim product api delete](/cli/azure/apim/product/api#az-apim-product-api-delete) command:
```azurecli az apim product api delete --resource-group apim-hello-word-resource-group \
api-management Api Management Howto Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-howto-policies.md
Title: Policies in Azure API Management | Microsoft Docs
-description: Learn how to create, edit, and configure policies in API Management. See code examples and other available resources.
+description: Learn about policies in API Management, a way for API publishers to change API behavior through configuration. Policies are statements that run sequentially on the request or response of an API.
documentationcenter: '' - - Previously updated : 08/25/2021 Last updated : 03/23/2022 # Policies in Azure API Management
-In Azure API Management, API publishers can change API behavior through configuration using policies. Policies are a collection of statements executed sequentially on the request or response of an API. Popular statements include:
+In Azure API Management, API publishers can change API behavior through configuration using *policies*. Policies are a collection of statements that are run sequentially on the request or response of an API. Popular statements include:
-* Format conversion from XML to JSON.
-* Call rate limiting to restrict the number of incoming calls from a developer.
+* Format conversion from XML to JSON
+* Call rate limiting to restrict the number of incoming calls from a developer
+* Filtering requests that come from certain IP addresses
-Many more policies are available out of the box.
+Many more policies are available out of the box. For a complete list, see [API Management policy reference](api-management-policies.md).
Policies are applied inside the gateway between the API consumer and the managed API. While the gateway receives requests and forwards them, unaltered, to the underlying API, a policy can apply changes to both the inbound request and outbound response.
-Unless the policy specifies otherwise, policy expressions can be used as attribute values or text values in any of the API Management policies. Some policies are based on policy expressions, such as the [Control flow][Control flow] and [Set variable][Set variable]. For more information, see the [Advanced policies][Advanced policies] and [Policy expressions][Policy expressions] articles.
- ## <a name="sections"> </a>Understanding policy configuration
-Policy definitions are simple XML documents that describe a sequence of inbound and outbound statements. You can edit the XML directly in the definition window, which also provides:
-* A list of statements to the right.
-* Statements applicable to the current scope enabled and highlighted.
+Policy definitions are simple XML documents that describe a sequence of statements to apply to requests and responses. To help you configure policy definitions, the portal provides these options:
-Clicking an enabled statement will add the appropriate XML at the cursor in the definition view.
+* A guided, form-based editor to simplify configuring popular policies without coding XML
+* A code editor where you can insert XML snippets or edit XML directly
-> [!NOTE]
-> If the policy that you want to add is not enabled, ensure that you are in the correct scope for that policy. Each policy statement is designed for use in certain scopes and policy sections. To review the policy sections and scopes for a policy, check the **Usage** section in the [Policy Reference][Policy Reference].
+For more information about configuring policies, see [Set or edit policies](set-edit-policies.md).
-The configuration is divided into `inbound`, `backend`, `outbound`, and `on-error`. This series of specified policy statements is executed in order for a request and a response.
+The policy XML configuration is divided into `inbound`, `backend`, `outbound`, and `on-error` sections. This series of specified policy statements is executed in order for a request and a response.
```xml <policies>
The configuration is divided into `inbound`, `backend`, `outbound`, and `on-erro
</policies> ```
+For policy XML examples, see [API Management policy samples](./policies/index.md).
+
+### Error handling
+ If an error occurs during the processing of a request: * Any remaining steps in the `inbound`, `backend`, or `outbound` sections are skipped. * Execution jumps to the statements in the `on-error` section.
By placing policy statements in the `on-error` section, you can:
* Inspect and customize the error response using the `set-body` policy. * Configure what happens if an error occurs.
-For more information, see [Error handling in API Management policies](./api-management-error-handling-policies.md) for error codes for:
-* Built-in steps
-* Errors that may occur during the processing of policy statements.
+For more information, see [Error handling in API Management policies](./api-management-error-handling-policies.md)
+
+## Policy expressions
+
+Unless the policy specifies otherwise, [policy expressions](api-management-policy-expressions.md) can be used as attribute values or text values in any of the API Management policies. A policy expression is either:
+
+* a single C# statement enclosed in `@(expression)`, or
+* a multi-statement C# code block, enclosed in `@{expression}`, that returns a value
-## <a name="scopes"> </a>How to configure policies
+Each expression has access to the implicitly provided `context` variable and an allowed subset of .NET Framework types.
-For information on how to configure policies, see [Set or edit policies](set-edit-policies.md).
+Policy expressions provide a sophisticated means to control traffic and modify API behavior without requiring you to write specialized code or modify backend services. Some policies are based on policy expressions, such as the [Control flow][Control flow] and [Set variable][Set variable]. For more information, see [Advanced policies][Advanced policies].
-## Policy Reference
+## Scopes
-See the [Policy reference](./api-management-policies.md) for a full list of policy statements and their settings.
+API Management allows you to define policies at the following *scopes*, from most broad to most narrow:
-## Policy samples
+* Global (all APIs)
+* Product (APIs associated with a selected product)
+* API (all operations in an API)
+* Operation (single operation in an API)
-See [Policy samples](./policy-reference.md) for more code examples.
+When configuring a policy, you must first select the scope at which the policy applies.
++
+### Things to know
+
+* For fine-grained control for different API consumers, you can configure policy definitions at more than one scope
+* Not all policies can be applied at each scope and policy section
+* When configuring policy definitions at more than one scope, you control the policy evaluation order in each policy section by placement of the `base` element
+
+For more information, see [Set or edit policies](set-edit-policies.md#use-base-element-to-set-policy-evaluation-order).
## Examples ### Apply policies specified at different scopes
-If you have a policy at the global level and a policy configured for an API, both policies will be applied whenever that particular API is used. API Management allows for deterministic ordering of combined policy statements via the `base` element.
+If you have a policy at the global level and a policy configured for an API, both policies can be applied whenever that particular API is used. API Management allows for deterministic ordering of combined policy statements via the `base` element.
+
+Example policy definition at API scope:
```xml <policies>
If you have a policy at the global level and a policy configured for an API, bot
``` In the example policy definition above:
-* The `cross-domain` statement would execute before any higher policies.
-* The `find-and-replace` policy would execute after any higher policies.
+* The `cross-domain` statement would execute first.
+* The [`find-and-replace` policy](api-management-transformation-policies.md#Findandreplacestringinbody) would execute after any policies at a broader scope.
>[!NOTE]
-> If you remove the `<base />` tag at the API scope, only policies configured at the API scope will be applied. Neither product nor global scope policies would be applied.
-
-### Restrict incoming requests
+> If you remove the `base` element at the API scope, only policies configured at the API scope will be applied. Neither product nor global scope policies would be applied.
-To add a new statement to restrict incoming requests to specified IP addresses, place the cursor just inside the content of the `inbound` XML element and click the **Restrict caller IPs** statement.
+### Use policy expressions to modify requests
-![Restriction policies][policies-restrict]
-
-This will add an XML snippet to the `inbound` element that provides guidance on how to configure the statement.
+The following example uses [policy expressions][Policy expressions] and the [`set-header`](api-management-transformation-policies.md#SetHTTPheader) policy to add user data to the incoming request. The added header includes the user ID associated with the subscription key in the request, and the region where the gateway processing the request is hosted.
```xml
-<ip-filter action="allow | forbid">
- <address>address</address>
- <address-range from="address" to="address"/>
-</ip-filter>
-```
-
-To limit inbound requests and accept only those from an IP address of 1.2.3.4 modify the XML as follows:
+<policies>
+ <inbound>
+ <base />
+ <set-header name="x-request-context-data" exists-action="override">
+ <value>@(context.User.Id)</value>
+ <value>@(context.Deployment.Region)</value>
+ </set-header>
+ </inbound>
+</policies>
-```xml
-<ip-filter action="allow">
- <address>1.2.3.4</address>
-</ip-filter>
```
-## Next steps
-
-For more information working with policies, see:
-
-+ [Transform APIs](transform-api.md)
-+ [Policy Reference](./api-management-policies.md) for a full list of policy statements and their settings
-+ [Policy samples](./policy-reference.md)
[Policy Reference]: ./api-management-policies.md [Product]: api-management-howto-add-products.md
For more information working with policies, see:
[Set variable]: ./api-management-advanced-policies.md#set-variable [Policy expressions]: ./api-management-policy-expressions.md
-[policies-restrict]: ./media/api-management-howto-policies/api-management-policies-restrict.png
api-management Api Management Howto Properties https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-howto-properties.md
To begin using Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../includes/azure-cli-prepare-your-environment-no-header.md)]
-To add a named value, use the [az apim nv create](/cli/azure/apim/nv#az_apim_nv_create) command:
+To add a named value, use the [az apim nv create](/cli/azure/apim/nv#az-apim-nv-create) command:
```azurecli az apim nv create --resource-group apim-hello-word-resource-group \
az apim nv create --resource-group apim-hello-word-resource-group \
--secret true --service-name apim-hello-world --value test ```
-After you create a named value, you can update it by using the [az apim nv update](/cli/azure/apim/nv#az_apim_nv_update) command. To see all your named values, run the [az apim nv list](/cli/azure/apim/nv#az_apim_nv_list) command:
+After you create a named value, you can update it by using the [az apim nv update](/cli/azure/apim/nv#az-apim-nv-update) command. To see all your named values, run the [az apim nv list](/cli/azure/apim/nv#az-apim-nv-list) command:
```azurecli az apim nv list --resource-group apim-hello-word-resource-group \ --service-name apim-hello-world --output table ```
-To see the details of the named value you created for this example, run the [az apim nv show](/cli/azure/apim/nv#az_apim_nv_show) command:
+To see the details of the named value you created for this example, run the [az apim nv show](/cli/azure/apim/nv#az-apim-nv-show) command:
```azurecli az apim nv show --resource-group apim-hello-word-resource-group \ --service-name apim-hello-world --named-value-id named_value_01 ```
-This example is a secret value. The previous command does not return the value. To see the value, run the [az apim nv show-secret](/cli/azure/apim/nv#az_apim_nv_show_secret) command:
+This example is a secret value. The previous command does not return the value. To see the value, run the [az apim nv show-secret](/cli/azure/apim/nv#az-apim-nv-show-secret) command:
```azurecli az apim nv show-secret --resource-group apim-hello-word-resource-group \ --service-name apim-hello-world --named-value-id named_value_01 ```
-To delete a named value, use the [az apim nv delete](/cli/azure/apim/nv#az_apim_nv_delete) command:
+To delete a named value, use the [az apim nv delete](/cli/azure/apim/nv#az-apim-nv-delete) command:
```azurecli az apim nv delete --resource-group apim-hello-word-resource-group \
api-management Api Management Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-policies.md
Title: Azure API Management policies | Microsoft Docs
-description: Learn about the policies available for use in Azure API Management. Policies allow the publisher to change API behavior through configuration.
+ Title: Azure API Management policy reference | Microsoft Docs
+description: Reference index for all Azure API Management policies and settings. Policies allow the API publisher to change API behavior through configuration.
- Previously updated : 07/19/2021+ Last updated : 03/04/2022 -
-# API Management policies
-This section provides a reference for the following API Management policies. For information on adding and configuring policies, see [Policies in API Management](api-management-howto-policies.md).
+# API Management policy reference
+This section provides links to reference articles for all API Management policies.
- Policies are a powerful capability of the system that allow the publisher to change the behavior of the API through configuration. Policies are a collection of Statements that are executed sequentially on the request or response of an API. Popular Statements include format conversion from XML to JSON and call rate limiting to restrict the amount of incoming calls from a developer. Many more policies are available out of the box.
+More information about policies:
- Policy expressions can be used as attribute values or text values in any of the API Management policies, unless the policy specifies otherwise. Some policies such as the [Control flow](api-management-advanced-policies.md#choose) and [Set variable](api-management-advanced-policies.md#set-variable) policies are based on policy expressions. For more information, see [Advanced policies](api-management-advanced-policies.md#AdvancedPolicies) and [Policy expressions](api-management-policy-expressions.md).
++ [Policy overview](api-management-howto-policies.md)++ [Set or edit policies](set-edit-policies.md)++ [Policy expressions](api-management-policy-expressions.md)
-## <a name="ProxyPolicies"></a> Policies
+## [Access restriction policies](api-management-access-restriction-policies.md)
+- [Check HTTP header](api-management-access-restriction-policies.md#CheckHTTPHeader) - Enforces existence and/or value of an HTTP Header.
+- [Limit call rate by subscription](api-management-access-restriction-policies.md#LimitCallRate) - Prevents API usage spikes by limiting call rate, on a per subscription basis.
+- [Limit call rate by key](api-management-access-restriction-policies.md#LimitCallRateByKey) - Prevents API usage spikes by limiting call rate, on a per key basis.
+- [Restrict caller IPs](api-management-access-restriction-policies.md#RestrictCallerIPs) - Filters (allows/denies) calls from specific IP addresses and/or address ranges.
+- [Set usage quota by subscription](api-management-access-restriction-policies.md#SetUsageQuota) - Allows you to enforce a renewable or lifetime call volume and/or bandwidth quota, on a per subscription basis.
+- [Set usage quota by key](api-management-access-restriction-policies.md#SetUsageQuotaByKey) - Allows you to enforce a renewable or lifetime call volume and/or bandwidth quota, on a per key basis.
+- [Validate JWT](api-management-access-restriction-policies.md#ValidateJWT) - Enforces existence and validity of a JWT extracted from either a specified HTTP Header or a specified query parameter.
+- [Validate client certificate](api-management-access-restriction-policies.md#validate-client-certificate) - Enforces that a certificate presented by a client to an API Management instance matches specified validation rules and claims.
-- [Access restriction policies](api-management-access-restriction-policies.md#AccessRestrictionPolicies)
- - [Check HTTP header](api-management-access-restriction-policies.md#CheckHTTPHeader) - Enforces existence and/or value of an HTTP Header.
- - [Limit call rate by subscription](api-management-access-restriction-policies.md#LimitCallRate) - Prevents API usage spikes by limiting call rate, on a per subscription basis.
- - [Limit call rate by key](api-management-access-restriction-policies.md#LimitCallRateByKey) - Prevents API usage spikes by limiting call rate, on a per key basis.
- - [Restrict caller IPs](api-management-access-restriction-policies.md#RestrictCallerIPs) - Filters (allows/denies) calls from specific IP addresses and/or address ranges.
- - [Set usage quota by subscription](api-management-access-restriction-policies.md#SetUsageQuota) - Allows you to enforce a renewable or lifetime call volume and/or bandwidth quota, on a per subscription basis.
- - [Set usage quota by key](api-management-access-restriction-policies.md#SetUsageQuotaByKey) - Allows you to enforce a renewable or lifetime call volume and/or bandwidth quota, on a per key basis.
- - [Validate JWT](api-management-access-restriction-policies.md#ValidateJWT) - Enforces existence and validity of a JWT extracted from either a specified HTTP Header or a specified query parameter.
- - [Validate client certificate](api-management-access-restriction-policies.md#validate-client-certificate) - Enforces that a certificate presented by a client to an API Management instance matches specified validation rules and claims.
-- [Advanced policies](api-management-advanced-policies.md#AdvancedPolicies)
- - [Control flow](api-management-advanced-policies.md#choose) - Conditionally applies policy statements based on the evaluation of Boolean expressions.
- - [Forward request](api-management-advanced-policies.md#ForwardRequest) - Forwards the request to the backend service.
- - [Limit concurrency](api-management-advanced-policies.md#LimitConcurrency) - Prevents enclosed policies from executing by more than the specified number of requests at a time.
- - [Log to Event Hub](api-management-advanced-policies.md#log-to-eventhub) - Sends messages in the specified format to a message target defined by a Logger entity.
- - [Emit metrics](api-management-advanced-policies.md#emit-metrics) - Sends custom metrics to Application Insights at execution.
- - [Mock response](api-management-advanced-policies.md#mock-response) - Aborts pipeline execution and returns a mocked response directly to the caller.
- - [Retry](api-management-advanced-policies.md#Retry) - Retries execution of the enclosed policy statements, if and until the condition is met. Execution will repeat at the specified time intervals and up to the specified retry count.
- - [Return response](api-management-advanced-policies.md#ReturnResponse) - Aborts pipeline execution and returns the specified response directly to the caller.
- - [Send one way request](api-management-advanced-policies.md#SendOneWayRequest) - Sends a request to the specified URL without waiting for a response.
- - [Send request](api-management-advanced-policies.md#SendRequest) - Sends a request to the specified URL.
- - [Set HTTP proxy](api-management-advanced-policies.md#SetHttpProxy) - Allows you to route forwarded requests via an HTTP proxy.
- - [Set variable](api-management-advanced-policies.md#set-variable) - Persist a value in a named context variable for later access.
- - [Set request method](api-management-advanced-policies.md#SetRequestMethod) - Allows you to change the HTTP method for a request.
- - [Set status code](api-management-advanced-policies.md#SetStatus) - Changes the HTTP status code to the specified value.
- - [Trace](api-management-advanced-policies.md#Trace) - Adds custom traces into the [API Inspector](./api-management-howto-api-inspector.md) output, Application Insights telemetries, and Resource Logs.
- - [Wait](api-management-advanced-policies.md#Wait) - Waits for enclosed [Send request](api-management-advanced-policies.md#SendRequest), [Get value from cache](api-management-caching-policies.md#GetFromCacheByKey), or [Control flow](api-management-advanced-policies.md#choose) policies to complete before proceeding.
-- [Authentication policies](api-management-authentication-policies.md#AuthenticationPolicies)
- - [Authenticate with Basic](api-management-authentication-policies.md#Basic) - Authenticate with a backend service using Basic authentication.
- - [Authenticate with client certificate](api-management-authentication-policies.md#ClientCertificate) - Authenticate with a backend service using client certificates.
- - [Authenticate with managed identity](api-management-authentication-policies.md#ManagedIdentity) - Authenticate with a backend service using a [managed identity](../active-directory/managed-identities-azure-resources/overview.md).
-- [Caching policies](api-management-caching-policies.md#CachingPolicies)
- - [Get from cache](api-management-caching-policies.md#GetFromCache) - Perform cache look up and return a valid cached response when available.
- - [Store to cache](api-management-caching-policies.md#StoreToCache) - Caches response according to the specified cache control configuration.
- - [Get value from cache](api-management-caching-policies.md#GetFromCacheByKey) - Retrieve a cached item by key.
- - [Store value in cache](api-management-caching-policies.md#StoreToCacheByKey) - Store an item in the cache by key.
- - [Remove value from cache](api-management-caching-policies.md#RemoveCacheByKey) - Remove an item in the cache by key.
-- [Cross domain policies](api-management-cross-domain-policies.md#CrossDomainPolicies)
- - [Allow cross-domain calls](api-management-cross-domain-policies.md#AllowCrossDomainCalls) - Makes the API accessible from Adobe Flash and Microsoft Silverlight browser-based clients.
- - [CORS](api-management-cross-domain-policies.md#CORS) - Adds cross-origin resource sharing (CORS) support to an operation or an API to allow cross-domain calls from browser-based clients.
- - [JSONP](api-management-cross-domain-policies.md#JSONP) - Adds JSON with padding (JSONP) support to an operation or an API to allow cross-domain calls from JavaScript browser-based clients.
-- [Transformation policies](api-management-transformation-policies.md#TransformationPolicies)
- - [Convert JSON to XML](api-management-transformation-policies.md#ConvertJSONtoXML) - Converts request or response body from JSON to XML.
- - [Convert XML to JSON](api-management-transformation-policies.md#ConvertXMLtoJSON) - Converts request or response body from XML to JSON.
- - [Find and replace string in body](api-management-transformation-policies.md#Findandreplacestringinbody) - Finds a request or response substring and replaces it with a different substring.
- - [Mask URLs in content](api-management-transformation-policies.md#MaskURLSContent) - Re-writes (masks) links in the response body so that they point to the equivalent link via the gateway.
- - [Set backend service](api-management-transformation-policies.md#SetBackendService) - Changes the backend service for an incoming request.
- - [Set body](api-management-transformation-policies.md#SetBody) - Sets the message body for incoming and outgoing requests.
- - [Set HTTP header](api-management-transformation-policies.md#SetHTTPheader) - Assigns a value to an existing response and/or request header or adds a new response and/or request header.
- - [Set query string parameter](api-management-transformation-policies.md#SetQueryStringParameter) - Adds, replaces value of, or deletes request query string parameter.
- - [Rewrite URL](api-management-transformation-policies.md#RewriteURL) - Converts a request URL from its public form to the form expected by the web service.
- - [Transform XML using an XSLT](api-management-transformation-policies.md#XSLTransform) - Applies an XSL transformation to XML in the request or response body.
-- [Dapr integration policies](api-management-dapr-policies.md)
- - [Send request to a service](api-management-dapr-policies.md#invoke) - uses Dapr runtime to locate and reliably communicate with a Dapr microservice.
- - [Send message to Pub/Sub topic](api-management-dapr-policies.md#pubsub) - uses Dapr runtime to publish a message to a Publish/Subscribe topic.
- - [Trigger output binding](api-management-dapr-policies.md#bind) - uses Dapr runtime to invoke an external system via output binding.
-- [Validation policies](validation-policies.md)
- - [Validate content](validation-policies.md#validate-content) - Validates the size or JSON schema of a request or response body against the API schema.
-.
- - [Validate parameters](validation-policies.md#validate-parameters) - Validates the request header, query, or path parameters against the API schema.
- - [Validate headers](validation-policies.md#validate-headers) - Validates the response headers against the API schema.
- - [Validate status code](validation-policies.md#validate-status-code) - Validates the HTTP status codes in responses against the API schema.
-- [Graph QL validation policy](graphql-validation-policies.md)
- - [Validate GraphQL request](graphql-validation-policies.md#validate-graphql-request) - Validates and authorizes a request to a GraphQL API.
+## [Advanced policies](api-management-advanced-policies.md)
+- [Control flow](api-management-advanced-policies.md#choose) - Conditionally applies policy statements based on the evaluation of Boolean expressions.
+- [Forward request](api-management-advanced-policies.md#ForwardRequest) - Forwards the request to the backend service.
+- [Limit concurrency](api-management-advanced-policies.md#LimitConcurrency) - Prevents enclosed policies from executing by more than the specified number of requests at a time.
+- [Log to event hub](api-management-advanced-policies.md#log-to-eventhub) - Sends messages in the specified format to a message target defined by a Logger entity.
+- [Emit metrics](api-management-advanced-policies.md#emit-metrics) - Sends custom metrics to Application Insights at execution.
+- [Mock response](api-management-advanced-policies.md#mock-response) - Aborts pipeline execution and returns a mocked response directly to the caller.
+- [Retry](api-management-advanced-policies.md#Retry) - Retries execution of the enclosed policy statements, if and until the condition is met. Execution will repeat at the specified time intervals and up to the specified retry count.
+- [Return response](api-management-advanced-policies.md#ReturnResponse) - Aborts pipeline execution and returns the specified response directly to the caller.
+- [Send one way request](api-management-advanced-policies.md#SendOneWayRequest) - Sends a request to the specified URL without waiting for a response.
+- [Send request](api-management-advanced-policies.md#SendRequest) - Sends a request to the specified URL.
+- [Set HTTP proxy](api-management-advanced-policies.md#SetHttpProxy) - Allows you to route forwarded requests via an HTTP proxy.
+- [Set variable](api-management-advanced-policies.md#set-variable) - Persist a value in a named context variable for later access.
+- [Set request method](api-management-advanced-policies.md#SetRequestMethod) - Allows you to change the HTTP method for a request.
+- [Set status code](api-management-advanced-policies.md#SetStatus) - Changes the HTTP status code to the specified value.
+- [Trace](api-management-advanced-policies.md#Trace) - Adds custom traces into the [API Inspector](./api-management-howto-api-inspector.md) output, Application Insights telemetries, and Resource Logs.
+- [Wait](api-management-advanced-policies.md#Wait) - Waits for enclosed [Send request](api-management-advanced-policies.md#SendRequest), [Get value from cache](api-management-caching-policies.md#GetFromCacheByKey), or [Control flow](api-management-advanced-policies.md#choose) policies to complete before proceeding.
+
+## [Authentication policies](api-management-authentication-policies.md)
+- [Authenticate with Basic](api-management-authentication-policies.md#Basic) - Authenticate with a backend service using Basic authentication.
+- [Authenticate with client certificate](api-management-authentication-policies.md#ClientCertificate) - Authenticate with a backend service using client certificates.
+- [Authenticate with managed identity](api-management-authentication-policies.md#ManagedIdentity) - Authenticate with a backend service using a [managed identity](../active-directory/managed-identities-azure-resources/overview.md).
+
+## [Caching policies](api-management-caching-policies.md)
+- [Get from cache](api-management-caching-policies.md#GetFromCache) - Perform cache lookup and return a valid cached response when available.
+- [Store to cache](api-management-caching-policies.md#StoreToCache) - Caches response according to the specified cache control configuration.
+- [Get value from cache](api-management-caching-policies.md#GetFromCacheByKey) - Retrieve a cached item by key.
+- [Store value in cache](api-management-caching-policies.md#StoreToCacheByKey) - Store an item in the cache by key.
+- [Remove value from cache](api-management-caching-policies.md#RemoveCacheByKey) - Remove an item in the cache by key.
+
+## [Cross domain policies](api-management-cross-domain-policies.md)
+- [Allow cross-domain calls](api-management-cross-domain-policies.md#AllowCrossDomainCalls) - Makes the API accessible from Adobe Flash and Microsoft Silverlight browser-based clients.
+- [CORS](api-management-cross-domain-policies.md#CORS) - Adds cross-origin resource sharing (CORS) support to an operation or an API to allow cross-domain calls from browser-based clients.
+- [JSONP](api-management-cross-domain-policies.md#JSONP) - Adds JSON with padding (JSONP) support to an operation or an API to allow cross-domain calls from JavaScript browser-based clients.
+
+## [Dapr integration policies](api-management-dapr-policies.md)
+- [Send request to a service](api-management-dapr-policies.md#invoke) - uses Dapr runtime to locate and reliably communicate with a Dapr microservice.
+- [Send message to Pub/Sub topic](api-management-dapr-policies.md#pubsub) - uses Dapr runtime to publish a message to a Publish/Subscribe topic.
+- [Trigger output binding](api-management-dapr-policies.md#bind) - uses Dapr runtime to invoke an external system via output binding.
+
+## [Graph QL validation policy](graphql-validation-policies.md)
+- [Validate GraphQL request](graphql-validation-policies.md#validate-graphql-request) - Validates and authorizes a request to a GraphQL API.
+
+## [Transformation policies](api-management-transformation-policies.md)
+- [Convert JSON to XML](api-management-transformation-policies.md#ConvertJSONtoXML) - Converts request or response body from JSON to XML.
+- [Convert XML to JSON](api-management-transformation-policies.md#ConvertXMLtoJSON) - Converts request or response body from XML to JSON.
+- [Find and replace string in body](api-management-transformation-policies.md#Findandreplacestringinbody) - Finds a request or response substring and replaces it with a different substring.
+- [Mask URLs in content](api-management-transformation-policies.md#MaskURLSContent) - Re-writes (masks) links in the response body so that they point to the equivalent link via the gateway.
+- [Set backend service](api-management-transformation-policies.md#SetBackendService) - Changes the backend service for an incoming request.
+- [Set body](api-management-transformation-policies.md#SetBody) - Sets the message body for incoming and outgoing requests.
+- [Set HTTP header](api-management-transformation-policies.md#SetHTTPheader) - Assigns a value to an existing response and/or request header or adds a new response and/or request header.
+- [Set query string parameter](api-management-transformation-policies.md#SetQueryStringParameter) - Adds, replaces value of, or deletes request query string parameter.
+- [Rewrite URL](api-management-transformation-policies.md#RewriteURL) - Converts a request URL from its public form to the form expected by the web service.
+- [Transform XML using an XSLT](api-management-transformation-policies.md#XSLTransform) - Applies an XSL transformation to XML in the request or response body.
+
+## [Validation policies](validation-policies.md)
+- [Validate content](validation-policies.md#validate-content) - Validates the size or JSON schema of a request or response body against the API schema.
+- [Validate parameters](validation-policies.md#validate-parameters) - Validates the request header, query, or path parameters against the API schema.
+- [Validate headers](validation-policies.md#validate-headers) - Validates the response headers against the API schema.
+- [Validate status code](validation-policies.md#validate-status-code) - Validates the HTTP status codes in responses against the API schema.
## Next steps
-For more information working with policies, see:
-+ [Policies in API Management](api-management-howto-policies.md)
-+ [Transform APIs](transform-api.md)
-+ [Policy samples](./policy-reference.md)
+For more information about working with policies, see:
+++ [Tutorial: Transform and protect your API](transform-api.md)++ [Set or edit policies](set-edit-policies.md)++ [Policy samples](./policies/index.md)
api-management Api Management Subscriptions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-subscriptions.md
By default, a developer can only access a product or API by using a subscription
To disable the subscription requirement using the portal:
-* **Product** - Disable **Requires subscription** on the **Settings** page of the product.
-* **API** - Disable **Subscription required** on the **Settings** page of the API.
+* **Disable requirement for product** - Disable **Requires subscription** on the **Settings** page of the product.
+* **Disable requirement for API** - Disable **Subscription required** on the **Settings** page of the API.
-After disabling the subscription requirement, the selected API or APIs can be accessed without a subscription key.
+After the subscription requirement is disabled, the selected API or APIs can be accessed without a subscription key.
When API Management receives an API request from a client without a subscription key, it handles the request according to these rules:
When API Management receives an API request from a client without a subscription
## Next steps Get more information on API Management:
-+ Learn how API Management [policies](set-edit-policies.md#configure-scope) get applied at different scopes.
++ Learn how API Management [policies](set-edit-policies.md#configure-policies-at-different-scopes) get applied at different scopes. + Learn other [concepts](api-management-terminology.md) in API Management. + Follow our [tutorials](import-and-publish.md) to learn more about API Management. + Check our [FAQ page](api-management-faq.yml) for common questions.
api-management Api Management Transformation Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-transformation-policies.md
Title: Azure API Management transformation policies | Microsoft Docs
-description: Learn about the transformation policies available for use in Azure API Management.
+description: Reference for the transformation policies available for use in Azure API Management. Provides policy usage, settings, and examples.
- -- Previously updated : 03/11/2019+ Last updated : 03/07/2022 + # API Management transformation policies
-This topic provides a reference for the following API Management policies. For information on adding and configuring policies, see [Policies in API Management](./api-management-policies.md).
+This article provides a reference for API Management policies used to transform API requests or responses.
+ ## <a name="TransformationPolicies"></a> Transformation policies
This topic provides a reference for the following API Management policies. For i
## <a name="ConvertJSONtoXML"></a> Convert JSON to XML The `json-to-xml` policy converts a request or response body from JSON to XML. + ### Policy statement ```xml
This topic provides a reference for the following API Management policies. For i
## <a name="ConvertXMLtoJSON"></a> Convert XML to JSON The `xml-to-json` policy converts a request or response body from XML to JSON. This policy can be used to modernize APIs based on XML-only backend web services. + ### Policy statement ```xml
This topic provides a reference for the following API Management policies. For i
## <a name="Findandreplacestringinbody"></a> Find and replace string in body The `find-and-replace` policy finds a request or response substring and replaces it with a different substring. ++ ### Policy statement ```xml
This topic provides a reference for the following API Management policies. For i
> [!NOTE] > This policy does not change any header values such as `Location` headers. To change header values, use the [set-header](api-management-transformation-policies.md#SetHTTPheader) policy. + ### Policy statement ```xml
This topic provides a reference for the following API Management policies. For i
## <a name="SetBackendService"></a> Set backend service Use the `set-backend-service` policy to redirect an incoming request to a different backend than the one specified in the API settings for that operation. This policy changes the backend service base URL of the incoming request to the one specified in the policy. + ### Policy statement ```xml
In this example the policy routes the request to a service fabric backend, using
|sf-partition-key|Only applicable when the backend is a Service Fabric service and is specified using 'backend-id'. Used to resolve a specific partition from the name resolution service.|No|N/A| |sf-replica-type|Only applicable when the backend is a Service Fabric service and is specified using 'backend-id'. Controls if the request should go to the primary or secondary replica of a partition. |No|N/A| |sf-resolve-condition|Only applicable when the backend is a Service Fabric service. Condition identifying if the call to Service Fabric backend has to be repeated with new resolution.|No|N/A|
-|sf-service-instance-name|Only applicable when the backend is a Service Fabric service. Allows to change service instances at runtime. |No|N/A|
+|sf-service-instance-name|Only applicable when the backend is a Service Fabric service. Allows changing service instances at runtime. |No|N/A|
|sf-listener-name|Only applicable when the backend is a Service Fabric service and is specified using ΓÇÿbackend-idΓÇÖ. Service Fabric Reliable Services allows you to create multiple listeners in a service. This attribute is used to select a specific listener when a backend Reliable Service has more than one listener. If this attribute is not specified, API Management will attempt to use a listener without a name. A listener without a name is typical for Reliable Services that have only one listener. |No|N/A| ### Usage
In this example the policy routes the request to a service fabric backend, using
For more information, see the `context.Request.Body`, `context.Response.Body`, and the `IMessage` sections in the [Context variable](api-management-policy-expressions.md#ContextVariables) table. + ### Policy statement ```xml
The `set-body` policy can be configured to use the [Liquid](https://shopify.gith
|Name|Description|Required| |-|--|--|
-|set-body|Root element. Contains the body text or an expressions that returns a body.|Yes|
+|set-body|Root element. Contains the body text or an expression that returns a body.|Yes|
### Properties
OriginalUrl.
## <a name="SetHTTPheader"></a> Set HTTP header The `set-header` policy assigns a value to an existing response and/or request header or adds a new response and/or request header.
- Inserts a list of HTTP headers into an HTTP message. When placed in an inbound pipeline, this policy sets the HTTP headers for the request being passed to the target service. When placed in an outbound pipeline, this policy sets the HTTP headers for the response being sent to the gatewayΓÇÖs client.
+ Use the policy to insert a list of HTTP headers into an HTTP message. When placed in an inbound pipeline, this policy sets the HTTP headers for the request being passed to the target service. When placed in an outbound pipeline, this policy sets the HTTP headers for the response being sent to the gatewayΓÇÖs client.
+ ### Policy statement
OriginalUrl.
## <a name="SetQueryStringParameter"></a> Set query string parameter The `set-query-parameter` policy adds, replaces value of, or deletes request query string parameter. Can be used to pass query parameters expected by the backend service which are optional or never present in the request. + ### Policy statement ```xml
OriginalUrl.
> [!NOTE] > You can only add query string parameters using the policy. You cannot add extra template path parameters in the rewrite URL. + ### Policy statement ```xml
OriginalUrl.
## <a name="XSLTransform"></a> Transform XML using an XSLT The `Transform XML using an XSLT` policy applies an XSL transformation to XML in the request or response body. + ### Policy statement ```xml
OriginalUrl.
- **Policy scopes:** all scopes
-## Next steps
-
-For more information, see the following topics:
-
-+ [Policies in API Management](api-management-howto-policies.md)
-+ [Policy Reference](./api-management-policies.md) for a full list of policy statements and their settings
-+ [Policy samples](./policy-reference.md)
api-management Compute Infrastructure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/compute-infrastructure.md
description: Learn about the compute platform used to host your API Management s
Previously updated : 08/23/2021 Last updated : 03/16/2022
As a cloud platform-as-a-service (PaaS), Azure API Management abstracts many det
To enhance service capabilities, we're upgrading the API Management compute platform version - the Azure compute resources that host the service - for instances in several [service tiers](api-management-features.md). This article gives you context about the upgrade and the major versions of API Management's compute platform: `stv1` and `stv2`.
-We've minimized impacts of this upgrade on your operation of your API Management instance. However, if your instance is connected to an [Azure virtual network](virtual-network-concepts.md), you'll need to change some network configuration settings when the instance upgrades to the `stv2` platform version.
+We've minimized impacts of this upgrade on your operation of your API Management instance. Upgrades are managed by the platform, and new instances created in service tiers other than the Consumption tier are mostly hosted on the `stv2` platform. However, for existing instances hosted on the `stv1` platform, you have options to trigger migration to the `stv2` platform.
-## Compute platform versions
+## What are the compute platforms for API Management?
-| Version | Description | Architecture | API Management tiers |
-| -| -| -- | - |
-| `stv2` | Single-tenant v2 | [Virtual machine scale sets](../virtual-machine-scale-sets/overview.md) | Developer, Basic, Standard, and Premium |
-| `stv1` | Single-tenant v1 | [Cloud Service (classic)](../cloud-services/cloud-services-choose-me.md) | Developer, Basic, Standard, and Premium |
-| `mtv1` | Multi-tenant v1 | [App service](../app-service/overview.md) | Consumption |
+The following table summarizes the compute platforms currently used for instances in the different API Management service tiers.
+| Version | Description | Architecture | Tiers |
+| -| -| -- | - |
+| `stv2` | Single-tenant v2 | [Virtual machine scale sets](../virtual-machine-scale-sets/overview.md) | Developer, Basic, Standard, Premium<sup>1</sup> |
+| `stv1` | Single-tenant v1 | [Cloud Service (classic)](../cloud-services/cloud-services-choose-me.md) | Developer, Basic, Standard, Premium |
+| `mtv1` | Multi-tenant v1 | [App service](../app-service/overview.md) | Consumption |
+
+<sup>1</sup> Newly created instances in these tiers, created using the Azure portal or specifying API version 2021-01-01-preview or later. Includes some existing instances in Developer and Premium tiers configured with virtual networks or availability zones.
## How do I know which platform hosts my API Management instance?
-### Developer, Basic, Standard, and Premium tiers
+Starting with API version `2021-04-01-preview`, the API Management instance exposes a read-only `platformVersion` property that shows this platform information.
+
+You can find this information using the portal or the API Management [REST API](/rest/api/apimanagement/current-ga/api-management-service/get).
+
+To find the `platformVersion` property in the portal:
+
+1. Go to your API Management instance.
+1. On the **Overview** page, select **JSON view**.
+1. In **API version**, select a current version such as `2021-08-01` or later.
+1. In the JSON view, scroll down to find the `platformVersion` property.
+
+ :::image type="content" source="media/compute-infrastructure/platformversion property.png" alt-text="platformVersion property in JSON view":::
+
+## How do I migrate to the `stv2` platform?
-* Instances with virtual network connections created or updated using the Azure portal after **April 2021**, or using the API Management REST API version **2021-01-01-preview** or later, are hosted on the `stv2` platform
-* If you enabled [zone redundancy](zone-redundancy.md) in your Premium tier instance, it's hosted on the `stv2` platform
-* Otherwise, the instance is hosted on the `stv1` platform
+The following table summarizes migration options for instances in the different API Management service tiers that are currently hosted on the `stv1` platform. See the linked documentation for detailed steps.
-> [!TIP]
-> Starting with API version `2021-04-01-preview`, the API Management instance has a read-only `PlatformVersion` property that shows this platform information.
+> [!NOTE]
+> Check the [`platformVersion` property](#how-do-i-know-which-platform-hosts-my-api-management-instance) before starting migration, and after your configuration change.
-### Consumption tier
+|Tier |Migration options |
+|||
+|Premium | 1. Enable [zone redundancy](zone-redundancy.md)<br/> -or-<br/> 2. Create new [external](api-management-using-with-vnet.md) or [internal](api-management-using-with-internal-vnet.md) VNet connection<sup>1</sup><br/> -or-<br/> 3. Update existing [VNet configuration](#update-vnet-configuration) |
+|Developer | 1. Create new [external](api-management-using-with-vnet.md) or [internal](api-management-using-with-internal-vnet.md) VNet connection<sup>1</sup><br/>-or-<br/> 2. Update existing [VNet configuration](#update-vnet-configuration) |
+| Standard | 1. [Change your service tier](upgrade-and-scale.md#change-your-api-management-service-tier) (downgrade to Developer or upgrade to Premium). Follow migration options in new tier.<br/>-or-<br/>2. Deploy new instance in existing tier and migrate configurations<sup>2</sup> |
+| Basic | 1. [Change your service tier](upgrade-and-scale.md#change-your-api-management-service-tier) (downgrade to Developer or upgrade to Premium). Follow migration options in new tier<br/>-or-<br/>2. Deploy new instance in existing tier and migrate configurations<sup>2</sup> |
+| Consumption | Not applicable |
-* All instances are hosted on the `mtv1` platform
+<sup>1</sup> Use Azure portal or specify API version 2021-01-01-preview or later.
+
+<sup>2</sup> Migrate configurations with the following mechanisms: [Backup and restore](api-management-howto-disaster-recovery-backup-restore.md), [Migration script for the developer portal](automate-portal-deployments.md), [APIOps with Azure API Management](/azure/architecture/example-scenario/devops/automated-api-deployments-apiops).
-## How do I upgrade to the `stv2` platform?
+## Update VNet configuration
-Update is only possible for an instance in the Developer, Basic, Standard, or Premium tier.
+If you have an existing Developer or Premium tier instance that's connected to a virtual network and hosted on the `stv1` platform, trigger migration to the `stv2` platform by updating the VNet configuration.
-Create or update the virtual network connection, or availability zone configuration, in an API Management instance using:
+### Prerequisites
-* [Azure portal](https://portal.azure.com)
-* Azure REST API, or ARM template, specifying API version **2021-01-01-preview** or later
+* A new or existing virtual network and subnet in the same region and subscription as your API Management instance.
-> [!IMPORTANT]
-> When you update the compute platform version of an instance connected to an Azure [virtual network](virtual-network-concepts.md):
-> * You must provide a Standard SKU [public IPv4 address](../virtual-network/ip-services/public-ip-addresses.md#sku) resource
+* A new or existing Standard SKU [public IPv4 address](../virtual-network/ip-services/public-ip-addresses.md#sku) resource in the same region and subscription as your API Management instance.
+
+To update the existing external or internal VNet configuration using the portal:
+
+1. Navigate to your API Management instance.
+1. In the left menu, select **Network** > **Virtual network**.
+1. Select the network connection in the location you want to update.
+1. Select the virtual network, subnet, and IP address resources you want to configure, and select **Apply**.
+1. Continue configuring VNet settings for the remaining locations of your API Management instance.
+1. In the top navigation bar, select **Save**, then select **Apply network configuration**.
+
+The virtual network configuration is updated, and the instance is migrated to the `stv2` platform. Confirm migration by checking the [`platformVersion` property](#how-do-i-know-which-platform-hosts-my-api-management-instance).
+
+> [!NOTE]
+> * Updating the VNet configuration takes from 15 to 45 minutes to complete.
> * The VIP address(es) of your API Management instance will change. + ## Next steps * Learn more about using a [virtual network](virtual-network-concepts.md) with API Management. * Learn more about [zone redundancy](zone-redundancy.md).+
api-management Get Started Create Service Instance Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/get-started-create-service-instance-cli.md
This quickstart describes the steps for creating a new API Management instance u
Azure API Management instances, like all Azure resources, must be deployed into a resource group. Resource groups allow you to organize and manage related Azure resources.
-First, create a resource group named *myResourceGroup* in the Central US location with the following [az group create](/cli/azure/group#az_group_create) command:
+First, create a resource group named *myResourceGroup* in the Central US location with the following [az group create](/cli/azure/group#az-group-create) command:
```azurecli-interactive az group create --name myResourceGroup --location centralus
az group create --name myResourceGroup --location centralus
## Create a new service
-Now that you have a resource group, you can create an API Management service instance. Create one by using the [az apim create](/cli/azure/apim#az_apim_create) command and provide a service name and publisher details. The service name must be unique within Azure.
+Now that you have a resource group, you can create an API Management service instance. Create one by using the [az apim create](/cli/azure/apim#az-apim-create) command and provide a service name and publisher details. The service name must be unique within Azure.
In the following example, *myapim* is used for the service name. Update the name to a unique value. Also update the name of the API publisher's organization and the email address to receive notifications.
By default, the command creates the instance in the Developer tier, an economica
> [!TIP] > It can take between 30 and 40 minutes to create and activate an API Management service in this tier. The previous command uses the `--no-wait` option so that the command returns immediately while the service is created.
-Check the status of the deployment by running the [az apim show](/cli/azure/apim#az_apim_show) command:
+Check the status of the deployment by running the [az apim show](/cli/azure/apim#az-apim-show) command:
```azurecli-interactive az apim show --name myapim --resource-group myResourceGroup --output table
When your API Management service instance is online, you're ready to use it. Sta
## Clean up resources
-When no longer needed, you can use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group and the API Management service instance.
+When no longer needed, you can use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group and the API Management service instance.
```azurecli-interactive az group delete --name myResourceGroup
api-management Graphql Validation Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/graphql-validation-policies.md
Title: Azure API Management validation policy for GraphQL requests | Microsoft Docs
-description: Learn about a new policy you can use in Azure API Management to validate and authorize GraphQL requests.
+description: Reference for an Azure API Management policy to validate and authorize GraphQL requests. Provides policy usage, settings, and examples.
- Previously updated : 01/21/2022+ Last updated : 03/07/2022
This article provides a reference for an API Management policy to validate and authorize requests to a [GraphQL API](graphql-api.md) imported to API Management.
-For more information on adding and configuring policies, see [Policies in API Management](./api-management-policies.md).
## Validation policy
For more information on adding and configuring policies, see [Policies in API Ma
The `validate-graphql-request` policy validates the GraphQL request and authorizes access to specific query paths. An invalid query is a "request error". Authorization is only done for valid requests. ++ **Permissions** Because GraphQL queries use a flattened schema: * Permissions may be applied at any leaf node of an output type:
Failure to validate against the GraphQL schema, or a failure for the request's s
Similar to the [`Context.LastError`](api-management-error-handling-policies.md#lasterror) property, all GraphQL validation errors are automatically propagated in the `GraphQLErrors` variable. If the errors need to be propagated separately, you can specify an error variable name. Errors are pushed onto the `error` variable and the `GraphQLErrors` variable.
-## Next steps
-
-For more information about working with policies, see:
--- [Policies in API Management](api-management-howto-policies.md)-- [Transform APIs](transform-api.md)-- [Policy reference](./api-management-policies.md) for a full list of policy statements and their settings-- [Policy samples](./policy-reference.md)-- [Error handling](./api-management-error-handling-policies.md)
api-management How To Event Grid https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/how-to-event-grid.md
In this article, you subscribe to Event Grid events in your API Management insta
In this section, you use a Resource Manager template to deploy a pre-built sample web application to Azure App Service. Later, you subscribe to your API Management instance's Event Grid events and specify this app as the endpoint to which the events are sent.
-To deploy the sample app, you can use the Azure CLI, Azure PowerShell, or the Azure portal. The following example uses the [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create) command in the Azure CLI.
+To deploy the sample app, you can use the Azure CLI, Azure PowerShell, or the Azure portal. The following example uses the [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create) command in the Azure CLI.
* Set `RESOURCE_GROUP_NAME` to the name of an existing resource group * Set `SITE_NAME` to a unique name for your web app
api-management Mock Api Responses https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/mock-api-responses.md
To begin using Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../includes/azure-cli-prepare-your-environment-no-header.md)]
-To add an operation to your test API, run the [az apim api operation create](/cli/azure/apim/api/operation#az_apim_api_operation_create) command:
+To add an operation to your test API, run the [az apim api operation create](/cli/azure/apim/api/operation#az-apim-api-operation-create) command:
```azurecli az apim api operation create --resource-group apim-hello-word-resource-group \
az apim api operation create --resource-group apim-hello-word-resource-group \
--url-template /test --service-name apim-hello-world ```
-Run the [az apim api operation list](/cli/azure/apim/api/operation#az_apim_api_operation_list) command to see all your operations for an API:
+Run the [az apim api operation list](/cli/azure/apim/api/operation#az-apim-api-operation-list) command to see all your operations for an API:
```azurecli az apim api operation list --resource-group apim-hello-word-resource-group \ --api-id test-api --service-name apim-hello-world --output table ```
-To remove an operation, use the [az apim api operation delete](/cli/azure/apim/api/operation#az_apim_api_operation_delete) command. Get the operation ID from the previous command.
+To remove an operation, use the [az apim api operation delete](/cli/azure/apim/api/operation#az-apim-api-operation-delete) command. Get the operation ID from the previous command.
```azurecli az apim api operation delete --resource-group apim-hello-word-resource-group \
api-management Set Edit Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/set-edit-policies.md
Title: How to set or edit Azure API Management policies | Microsoft Docs
-description: Learn how to set or edit Azure API Management policies. These policies are XML documents that describe a sequence of inbound and outbound statements.
+description: Learn how to use the Azure portal to set or edit policies in an Azure API Management instance. Policies are defined in XML documents that contain a sequence of statements that are run sequentially on the request or response of an API.
documentationcenter: '' - -- Previously updated : 11/01/2018+ Last updated : 03/01/2022 # How to set or edit Azure API Management policies
-The policy definition is an XML document that describes a sequence of inbound and outbound statements. The XML can be edited directly in the definition window. You can also select a predefined policy from the list that is provided to the right of the policy window. The statements applicable to the current scope are enabled and highlighted. Clicking an enabled statement adds the appropriate XML at the location of the cursor in the definition view.
+This article shows you how to configure policies in your API Management instance by editing policy definitions in the Azure portal. Each policy definition is an XML document that describes a sequence of inbound and outbound statements that run sequentially on an API request and response.
-For detailed information about policies, see [Policies in Azure API Management](api-management-howto-policies.md).
+The policy editor in the portal provides guided forms for API publishers to add and edit policies in policy definitions. You can also edit the XML directly in the policy code editor.
-## Set or edit a policy
+More information about policies:
-To set or edit a policy, follow the following steps:
+* [Policy overview](api-management-howto-policies.md)
+* [Policy reference](api-management-policies.md) for a full list of policy statements and their settings
+* [Policy samples](./policies/index.md)
-1. Sign in to the Azure portal at [https://portal.azure.com](https://portal.azure.com).
-2. Browse to your APIM instance.
-3. Click the **APIs** tab.
+## Prerequisites
- ![Edit policy](./media/set-edit-policies/code-editor.png)
+If you don't already have an API Management instance and a backend API, see:
-4. Select one of the APIs that you previously imported.
-5. Select the **Design** tab.
-6. Select an operation to which you want to apply the policy. If you want to apply the policy to all operations, select **All operations**.
-7. Select the **</>** (code editor) icon in the **Inbound processing** or **Outbound processing** section.
-8. Paste the desired policy code into one of the appropriate blocks.
+- [Create an Azure API Management instance](get-started-create-service-instance.md)
+- [Import and publish an API](import-and-publish.md)
+
+## Configure policy in the portal
+
+The following example shows how to configure a policy using two options in the policy editor in the portal:
+
+* A guided form-based editor to simplify configuring many policies
+* A code editor where you can add or edit XML directly
+
+In this example, the policy filters requests from certain incoming IP addresses. It's scoped to a selected API.
+
+> [!NOTE]
+> You can configure policies at other [scopes](api-management-howto-policies.md#scopes), such as for all APIs, a product, or a single API operation. See [Configure scope](#configure-policies-at-different-scopes), later in this article, for other examples.
+
+To configure a policy:
+
+# [Form](#tab/form)
+
+1. In the left navigation of your API Management instance, select **APIs**.
+1. Select an API that you previously imported.
+1. Select the **Design** tab.
+1. To apply the policy to all operations, select **All operations**.
+1. In the **Inbound processing** section, select **+ Add policy**.
++
+ :::image type="content" source="media/set-edit-policies/form-editor.png" alt-text="Add policy in API Management":::
+
+1. In **Add inbound policy**, select a policy to add. For example, select **Filter IP addresses**.
+
+ :::image type="content" source="media/set-edit-policies/filter-ip-addresses.png" alt-text="Filter IP addresses policy":::
+
+ > [!TIP]
+ > * Policies shown are scoped to the policy section you're configuring - in this case, for inbound processing.
+ > * If you don't see a policy you want, select the **Other policies** tile. This will open the XML code editor and display a complete list of policies for that section and scope.
+1. Select **Allowed IPs** > **+ Add IP filter** and add the first and last IP addresses of a range of incoming addresses that are allowed to make API requests. Add other IP address ranges, if needed.
+
+ :::image type="content" source="media/set-edit-policies/configure-ip-filter.png" alt-text="Configure allowed IP addresses":::
+1. Select **Save** to propagate changes to the API Management gateway immediately.
+
+ The **ip-filter** policy now appears in the **Inbound processing** section.
+
+# [Code](#tab/editor)
+
+1. In the left navigation of your API Management instance, select **APIs**.
+1. Select an API that you previously imported.
+1. Select the **Design** tab.
+1. To apply the policy to all operations, select **All operations**.
+1. In the **Inbound processing** section, select the **</>** (code editor) icon.
++
+ :::image type="content" source="media/set-edit-policies/code-editor.png" alt-text="Add policy in API Management":::
+
+1. To see available policy XML code snippets, select **Show snippets**. For example, select **Restrict caller IPs**.
+
+ :::image type="content" source="media/set-edit-policies/insert-policy-snippet.png" alt-text="Insert policy snippet":::
+
+1. Paste or enter the desired policy code snippet into one of the appropriate blocks, and complete the policy configuration.
```xml <policies> <inbound> <base />
+ <ip-filter action="allow">
+ <address-range from="10.100.7.0" to="10.100.127.0" />
+ </ip-filter>
</inbound> <backend> <base />
To set or edit a policy, follow the following steps:
</on-error> </policies> ```
-
-## Configure scope
-
-Policies can be configured globally or at the scope of a Product, API, or Operation. To begin configuring a policy, you must first select the scope at which the policy should apply.
+1. Select **Save** to propagate changes to the API Management gateway immediately.
+
+ The **ip-filter** policy now appears in the **Inbound processing** section.
+
-Policy scopes are evaluated in the following order:
+## Configure policies at different scopes
-1. Global scope
-2. Product scope
-3. API scope
-4. Operation scope
+API Management gives you flexibility to configure policy definitions at multiple [scopes](api-management-howto-policies.md#scopes), in each of the policy sections.
-The statements within policies are evaluated according to the placement of the `base` element, if it is present. Global policy has no parent policy and using the `<base>` element in it has no effect.
+> [!IMPORTANT]
+> Not all policies can be applied at each scope or policy section. If the policy that you want to add isn't enabled, ensure that you are in a supported policy section and scope for that policy. To review the policy sections and scopes for a policy, check the **Usage** section in the [Policy reference](api-management-policies.md) topics.
-To see the policies in the current scope in the policy editor, click **Recalculate effective policy for selected scope**.
+> [!NOTE]
+> The **Backend** policy section can only contain one policy element. By default, API Management configures the [`forward-request`](api-management-advanced-policies.md#ForwardRequest) policy in the **Backend** section at the global scope, and the `base` element at other scopes.
### Global scope
-Global scope is configured for **All APIs** in your APIM instance.
+Global scope is configured for **All APIs** in your API Management instance.
-1. Sign in to the [Azure portal](https://portal.azure.com/) and navigate to your APIM instance.
-2. Click **All APIs**.
+1. In the left navigation of your API Management instance, select **APIs** > **All APIs**.
+1. Select the **Design** tab.
- ![Global scope](./media/api-management-howto-policies/global-scope.png)
+ :::image type="content" source="media/set-edit-policies/global-scope-policy.png" alt-text="Configure policy at product scope":::
-3. Click the triangle icon.
-4. Select **Code editor**.
-5. Add or edit policies.
-6. Press **Save**.
+1. In a policy section, select **+ Add policy** to use a form-based policy editor, or select the **</>** (code editor) icon to add and edit XML directly.
- The changes are propagated to the API Management gateway immediately.
+1. Select **Save** to propagate changes to the API Management gateway immediately.
### Product scope
-Product scope is configured for the selected product.
+Product scope is configured for a selected product.
-1. Click **Products**.
+1. In the left menu, select **Products**, and then select a product to which you want to apply policies.
+1. In the product window, select **Policies**.
- ![Product scope](./media/api-management-howto-policies/product-scope.png)
+ :::image type="content" source="media/set-edit-policies/product-scope-policy.png" alt-text="Configure policy at global scope":::
+1. In a policy section, select **+ Add policy** to use a form-based policy editor, or select the **</>** (code editor) icon to add and edit XML directly.
-2. Select the product to which you want to apply policies.
-3. Click **Policies**.
-4. Add or edit policies.
-5. Press **Save**.
+1. Select **Save** to propagate changes to the API Management gateway immediately.
### API scope
-API scope is configured for **All Operations** of the selected API.
+API scope is configured for **All operations** of the selected API.
-1. Select the **API** you want to apply policies to.
+1. In the left navigation of your API Management instance, select **APIs**, and then select the API that you want to apply policies to.
+1. Select the **Design** tab.
+1. Select **All operations**.
- ![API scope](./media/api-management-howto-policies/api-scope.png)
+ :::image type="content" source="media/set-edit-policies/api-scope-policy.png" alt-text="Configure policy at API scope":::
-2. Select **All operations**
-3. Click the triangle icon.
-4. Select **Code editor**.
-5. Add or edit policies.
-6. Press **Save**.
+1. In a policy section, select **+ Add policy** to use a form-based policy editor, or select the **</>** (code editor) icon to add and edit XML directly.
+
+6. Select **Save** to propagate changes to the API Management gateway immediately.
### Operation scope
-Operation scope is configured for the selected operation.
+Operation scope is configured for a selected API operation.
+
+1. In the left navigation of your API Management instance, select **APIs**.
+1. Select the **Design** tab.
+1. Select the operation to which you want to apply policies.
+
+ :::image type="content" source="media/set-edit-policies/operation-scope-policy.png" alt-text="Configure policy at operation scope":::
+
+1. In a policy section, select **+ Add policy** to use a form-based policy editor, or select the **</>** (code editor) icon to add and edit XML directly.
+
+1. Select **Save** to propagate changes to the API Management gateway immediately.
+
+## Use `base` element to set policy evaluation order
+
+If you configure policy definitions at more than one scope, multiple policies could apply to an API request or response. Depending on the order that the policies from the different scopes are applied, the transformation of the request or response could differ.
-1. Select an **API**.
-2. Select the operation you want to apply policies to.
+In API Management, determine the policy evaluation order by placement of the `base` element in each section in the policy definition at each scope. The `base` element inherits the policies configured in that section at the next broader (parent) scope. The `base` element is included by default in each policy section.
+
+> [!NOTE]
+> To view the effective policies at the current scope, select **Recalculate effective policy** in the policy editor.
+
+To modify the policy evaluation order using the policy editor:
+
+1. Begin with the definition at the most *narrow* scope you configured, which API Management will apply first.
+
+ For example, when using policy definitions configured at the global scope and the API scope, begin with the configuration at the API scope.
+1. Place the `base` element within a section to determine where to inherit all policies from the corresponding section at the parent scope.
+
+ For example, in an `inbound` section configured at the API scope, place a `base` element to control where to inherit policies configured in the `inbound` section at the global scope. In the following example, policies inherited from the global scope are applied before the `ip-filter` policy.
+
+ ```xml
+ <policies>
+ <inbound>
+ <base />
+ <ip-filter action="allow">
+ <address>10.100.7.1</address>
+ </ip-filter>
+ </inbound>
+ [...]
+ </policies>
+ ```
+
+ > [!NOTE]
+ > * You can place the `base` element before or after any policy element in a section.
+ > * If you want to prevent inheriting policies from the parent scope, remove the `base` element. In most cases, this isn't recommended.
- ![Operation scope](./media/api-management-howto-policies/operation-scope.png)
+1. Continue to configure the `base` element in policy definitions at successively broader scopes.
-3. Click the triangle icon.
-4. Select **Code editor**.
-5. Add or edit policies.
-6. Press **Save**.
+ A globally scoped policy has no parent scope, and using the `base` element in it has no effect.
## Next steps
-See the following related topics:
+For more information about working with policies, see:
-+ [Transform APIs](transform-api.md)
-+ [Policy Reference](./api-management-policies.md) for a full list of policy statements and their settings
-+ [Policy samples](./policy-reference.md)
++ [Tutorial: Transform and protect APIs](transform-api.md)++ [Set or edit policies](set-edit-policies.md)++ [Policy reference](./api-management-policies.md) for a full list of policy statements and their settings++ [Policy samples](./policies/index.md)
api-management Transform Api https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/transform-api.md
Previously updated : 12/22/2021 Last updated : 03/15/2022 # Tutorial: Transform and protect your API
-In this tutorial, you'll learn how to transform your API so it doesn't reveal private backend info. Transforming an API might help you hide the technology stack info that's running in the backend. It also helps you hide the original URLs that appear in the body of the API's HTTP response.
+In this tutorial, you'll learn about configuring common [policies](api-management-howto-policies.md) to transform your API. You might want to transform your API so it doesn't reveal private backend info. Transforming an API can help you hide the technology stack info that's running in the backend, or hide the original URLs that appear in the body of the API's HTTP response.
-The tutorial also explains how to add protection to your backend API by configuring a rate limit with Azure API Management. You might want to limit the rate of API calls so the API isn't overused by developers. For more information, see [API Management policies](api-management-policies.md).
+This tutorial also explains how to add protection to your backend API by configuring a rate limit policy, so that the API isn't overused by developers. For more policy options, see [API Management policies](api-management-policies.md).
+
+> [!NOTE]
+> By default, API Management configures a global [`forward-request`](api-management-advanced-policies.md#ForwardRequest) policy. The `forward-request` policy is needed for the gateway to complete a request to a backend service.
In this tutorial, you learn how to:
As you can see, the response includes the **X-AspNet-Version** and **X-Powered-B
### Set the transformation policy
+This example shows how to use the form-based policy editor, which helps you configure many policies without having to edit the policy XML statements directly.
+ 1. Select **Demo Conference API** > **Design** > **All operations**.
-1. In the **Outbound processing** section, select the code editor (**</>**) icon.
+1. In the **Outbound processing** section, select **+ Add policy**.
:::image type="content" source="media/transform-api/outbound-policy.png" alt-text="Navigate to outbound policy" border="false":::
-1. Position the cursor inside the **&lt;outbound&gt;** element, and then select **Show snippets** at the top-right corner of the screen.
-
- :::image type="content" source="media/transform-api/show-snippets.png" alt-text="Show snippets":::
-
-1. In the right window, under **Transformation policies**, select **Set HTTP header** twice (to insert two policy snippets).
+1. In the **Add outbound policy** window, select **Set headers**.
:::image type="content" source="media/transform-api/set-http-header.png" alt-text="Set HTTP header policy":::
-1. Modify your **\<outbound>** code to the following code:
-
- ```
- <set-header name="X-Powered-By" exists-action="delete" />
- <set-header name="X-AspNet-Version" exists-action="delete" />
- ```
+1. To configure the set headers policy, do the following:
+ 1. Under **Name**, enter **X-Powered-By**. Under **Action**, select **delete**.
+ 1. Select **+ Add header**.
+ 1. Under **Name**, enter **X-AspNet-Version**. Under **Action**, select **delete**.
:::image type="content" source="media/transform-api/set-policy.png" alt-text="Set HTTP header":::
-1. Select **Save**.
+1. Select **Save**. Two **set-header** policy elements appear in the **Outbound processing** section.
## Replace original URLs in the body of the API response with API Management gateway URLs
-This section shows how to hide original URLs that appear in the body of the API's HTTP response and instead redirect them to the API Management gateway.
+This section shows how to replace original URLs that appear in the body of the API's HTTP response with API Management gateway URLs. You might want to hide the original backend URLs from users.
### Test the original response
To see the original response:
### Set the transformation policy
+In this example, you use the policy code editor to add the policy XML snippet directly to the policy definition.
+ 1. Select **Demo Conference API** > **Design** > **All operations**. 1. In the **Outbound processing** section, select the code editor (**</>**) icon.
- :::image type="content" source="media/transform-api/outbound-policy.png" alt-text="Navigate to outbound policy" border="false":::
+ :::image type="content" source="media/transform-api/outbound-policy-code.png" alt-text="Navigate to outbound policy code editor":::
-1. Position the cursor inside the **&lt;outbound&gt;** element, and then select **Show snippets** at the top-right corner of the screen.
+1. Position the cursor inside the **`<outbound>`** element on a blank line. Then select **Show snippets** at the top-right corner of the screen.
:::image type="content" source="media/transform-api/show-snippets-1.png" alt-text="Select show snippets":::
-1. In the right window, under **Transformation policies**, select **Mask URLs in content**.
+1. In the right window, under **Transformation policies**, select **Mask URLs in content**.
+
+ The **`<redirect-content-urls />`** element is added at the cursor.
:::image type="content" source="media/transform-api/mask-urls-new.png" alt-text="Mask URLs in content":::
To see the original response:
## Protect an API by adding rate limit policy (throttling)
-This section shows how to add protection to your backend API by configuring rate limits. You might also want to limit the rate of API calls so that the API isn't overused by developers. In this example, the limit is set to three calls per 15 seconds for each subscription ID. After 15 seconds, a developer can retry calling an API.
+This section shows how to add protection to your backend API by configuring rate limits, so that the API isn't overused by developers. In this example, the limit is set to three calls per 15 seconds for each subscription ID. After 15 seconds, a developer can retry calling an API.
1. Select **Demo Conference API** > **Design** > **All operations**. 1. In the **Inbound processing** section, select the code editor (**</>**) icon.
- :::image type="content" source="media/transform-api/inbound-policy.png" alt-text="Navigate to inbound policy":::
+ :::image type="content" source="media/transform-api/inbound-policy-code.png" alt-text="Navigate to inbound policy":::
-1. Position the cursor inside the **&lt;inbound&gt;** element, and then select **Show snippets** at the top-right corner of the screen.
+1. Position the cursor inside the **`<inbound>`** element on a blank line. Then, select **Show snippets** at the top-right corner of the screen.
:::image type="content" source="media/transform-api/show-snippets-2.png" alt-text="Set inbound policy" border="false":::
-1. In the right window, under **Access restriction policies**, select **Limit call rate per key**.
+1. In the right window, under **Access restriction policies**, select **Limit call rate per key**.
+
+ The **`<rate-limit-by-key />`** element is added at the cursor.
:::image type="content" source="media/transform-api/limit-call-rate-per-key.png" alt-text="Select limit call rate per key":::
-1. Modify your **rate-limit-by-key** code in the **\<inbound\>** element to the following code:
+1. Modify your **`<rate-limit-by-key />`** code in the **`<inbound>`** element to the following code. Then select **Save**.
``` <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
api-management Validation Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/validation-policies.md
Title: Azure API Management validation policies | Microsoft Docs
-description: Learn about policies you can use in Azure API Management to validate requests and responses.
+description: Reference for Azure API Management policies to validate API requests and responses. Provides policy usage, settings, and examples.
documentationcenter: '' - Previously updated : 02/22/2022+ Last updated : 03/07/2022 # API Management policies to validate requests and responses
-This article provides a reference for the following API Management policies. For information on adding and configuring policies, see [Policies in API Management](./api-management-policies.md).
-
-Use validation policies to validate REST or SOAP API requests and responses against schemas defined in the API definition or supplementary JSON or XML schemas. Validation policies protect from vulnerabilities such as injection of headers or payload or leaking sensitive data.
+This article provides a reference for API Management policies to validate REST or SOAP API requests and responses against schemas defined in the API definition or supplementary JSON or XML schemas. Validation policies protect from vulnerabilities such as injection of headers or payload or leaking sensitive data.
While not a replacement for a Web Application Firewall, validation policies provide flexibility to respond to an additional class of threats that arenΓÇÖt covered by security products that rely on static, predefined rules. + ## Validation policies - [Validate content](#validate-content) - Validates the size or content of a request or response body against one or more API schemas. The supported schema formats are JSON and XML.
We recommend performing load tests with your expected production workloads to as
The `validate-content` policy validates the size or content of a request or response body against one or more [supported schemas](#schemas-for-content-validation). + The following table shows the schema formats and request or response content types that the policy supports. Content type values are case insensitive. | Format | Content types |
The `validate-parameters` policy validates the header, query, or path parameters
> [!IMPORTANT] > If you imported an API using a management API version prior to `2021-01-01-preview`, the `validate-parameters` policy might not work. You may need to [reimport your API](/rest/api/apimanagement/current-ga/apis/create-or-update) using management API version `2021-01-01-preview` or later. + ### Policy statement
The `validate-headers` policy validates the response headers against the API sch
> [!IMPORTANT] > If you imported an API using a management API version prior to `2021-01-01-preview`, the `validate-headers` policy might not work. You may need to reimport your API using management API version `2021-01-01-preview` or later. ++ ### Policy statement ```xml
This policy can be used in the following policy [sections](./api-management-howt
## Validate status code
-The `validate-status-code` policy validates the HTTP status codes in responses against the API schema. This policy may be used to prevent leakage of backend errors, which can contain stack traces.
+The `validate-status-code` policy validates the HTTP status codes in responses against the API schema. This policy may be used to prevent leakage of backend errors, which can contain stack traces.
+ ### Policy statement
The following table lists all the possible Reason values of a validation error a
-## Next steps
-
-For more information about working with policies, see:
--- [Policies in API Management](api-management-howto-policies.md)-- [Transform APIs](transform-api.md)-- [Policy reference](./api-management-policies.md) for a full list of policy statements and their settings-- [Policy samples](./policy-reference.md)-- [Error handling](./api-management-error-handling-policies.md)
app-service App Service Sql Asp Github Actions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/app-service-sql-asp-github-actions.md
az group create --name {resource-group-name} --location {resource-group-location
## Generate deployment credentials
-You'll need to authenticate with a service principal for the resource deployment script to work. You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You'll need to authenticate with a service principal for the resource deployment script to work. You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
```azurecli-interactive az ad sp create-for-rbac --name "{service-principal-name}" --sdk-auth --role contributor --scopes /subscriptions/{subscription-id}
app-service App Service Sql Github Actions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/app-service-sql-github-actions.md
Open the Azure Cloud Shell at https://shell.azure.com. You can alternately use t
## Generate deployment credentials
-You'll need to authenticate with a service principal for the resource deployment script to work. You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You'll need to authenticate with a service principal for the resource deployment script to work. You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
```azurecli-interactive az ad sp create-for-rbac --name "{service-principal-name}" --sdk-auth --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}
app-service App Service Web Restore Snapshots https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/app-service-web-restore-snapshots.md
The following table shows which app configuration is restored:
az webapp config snapshot restore --name <target-app-name> --resource-group <target-group-name> --source-name <source-app-name> --source-resource-group <source-group-name> --time <source-snapshot-timestamp> ```
- To restore app content only and not the app configuration, use the `--restore-content-only` parameter. For more information, see [az webapp config snapshot restore](/cli/webapp/config/snapshot#az_webapp_config_snapshot_restore).
+ To restore app content only and not the app configuration, use the `--restore-content-only` parameter. For more information, see [az webapp config snapshot restore](/cli/webapp/config/snapshot#az-webapp-config-snapshot-restore).
--
app-service App Service Web Tutorial Rest Api https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/app-service-web-tutorial-rest-api.md
Next, you enable the built-in CORS support in App Service for your API.
### Enable CORS
-In the Cloud Shell, enable CORS to your client's URL by using the [`az webapp cors add`](/cli/azure/webapp/cors#az_webapp_cors_add) command. Replace the _&lt;app-name>_ placeholder.
+In the Cloud Shell, enable CORS to your client's URL by using the [`az webapp cors add`](/cli/azure/webapp/cors#az-webapp-cors-add) command. Replace the _&lt;app-name>_ placeholder.
```azurecli-interactive az webapp cors add --resource-group myResourceGroup --name <app-name> --allowed-origins 'http://localhost:5000'
app-service Configure Authentication Api Version https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-authentication-api-version.md
You can view the current version of the platform authentication middleware eithe
##### From the Azure CLI
-Using the Azure CLI, view the current middleware version with the [az webapp auth show](/cli/azure/webapp/auth#az_webapp_auth_show) command.
+Using the Azure CLI, view the current middleware version with the [az webapp auth show](/cli/azure/webapp/auth#az-webapp-auth-show) command.
```azurecli-interactive az webapp auth show --name <my_app_name> \
You can also hit /.auth/version endpoint on an app also to view the current midd
#### Update the current runtime version
-Using the Azure CLI, you can update the `runtimeVersion` setting in the app with the [az webapp auth update](/cli/azure/webapp/auth#az_webapp_auth_update) command.
+Using the Azure CLI, you can update the `runtimeVersion` setting in the app with the [az webapp auth update](/cli/azure/webapp/auth#az-webapp-auth-update) command.
```azurecli-interactive az webapp auth update --name <my_app_name> \
az webapp auth update --name <my_app_name> \
Replace `<my_app_name>` with the name of your app. Also replace `<my_resource_group>` with the name of the resource group for your app. Also, replace `<version>` with a valid version of the 1.x runtime or `~1` for the latest version. See the [release notes on the different runtime versions](https://github.com/Azure/app-service-announcements) to help determine the version to pin to.
-You can run this command from the [Azure Cloud Shell](../cloud-shell/overview.md) by choosing **Try it** in the preceding code sample. You can also use the [Azure CLI locally](/cli/azure/install-azure-cli) to execute this command after executing [az login](/cli/azure/reference-index#az_login) to sign in.
+You can run this command from the [Azure Cloud Shell](../cloud-shell/overview.md) by choosing **Try it** in the preceding code sample. You can also use the [Azure CLI locally](/cli/azure/install-azure-cli) to execute this command after executing [az login](/cli/azure/reference-index#az-login) to sign in.
## Next steps
app-service Configure Authentication Provider Aad https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-authentication-provider-aad.md
To register the app, perform the following steps:
|Application (client) ID| Use the **Application (client) ID** of the app registration. | |Client Secret| Use the client secret you generated in the app registration. With a client secret, hybrid flow is used and the App Service will return access and refresh tokens. When the client secret is not set, implicit flow is used and only an ID token is returned. These tokens are sent by the provider and stored in the EasyAuth token store.| |Issuer Url| Use `<authentication-endpoint>/<tenant-id>/v2.0`, and replace *\<authentication-endpoint>* with the [authentication endpoint for your cloud environment](../active-directory/develop/authentication-national-cloud.md#azure-ad-authentication-endpoints) (e.g., "https://login.microsoftonline.com" for global Azure), also replacing *\<tenant-id>* with the **Directory (tenant) ID** in which the app registration was created. This value is used to redirect users to the correct Azure AD tenant, as well as to download the appropriate metadata to determine the appropriate token signing keys and token issuer claim value for example. For applications that use Azure AD v1, omit `/v2.0` in the URL.|
- |Allowed Token Audiences| If this is a cloud or server app and you want to allow authentication tokens from a web app, add the **Application ID URI** of the web app here. The configured **Client ID** is *always* implicitly considered to be an allowed audience.|
+ |Allowed Token Audiences| The configured **Application (client) ID** is *always* implicitly considered to be an allowed audience. If this is a cloud or server app and you want to accept authentication tokens from a client App Service app (the authentication token can be retrieved in the [X-MS-TOKEN-AAD-ID-TOKEN header](configure-authentication-oauth-tokens.md#retrieve-tokens-in-app-code)), add the **Application (client) ID** of the client app here. |
The client secret will be stored as a slot-sticky [application setting](./configure-common.md#configure-app-settings) named `MICROSOFT_PROVIDER_AUTHENTICATION_SECRET`. You can update that setting later to use [Key Vault references](./app-service-key-vault-references.md) if you wish to manage the secret in Azure Key Vault.
app-service Configure Common https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-common.md
App settings are always encrypted when stored (encrypted-at-rest).
# [Azure CLI](#tab/cli)
-Add or edit an app setting with [az webapp config app settings set](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set):
+Add or edit an app setting with [az webapp config app settings set](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set):
```azurecli-interactive az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings <setting-name>="<value>"
az webapp config appsettings set --name <app-name> --resource-group <group-name>
Replace `<setting-name>` with the name of the setting, and `<value>` with the value to assign to it.
-Show all settings and their values with [az webapp config appsettings list](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_list):
+Show all settings and their values with [az webapp config appsettings list](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-list):
```azurecli-interactive az webapp config appsettings list --name <app-name> --resource-group <group-name> ```
-Remove one or more settings with [az webapp config app settings delete](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_delete):
+Remove one or more settings with [az webapp config app settings delete](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-delete):
```azurecli-interactive az webapp config appsettings delete --name <app-name> --resource-group <group-name> --setting-names {<setting-name1>,<setting-name2>,...}
App settings have the following JSON formatting:
# [Azure CLI](#tab/cli)
-Run [az webapp config app settings set](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) with the name of the JSON file.
+Run [az webapp config app settings set](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) with the name of the JSON file.
```azurecli-interactive az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings "@fileName.json"
az webapp config appsettings set --resource-group <group-name> --name <app-name>
] ```
-For convenience, you can save existing settings into a JSON file with [az webapp config appsettings list](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_list). The following example can be run in Bash.
+For convenience, you can save existing settings into a JSON file with [az webapp config appsettings list](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-list). The following example can be run in Bash.
```azurecli-interactive # Save the settings
Connection strings are always encrypted when stored (encrypted-at-rest).
# [Azure CLI](#tab/cli)
-Add or edit an app setting with [az webapp config connection-string set](/cli/azure/webapp/config/connection-string#az_webapp_config_connection_string_set):
+Add or edit an app setting with [az webapp config connection-string set](/cli/azure/webapp/config/connection-string#az-webapp-config-connection-string-set):
```azurecli-interactive az webapp config connection-string set --name <app-name> --resource-group <group-name> --connection-string-type <type> --settings <string-name>='<value>' ```
-Replace `<string-name>` with the name of the connection string, and `<value>` with the value to assign to it. For possible values of `<type>` (for example, `SQLAzure`), see the [CLI command documentation](/cli/azure/webapp/config/connection-string#az_webapp_config_connection_string_set).
+Replace `<string-name>` with the name of the connection string, and `<value>` with the value to assign to it. For possible values of `<type>` (for example, `SQLAzure`), see the [CLI command documentation](/cli/azure/webapp/config/connection-string#az-webapp-config-connection-string-set).
-Show all connection strings and their values with [az webapp config connection-string list](/cli/azure/webapp/config/connection-string#az_webapp_config_connection_string_list):
+Show all connection strings and their values with [az webapp config connection-string list](/cli/azure/webapp/config/connection-string#az-webapp-config-connection-string-list):
```azurecli-interactive az webapp config connection-string list --name <app-name> --resource-group <group-name> ```
-Remove one or more connection strings with [az webapp config connection-string delete](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_delete):
+Remove one or more connection strings with [az webapp config connection-string delete](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-delete):
```azurecli-interactive az webapp config connection-string delete --name <app-name> --resource-group <group-name> --setting-names {<string-name1>,<string-name2>,...}
Connection strings have the following JSON formatting:
# [Azure CLI](#tab/cli)
-Run [az webapp config connection-string set](/cli/azure/webapp/config/connection-string#az_webapp_config_connection_string_set) with the name of the JSON file.
+Run [az webapp config connection-string set](/cli/azure/webapp/config/connection-string#az-webapp-config-connection-string-set) with the name of the JSON file.
```azurecli-interactive az webapp config connection-string set --resource-group <group-name> --name <app-name> --settings "@fileName.json"
The file format needed is a JSON array of connection strings where the slot sett
] ```
-For convenience, you can save existing connection strings into a JSON file with [az webapp config connection-string list](/cli/azure/webapp/config/connection-string#az_webapp_config_connection_string_list). The following example can be run in Bash.
+For convenience, you can save existing connection strings into a JSON file with [az webapp config connection-string list](/cli/azure/webapp/config/connection-string#az-webapp-config-connection-string-list). The following example can be run in Bash.
```azurecli-interactive # Save the connection strings
Here, you can configure some common settings for the app. Some settings require
![General settings for Linux containers](./media/configure-common/open-general-linux.png) - **Platform settings**: Lets you configure settings for the hosting platform, including:
+ - **FTP state**: Allow only FTPS or disable FTP altogether.
- **Bitness**: 32-bit or 64-bit. (Defaults to 32-bit for App Service created in the portal.) - **WebSocket protocol**: For [ASP.NET SignalR] or [socket.io](https://socket.io/), for example. - **Always On**: Keeps the app loaded even when there's no traffic. When **Always On** is not turned on (default), the app is unloaded after 20 minutes without any incoming requests. The unloaded app can cause high latency for new requests because of its warm-up time. When **Always On** is turned on, the front-end load balancer sends a GET request to the application root every five minutes. The continuous ping prevents the app from being unloaded.
Here, you can configure some common settings for the app. Some settings require
# [Azure CLI](#tab/cli)
-You can set many of the common configurable options using [az webapp config set](/cli/azure/webapp/config#az_webapp_config_set). The following example shows a subset of the configurable options.
+You can set many of the common configurable options using [az webapp config set](/cli/azure/webapp/config#az-webapp-config-set). The following example shows a subset of the configurable options.
```azurecli-interactive az webapp config set --resource-group <group-name> --name <app-name> --use-32bit-worker-process [true|false] --web-sockets-enabled [true|false] --always-on [true|false]--http20-enabled --auto-heal-enabled [true|false] --remote-debugging-enabled [true|false] --number-of-workers ```
-To show the existing settings, use the [az webapp config show](/cli/azure/webapp/config#az_webapp_config_show) command.
+To show the existing settings, use the [az webapp config show](/cli/azure/webapp/config#az-webapp-config-show) command.
# [Azure PowerShell](#tab/ps)
The default document is the web page that's displayed at the root URL of an App
# [Azure CLI](#tab/cli)
-Add a default document by using [az resource update](/cli/azure/resource#az_resource_update):
+Add a default document by using [az resource update](/cli/azure/resource#az-resource-update):
```azurecli-interactive az resource update --resource-group <group-name> --resource-type "Microsoft.Web/sites/config" --name <app-name>/config/web --add properties.defaultDocuments <filename>
app-service Configure Connect To Azure Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-connect-to-azure-storage.md
The following features are supported for Linux containers:
# [Azure CLI](#tab/cli)
-Use the [`az webapp config storage-account add`](/cli/azure/webapp/config/storage-account#az_webapp_config_storage_account_add) command. For example:
+Use the [`az webapp config storage-account add`](/cli/azure/webapp/config/storage-account#az-webapp-config-storage-account-add) command. For example:
```azurecli-interactive az webapp config storage-account add --resource-group <group-name> --name <app-name> --custom-id <custom-id> --storage-type AzureFiles --share-name <share-name> --account-name <storage-account-name> --access-key "<access-key>" --mount-path <mount-path-directory>
app-service Configure Custom Container https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-custom-container.md
For *\<username>* and *\<password>*, supply the login credentials for your priva
Use the following steps to configure your web app to pull from ACR using managed identity. The steps will use system-assigned managed identity, but you can use user-assigned managed identity as well.
-1. Enable [the system-assigned managed identity](./overview-managed-identity.md) for the web app by using the [`az webapp identity assign`](/cli/azure/webapp/identity#az_webapp_identity-assign) command:
+1. Enable [the system-assigned managed identity](./overview-managed-identity.md) for the web app by using the [`az webapp identity assign`](/cli/azure/webapp/identity#az-webapp-identity-assign) command:
```azurecli-interactive az webapp identity assign --resource-group <group-name> --name <app-name> --query principalId --output tsv
SSH enables secure communication between a container and a client. In order for
Multi-container apps like WordPress need persistent storage to function properly. To enable it, your Docker Compose configuration must point to a storage location *outside* your container. Storage locations inside your container don't persist changes beyond app restart.
-Enable persistent storage by setting the `WEBSITES_ENABLE_APP_SERVICE_STORAGE` app setting, using the [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command in [Cloud Shell](https://shell.azure.com).
+Enable persistent storage by setting the `WEBSITES_ENABLE_APP_SERVICE_STORAGE` app setting, using the [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command in [Cloud Shell](https://shell.azure.com).
```azurecli-interactive az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings WEBSITES_ENABLE_APP_SERVICE_STORAGE=TRUE
app-service Configure Encrypt At Rest Using Cmk https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-encrypt-at-rest-using-cmk.md
Adding this application setting causes your web app to restart. After the app ha
Now you can replace the value of the `WEBSITE_RUN_FROM_PACKAGE` application setting with a Key Vault reference to the SAS-encoded URL. This keeps the SAS URL encrypted in Key Vault, which provides an extra layer of security.
-1. Use the following [`az keyvault create`](/cli/azure/keyvault#az_keyvault_create) command to create a Key Vault instance.
+1. Use the following [`az keyvault create`](/cli/azure/keyvault#az-keyvault-create) command to create a Key Vault instance.
```azurecli az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus
Now you can replace the value of the `WEBSITE_RUN_FROM_PACKAGE` application sett
1. Follow [these instructions to grant your app access](app-service-key-vault-references.md#granting-your-app-access-to-key-vault) to your key vault:
-1. Use the following [`az keyvault secret set`](/cli/azure/keyvault/secret#az_keyvault_secret_set) command to add your external URL as a secret in your key vault:
+1. Use the following [`az keyvault secret set`](/cli/azure/keyvault/secret#az-keyvault-secret-set) command to add your external URL as a secret in your key vault:
```azurecli az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>" ```
-1. Use the following [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command to create the `WEBSITE_RUN_FROM_PACKAGE` application setting with the value as a Key Vault reference to the external URL:
+1. Use the following [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command to create the `WEBSITE_RUN_FROM_PACKAGE` application setting with the value as a Key Vault reference to the external URL:
```azurecli az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"
app-service Configure Language Java https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-language-java.md
Use [FTPS](deploy-ftp.md) to download your JFR file to your local machine. To an
::: zone pivot="platform-windows"
-Enable [application logging](troubleshoot-diagnostic-logs.md#enable-application-logging-windows) through the Azure portal or [Azure CLI](/cli/azure/webapp/log#az_webapp_log_config) to configure App Service to write your application's standard console output and standard console error streams to the local filesystem or Azure Blob Storage. Logging to the local App Service filesystem instance is disabled 12 hours after it is configured. If you need longer retention, configure the application to write output to a Blob storage container. Your Java and Tomcat app logs can be found in the */home/LogFiles/Application/* directory.
+Enable [application logging](troubleshoot-diagnostic-logs.md#enable-application-logging-windows) through the Azure portal or [Azure CLI](/cli/azure/webapp/log#az-webapp-log-config) to configure App Service to write your application's standard console output and standard console error streams to the local filesystem or Azure Blob Storage. Logging to the local App Service filesystem instance is disabled 12 hours after it is configured. If you need longer retention, configure the application to write output to a Blob storage container. Your Java and Tomcat app logs can be found in the */home/LogFiles/Application/* directory.
::: zone-end ::: zone pivot="platform-linux"
-Enable [application logging](troubleshoot-diagnostic-logs.md#enable-application-logging-linuxcontainer) through the Azure portal or [Azure CLI](/cli/azure/webapp/log#az_webapp_log_config) to configure App Service to write your application's standard console output and standard console error streams to the local filesystem or Azure Blob Storage. If you need longer retention, configure the application to write output to a Blob storage container. Your Java and Tomcat app logs can be found in the */home/LogFiles/Application/* directory.
+Enable [application logging](troubleshoot-diagnostic-logs.md#enable-application-logging-linuxcontainer) through the Azure portal or [Azure CLI](/cli/azure/webapp/log#az-webapp-log-config) to configure App Service to write your application's standard console output and standard console error streams to the local filesystem or Azure Blob Storage. If you need longer retention, configure the application to write output to a Blob storage container. Your Java and Tomcat app logs can be found in the */home/LogFiles/Application/* directory.
Azure Blob Storage logging for Linux based App Services can only be configured using [Azure Monitor](./troubleshoot-diagnostic-logs.md#send-logs-to-azure-monitor)
app-service Configure Language Nodejs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-language-nodejs.md
If you deploy your files by using Git, or by using ZIP deployment [with build au
The generated *web.config* is tailored to the detected start script. For other deployment methods, add this *web.config* manually. Make sure the file is formatted properly.
-If you use [ZIP deployment](deploy-zip.md) (through Visual Studio Code, for example), be sure to [enable build automation](deploy-zip.md#enable-build-automation-for-zip-deploy) because it's not enabled by default. [`az webapp up`](/cli/azure/webapp#az_webapp_up) uses ZIP deployment with build automation enabled.
+If you use [ZIP deployment](deploy-zip.md) (through Visual Studio Code, for example), be sure to [enable build automation](deploy-zip.md#enable-build-automation-for-zip-deploy) because it's not enabled by default. [`az webapp up`](/cli/azure/webapp#az-webapp-up) uses ZIP deployment with build automation enabled.
::: zone-end
app-service Configure Language Php https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-language-php.md
getenv("DB_HOST")
The web framework of your choice may use a subdirectory as the site root. For example, [Laravel](https://laravel.com/), uses the *public/* subdirectory as the site root.
-To customize the site root, set the virtual application path for the app by using the [`az resource update`](/cli/azure/resource#az_resource_update) command. The following example sets the site root to the *public/* subdirectory in your repository.
+To customize the site root, set the virtual application path for the app by using the [`az resource update`](/cli/azure/resource#az-resource-update) command. The following example sets the site root to the *public/* subdirectory in your repository.
```azurecli-interactive az resource update --name web --resource-group <group-name> --namespace Microsoft.Web --resource-type config --parent sites/<app-name> --set properties.virtualApplications[0].physicalPath="site\wwwroot\public" --api-version 2015-06-01
app-service Configure Language Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-language-python.md
Last updated 06/11/2021
ms.devlang: python
+adobe-target: true
# Configure a Linux Python app for Azure App Service
You can use either the [Azure portal](https://portal.azure.com) or the Azure CLI
- **Azure CLI**: you have two options. - Run commands in the [Azure Cloud Shell](../cloud-shell/overview.md).
- - Run commands locally by installing the latest version of the [Azure CLI](/cli/azure/install-azure-cli), then sign in to Azure using [az login](/cli/azure/reference-index#az_login).
+ - Run commands locally by installing the latest version of the [Azure CLI](/cli/azure/install-azure-cli), then sign in to Azure using [az login](/cli/azure/reference-index#az-login).
> [!NOTE] > Linux is currently the recommended option for running Python apps in App Service. For information on the Windows option, see [Python on the Windows flavor of App Service](/visualstudio/python/managing-python-on-azure-app-service).
You can use either the [Azure portal](https://portal.azure.com) or the Azure CLI
- **Azure CLI**:
- - Show the current Python version with [az webapp config show](/cli/azure/webapp/config#az_webapp_config_show):
+ - Show the current Python version with [az webapp config show](/cli/azure/webapp/config#az-webapp-config-show):
```azurecli az webapp config show --resource-group <resource-group-name> --name <app-name> --query linuxFxVersion
You can use either the [Azure portal](https://portal.azure.com) or the Azure CLI
Replace `<resource-group-name>` and `<app-name>` with the names appropriate for your web app.
- - Set the Python version with [az webapp config set](/cli/azure/webapp/config#az_webapp_config_set)
+ - Set the Python version with [az webapp config set](/cli/azure/webapp/config#az-webapp-config-set)
```azurecli az webapp config set --resource-group <resource-group-name> --name <app-name> --linux-fx-version "PYTHON|3.7" ```
- - Show all Python versions that are supported in Azure App Service with [az webapp list-runtimes](/cli/azure/webapp#az_webapp_list_runtimes):
+ - Show all Python versions that are supported in Azure App Service with [az webapp list-runtimes](/cli/azure/webapp#az-webapp-list-runtimes):
```azurecli az webapp list-runtimes --os linux | grep PYTHON
To specify a startup command or command file:
- **Azure portal**: select the app's **Configuration** page, then select **General settings**. In the **Startup Command** field, place either the full text of your startup command or the name of your startup command file. Then select **Save** to apply the changes. See [Configure general settings](configure-common.md#configure-general-settings) for Linux containers. -- **Azure CLI**: use the [az webapp config set](/cli/azure/webapp/config#az_webapp_config_set) command with the `--startup-file` parameter to set the startup command or file:
+- **Azure CLI**: use the [az webapp config set](/cli/azure/webapp/config#az-webapp-config-set) command with the `--startup-file` parameter to set the startup command or file:
```azurecli az webapp config set --resource-group <resource-group-name> --name <app-name> --startup-file "<custom-command>"
app-service Configure Linux Open Ssh Session https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-linux-open-ssh-session.md
Using TCP tunneling you can create a network connection between your development
To get started, you need to install [Azure CLI](/cli/azure/install-azure-cli). To see how it works without installing Azure CLI, open [Azure Cloud Shell](../cloud-shell/overview.md).
-Open a remote connection to your app using the [az webapp create-remote-connection](/cli/azure/webapp#az_webapp_create_remote_connection) command. Specify _\<subscription-id>_, _\<group-name>_ and _\<app-name>_ for your app.
+Open a remote connection to your app using the [az webapp create-remote-connection](/cli/azure/webapp#az-webapp-create-remote-connection) command. Specify _\<subscription-id>_, _\<group-name>_ and _\<app-name>_ for your app.
```azurecli-interactive az webapp create-remote-connection --subscription <subscription-id> --resource-group <resource-group-name> -n <app-name> &
app-service Deploy Ci Cd Custom Container https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/deploy-ci-cd-custom-container.md
You can customize the GitHub Actions build provider in the following ways:
This optional configuration replaces the default authentication with publishing profiles in the generated workflow file.
-**Generate** a service principal with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). In the following example, replace *\<subscription-id>*, *\<group-name>*, and *\<app-name>* with your own values. **Save** the entire JSON output for the next step, including the top-level `{}`.
+**Generate** a service principal with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). In the following example, replace *\<subscription-id>*, *\<group-name>*, and *\<app-name>* with your own values. **Save** the entire JSON output for the next step, including the top-level `{}`.
```azurecli-interactive az ad sp create-for-rbac --name "myAppDeployAuth" --role contributor \
In the workflow file generated by the **Deployment Center**, **revise** the `azu
## Automate with CLI
-To configure the container registry and the Docker image, **run** [az webapp config container set](/cli/azure/webapp/config/container#az_webapp_config_container_set).
+To configure the container registry and the Docker image, **run** [az webapp config container set](/cli/azure/webapp/config/container#az-webapp-config-container-set).
# [Azure Container Registry](#tab/acr)
az webapp config container set --name <app-name> --resource-group <group-name> -
-- ::: zone pivot="container-linux"
-To configure a multi-container (Docker Compose) app, **prepare** a Docker Compose file locally, then **run** [az webapp config container set](/cli/azure/webapp/config/container#az_webapp_config_container_set) with the `--multicontainer-config-file` parameter. If your Docker Compose file contains private images, **add** `--docker-registry-server-*` parameters as shown in the previous example.
+To configure a multi-container (Docker Compose) app, **prepare** a Docker Compose file locally, then **run** [az webapp config container set](/cli/azure/webapp/config/container#az-webapp-config-container-set) with the `--multicontainer-config-file` parameter. If your Docker Compose file contains private images, **add** `--docker-registry-server-*` parameters as shown in the previous example.
```azurecli-interactive az webapp config container set --resource-group <group-name> --name <app-name> --multicontainer-config-file <docker-compose-file> ``` ::: zone-end
-To configure CI/CD from the container registry to your app, **run** [az webapp deployment container config](/cli/azure/webapp/deployment/container#az_webapp_deployment-container-config) with the `--enable-cd` parameter. The command outputs the webhook URL, but you must create the webhook in your registry manually in a separate step. The following example enables CI/CD on your app, then uses the webhook URL in the output to create the webhook in Azure Container Registry.
+To configure CI/CD from the container registry to your app, **run** [az webapp deployment container config](/cli/azure/webapp/deployment/container#az-webapp-deployment-container-config) with the `--enable-cd` parameter. The command outputs the webhook URL, but you must create the webhook in your registry manually in a separate step. The following example enables CI/CD on your app, then uses the webhook URL in the output to create the webhook in Azure Container Registry.
```azurecli-interactive ci_cd_url=$(az webapp deployment container config --name <app-name> --resource-group <group-name> --enable-cd true --query CI_CD_URL --output tsv)
app-service Deploy Configure Credentials https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/deploy-configure-credentials.md
and [FTP/S deployment](deploy-ftp.md). These credentials are not the same as you
# [Azure CLI](#tab/cli)
-Run the [az webapp deployment user set](/cli/azure/webapp/deployment/user#az_webapp_deployment_user_set) command. Replace \<username> and \<password> with a deployment user username and password.
+Run the [az webapp deployment user set](/cli/azure/webapp/deployment/user#az-webapp-deployment-user-set) command. Replace \<username> and \<password> with a deployment user username and password.
- The username must be unique within Azure, and for local Git pushes, must not contain the ΓÇÿ@ΓÇÖ symbol. - The password must be at least eight characters long, with two of the following three elements: letters, numbers, and symbols.
Since user-scope credentials are linked to the user and not a specific resource,
# [Azure CLI](#tab/cli)
-Get the application-scope credentials using the [az webapp deployment list-publishing-profiles](/cli/azure/webapp/deployment#az_webapp_deployment_list_publishing_profiles) command. For example:
+Get the application-scope credentials using the [az webapp deployment list-publishing-profiles](/cli/azure/webapp/deployment#az-webapp-deployment-list-publishing-profiles) command. For example:
```azurecli-interactive az webapp deployment list-publishing-profiles --resource-group <group-name> --name <app-name> ```
-For [local Git deployment](deploy-local-git.md), you can also use the [az webapp deployment list-publishing-credentials](/cli/azure/webapp/deployment#az_webapp_deployment_list_publishing_credentials) command to get a Git remote URI for your app, with the application-scope credentials already embedded. For example:
+For [local Git deployment](deploy-local-git.md), you can also use the [az webapp deployment list-publishing-credentials](/cli/azure/webapp/deployment#az-webapp-deployment-list-publishing-credentials) command to get a Git remote URI for your app, with the application-scope credentials already embedded. For example:
```azurecli-interactive az webapp deployment list-publishing-credentials --resource-group <group-name> --name <app-name> --query scmUri
Get-AzWebAppPublishingProfile -ResourceGroupName <group-name> -Name <app-name>
# [Azure CLI](#tab/cli)
-Reset the application-scope credentials using the [az resource invoke-action](/cli/azure/resource#az_resource_invoke_action) command:
+Reset the application-scope credentials using the [az resource invoke-action](/cli/azure/resource#az-resource-invoke-action) command:
```azurecli-interactive az resource invoke-action --action newpassword --resource-group <group-name> --name <app-name> --resource-type Microsoft.Web/sites
app-service Deploy Container Github Action https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/deploy-container-github-action.md
A publish profile is an app-level credential. Set up your publish profile as a G
# [Service principal](#tab/service-principal)
-You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
```azurecli-interactive az ad sp create-for-rbac --name "myApp" --role contributor \
app-service Deploy Continuous Deployment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/deploy-continuous-deployment.md
You can customize the GitHub Actions build provider in these ways:
This optional configuration replaces the default authentication with publishing profiles in the generated workflow file.
-1. Generate a service principal by using the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). In the following example, replace \<subscription-id>, \<group-name>, and \<app-name> with your own values:
+1. Generate a service principal by using the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). In the following example, replace \<subscription-id>, \<group-name>, and \<app-name> with your own values:
```azurecli-interactive az ad sp create-for-rbac --name "myAppDeployAuth" --role contributor \
app-service Deploy Ftp https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/deploy-ftp.md
In the same management page for your app where you copied the deployment credent
# [Azure CLI](#tab/cli)
-Run the [az webapp deployment list-publishing-profiles](/cli/azure/webapp/deployment#az_webapp_deployment_list_publishing_profiles) command. The following example uses a [JMES path](https://jmespath.org/) to extract the FTP/S endpoints from the output.
+Run the [az webapp deployment list-publishing-profiles](/cli/azure/webapp/deployment#az-webapp-deployment-list-publishing-profiles) command. The following example uses a [JMES path](https://jmespath.org/) to extract the FTP/S endpoints from the output.
```azurecli-interactive az webapp deployment list-publishing-profiles --name <app-name> --resource-group <group-name> --query "[?ends_with(profileName, 'FTP')].{profileName: profileName, publishUrl: publishUrl}"
For enhanced security, you should allow FTP over TLS/SSL only. You can also disa
# [Azure CLI](#tab/cli)
-Run the [az webapp config set](/cli/azure/webapp/deployment#az_webapp_deployment_list_publishing_profiles) command with the `--ftps-state` argument.
+Run the [az webapp config set](/cli/azure/webapp/deployment#az-webapp-deployment-list-publishing-profiles) command with the `--ftps-state` argument.
```azurecli-interactive az webapp config set --name <app-name> --resource-group <group-name> --ftps-state FtpsOnly
app-service Deploy Github Actions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/deploy-github-actions.md
A publish profile is an app-level credential. Set up your publish profile as a G
# [Service principal](#tab/userlevel)
-You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
```azurecli-interactive az ad sp create-for-rbac --name "myApp" --role contributor \
app-service Deploy Local Git https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/deploy-local-git.md
If you already have an App Service app and want to configure local Git deploymen
# [Azure CLI](#tab/cli)
-Run [`az webapp create`](/cli/azure/webapp#az_webapp_create) with the `--deployment-local-git` option. For example:
+Run [`az webapp create`](/cli/azure/webapp#az-webapp-create) with the `--deployment-local-git` option. For example:
```azurecli-interactive az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
If you haven't created an app yet, see [Create a Git enabled app](#create-a-git-
# [Azure CLI](#tab/cli)
-Run [`az webapp deployment source config-local-git`](/cli/azure/webapp/deployment/source#az_webapp_deployment_source_config_local_git). For example:
+Run [`az webapp deployment source config-local-git`](/cli/azure/webapp/deployment/source#az-webapp-deployment-source-config-local-git). For example:
```azurecli-interactive az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
app-service Deploy Run Package https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/deploy-run-package.md
az webapp config appsettings set --resource-group <group-name> --name <app-name>
## Run the package
-The easiest way to run a package in your App Service is with the Azure CLI [az webapp deployment source config-zip](/cli/azure/webapp/deployment/source#az_webapp_deployment_source_config_zip) command. For example:
+The easiest way to run a package in your App Service is with the Azure CLI [az webapp deployment source config-zip](/cli/azure/webapp/deployment/source#az-webapp-deployment-source-config-zip) command. For example:
```azurecli-interactive az webapp deployment source config-zip --resource-group <group-name> --name <app-name> --src <filename>.zip
app-service Deploy Staging Slots https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/deploy-staging-slots.md
After the setting is saved, the specified percentage of clients is randomly rout
After a client is automatically routed to a specific slot, it's "pinned" to that slot for the life of that client session. On the client browser, you can see which slot your session is pinned to by looking at the `x-ms-routing-name` cookie in your HTTP headers. A request that's routed to the "staging" slot has the cookie `x-ms-routing-name=staging`. A request that's routed to the production slot has the cookie `x-ms-routing-name=self`. > [!NOTE]
- > You can also use the [`az webapp traffic-routing set`](/cli/azure/webapp/traffic-routing#az_webapp_traffic_routing_set) command in the Azure CLI to set the routing percentages from CI/CD tools like GitHub Actions, DevOps pipelines, or other automation systems.
+ > You can also use the [`az webapp traffic-routing set`](/cli/azure/webapp/traffic-routing#az-webapp-traffic-routing-set) command in the Azure CLI to set the routing percentages from CI/CD tools like GitHub Actions, DevOps pipelines, or other automation systems.
### Route production traffic manually
app-service Deploy Zip https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/deploy-zip.md
For more information, see [Kudu documentation](https://github.com/projectkudu/ku
# [Azure CLI](#tab/cli)
-Deploy a ZIP package to your web app by using the [az webapp deploy](/cli/azure/webapp#az_webapp_deploy) command. The CLI command uses the [Kudu publish API](#kudu-publish-api-reference) to deploy the files and can be fully customized.
+Deploy a ZIP package to your web app by using the [az webapp deploy](/cli/azure/webapp#az-webapp-deploy) command. The CLI command uses the [Kudu publish API](#kudu-publish-api-reference) to deploy the files and can be fully customized.
The following example pushes a ZIP package to your site. Specify the path to your local ZIP package for `--src-path`.
The deployment process places the package on the shared file drive correctly (se
# [Azure CLI](#tab/cli)
-Deploy a WAR package to Tomcat or JBoss EAP by using the [az webapp deploy](/cli/azure/webapp#az_webapp_deploy) command. Specify the path to your local Java package for `--src-path`.
+Deploy a WAR package to Tomcat or JBoss EAP by using the [az webapp deploy](/cli/azure/webapp#az-webapp-deploy) command. Specify the path to your local Java package for `--src-path`.
```azurecli-interactive az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war
The Kudu UI does not support deploying JAR, WAR, or EAR applications. Please use
# [Azure CLI](#tab/cli)
-Deploy a startup script, library, and static file to your web app by using the [az webapp deploy](/cli/azure/webapp#az_webapp_deploy) command with the `--type` parameter.
+Deploy a startup script, library, and static file to your web app by using the [az webapp deploy](/cli/azure/webapp#az-webapp-deploy) command with the `--type` parameter.
If you deploy a startup script this way, App Service automatically uses your script to start your app.
app-service Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/overview.md
App Service can also host web apps natively on Linux for supported application s
### Built-in languages and frameworks
-App Service on Linux supports a number of language specific built-in images. Just deploy your code. Supported languages include: Node.js, Java (JRE 8 & JRE 11), PHP, Python, .NET Core, and Ruby. Run [`az webapp list-runtimes --linux`](/cli/azure/webapp#az_webapp_list_runtimes) to view the latest languages and supported versions. If the runtime your application requires is not supported in the built-in images, you can deploy it with a custom container.
+App Service on Linux supports a number of language specific built-in images. Just deploy your code. Supported languages include: Node.js, Java (JRE 8 & JRE 11), PHP, Python, .NET Core, and Ruby. Run [`az webapp list-runtimes --linux`](/cli/azure/webapp#az-webapp-list-runtimes) to view the latest languages and supported versions. If the runtime your application requires is not supported in the built-in images, you can deploy it with a custom container.
Outdated runtimes are periodically removed from the Web Apps Create and Configuration blades in the Portal. These runtimes are hidden from the Portal when they are deprecated by the maintaining organization or found to have significant vulnerabilities. These options are hidden to guide customers to the latest runtimes where they will be the most successful.
app-service Quickstart Arc https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/quickstart-arc.md
You can learn more about log queries in [getting started with Kusto](../azure-mo
## (Optional) Deploy a custom container
-To create a custom containerized app, run [az webapp create](/cli/azure/webapp#az_webapp_create) with `--deployment-container-image-name`. For a private repository, add `--docker-registry-server-user` and `--docker-registry-server-password`.
+To create a custom containerized app, run [az webapp create](/cli/azure/webapp#az-webapp-create) with `--deployment-container-image-name`. For a private repository, add `--docker-registry-server-user` and `--docker-registry-server-password`.
For example, try:
app-service Quickstart Arm Template Uiex https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/quickstart-arm-template-uiex.md
az deployment group create --resource-group myResourceGroup --parameters webAppN
<ul> <li>Create a default <abbr title="A logical container for related Azure resources that you can manage as a unit.">resource group</abbr>.</li> <li>Create a default <abbr title="The plan that specifies the location, size, and features of the web server farm that hosts your app.">App Service plan</abbr>.</li>
-<li><a href="/cli/azure/webapp#az_webapp_create">Create an <abbr title="The representation of your web app, which contains your app code, DNS hostnames, certificates, and related resources.">App Service app</abbr></a> with the specified name.</li>
+<li><a href="/cli/azure/webapp#az-webapp-create">Create an <abbr title="The representation of your web app, which contains your app code, DNS hostnames, certificates, and related resources.">App Service app</abbr></a> with the specified name.</li>
</ul> </details>
app-service Quickstart Dotnetcore Uiex https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/quickstart-dotnetcore-uiex.md
az login
<li>If the <code>az</code> command isn't recognized, be sure you have the Azure CLI installed as described in <a href="#1-prepare-your-environment">Prepare your environment</a>.</li> <li>Replace <code>&lt;app-name&gt;</code> with a name that's unique across all of Azure (<em>valid characters are <code>a-z</code>, <code>0-9</code>, and <code>-</code></em>). A good pattern is to use a combination of your company name and an app identifier.</li> <li>The <code>--sku F1</code> argument creates the web app on the Free pricing tier. Omit this argument to use a faster premium tier, which incurs an hourly cost.</li>
- <li>You can optionally include the argument <code>--location &lt;location-name&gt;</code> where <code>&lt;location-name&gt;</code> is an available Azure region. You can retrieve a list of allowable regions for your Azure account by running the <a href="/cli/azure/appservice#az_appservice_list_locations"><code>az account list-locations</code></a> command.</li>
+ <li>You can optionally include the argument <code>--location &lt;location-name&gt;</code> where <code>&lt;location-name&gt;</code> is an available Azure region. You can retrieve a list of allowable regions for your Azure account by running the <a href="/cli/azure/appservice#az-appservice-list-locations"><code>az account list-locations</code></a> command.</li>
</ul> </details>
az login
<ul> <li>Create a default resource group.</li> <li>Create a default App Service plan.</li>
- <li><a href="/cli/azure/webapp#az_webapp_create">Create an App Service app</a> with the specified name.</li>
+ <li><a href="/cli/azure/webapp#az-webapp-create">Create an App Service app</a> with the specified name.</li>
<li><a href="/azure/app-service/deploy-zip">Zip deploy</a> files from the current working directory to the app.</li> <li>While running, it provides messages about resource creation, logging, and ZIP deployment.</li> </ul>
app-service Quickstart Dotnetcore https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/quickstart-dotnetcore.md
Follow these steps to create your App Service resources and publish your project
:::zone target="docs" pivot="development-environment-cli" <!-- markdownlint-enable MD044 -->
-1. Sign into your Azure account by using the [`az login`](/cli/azure/reference-index#az_login) command and following the prompt:
+1. Sign into your Azure account by using the [`az login`](/cli/azure/reference-index#az-login) command and following the prompt:
```azurecli az login ```
-1. Deploy the code in your local *MyFirstAzureWebApp* directory using the [`az webapp up`](/cli/azure/webapp#az_webapp_up) command:
+1. Deploy the code in your local *MyFirstAzureWebApp* directory using the [`az webapp up`](/cli/azure/webapp#az-webapp-up) command:
```azurecli az webapp up --sku F1 --name <app-name> --os-type <os>
Follow these steps to create your App Service resources and publish your project
- Replace `<app-name>` with a name that's unique across all of Azure (*valid characters are `a-z`, `0-9`, and `-`*). A good pattern is to use a combination of your company name and an app identifier. - The `--sku F1` argument creates the web app on the **Free** [pricing tier][app-service-pricing-tier]. Omit this argument to use a faster premium tier, which incurs an hourly cost. - Replace `<os>` with either `linux` or `windows`. You must use `windows` when targeting *ASP.NET Framework 4.8*.
- - You can optionally include the argument `--location <location-name>` where `<location-name>` is an available Azure region. You can retrieve a list of allowable regions for your Azure account by running the [`az account list-locations`](/cli/azure/appservice#az_appservice_list_locations) command.
+ - You can optionally include the argument `--location <location-name>` where `<location-name>` is an available Azure region. You can retrieve a list of allowable regions for your Azure account by running the [`az account list-locations`](/cli/azure/appservice#az-appservice-list-locations) command.
The command might take a few minutes to complete. While running, it provides messages about creating the resource group, the App Service plan, and hosting app, configuring logging, then performing ZIP deployment. Then it shows a message with the app's URL:
app-service Quickstart Html Uiex https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/quickstart-html-uiex.md
The command may take a few minutes to complete.
<ul> <li>Create a default resource group.</li> <li>Create a default App Service plan.</li>
-<li><a href="/cli/azure/webapp#az_webapp_create">Create an App Service app</a> with the specified name.</li>
+<li><a href="/cli/azure/webapp#az-webapp-create">Create an App Service app</a> with the specified name.</li>
<li><a href="/azure/app-service/deploy-zip">Zip deploy</a> files from the current working directory to the app.</li> <li>While running, it provides messages about resource creation, logging, and ZIP deployment.</li> </ul>
app-service Quickstart Multi Container https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/quickstart-multi-container.md
cd multicontainerwordpress
[!INCLUDE [resource group intro text](../../includes/resource-group.md)]
-In the Cloud Shell, create a resource group with the [`az group create`](/cli/azure/group#az_group_create) command. The following example creates a resource group named *myResourceGroup* in the *South Central US* location. To see all supported locations for App Service on Linux in **Standard** tier, run the [`az appservice list-locations --sku S1 --linux-workers-enabled`](/cli/azure/appservice#az_appservice_list_locations) command.
+In the Cloud Shell, create a resource group with the [`az group create`](/cli/azure/group#az-group-create) command. The following example creates a resource group named *myResourceGroup* in the *South Central US* location. To see all supported locations for App Service on Linux in **Standard** tier, run the [`az appservice list-locations --sku S1 --linux-workers-enabled`](/cli/azure/appservice#az-appservice-list-locations) command.
```azurecli-interactive az group create --name myResourceGroup --location "South Central US"
When the command finishes, a JSON output shows you the resource group properties
## Create an Azure App Service plan
-In the Cloud Shell, create an App Service plan in the resource group with the [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) command.
+In the Cloud Shell, create an App Service plan in the resource group with the [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) command.
The following example creates an App Service plan named `myAppServicePlan` in the **Standard** pricing tier (`--sku S1`) and in a Linux container (`--is-linux`).
When the App Service plan has been created, the Azure CLI shows information simi
> [!NOTE] > Docker Compose on Azure App Services currently has a limit of 4,000 characters at this time.
-In your Cloud Shell terminal, create a multi-container [web app](overview.md#app-service-on-linux) in the `myAppServicePlan` App Service plan with the [az webapp create](/cli/azure/webapp#az_webapp_create) command. Don't forget to replace _\<app_name>_ with a unique app name (valid characters are `a-z`, `0-9`, and `-`).
+In your Cloud Shell terminal, create a multi-container [web app](overview.md#app-service-on-linux) in the `myAppServicePlan` App Service plan with the [az webapp create](/cli/azure/webapp#az-webapp-create) command. Don't forget to replace _\<app_name>_ with a unique app name (valid characters are `a-z`, `0-9`, and `-`).
```azurecli az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app_name> --multicontainer-config-type compose --multicontainer-config-file compose-wordpress.yml
app-service Quickstart Nodejs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/quickstart-nodejs.md
az webapp up --sku F1 --name <app-name> --os-type Windows
- If the `az` command isn't recognized, ensure you have the Azure CLI installed as described in [Set up your initial environment](#set-up-your-initial-environment). - Replace `<app_name>` with a name that's unique across all of Azure (*valid characters are `a-z`, `0-9`, and `-`*). A good pattern is to use a combination of your company name and an app identifier. - The `--sku F1` argument creates the web app on the Free pricing tier, which incurs a no cost.-- You can optionally include the argument `--location <location-name>` where `<location_name>` is an available Azure region. You can retrieve a list of allowable regions for your Azure account by running the [`az account list-locations`](/cli/azure/appservice#az_appservice_list_locations) command.
+- You can optionally include the argument `--location <location-name>` where `<location_name>` is an available Azure region. You can retrieve a list of allowable regions for your Azure account by running the [`az account list-locations`](/cli/azure/appservice#az-appservice-list-locations) command.
- The command creates a Linux app for Node.js by default. To create a Windows app instead, use the `--os-type` argument. - If you see the error, "Could not auto-detect the runtime stack of your app," ensure you're running the command in the *myExpressApp* directory (See [Troubleshooting auto-detect issues with az webapp up](https://github.com/Azure/app-service-linux-docs/blob/master/AzWebAppUP/runtime_detection.md)).
You can stream log output (calls to `console.log()`) from the Azure app directly
You can access the console logs generated from inside the app and the container in which it runs. Logs include any output generated by calls to `console.log()`.
-To stream logs, run the [az webapp log tail](/cli/azure/webapp/log#az_webapp_log_tail) command:
+To stream logs, run the [az webapp log tail](/cli/azure/webapp/log#az-webapp-log-tail) command:
```azurecli az webapp log tail
app-service Quickstart Php https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/quickstart-php.md
To complete this quickstart:
## Create a web app
-1. In the Cloud Shell, create a web app in the `myAppServicePlan` App Service plan with the [`az webapp create`](/cli/azure/webapp#az_webapp_create) command.
+1. In the Cloud Shell, create a web app in the `myAppServicePlan` App Service plan with the [`az webapp create`](/cli/azure/webapp#az-webapp-create) command.
- In the following example, replace `<app-name>` with a globally unique app name (valid characters are `a-z`, `0-9`, and `-`). The runtime is set to `PHP|7.4`. To see all supported runtimes, run [`az webapp list-runtimes`](/cli/azure/webapp#az_webapp_list_runtimes).
+ In the following example, replace `<app-name>` with a globally unique app name (valid characters are `a-z`, `0-9`, and `-`). The runtime is set to `PHP|7.4`. To see all supported runtimes, run [`az webapp list-runtimes`](/cli/azure/webapp#az-webapp-list-runtimes).
```azurecli-interactive az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'PHP|7.4' --deployment-local-git
app-service Quickstart Python 1 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/quickstart-python-1.md
az webapp up --sku B1 --name <app-name>
- If the `webapp` command isn't recognized, because that your Azure CLI version is 2.0.80 or higher. If not, [install the latest version](/cli/azure/install-azure-cli). - Replace `<app_name>` with a name that's unique across all of Azure (*valid characters are `a-z`, `0-9`, and `-`*). A good pattern is to use a combination of your company name and an app identifier. - The `--sku B1` argument creates the web app on the Basic pricing tier, which incurs a small hourly cost. Omit this argument to use a faster premium tier.-- You can optionally include the argument `--location <location-name>` where `<location_name>` is an available Azure region. You can retrieve a list of allowable regions for your Azure account by running the [az account list-locations](/cli/azure/appservice#az_appservice_list_locations) command.
+- You can optionally include the argument `--location <location-name>` where `<location_name>` is an available Azure region. You can retrieve a list of allowable regions for your Azure account by running the [az account list-locations](/cli/azure/appservice#az-appservice-list-locations) command.
- If you see the error, "Could not auto-detect the runtime stack of your app," make sure you're running the command in the *python-docs-hello-world* folder (Flask) or the *python-docs-hello-django* folder (Django) that contains the *requirements.txt* file. (See [Troubleshooting auto-detect issues with az webapp up](https://github.com/Azure/app-service-linux-docs/blob/master/AzWebAppUP/runtime_detection.md) (GitHub).) The command may take a few minutes to complete. While running, it provides messages about creating the resource group, the App Service plan and hosting app, configuring logging, then performing ZIP deployment. It then gives the message, "You can launch the app at http://&lt;app-name&gt;.azurewebsites.net", which is the app's URL on Azure.
Once deployment is complete, switch back to the browser window open to `http://<
You can access the console logs generated from inside the app and the container in which it runs. Logs include any output generated using `print` statements.
-To stream logs, run the [az webapp log tail](/cli/azure/webapp/log#az_webapp_log_tail) command:
+To stream logs, run the [az webapp log tail](/cli/azure/webapp/log#az-webapp-log-tail) command:
```azurecli az webapp log tail
app-service Quickstart Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/quickstart-python.md
The contents of the App Service diagnostic logs can be reviewed in the Azure por
### [Azure CLI](#tab/azure-cli)
-First, you need to configure Azure App Service to output logs to the App Service filesystem using the [az webapp log config](/cli/azure/webapp/log#az_webapp_log_config) command.
+First, you need to configure Azure App Service to output logs to the App Service filesystem using the [az webapp log config](/cli/azure/webapp/log#az-webapp-log-config) command.
[!INCLUDE [CLI stream logs configure](<./includes/quickstart-python/stream-logs-cli-1.md>)]
-To stream logs, use the [az webapp log tail](/cli/azure/webapp/log#az_webapp_log_tail) command.
+To stream logs, use the [az webapp log tail](/cli/azure/webapp/log#az-webapp-log-tail) command.
[!INCLUDE [CLI stream logs tail](<./includes/quickstart-python/stream-logs-cli-2.md>)]
Follow these steps while signed-in to the Azure portal to delete a resource grou
### [Azure CLI](#tab/azure-cli)
-Delete the resource group by using the [az group delete](/cli/azure/group#az_group_delete) command.
+Delete the resource group by using the [az group delete](/cli/azure/group#az-group-delete) command.
```azurecli az group delete \
app-service Cli Backup Onetime https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-backup-onetime.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az storage account create`](/cli/azure/storage/account#az_storage_account_create) | Creates a storage account. |
-| [`az storage container create`](/cli/azure/storage/container#az_storage_container_create) | Creates an Azure storage container. |
-| [`az storage container generate-sas`](/cli/azure/storage/container#az_storage_container_generate_sas) | Generates an SAS token for an Azure storage container. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp config backup create`](/cli/azure/webapp/config/backup#az_webapp_config_backup_create) | Creates a backup for an App Service app. |
-| [`az webapp config backup list`](/cli/azure/webapp/config/backup#az_webapp_config_backup_list) | Gets a list of backups for an App Service app. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az storage account create`](/cli/azure/storage/account#az-storage-account-create) | Creates a storage account. |
+| [`az storage container create`](/cli/azure/storage/container#az-storage-container-create) | Creates an Azure storage container. |
+| [`az storage container generate-sas`](/cli/azure/storage/container#az-storage-container-generate-sas) | Generates an SAS token for an Azure storage container. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp config backup create`](/cli/azure/webapp/config/backup#az-webapp-config-backup-create) | Creates a backup for an App Service app. |
+| [`az webapp config backup list`](/cli/azure/webapp/config/backup#az-webapp-config-backup-list) | Gets a list of backups for an App Service app. |
## Next steps
app-service Cli Backup Restore https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-backup-restore.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az webapp config backup list`](/cli/azure/webapp/config/backup#az_webapp_config_backup_list) | Gets a list of backups for a web app. |
-| [`az webapp config backup restore`](/cli/azure/webapp/config/backup#az_webapp_config_backup_restore) | Restores a web app from a backup. |
+| [`az webapp config backup list`](/cli/azure/webapp/config/backup#az-webapp-config-backup-list) | Gets a list of backups for a web app. |
+| [`az webapp config backup restore`](/cli/azure/webapp/config/backup#az-webapp-config-backup-restore) | Restores a web app from a backup. |
## Next steps
app-service Cli Backup Scheduled https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-backup-scheduled.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az storage account create`](/cli/azure/storage/account#az_storage_account_create) | Creates a storage account. |
-| [`az storage container create`](/cli/azure/storage/container#az_storage_container_create) | Creates an Azure storage container. |
-| [`az storage container generate-sas`](/cli/azure/storage/container#az_storage_container_generate_sas) | Generates an SAS token for an Azure storage container. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp config backup update`](/cli/azure/webapp/config/backup#az_webapp_config_backup_update) | Configures a new backup schedule for an App Service app. |
-| [`az webapp config backup show`](/cli/azure/webapp/config/backup#az_webapp_config_backup_show) | Shows the backup schedule for an App Service app. |
-| [`az webapp config backup list`](/cli/azure/webapp/config/backup#az_webapp_config_backup_list) | Gets a list of backups for an App Service app. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az storage account create`](/cli/azure/storage/account#az-storage-account-create) | Creates a storage account. |
+| [`az storage container create`](/cli/azure/storage/container#az-storage-container-create) | Creates an Azure storage container. |
+| [`az storage container generate-sas`](/cli/azure/storage/container#az-storage-container-generate-sas) | Generates an SAS token for an Azure storage container. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp config backup update`](/cli/azure/webapp/config/backup#az-webapp-config-backup-update) | Configures a new backup schedule for an App Service app. |
+| [`az webapp config backup show`](/cli/azure/webapp/config/backup#az-webapp-config-backup-show) | Shows the backup schedule for an App Service app. |
+| [`az webapp config backup list`](/cli/azure/webapp/config/backup#az-webapp-config-backup-list) | Gets a list of backups for an App Service app. |
## Next steps
app-service Cli Configure Custom Domain https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-configure-custom-domain.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp config hostname add`](/cli/azure/webapp/config/hostname#az_webapp_config_hostnam_eadd) | Maps a custom domain to an App Service app. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp config hostname add`](/cli/azure/webapp/config/hostname#az-webapp-config-hostnam-eadd) | Maps a custom domain to an App Service app. |
## Next steps
app-service Cli Configure Ssl Certificate https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-configure-ssl-certificate.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp config hostname add`](/cli/azure/webapp/config/hostname#az_webapp_config_hostname_add) | Maps a custom domain to an App Service app. |
-| [`az webapp config ssl upload`](/cli/azure/webapp/config/ssl#az_webapp_config_ssl_upload) | Uploads a TLS/SSL certificate to an App Service app. |
-| [`az webapp config ssl bind`](/cli/azure/webapp/config/ssl#az_webapp_config_ssl_bind) | Binds an uploaded TLS/SSL certificate to an App Service app. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp config hostname add`](/cli/azure/webapp/config/hostname#az-webapp-config-hostname-add) | Maps a custom domain to an App Service app. |
+| [`az webapp config ssl upload`](/cli/azure/webapp/config/ssl#az-webapp-config-ssl-upload) | Uploads a TLS/SSL certificate to an App Service app. |
+| [`az webapp config ssl bind`](/cli/azure/webapp/config/ssl#az-webapp-config-ssl-bind) | Binds an uploaded TLS/SSL certificate to an App Service app. |
## Next steps
app-service Cli Connect To Documentdb https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-connect-to-documentdb.md
This script uses the following commands to create a resource group, App Service
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az cosmosdb create`](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates a Cosmos DB account. |
-| [`az cosmosdb list-connection-strings`](/cli/azure/cosmosdb#az_cosmosdb_list_connection_strings) | Lists connection strings for the specified Cosmos DB account. |
-| [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) | Creates or updates an app setting for an App Service app. App settings are exposed as environment variables for your app (see [Environment variables and app settings reference](../reference-app-settings.md)). |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az cosmosdb create`](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates a Cosmos DB account. |
+| [`az cosmosdb list-connection-strings`](/cli/azure/cosmosdb#az-cosmosdb-list-connection-strings) | Lists connection strings for the specified Cosmos DB account. |
+| [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) | Creates or updates an app setting for an App Service app. App settings are exposed as environment variables for your app (see [Environment variables and app settings reference](../reference-app-settings.md)). |
## Next steps
app-service Cli Connect To Redis https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-connect-to-redis.md
This script uses the following commands to create a resource group, App Service
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az redis create`](/cli/azure/redis#az_redis-create) | Create new Azure Cache for Redis instance. |
-| [`az redis list-keys`](/cli/azure/redis#az_redis_list_keys) | Lists the access keys for the Azure Cache for Redis instance. |
-| [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) | Creates or updates an app setting for an App Service app. App settings are exposed as environment variables for your app. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az redis create`](/cli/azure/redis#az-redis-create) | Create new Azure Cache for Redis instance. |
+| [`az redis list-keys`](/cli/azure/redis#az-redis-list-keys) | Lists the access keys for the Azure Cache for Redis instance. |
+| [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) | Creates or updates an app setting for an App Service app. App settings are exposed as environment variables for your app. |
## Next steps
app-service Cli Connect To Sql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-connect-to-sql.md
This script uses the following commands to create a resource group, App Service
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az sql server create`](/cli/azure/sql/server#az_sql_server_create) | Creates a server. |
-| [`az sql db create`](/cli/azure/sql/db#az_sql_db_create) | Creates a new database. |
-| [`az sql db show-connection-string`](/cli/azure/sql/db#az_sql_db_show-connection_string) | Generates a connection string to a database. |
-| [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) | Creates or updates an app setting for an App Service app. App settings are exposed as environment variables for your app. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az sql server create`](/cli/azure/sql/server#az-sql-server-create) | Creates a server. |
+| [`az sql db create`](/cli/azure/sql/db#az-sql-db-create) | Creates a new database. |
+| [`az sql db show-connection-string`](/cli/azure/sql/db#az-sql-db-show-connection-string) | Generates a connection string to a database. |
+| [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) | Creates or updates an app setting for an App Service app. App settings are exposed as environment variables for your app. |
## Next steps
app-service Cli Connect To Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-connect-to-storage.md
This script uses the following commands to create a resource group, App Service
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az storage account create`](/cli/azure/storage/account#az_storage_account_create) | Creates a storage account. |
-| [`az storage account show-connection-string`](/cli/azure/storage/account#az_storage_account_show_connection_string) | Get the connection string for a storage account. |
-| [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) | Creates or updates an app setting for an App Service app. App settings are exposed as environment variables for your app. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az storage account create`](/cli/azure/storage/account#az-storage-account-create) | Creates a storage account. |
+| [`az storage account show-connection-string`](/cli/azure/storage/account#az-storage-account-show-connection-string) | Get the connection string for a storage account. |
+| [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) | Creates or updates an app setting for an App Service app. App settings are exposed as environment variables for your app. |
## Next steps
app-service Cli Continuous Deployment Github https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-continuous-deployment-github.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp deployment source config`](/cli/azure/webapp/deployment/source#az_webapp_deployment_source_config) | Associates an App Service app with a Git or Mercurial repository. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp deployment source config`](/cli/azure/webapp/deployment/source#az-webapp-deployment-source-config) | Associates an App Service app with a Git or Mercurial repository. |
## Next steps
app-service Cli Continuous Deployment Vsts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-continuous-deployment-vsts.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp deployment source config`](/cli/azure/webapp/deployment/source#az_webapp_deployment_source_config) | Associates an App Service app with a Git or Mercurial repository. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp deployment source config`](/cli/azure/webapp/deployment/source#az-webapp-deployment-source-config) | Associates an App Service app with a Git or Mercurial repository. |
## Next steps
app-service Cli Deploy Ftp https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-deploy-ftp.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp deployment list-publishing-profiles`](/cli/azure/webapp/deployment#az_webapp_deployment_list_publishing_profiles) | Get the details for available app deployment profiles. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp deployment list-publishing-profiles`](/cli/azure/webapp/deployment#az-webapp-deployment-list-publishing-profiles) | Get the details for available app deployment profiles. |
## Next steps
app-service Cli Deploy Github https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-deploy-github.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp deployment source config`](/cli/azure/webapp/deployment/source#az_webapp_deployment_source_config) | Associates an App Service app with a Git or Mercurial repository. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp deployment source config`](/cli/azure/webapp/deployment/source#az-webapp-deployment-source-config) | Associates an App Service app with a Git or Mercurial repository. |
## Next steps
app-service Cli Deploy Local Git https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-deploy-local-git.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp deployment user set`](/cli/azure/webapp/deployment/user#az_webapp_deployment_user_set) | Sets the account-level deployment credentials for App Service. |
-| [`az webapp deployment source config-local-git`](/cli/azure/webapp/deployment/source#az_webapp_deployment_source_config_local_git) | Creates a source control configuration for a local Git repository. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp deployment user set`](/cli/azure/webapp/deployment/user#az-webapp-deployment-user-set) | Sets the account-level deployment credentials for App Service. |
+| [`az webapp deployment source config-local-git`](/cli/azure/webapp/deployment/source#az-webapp-deployment-source-config-local-git) | Creates a source control configuration for a local Git repository. |
## Next steps
app-service Cli Deploy Privateendpoint https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-deploy-privateendpoint.md
az group create --name myResourceGroup --location francecentral
## Create an App Service Plan You need to create an App Service Plan to host your Web App.
-Create an App Service Plan with [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create).
+Create an App Service Plan with [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create).
This example creates App Service Plan named *myAppServicePlan* in the *francecentral* location with *P1V2* sku and only one worker: ```azurecli-interactive
az appservice plan create \
## Create a Web App Now that you have an App Service Plan you can deploy a Web App.
-Create a Web App with [az webapp create](/cli/azure/webapp#az_webapp_create).
+Create a Web App with [az webapp create](/cli/azure/webapp#az-webapp-create).
This example creates a Web App named *mySiteName* in the Plan named *myAppServicePlan* ```azurecli-interactive
az network vnet create \
## Configure the Subnet
-You need to update the subnet to disable private endpoint network policies. Update a subnet configuration named *mySubnet* with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update):
+You need to update the subnet to disable private endpoint network policies. Update a subnet configuration named *mySubnet* with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update):
```azurecli-interactive az network vnet subnet update \
app-service Cli Deploy Staging Environment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-deploy-staging-environment.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp deployment slot create`](/cli/azure/webapp/deployment/slot#az_webapp_deployment_slot_create) | Create a deployment slot. |
-| [`az webapp deployment source config`](/cli/azure/webapp/deployment/source#az_webapp_deployment_source_config) | Associates an App Service app with a Git or Mercurial repository. |
-| [`az webapp deployment slot swap`](/cli/azure/webapp/deployment/slot#az_webapp_deployment_slot_swap) | Swap a specified deployment slot into production. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp deployment slot create`](/cli/azure/webapp/deployment/slot#az-webapp-deployment-slot-create) | Create a deployment slot. |
+| [`az webapp deployment source config`](/cli/azure/webapp/deployment/source#az-webapp-deployment-source-config) | Associates an App Service app with a Git or Mercurial repository. |
+| [`az webapp deployment slot swap`](/cli/azure/webapp/deployment/slot#az-webapp-deployment-slot-swap) | Swap a specified deployment slot into production. |
## Next steps
app-service Cli Integrate App Service With Application Gateway https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-integrate-app-service-with-application-gateway.md
This script uses the following commands to create a resource group, App Service
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az network vnet create`](/cli/azure/network/vnet#az_network_vnet_create) | Creates a virtual network. |
-| [`az network public-ip create`](/cli/azure/network/public-ip#az_network_public_ip_create) | Creates a public IP address. |
-| [`az network public-ip show`](/cli/azure/network/public-ip#az_network_public_ip_show) | Show details of a public IP address. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service web app. |
-| [`az webapp show`](/cli/azure/webapp#az_webapp_show) | Show details of an App Service web app. |
-| [`az webapp config access-restriction add`](/cli/azure/webapp/config/access-restriction#az_webapp_config_access_restriction_add) | Adds an access restriction to the App Service web app. |
-| [`az network application-gateway create`](/cli/azure/network/application-gateway#az_network_application_gateway_create) | Creates an Application Gateway. |
-| [`az network application-gateway http-settings update`](/cli/azure/network/application-gateway/http-settings#az_network-application-gateway-http_settings_update) | Updates Application Gateway HTTP settings. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az network vnet create`](/cli/azure/network/vnet#az-network-vnet-create) | Creates a virtual network. |
+| [`az network public-ip create`](/cli/azure/network/public-ip#az-network-public-ip-create) | Creates a public IP address. |
+| [`az network public-ip show`](/cli/azure/network/public-ip#az-network-public-ip-show) | Show details of a public IP address. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service web app. |
+| [`az webapp show`](/cli/azure/webapp#az-webapp-show) | Show details of an App Service web app. |
+| [`az webapp config access-restriction add`](/cli/azure/webapp/config/access-restriction#az-webapp-config-access-restriction-add) | Adds an access restriction to the App Service web app. |
+| [`az network application-gateway create`](/cli/azure/network/application-gateway#az-network-application-gateway-create) | Creates an Application Gateway. |
+| [`az network application-gateway http-settings update`](/cli/azure/network/application-gateway/http-settings#az-network-application-gateway-http-settings-update) | Updates Application Gateway HTTP settings. |
## Next steps
app-service Cli Linux Acr Aspnetcore https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-linux-acr-aspnetcore.md
This script uses the following commands to create a resource group, App Service
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp config container set`](/cli/azure/webapp/config/container#az_webapp_config_container_set) | Sets the Docker container for the App Service app. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp config container set`](/cli/azure/webapp/config/container#az-webapp-config-container-set) | Sets the Docker container for the App Service app. |
## Next steps
app-service Cli Linux Docker Aspnetcore https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-linux-docker-aspnetcore.md
This script uses the following commands to create a resource group, App Service
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp config container set`](/cli/azure/webapp/config/container#az_webapp_config_container_set) | Sets the Docker container for the App Service app. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp config container set`](/cli/azure/webapp/config/container#az-webapp-config-container-set) | Sets the Docker container for the App Service app. |
## Next steps
app-service Cli Monitor https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-monitor.md
This script uses the following commands to create a resource group, App Service
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az webapp log config`](/cli/azure/webapp/log#az_webapp_log_config) | Configures which logs an App Service app persists. |
-| [`az webapp log download`](/cli/azure/webapp/log#az_webapp_log_download) | Downloads the logs of an App Service app to your local machine. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az webapp log config`](/cli/azure/webapp/log#az-webapp-log-config) | Configures which logs an App Service app persists. |
+| [`az webapp log download`](/cli/azure/webapp/log#az-webapp-log-download) | Downloads the logs of an App Service app to your local machine. |
## Next steps
app-service Cli Scale High Availability https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-scale-high-availability.md
This script uses the following commands to create a resource group, App Service
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az network traffic-manager profile create`](/cli/azure/network/traffic-manager/profile#az_network_traffic_manager_profile_create) | Creates an Azure Traffic Manager profile. |
-| [`az network traffic-manager endpoint create`](/cli/azure/network/traffic-manager/endpoint#az_network_traffic-manager_endpoint_create) | Adds an endpoint to an Azure Traffic Manager Profile. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az network traffic-manager profile create`](/cli/azure/network/traffic-manager/profile#az-network-traffic-manager-profile-create) | Creates an Azure Traffic Manager profile. |
+| [`az network traffic-manager endpoint create`](/cli/azure/network/traffic-manager/endpoint#az-network-traffic-manager-endpoint-create) | Adds an endpoint to an Azure Traffic Manager Profile. |
## Next steps
app-service Cli Scale Manual https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/scripts/cli-scale-manual.md
This script uses the following commands to create a resource group, App Service
| Command | Notes | |||
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an App Service plan. |
-| [`az webapp create`](/cli/azure/webapp#az_webapp_create) | Creates an App Service app. |
-| [`az appservice plan update`](/cli/azure/appservice/plan#az_appservice_plan_update) | Updates properties of the App Service plan. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an App Service plan. |
+| [`az webapp create`](/cli/azure/webapp#az-webapp-create) | Creates an App Service app. |
+| [`az appservice plan update`](/cli/azure/appservice/plan#az-appservice-plan-update) | Updates properties of the App Service plan. |
## Next steps
app-service Tutorial Auth Aad https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/tutorial-auth-aad.md
az webapp create --resource-group myAuthResourceGroup --plan myAuthAppServicePla
### Push to Azure from Git
-1. Since you're deploying the `main` branch, you need to set the default deployment branch for your two App Service apps to `main` (see [Change deployment branch](deploy-local-git.md#change-deployment-branch)). In the Cloud Shell, set the `DEPLOYMENT_BRANCH` app setting with the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command.
+1. Since you're deploying the `main` branch, you need to set the default deployment branch for your two App Service apps to `main` (see [Change deployment branch](deploy-local-git.md#change-deployment-branch)). In the Cloud Shell, set the `DEPLOYMENT_BRANCH` app setting with the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command.
```azurecli-interactive az webapp config appsettings set --name <front-end-app-name> --resource-group myAuthResourceGroup --settings DEPLOYMENT_BRANCH=main
While the server code has access to request headers, client code can access `GET
### Configure CORS
-In the Cloud Shell, enable CORS to your client's URL by using the [`az webapp cors add`](/cli/azure/webapp/cors#az_webapp_cors_add) command. Replace the _\<back-end-app-name>_ and _\<front-end-app-name>_ placeholders.
+In the Cloud Shell, enable CORS to your client's URL by using the [`az webapp cors add`](/cli/azure/webapp/cors#az-webapp-cors-add) command. Replace the _\<back-end-app-name>_ and _\<front-end-app-name>_ placeholders.
```azurecli-interactive az webapp cors add --resource-group myAuthResourceGroup --name <back-end-app-name> --allowed-origins 'https://<front-end-app-name>.azurewebsites.net'
app-service Tutorial Connect Msi Sql Database https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/tutorial-connect-msi-sql-database.md
First, enable Azure Active Directory authentication to SQL Database by assigning
1. If your Azure AD tenant doesn't have a user yet, create one by following the steps at [Add or delete users using Azure Active Directory](../active-directory/fundamentals/add-users-azure-active-directory.md).
-1. Find the object ID of the Azure AD user using the [`az ad user list`](/cli/azure/ad/user#az_ad_user_list) and replace *\<user-principal-name>*. The result is saved to a variable.
+1. Find the object ID of the Azure AD user using the [`az ad user list`](/cli/azure/ad/user#az-ad-user-list) and replace *\<user-principal-name>*. The result is saved to a variable.
```azurecli-interactive azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].objectId --output tsv)
First, enable Azure Active Directory authentication to SQL Database by assigning
> To see the list of all user principal names in Azure AD, run `az ad user list --query [].userPrincipalName`. >
-1. Add this Azure AD user as an Active Directory admin using [`az sql server ad-admin create`](/cli/azure/sql/server/ad-admin#az_sql_server_ad_admin_create) command in the Cloud Shell. In the following command, replace *\<server-name>* with the server name (without the `.database.windows.net` suffix).
+1. Add this Azure AD user as an Active Directory admin using [`az sql server ad-admin create`](/cli/azure/sql/server/ad-admin#az-sql-server-ad-admin-create) command in the Cloud Shell. In the following command, replace *\<server-name>* with the server name (without the `.database.windows.net` suffix).
```azurecli-interactive az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id $azureaduser
Next, you configure your App Service app to connect to SQL Database with a syste
### Enable managed identity on app
-To enable a managed identity for your Azure app, use the [az webapp identity assign](/cli/azure/webapp/identity#az_webapp_identity_assign) command in the Cloud Shell. In the following command, replace *\<app-name>*.
+To enable a managed identity for your Azure app, use the [az webapp identity assign](/cli/azure/webapp/identity#az-webapp-identity-assign) command in the Cloud Shell. In the following command, replace *\<app-name>*.
```azurecli-interactive az webapp identity assign --resource-group myResourceGroup --name <app-name>
app-service Tutorial Custom Container https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/tutorial-custom-container.md
The streamed logs look like this:
::: zone pivot="container-linux"
-Azure App Service uses the Docker container technology to host both built-in images and custom images. To see a list of built-in images, run the Azure CLI command, ['az webapp list-runtimes--linux'](/cli/azure/webapp#az_webapp_list_runtimes). If those images don't satisfy your needs, you can build and deploy a custom image.
+Azure App Service uses the Docker container technology to host both built-in images and custom images. To see a list of built-in images, run the Azure CLI command, ['az webapp list-runtimes--linux'](/cli/azure/webapp#az-webapp-list-runtimes). If those images don't satisfy your needs, you can build and deploy a custom image.
In this tutorial, you learn how to:
ENTRYPOINT ["init.sh"]
In this section and the following sections, you prepare resources in Azure to which you push the image and then deploy a container to Azure App Service. You can start by creating a resource group in which you want to collect all the resources.
-Run the [az group create](/cli/azure/group#az_group_create) command to create a resource group:
+Run the [az group create](/cli/azure/group#az-group-create) command to create a resource group:
```azurecli-interactive az group create --name myResourceGroup --location westeurope
You can change the `--location` value to specify a region near you.
In this section, you push the image to Azure Container Registry from which App Service can deploy it.
-1. Run the [`az acr create`](/cli/azure/acr#az_acr_create) command to create an Azure Container Registry:
+1. Run the [`az acr create`](/cli/azure/acr#az-acr-create) command to create an Azure Container Registry:
```azurecli-interactive az acr create --name <registry-name> --resource-group myResourceGroup --sku Basic --admin-enabled true
In this section, you push the image to Azure Container Registry from which App S
Replace `<registry-name>` with a suitable name for your registry. The name must contain only letters, numbers, and must be unique across all of Azure.
-1. Run the [`az acr show`](/cli/azure/acr#az_acr_show) command to retrieve credentials for the registry:
+1. Run the [`az acr show`](/cli/azure/acr#az-acr-show) command to retrieve credentials for the registry:
```azurecli-interactive az acr credential show --resource-group myResourceGroup --name <registry-name>
In this section, you push the image to Azure Container Registry from which App S
To deploy a container to Azure App Service, you first create a web app on App Service, then connect the web app to the container registry. When the web app starts, App Service automatically pulls the image from the registry.
-1. Create an App Service plan using the [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) command:
+1. Create an App Service plan using the [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) command:
```azurecli-interactive az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --is-linux
To deploy a container to Azure App Service, you first create a web app on App Se
An App Service plan corresponds to the virtual machine that hosts the web app. By default, the previous command uses an inexpensive [B1 pricing tier](https://azure.microsoft.com/pricing/details/app-service/linux/) that is free for the first month. You can control the tier with the `--sku` parameter.
-1. Create the web app with the [`az webpp create`](/cli/azure/webapp#az_webapp_create) command:
+1. Create the web app with the [`az webpp create`](/cli/azure/webapp#az-webapp-create) command:
```azurecli-interactive az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --deployment-container-image-name <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latest
To deploy a container to Azure App Service, you first create a web app on App Se
Replace `<app-name>` with a name for the web app, which must be unique across all of Azure. Also replace `<registry-name>` with the name of your registry from the previous section.
-1. Use [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) to set the `WEBSITES_PORT` environment variable as expected by the app code:
+1. Use [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) to set the `WEBSITES_PORT` environment variable as expected by the app code:
```azurecli-interactive az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WEBSITES_PORT=8000
To deploy a container to Azure App Service, you first create a web app on App Se
For more information on this environment variable, see the [readme in the sample's GitHub repository](https://github.com/Azure-Samples/docker-django-webapp-linux).
-1. Enable [the system-assigned managed identity](./overview-managed-identity.md) for the web app by using the [`az webapp identity assign`](/cli/azure/webapp/identity#az_webapp_identity-assign) command:
+1. Enable [the system-assigned managed identity](./overview-managed-identity.md) for the web app by using the [`az webapp identity assign`](/cli/azure/webapp/identity#az-webapp-identity-assign) command:
```azurecli-interactive az webapp identity assign --resource-group myResourceGroup --name <app-name> --query principalId --output tsv
To deploy a container to Azure App Service, you first create a web app on App Se
Managed identity allows you to grant permissions to the web app to access other Azure resources without needing any specific credentials.
-1. Retrieve your subscription ID with the [`az account show`](/cli/azure/account#az_account_show) command, which you need in the next step:
+1. Retrieve your subscription ID with the [`az account show`](/cli/azure/account#az-account-show) command, which you need in the next step:
```azurecli-interactive az account show --query id --output tsv
To deploy a container to Azure App Service, you first create a web app on App Se
You can complete these steps once the image is pushed to the container registry and the App Service is fully provisioned.
-1. Use the [`az webapp config container set`](/cli/azure/webapp/config/container#az_webapp_config_container_set) command to specify the container registry and the image to deploy for the web app:
+1. Use the [`az webapp config container set`](/cli/azure/webapp/config/container#az-webapp-config-container-set) command to specify the container registry and the image to deploy for the web app:
```azurecli-interactive az webapp config container set --name <app-name> --resource-group myResourceGroup --docker-custom-image-name <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latest --docker-registry-server-url https://<registry-name>.azurecr.io
app-service Tutorial Dotnetcore Sqldb App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/tutorial-dotnetcore-sqldb-app.md
Sign in to the [Azure portal](https://portal.azure.com/) and follow these steps
You can run Azure CLI commands in the [Azure Cloud Shell](https://shell.azure.com) or on a workstation with the [Azure CLI installed](/cli/azure/install-azure-cli).
-First, create a resource group using the [az group create](/cli/azure/group#az_group_create) command. The resource group acts as a container for all of the Azure resources related to this application.
+First, create a resource group using the [az group create](/cli/azure/group#az-group-create) command. The resource group acts as a container for all of the Azure resources related to this application.
```azurecli-interactive # Use 'az account list-locations --output table' to list available locations close to you
First, create a resource group using the [az group create](/cli/azure/group#az_g
az group create --location eastus --name msdocs-core-sql ```
-Next, create an App Service plan using the [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create) command.
+Next, create an App Service plan using the [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create) command.
* The `--sku` parameter defines the size (CPU, memory) and cost of the app service plan. This example uses the F1 (Free) service plan. For a full list of App Service plans, view the [App Service pricing](https://azure.microsoft.com/pricing/details/app-service/windows/) page.
az appservice plan create \
--sku F1 ```
-Finally, create the App Service web app using the [az webapp create](/cli/azure/webapp#az_webapp_create) command.
+Finally, create the App Service web app using the [az webapp create](/cli/azure/webapp#az-webapp-create) command.
* The App Service name is used as both the name of the resource in Azure and to form the fully qualified domain name for your app in the form of `https://<app service name>.azurewebsites.com`. * The runtime specifies what version of .NET your app is running. This example uses .NET 6.0 LTS. To list all available runtimes, use the command `az webapp list-runtimes --linux --output table` for Linux and `az webapp list-runtimes --output table` for Windows.
Sign in to the [Azure portal](https://portal.azure.com/) and follow these steps
### [Azure CLI](#tab/azure-cli)
-First, create an Azure SQL Server to host the database. A new Azure SQL Server is created by using the [az sql server create ](/cli/azure/sql/server#az_sql_server_create) command.
+First, create an Azure SQL Server to host the database. A new Azure SQL Server is created by using the [az sql server create ](/cli/azure/sql/server#az-sql-server-create) command.
Replace the *server-name* placeholder with a unique SQL Database name. The SQL Database name is used as part of the globally unique SQL Database endpoint. Also, replace *db-username* and *db-username* with a username and password of your choice.
az sql server create \
--admin-password <db-password> ```
-Setting up an SQL Server might take a few minutes. When the resource is available, we can create a database with the [az sql db create](/cli/azure/sql/db#az_sql_db_create) command.
+Setting up an SQL Server might take a few minutes. When the resource is available, we can create a database with the [az sql db create](/cli/azure/sql/db#az-sql-db-create) command.
```azurecli-interactive az sql db create \
Sign in to the [Azure portal](https://portal.azure.com/) and follow the steps to
Run Azure CLI commands in the [Azure Cloud Shell](https://shell.azure.com) or on a workstation with the [Azure CLI installed](/cli/azure/install-azure-cli).
-We can retrieve the Connection String for our database using the [az sql db show-connection-string](/cli/azure/sql/db#az_sql_db_show_connection_string) command. This command allows us to add the Connection String to our App Service configuration settings. Copy this Connection String value for later use.
+We can retrieve the Connection String for our database using the [az sql db show-connection-string](/cli/azure/sql/db#az-sql-db-show-connection-string) command. This command allows us to add the Connection String to our App Service configuration settings. Copy this Connection String value for later use.
```azurecli-interactive az sql db show-connection-string \
In the Azure portal:
### [Azure CLI](#tab/azure-cli)
-Run the [az sql server firewall-rule create](/cli/azure/sql/server/firewall-rule#az_sql_server_firewall_rule_create) command to add a firewall rule to your SQL Server instance.
+Run the [az sql server firewall-rule create](/cli/azure/sql/server/firewall-rule#az-sql-server-firewall-rule-create) command to add a firewall rule to your SQL Server instance.
```azurecli-interactive az sql server firewall-rule create -resource-group msdocs-core-sql --server <yoursqlserver> --name LocalAccess --start-ip-address <your-ip> --end-ip-address <your-ip>
Azure App Service captures messages logged to the console to assist you in diagn
### [Azure CLI](#tab/azure-cli-logs)
-You can configure Azure App Service to output logs to the App Service filesystem using the [az webapp log config](/cli/azure/webapp/log#az_webapp_log_config) command.
+You can configure Azure App Service to output logs to the App Service filesystem using the [az webapp log config](/cli/azure/webapp/log#az-webapp-log-config) command.
```azurecli az webapp log config \
az webapp log config \
--resource-group $RESOURCE_GROUP_NAME ```
-You can also stream logs directly to the console using the [az webapp log tail](/cli/azure/webapp/log#az_webapp_log_tail) command.
+You can also stream logs directly to the console using the [az webapp log tail](/cli/azure/webapp/log#az-webapp-log-tail) command.
```azurecli az webapp log tail \
Follow these steps while signed-in to the Azure portal to delete a resource grou
### [Azure CLI](#tab/azure-cli-resources)
-You can delete the resource group you created by using the [az group delete](/cli/azure/group#az_group_delete) command. Deleting the resource group deletes all of the resources contained within it.
+You can delete the resource group you created by using the [az group delete](/cli/azure/group#az-group-delete) command. Deleting the resource group deletes all of the resources contained within it.
```azurecli az group delete --name msdocs-core-sql
app-service Tutorial Multi Container App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/tutorial-multi-container-app.md
cd multicontainerwordpress
[!INCLUDE [resource group intro text](../../includes/resource-group.md)]
-In Cloud Shell, create a resource group with the [`az group create`](/cli/azure/group#az_group_create) command. The following example creates a resource group named *myResourceGroup* in the *South Central US* location. To see all supported locations for App Service on Linux in **Standard** tier, run the [`az appservice list-locations --sku S1 --linux-workers-enabled`](/cli/azure/appservice#az_appservice_list_locations) command.
+In Cloud Shell, create a resource group with the [`az group create`](/cli/azure/group#az-group-create) command. The following example creates a resource group named *myResourceGroup* in the *South Central US* location. To see all supported locations for App Service on Linux in **Standard** tier, run the [`az appservice list-locations --sku S1 --linux-workers-enabled`](/cli/azure/appservice#az-appservice-list-locations) command.
```azurecli-interactive az group create --name myResourceGroup --location "South Central US"
When the command finishes, a JSON output shows you the resource group properties
## Create an Azure App Service plan
-In Cloud Shell, create an App Service plan in the resource group with the [`az appservice plan create`](/cli/azure/appservice/plan#az_appservice_plan_create) command.
+In Cloud Shell, create an App Service plan in the resource group with the [`az appservice plan create`](/cli/azure/appservice/plan#az-appservice-plan-create) command.
<!-- [!INCLUDE [app-service-plan](app-service-plan-linux.md)] -->
When the App Service plan has been created, Cloud Shell shows information simila
## Create a Docker Compose app
-In your Cloud Shell, create a multi-container [web app](overview.md) in the `myAppServicePlan` App Service plan with the [az webapp create](/cli/azure/webapp#az_webapp_create) command. Don't forget to replace _\<app-name>_ with a unique app name.
+In your Cloud Shell, create a multi-container [web app](overview.md) in the `myAppServicePlan` App Service plan with the [az webapp create](/cli/azure/webapp#az-webapp-create) command. Don't forget to replace _\<app-name>_ with a unique app name.
```azurecli-interactive az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml
It's not recommended to use database containers in a production environment. The
### Create an Azure Database for MySQL server
-Create an Azure Database for MySQL server with the [`az mysql server create`](/cli/azure/mysql/server#az_mysql_server_create) command.
+Create an Azure Database for MySQL server with the [`az mysql server create`](/cli/azure/mysql/server#az-mysql-server-create) command.
In the following command, substitute your MySQL server name where you see the _&lt;mysql-server-name>_ placeholder (valid characters are `a-z`, `0-9`, and `-`). This name is part of the MySQL server's hostname (`<mysql-server-name>.database.windows.net`), it needs to be globally unique.
Creating the server may take a few minutes to complete. When the MySQL server is
### Configure server firewall
-Create a firewall rule for your MySQL server to allow client connections by using the [`az mysql server firewall-rule create`](/cli/azure/mysql/server/firewall-rule#az_mysql_server_firewall_rule_create) command. When both starting IP and end IP are set to 0.0.0.0, the firewall is only opened for other Azure resources.
+Create a firewall rule for your MySQL server to allow client connections by using the [`az mysql server firewall-rule create`](/cli/azure/mysql/server/firewall-rule#az-mysql-server-firewall-rule-create) command. When both starting IP and end IP are set to 0.0.0.0, the firewall is only opened for other Azure resources.
```azurecli-interactive az mysql server firewall-rule create --name allAzureIPs --server <mysql-server-name> --resource-group myResourceGroup --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0
When the database has been created, Cloud Shell shows information similar to the
To connect the WordPress app to this new MySQL server, you'll configure a few WordPress-specific environment variables, including the SSL CA path defined by `MYSQL_SSL_CA`. The [Baltimore CyberTrust Root](https://www.digicert.com/digicert-root-certificates.htm) from [DigiCert](https://www.digicert.com/) is provided in the [custom image](#use-a-custom-image-for-mysql-tlsssl-and-other-configurations) below.
-To make these changes, use the [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command in Cloud Shell. App settings are case-sensitive and space-separated.
+To make these changes, use the [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command in Cloud Shell. App settings are case-sensitive and space-separated.
```azurecli-interactive az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WORDPRESS_DB_HOST="<mysql-server-name>.mysql.database.azure.com" WORDPRESS_DB_USER="adminuser@<mysql-server-name>" WORDPRESS_DB_PASSWORD="My5up3rStr0ngPaSw0rd!" WORDPRESS_DB_NAME="wordpress" MYSQL_SSL_CA="BaltimoreCyberTrustroot.crt.pem"
Save your changes and exit nano. Use the command `^O` to save and `^X` to exit.
### Update app with new configuration
-In Cloud Shell, reconfigure your multi-container [web app](overview.md) with the [az webapp config container set](/cli/azure/webapp/config/container#az_webapp_config_container_set) command. Don't forget to replace _\<app-name>_ with the name of the web app you created earlier.
+In Cloud Shell, reconfigure your multi-container [web app](overview.md) with the [az webapp config container set](/cli/azure/webapp/config/container#az-webapp-config-container-set) command. Don't forget to replace _\<app-name>_ with the name of the web app you created earlier.
```azurecli-interactive az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml
Your multi-container is now running in Web App for Containers. However, if you i
### Configure environment variables
-To use persistent storage, you'll enable this setting within App Service. To make this change, use the [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command in Cloud Shell. App settings are case-sensitive and space-separated.
+To use persistent storage, you'll enable this setting within App Service. To make this change, use the [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command in Cloud Shell. App settings are case-sensitive and space-separated.
```azurecli-interactive az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WEBSITES_ENABLE_APP_SERVICE_STORAGE=TRUE
### Update app with new configuration
-In Cloud Shell, reconfigure your multi-container [web app](overview.md) with the [az webapp config container set](/cli/azure/webapp/config/container#az_webapp_config_container_set) command. Don't forget to replace _\<app-name>_ with a unique app name.
+In Cloud Shell, reconfigure your multi-container [web app](overview.md) with the [az webapp config container set](/cli/azure/webapp/config/container#az-webapp-config-container-set) command. Don't forget to replace _\<app-name>_ with a unique app name.
```azurecli-interactive az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml
### Configure environment variables
-To use Redis, you'll enable this setting, `WP_REDIS_HOST`, within App Service. This is a *required setting* for WordPress to communicate with the Redis host. To make this change, use the [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command in Cloud Shell. App settings are case-sensitive and space-separated.
+To use Redis, you'll enable this setting, `WP_REDIS_HOST`, within App Service. This is a *required setting* for WordPress to communicate with the Redis host. To make this change, use the [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command in Cloud Shell. App settings are case-sensitive and space-separated.
```azurecli-interactive az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WP_REDIS_HOST="redis"
When the app setting has been created, Cloud Shell shows information similar to
### Update app with new configuration
-In Cloud Shell, reconfigure your multi-container [web app](overview.md) with the [az webapp config container set](/cli/azure/webapp/config/container#az_webapp_config_container_set) command. Don't forget to replace _\<app-name>_ with a unique app name.
+In Cloud Shell, reconfigure your multi-container [web app](overview.md) with the [az webapp config container set](/cli/azure/webapp/config/container#az-webapp-config-container-set) command. Don't forget to replace _\<app-name>_ with a unique app name.
```azurecli-interactive az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file compose-wordpress.yml
app-service Tutorial Php Mysql App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/tutorial-php-mysql-app.md
In this step, you create a MySQL database in [Azure Database for MySQL](../mysql
### Create a MySQL server
-In the Cloud Shell, create a server in Azure Database for MySQL with the [`az mysql server create`](/cli/azure/mysql/server#az_mysql_server_create) command.
+In the Cloud Shell, create a server in Azure Database for MySQL with the [`az mysql server create`](/cli/azure/mysql/server#az-mysql-server-create) command.
In the following command, substitute a unique server name for the *\<mysql-server-name>* placeholder, a user name for the *\<admin-user>*, and a password for the *\<admin-password>* placeholder. The server name is used as part of your MySQL endpoint (`https://<mysql-server-name>.mysql.database.azure.com`), so the name needs to be unique across all servers in Azure. For details on selecting MySQL DB SKU, see [Create an Azure Database for MySQL server](../mysql/quickstart-create-mysql-server-database-using-azure-cli.md#create-an-azure-database-for-mysql-server).
When the MySQL server is created, the Azure CLI shows information similar to the
### Configure server firewall
-1. In the Cloud Shell, create a firewall rule for your MySQL server to allow client connections by using the [`az mysql server firewall-rule create`](/cli/azure/mysql/server/firewall-rule#az_mysql_server_firewall_rule_create) command. When both starting IP and end IP are set to 0.0.0.0, the firewall is only opened for other Azure resources.
+1. In the Cloud Shell, create a firewall rule for your MySQL server to allow client connections by using the [`az mysql server firewall-rule create`](/cli/azure/mysql/server/firewall-rule#az-mysql-server-firewall-rule-create) command. When both starting IP and end IP are set to 0.0.0.0, the firewall is only opened for other Azure resources.
```azurecli-interactive az mysql server firewall-rule create --name allAzureIPs --server <mysql-server-name> --resource-group myResourceGroup --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0
In this step, you deploy the MySQL-connected PHP application to Azure App Servic
### Configure database settings
-In App Service, you set environment variables as _app settings_ by using the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command.
+In App Service, you set environment variables as _app settings_ by using the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command.
The following command configures the app settings `DB_HOST`, `DB_DATABASE`, `DB_USERNAME`, and `DB_PASSWORD`. Replace the placeholders _&lt;app-name>_ and _&lt;mysql-server-name>_.
Laravel needs an application key in App Service. You can configure it with app s
php artisan key:generate --show ```
-1. In the Cloud Shell, set the application key in the App Service app by using the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command. Replace the placeholders _&lt;app-name>_ and _&lt;outputofphpartisankey:generate>_.
+1. In the Cloud Shell, set the application key in the App Service app by using the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command. Replace the placeholders _&lt;app-name>_ and _&lt;outputofphpartisankey:generate>_.
```azurecli-interactive az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings APP_KEY="<output_of_php_artisan_key:generate>" APP_DEBUG="true"
Laravel needs an application key in App Service. You can configure it with app s
Set the virtual application path for the app. This step is required because the [Laravel application lifecycle](https://laravel.com/docs/5.4/lifecycle) begins in the _public_ directory instead of the application's root directory. Other PHP frameworks whose lifecycle start in the root directory can work without manual configuration of the virtual application path.
-In the Cloud Shell, set the virtual application path by using the [`az resource update`](/cli/azure/resource#az_resource_update) command. Replace the _&lt;app-name>_ placeholder.
+In the Cloud Shell, set the virtual application path by using the [`az resource update`](/cli/azure/resource#az-resource-update) command. Replace the _&lt;app-name>_ placeholder.
```azurecli-interactive az resource update --name web --resource-group myResourceGroup --namespace Microsoft.Web --resource-type config --parent sites/<app_name> --set properties.virtualApplications[0].physicalPath="site\wwwroot\public" --api-version 2015-06-01
If you add any task, they're retained in the database. Updates to the data schem
While the PHP application runs in Azure App Service, you can get the console logs piped to your terminal. That way, you can get the same diagnostic messages to help you debug application errors.
-To start log streaming, use the [`az webapp log tail`](/cli/azure/webapp/log#az_webapp_log_tail) command in the Cloud Shell.
+To start log streaming, use the [`az webapp log tail`](/cli/azure/webapp/log#az-webapp-log-tail) command in the Cloud Shell.
```azurecli-interactive az webapp log tail --name <app_name> --resource-group myResourceGroup
app-service Tutorial Ruby Postgres App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/tutorial-ruby-postgres-app.md
In this step, you create a Postgres database in [Azure Database for PostgreSQL](
az extension add --name db-up ```
-1. Create the Postgres database in Azure with the [`az postgres up`](/cli/azure/postgres#az_postgres_up) command, as shown in the following example. Replace *\<postgresql-name>* with a *unique* name (the server endpoint is *https://\<postgresql-name>.postgres.database.azure.com*). For *\<admin-username>* and *\<admin-password>*, specify credentials to create an administrator user for this Postgres server.
+1. Create the Postgres database in Azure with the [`az postgres up`](/cli/azure/postgres#az-postgres-up) command, as shown in the following example. Replace *\<postgresql-name>* with a *unique* name (the server endpoint is *https://\<postgresql-name>.postgres.database.azure.com*). For *\<admin-username>* and *\<admin-password>*, specify credentials to create an administrator user for this Postgres server.
<!-- Issue: without --location --> ```azurecli
In this step, you create a Postgres database in [Azure Database for PostgreSQL](
<!-- not all locations support az postgres up --> > [!TIP]
- > `--location <location-name>`, can be set to any one of the [Azure regions](https://azure.microsoft.com/global-infrastructure/regions/). You can get the regions available to your subscription with the [`az account list-locations`](/cli/azure/account#az_account_list_locations) command. For production apps, put your database and your app in the same location.
+ > `--location <location-name>`, can be set to any one of the [Azure regions](https://azure.microsoft.com/global-infrastructure/regions/). You can get the regions available to your subscription with the [`az account list-locations`](/cli/azure/account#az-account-list-locations) command. For production apps, put your database and your app in the same location.
## Connect app to Azure Postgres
In this step, you deploy the Postgres-connected Rails application to Azure App S
### Configure database settings
-In App Service, you set environment variables as _app settings_ by using the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command in the Cloud Shell.
+In App Service, you set environment variables as _app settings_ by using the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command in the Cloud Shell.
The following Cloud Shell command configures the app settings `DB_HOST`, `DB_DATABASE`, `DB_USERNAME`, and `DB_PASSWORD`. Replace the placeholders _&lt;appname>_ and _&lt;postgres-server-name>_.
az webapp config appsettings set --name <app-name> --resource-group myResourceGr
### Push to Azure from Git
-1. Since you're deploying the `main` branch, you need to set the default deployment branch for your App Service app to `main` (see [Change deployment branch](deploy-local-git.md#change-deployment-branch)). In the Cloud Shell, set the `DEPLOYMENT_BRANCH` app setting with the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command.
+1. Since you're deploying the `main` branch, you need to set the default deployment branch for your App Service app to `main` (see [Change deployment branch](deploy-local-git.md#change-deployment-branch)). In the Cloud Shell, set the `DEPLOYMENT_BRANCH` app setting with the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command.
```azurecli-interactive az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
application-gateway Application Gateway Backend Health Troubleshooting https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-backend-health-troubleshooting.md
successfully, Application Gateway resumes forwarding the requests.
### How to check backend health To check the health of your backend pool, you can use the
-**Backend Health** page on the Azure portal. Or, you can use [Azure PowerShell](/powershell/module/az.network/get-azapplicationgatewaybackendhealth), [CLI](/cli/azure/network/application-gateway#az_network_application_gateway_show_backend_health), or [REST API](/rest/api/application-gateway/applicationgateways/backendhealth).
+**Backend Health** page on the Azure portal. Or, you can use [Azure PowerShell](/powershell/module/az.network/get-azapplicationgatewaybackendhealth), [CLI](/cli/azure/network/application-gateway#az-network-application-gateway-show-backend-health), or [REST API](/rest/api/application-gateway/applicationgateways/backendhealth).
The status retrieved by any of these methods can be any one of the following:
application-gateway Redirect Http To Https Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/redirect-http-to-https-cli.md
az network public-ip create \
## Create the application gateway
-You can use [az network application-gateway create](/cli/azure/network/application-gateway#az_network_application_gateway_create) to create the application gateway named *myAppGateway*. When you create an application gateway using the Azure CLI, you specify configuration information, such as capacity, sku, and HTTP settings.
+You can use [az network application-gateway create](/cli/azure/network/application-gateway#az-network-application-gateway-create) to create the application gateway named *myAppGateway*. When you create an application gateway using the Azure CLI, you specify configuration information, such as capacity, sku, and HTTP settings.
The application gateway is assigned to *myAGSubnet* and *myAGPublicIPAddress* that you previously created. In this example, you associate the certificate that you created and its password when you create the application gateway.
az network application-gateway create \
### Add the HTTP port
-You can use [az network application-gateway frontend-port create](/cli/azure/network/application-gateway/frontend-port#az_network-application_gateway_frontend_port_create) to add the HTTP port to the application gateway.
+You can use [az network application-gateway frontend-port create](/cli/azure/network/application-gateway/frontend-port#az-network-application-gateway-frontend-port-create) to add the HTTP port to the application gateway.
```azurecli-interactive az network application-gateway frontend-port create \
az network application-gateway frontend-port create \
### Add the HTTP listener
-You can use [az network application-gateway http-listener create](/cli/azure/network/application-gateway/http-listener#az_network_application_gateway_http_listener_create) to add the listener named *myListener* to the application gateway.
+You can use [az network application-gateway http-listener create](/cli/azure/network/application-gateway/http-listener#az-network-application-gateway-http-listener-create) to add the listener named *myListener* to the application gateway.
```azurecli-interactive az network application-gateway http-listener create \
az network application-gateway http-listener create \
### Add the redirection configuration
-Add the HTTP to HTTPS redirection configuration to the application gateway using [az network application-gateway redirect-config create](/cli/azure/network/application-gateway/redirect-config#az_network_application_gateway_redirect_config_create).
+Add the HTTP to HTTPS redirection configuration to the application gateway using [az network application-gateway redirect-config create](/cli/azure/network/application-gateway/redirect-config#az-network-application-gateway-redirect-config-create).
```azurecli-interactive az network application-gateway redirect-config create \
az network application-gateway redirect-config create \
### Add the routing rule
-Add the routing rule named *rule2* with the redirection configuration to the application gateway using [az network application-gateway rule create](/cli/azure/network/application-gateway/rule#az_network_application_gateway_rule_create).
+Add the routing rule named *rule2* with the redirection configuration to the application gateway using [az network application-gateway rule create](/cli/azure/network/application-gateway/rule#az-network-application-gateway-rule-create).
```azurecli-interactive az network application-gateway rule create \
az network application-gateway rule create \
## Create a virtual machine scale set
-In this example, you create a virtual machine scale set named *myvmss* that provides servers for the backend pool in the application gateway. The virtual machines in the scale set are associated with *myBackendSubnet* and *appGatewayBackendPool*. To create the scale set, you can use [az vmss create](/cli/azure/vmss#az_vmss_create).
+In this example, you create a virtual machine scale set named *myvmss* that provides servers for the backend pool in the application gateway. The virtual machines in the scale set are associated with *myBackendSubnet* and *appGatewayBackendPool*. To create the scale set, you can use [az vmss create](/cli/azure/vmss#az-vmss-create).
```azurecli-interactive az vmss create \
application-gateway Redirect Internal Site Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/redirect-internal-site-cli.md
az group create --name myResourceGroupAG --location eastus
## Create network resources
-Create the virtual network named *myVNet* and the subnet named *myAGSubnet* using [az network vnet create](/cli/azure/network/vnet). You can then add the subnet named *myBackendSubnet* that's needed by the backend pool of servers using [az network vnet subnet create](/cli/azure/network/vnet/subnet). Create the public IP address named *myAGPublicIPAddress* using [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create).
+Create the virtual network named *myVNet* and the subnet named *myAGSubnet* using [az network vnet create](/cli/azure/network/vnet). You can then add the subnet named *myBackendSubnet* that's needed by the backend pool of servers using [az network vnet subnet create](/cli/azure/network/vnet/subnet). Create the public IP address named *myAGPublicIPAddress* using [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create).
```azurecli-interactive az network vnet create \
It may take several minutes for the application gateway to be created. After the
A listener is required to enable the application gateway to route traffic appropriately to the backend pool. In this tutorial, you create two listeners for your two domains. In this example, listeners are created for the domains of *www\.contoso.com* and *www\.contoso.org*.
-Add the backend listeners that are needed to route traffic using [az network application-gateway http-listener create](/cli/azure/network/application-gateway/http-listener#az_network_application_gateway_http_listener_create).
+Add the backend listeners that are needed to route traffic using [az network application-gateway http-listener create](/cli/azure/network/application-gateway/http-listener#az-network-application-gateway-http-listener-create).
```azurecli-interactive az network application-gateway http-listener create \
az network application-gateway http-listener create \
### Add the redirection configuration
-Add the redirection configuration that sends traffic from *www\.consoto.org* to the listener for *www\.contoso.com* in the application gateway using [az network application-gateway redirect-config create](/cli/azure/network/application-gateway/redirect-config#az_network_application_gateway_redirect_config_create).
+Add the redirection configuration that sends traffic from *www\.consoto.org* to the listener for *www\.contoso.com* in the application gateway using [az network application-gateway redirect-config create](/cli/azure/network/application-gateway/redirect-config#az-network-application-gateway-redirect-config-create).
```azurecli-interactive az network application-gateway redirect-config create \
az network application-gateway redirect-config create \
Rules are processed in the order in which they are created, and traffic is directed using the first rule that matches the URL sent to the application gateway. For example, if you have a rule using a basic listener and a rule using a multi-site listener both on the same port, the rule with the multi-site listener must be listed before the rule with the basic listener in order for the multi-site rule to function as expected.
-In this example, you create two new rules and delete the default rule that was created. You can add the rule using [az network application-gateway rule create](/cli/azure/network/application-gateway/rule#az_network_application_gateway_rule_create).
+In this example, you create two new rules and delete the default rule that was created. You can add the rule using [az network application-gateway rule create](/cli/azure/network/application-gateway/rule#az-network-application-gateway-rule-create).
```azurecli-interactive az network application-gateway rule create \
az vmss extension set \
## Create CNAME record in your domain
-After the application gateway is created with its public IP address, you can get the DNS address and use it to create a CNAME record in your domain. You can use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show) to get the DNS address of the application gateway. Copy the *fqdn* value of the DNSSettings and use it as the value of the CNAME record that you create. The use of A-records is not recommended because the VIP may change when the application gateway is restarted.
+After the application gateway is created with its public IP address, you can get the DNS address and use it to create a CNAME record in your domain. You can use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show) to get the DNS address of the application gateway. Copy the *fqdn* value of the DNSSettings and use it as the value of the CNAME record that you create. The use of A-records is not recommended because the VIP may change when the application gateway is restarted.
```azurecli-interactive az network public-ip show \
application-gateway Create Vmss Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/scripts/create-vmss-cli.md
This script uses the following commands to create the deployment. Each item in t
||| | [az group create](/cli/azure/group) | Creates a resource group in which all resources are stored. | | [az network vnet create](/cli/azure/network/vnet) | Creates a virtual network. |
-| [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) | Creates a subnet in a virtual network. |
+| [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) | Creates a subnet in a virtual network. |
| [az network public-ip create](/cli/azure/network/public-ip) | Creates the public IP address for the application gateway. | | [az network application-gateway create](/cli/azure/network/application-gateway) | Create an application gateway. | | [az vmss create](/cli/azure/vmss) | Creates a virtual machine scale set. |
application-gateway Create Vmss Waf Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/scripts/create-vmss-waf-cli.md
This script uses the following commands to create the deployment. Each item in t
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) | Creates a virtual network. |
-| [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) | Creates a subnet in a virtual network. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates a virtual network. |
+| [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) | Creates a subnet in a virtual network. |
| [az network public-ip create](/cli/azure/network/public-ip) | Creates the public IP address for the application gateway. | | [az network application-gateway create](/cli/azure/network/application-gateway) | Create an application gateway. |
-| [az vmss create](/cli/azure/vmss#az_vmss_create) | Creates a virtual machine scale set. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Creates a storage account. |
-| [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create) | Creates a storage account. |
-| [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show) | Gets the public IP address of the application gateway. |
+| [az vmss create](/cli/azure/vmss#az-vmss-create) | Creates a virtual machine scale set. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Creates a storage account. |
+| [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create) | Creates a storage account. |
+| [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show) | Gets the public IP address of the application gateway. |
## Next steps
application-gateway Tutorial Ingress Controller Add On Existing https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-ingress-controller-add-on-existing.md
In this tutorial, you learn how to:
## Create a resource group
-In Azure, you allocate related resources to a resource group. Create a resource group by using [az group create](/cli/azure/group#az_group_create). The following example creates a resource group named *myResourceGroup* in the *canadacentral* location (region).
+In Azure, you allocate related resources to a resource group. Create a resource group by using [az group create](/cli/azure/group#az-group-create). The following example creates a resource group named *myResourceGroup* in the *canadacentral* location (region).
```azurecli-interactive az group create --name myResourceGroup --location canadacentral
In the following example, you'll be deploying a new AKS cluster named *myCluster
az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity ```
-To configure additional parameters for the `az aks create` command, visit references [here](/cli/azure/aks#az_aks_create).
+To configure additional parameters for the `az aks create` command, visit references [here](/cli/azure/aks#az-aks-create).
## Deploy a new Application Gateway
application-gateway Tutorial Ingress Controller Add On New https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-ingress-controller-add-on-new.md
In this tutorial, you learn how to:
## Create a resource group
-In Azure, you allocate related resources to a resource group. Create a resource group by using [az group create](/cli/azure/group#az_group_create). The following example creates a resource group named *myResourceGroup* in the *canadacentral* location (region):
+In Azure, you allocate related resources to a resource group. Create a resource group by using [az group create](/cli/azure/group#az-group-create). The following example creates a resource group named *myResourceGroup* in the *canadacentral* location (region):
```azurecli-interactive az group create --name myResourceGroup --location canadacentral
Deploying a new AKS cluster with the AGIC add-on enabled without specifying an e
az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity -a ingress-appgw --appgw-name myApplicationGateway --appgw-subnet-cidr "10.2.0.0/16" --generate-ssh-keys ```
-To configure additional parameters for the `az aks create` command, see [these references](/cli/azure/aks#az_aks_create).
+To configure additional parameters for the `az aks create` command, see [these references](/cli/azure/aks#az-aks-create).
> [!NOTE] > The AKS cluster that you created will appear in the resource group that you created, *myResourceGroup*. However, the automatically created Application Gateway instance will be in the node resource group, where the agent pools are. The node resource group by is named *MC_resource-group-name_cluster-name_location* by default, but can be modified.
application-gateway Tutorial Manage Web Traffic Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-manage-web-traffic-cli.md
If you prefer, you can complete this procedure using [Azure PowerShell](tutorial
## Create a resource group
-A resource group is a logical container into which Azure resources are deployed and managed. Create a resource group using [az group create](/cli/azure/group#az_group_create).
+A resource group is a logical container into which Azure resources are deployed and managed. Create a resource group using [az group create](/cli/azure/group#az-group-create).
The following example creates a resource group named *myResourceGroupAG* in the *eastus* location.
az network application-gateway create \
## Create a Virtual Machine Scale Set
-In this example, you create a virtual machine scale set that provides servers for the backend pool in the application gateway. The virtual machines in the scale set are associated with *myBackendSubnet* and *appGatewayBackendPool*. To create the scale set, use [az vmss create](/cli/azure/vmss#az_vmss_create).
+In this example, you create a virtual machine scale set that provides servers for the backend pool in the application gateway. The virtual machines in the scale set are associated with *myBackendSubnet* and *appGatewayBackendPool*. To create the scale set, use [az vmss create](/cli/azure/vmss#az-vmss-create).
```azurecli-interactive az vmss create \
application-gateway Tutorial Multiple Sites Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-multiple-sites-cli.md
az network public-ip create \
## Create the application gateway
-You can use [az network application-gateway create](/cli/azure/network/application-gateway#az_network_application_gateway_create) to create the application gateway. When you create an application gateway using the Azure CLI, you specify configuration information, such as capacity, sku, and HTTP settings. The application gateway is assigned to *myAGSubnet* and *myAGPublicIPAddress* that you previously created.
+You can use [az network application-gateway create](/cli/azure/network/application-gateway#az-network-application-gateway-create) to create the application gateway. When you create an application gateway using the Azure CLI, you specify configuration information, such as capacity, sku, and HTTP settings. The application gateway is assigned to *myAGSubnet* and *myAGPublicIPAddress* that you previously created.
```azurecli-interactive az network application-gateway create \
It may take several minutes for the application gateway to be created. After the
### Add the backend pools
-Add the backend pools that are needed to contain the backend servers using [az network application-gateway address-pool create](/cli/azure/network/application-gateway/address-pool#az_network_application_gateway_address-pool_create)
+Add the backend pools that are needed to contain the backend servers using [az network application-gateway address-pool create](/cli/azure/network/application-gateway/address-pool#az-network-application-gateway-address-pool-create)
```azurecli-interactive az network application-gateway address-pool create \ --gateway-name myAppGateway \
az network application-gateway address-pool create \
### Add listeners
-Add listeners that are needed to route traffic using [az network application-gateway http-listener create](/cli/azure/network/application-gateway/http-listener#az_network_application_gateway_http_listener_create).
+Add listeners that are needed to route traffic using [az network application-gateway http-listener create](/cli/azure/network/application-gateway/http-listener#az-network-application-gateway-http-listener-create).
>[!NOTE] > With Application Gateway or WAF v2 SKU, you can also configure up to 5 host names per listener and you can use wildcard characters in the host name. See [wildcard host names in listener](multiple-site-overview.md#wildcard-host-names-in-listener) for more information.
az network application-gateway http-listener create \
Rules are processed in the order they're listed if rule priority field is not used. Traffic is directed using the first rule that matches regardless of specificity. For example, if you have a rule using a basic listener and a rule using a multi-site listener both on the same port, the rule with the multi-site listener must be listed before the rule with the basic listener in order for the multi-site rule to function as expected.
-In this example, you create two new rules and delete the default rule created when you deployed the application gateway. You can add the rule using [az network application-gateway rule create](/cli/azure/network/application-gateway/rule#az_network_application_gateway_rule_create).
+In this example, you create two new rules and delete the default rule created when you deployed the application gateway. You can add the rule using [az network application-gateway rule create](/cli/azure/network/application-gateway/rule#az-network-application-gateway-rule-create).
```azurecli-interactive az network application-gateway rule create \
done
## Create a CNAME record in your domain
-After the application gateway is created with its public IP address, you can get the DNS address and use it to create a CNAME record in your domain. You can use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show) to get the DNS address of the application gateway. Copy the *fqdn* value of the DNSSettings and use it as the value of the CNAME record that you create.
+After the application gateway is created with its public IP address, you can get the DNS address and use it to create a CNAME record in your domain. You can use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show) to get the DNS address of the application gateway. Copy the *fqdn* value of the DNSSettings and use it as the value of the CNAME record that you create.
```azurecli-interactive az network public-ip show \
application-gateway Tutorial Ssl Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-ssl-cli.md
az network application-gateway create \
## Create a virtual machine scale set
-In this example, you create a virtual machine scale set that provides servers for the default backend pool in the application gateway. The virtual machines in the scale set are associated with *myBackendSubnet* and *appGatewayBackendPool*. To create the scale set, you can use [az vmss create](/cli/azure/vmss#az_vmss_create).
+In this example, you create a virtual machine scale set that provides servers for the default backend pool in the application gateway. The virtual machines in the scale set are associated with *myBackendSubnet* and *appGatewayBackendPool*. To create the scale set, you can use [az vmss create](/cli/azure/vmss#az-vmss-create).
```azurecli-interactive az vmss create \
application-gateway Tutorial Url Redirect Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-url-redirect-cli.md
done
## Test the application gateway
-To get the public IP address of the application gateway, use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show). Copy the public IP address, and then paste it into the address bar of your browser. Such as, `http://40.121.222.19`, `http://40.121.222.19:8080/images/test.htm`, `http://40.121.222.19:8080/video/test.htm`, or `http://40.121.222.19:8081/images/test.htm`.
+To get the public IP address of the application gateway, use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show). Copy the public IP address, and then paste it into the address bar of your browser. Such as, `http://40.121.222.19`, `http://40.121.222.19:8080/images/test.htm`, `http://40.121.222.19:8080/video/test.htm`, or `http://40.121.222.19:8081/images/test.htm`.
```azurecli-interactive az network public-ip show \
applied-ai-services Generate Sas Tokens https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/applied-ai-services/form-recognizer/generate-sas-tokens.md
To get started, you'll need:
1. To create a user delegation SAS for a container by using the Azure CLI, make sure that you've installed version 2.0.78 or later. To check your installed version, use the `az --version` command.
-1. Call the [az storage container generate-sas](/cli/azure/storage/container#az_storage_container_generate_sas) command.
+1. Call the [az storage container generate-sas](/cli/azure/storage/container#az-storage-container-generate-sas) command.
1. The following parameters are required:
attestation Quickstart Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/attestation/quickstart-azure-cli.md
If you don't have an Azure subscription, create a [free account](https://azure.m
az account set --subscription 00000000-0000-0000-0000-000000000000 ```
-1. Register the Microsoft.Attestation resource provider in the subscription with the [az provider register](/cli/azure/provider#az_provider_register) command:
+1. Register the Microsoft.Attestation resource provider in the subscription with the [az provider register](/cli/azure/provider#az-provider-register) command:
```azurecli az provider register --name Microsoft.Attestation
If you don't have an Azure subscription, create a [free account](https://azure.m
> [!NOTE] > You only need to register a resource provider once for a subscription.
-1. Create a resource group for the attestation provider. You can put other Azure resources in the same resource group, including a virtual machine with a client application instance. Run the [az group create](/cli/azure/group#az_group_create) command to create a resource group, or use an existing resource group:
+1. Create a resource group for the attestation provider. You can put other Azure resources in the same resource group, including a virtual machine with a client application instance. Run the [az group create](/cli/azure/group#az-group-create) command to create a resource group, or use an existing resource group:
```azurecli az group create --name attestationrg --location uksouth
If you don't have an Azure subscription, create a [free account](https://azure.m
Here are commands you can use to create and manage the attestation provider:
-1. Run the [az attestation create](/cli/azure/attestation#az_attestation_create) command to create an attestation provider without policy signing requirement:
+1. Run the [az attestation create](/cli/azure/attestation#az-attestation-create) command to create an attestation provider without policy signing requirement:
```azurecli az attestation create --name "myattestationprovider" --resource-group "MyResourceGroup" --location westus ```
-1. Run the [az attestation show](/cli/azure/attestation#az_attestation_show) command to retrieve attestation provider properties such as status and AttestURI:
+1. Run the [az attestation show](/cli/azure/attestation#az-attestation-show) command to retrieve attestation provider properties such as status and AttestURI:
```azurecli az attestation show --name "myattestationprovider" --resource-group "MyResourceGroup"
Here are commands you can use to create and manage the attestation provider:
TagsTable: ```
-You can delete an attestation provider by using the [az attestation delete](/cli/azure/attestation#az_attestation_delete) command:
+You can delete an attestation provider by using the [az attestation delete](/cli/azure/attestation#az-attestation-delete) command:
```azurecli az attestation delete --name "myattestationprovider" --resource-group "sample-resource-group"
az attestation delete --name "myattestationprovider" --resource-group "sample-re
Use the commands described here to provide policy management for an attestation provider, one attestation type at a time.
-The [az attestation policy show](/cli/azure/attestation/policy#az_attestation_policy_show) command returns the current policy for the specified TEE:
+The [az attestation policy show](/cli/azure/attestation/policy#az-attestation-policy-show) command returns the current policy for the specified TEE:
```azurecli az attestation policy show --name "myattestationprovider" --resource-group "MyResourceGroup" --attestation-type SGX-IntelSDK
The following are supported TEE types:
- `SGX-OpenEnclaveSDK` - `TPM`
-Use the [az attestation policy set](/cli/azure/attestation/policy#az_attestation_policy_set) command to set a new policy for the specified attestation type.
+Use the [az attestation policy set](/cli/azure/attestation/policy#az-attestation-policy-set) command to set a new policy for the specified attestation type.
To set policy in text format for a given kind of attestation type using file path:
automation Enforce Job Execution Hybrid Worker https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/enforce-job-execution-hybrid-worker.md
Here we compose the policy rule and then assign it to either a management group
az policy definition create --name 'audit-enforce-jobs-on-automation-hybrid-runbook-workers' --display-name 'Audit Enforce Jobs on Automation Hybrid Runbook Workers' --description 'This policy enforces job execution on Automation account user Hybrid Runbook Workers.' --rules 'AuditAutomationHRWJobExecution.json' --mode All ```
- The command creates a policy definition named **Audit Enforce Jobs on Automation Hybrid Runbook Workers**. For more information about other parameters that you can use, see [az policy definition create](/cli/azure/policy/definition#az_policy_definition_create).
+ The command creates a policy definition named **Audit Enforce Jobs on Automation Hybrid Runbook Workers**. For more information about other parameters that you can use, see [az policy definition create](/cli/azure/policy/definition#az-policy-definition-create).
When called without location parameters, `az policy definition create` defaults to saving the policy definition in the selected subscription of the sessions context. To save the definition to a different location, use the following parameters:
automation Operating System Requirements https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/update-management/operating-system-requirements.md
The following table lists operating systems not supported by Update Management:
|Operating system |Notes | |||
-|Windows client | Client operating systems (such as Windows 7 and Windows 10) aren't supported.<br> For Azure Windows Virtual Desktop (WVD), the recommended method<br> to manage updates is [Microsoft Endpoint Configuration Manager](../../virtual-desktop/configure-automatic-updates.md) for Windows 10 client machine patch management. |
+|Windows client | Client operating systems (such as Windows 7 and Windows 10) aren't supported.<br>For Azure Virtual Desktop, the recommended method to manage updates is [Microsoft Endpoint Configuration Manager](../../virtual-desktop/configure-automatic-updates.md) for Windows 10 client machine patch management. |
|Windows Server 2016 Nano Server | Not supported. | |Azure Kubernetes Service Nodes | Not supported. Use the patching process described in [Apply security and kernel updates to Linux nodes in Azure Kubernetes Service (AKS)](../../aks/node-updates-kured.md)|
azure-app-configuration Integrate Kubernetes Deployment Helm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-app-configuration/integrate-kubernetes-deployment-helm.md
settings:
First, download the configuration from App Configuration to a *myConfig.yaml* file. Use a key filter to only download those keys that start with **settings.**. If in your case the key filter is not sufficient to exclude keys of Key Vault references, you may use the argument **--skip-keyvault** to exclude them. > [!TIP]
-> Learn more about the [export command](/cli/azure/appconfig/kv#az_appconfig_kv_export).
+> Learn more about the [export command](/cli/azure/appconfig/kv#az-appconfig-kv-export).
```azurecli-interactive az appconfig kv export -n myAppConfiguration -d file --path myConfig.yaml --key "settings.*" --separator "." --format yaml
azure-app-configuration Monitor App Configuration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-app-configuration/monitor-app-configuration.md
Resource Logs are not collected and stored until you create a diagnostic setting
az account set --subscription <your-subscription-id> ```
-1. Enable logs by using the az monitor [diagnostic-settings create command](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create).
+1. Enable logs by using the az monitor [diagnostic-settings create command](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create).
```Azure CLI az monitor diagnostic-settings create --name <setting-name> --workspace <log-analytics-workspace-resource-id> --resource <app-configuration-resource-id> --logs '[{"category": <category name>, "enabled": true "retentionPolicy": {"days": <days>, "enabled": <retention-bool}}]'
azure-app-configuration Overview Managed Identity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-app-configuration/overview-managed-identity.md
The following steps will walk you through creating a user-assigned identity and
## Removing an identity
-A system-assigned identity can be removed by disabling the feature by using the [az appconfig identity remove](/cli/azure/appconfig/identity#az_appconfig_identity_remove) command in the Azure CLI. User-assigned identities can be removed individually. Removing a system-assigned identity in this way will also delete it from Azure AD. System-assigned identities are also automatically removed from Azure AD when the app resource is deleted.
+A system-assigned identity can be removed by disabling the feature by using the [az appconfig identity remove](/cli/azure/appconfig/identity#az-appconfig-identity-remove) command in the Azure CLI. User-assigned identities can be removed individually. Removing a system-assigned identity in this way will also delete it from Azure AD. System-assigned identities are also automatically removed from Azure AD when the app resource is deleted.
## Next steps
azure-app-configuration Cli Create Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-app-configuration/scripts/cli-create-service.md
This script uses the following commands to create a new resource group and an Ap
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az appconfig create](/cli/azure/appconfig#az_appconfig_create) | Creates an App Configuration store resource. |
-| [az appconfig credential list](/cli/azure/appconfig/credential#az_appconfig_credential_list) | List access keys for an App Configuration store. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az appconfig create](/cli/azure/appconfig#az-appconfig-create) | Creates an App Configuration store resource. |
+| [az appconfig credential list](/cli/azure/appconfig/credential#az-appconfig-credential-list) | List access keys for an App Configuration store. |
## Next steps
azure-app-configuration Cli Delete Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-app-configuration/scripts/cli-delete-service.md
This script uses the following commands to delete an App Configuration store. Ea
| Command | Notes | |||
-| [az appconfig delete](/cli/azure/appconfig#az_appconfig_delete) | Deletes an App Configuration store resource. |
+| [az appconfig delete](/cli/azure/appconfig#az-appconfig-delete) | Deletes an App Configuration store resource. |
## Next steps
azure-app-configuration Cli Export https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-app-configuration/scripts/cli-export.md
This script uses the following commands to export from an App Configuration stor
| Command | Notes | |||
-| [az appconfig kv export](/cli/azure/appconfig/kv#az_appconfig_kv_export) | Exports from an App Configuration store resource. |
+| [az appconfig kv export](/cli/azure/appconfig/kv#az-appconfig-kv-export) | Exports from an App Configuration store resource. |
## Next steps
azure-app-configuration Cli Import https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-app-configuration/scripts/cli-import.md
This script uses the following commands to import to an App Configuration store.
| Command | Notes | |||
-| [az appconfig kv import](/cli/azure/appconfig/kv#az_appconfig_kv_import) | Imports to an App Configuration store resource. |
+| [az appconfig kv import](/cli/azure/appconfig/kv#az-appconfig-kv-import) | Imports to an App Configuration store resource. |
## Next steps
azure-app-configuration Cli Work With Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-app-configuration/scripts/cli-work-with-keys.md
This table lists the commands used in our sample script.
| Command | Notes | |||
-| [az appconfig kv set](/cli/azure/appconfig/kv#az_appconfig_kv_set) | Create or update a key-value pair. |
-| [az appconfig kv list](/cli/azure/appconfig/kv#az_appconfig_kv_list) | List key-value pairs in an App Configuration store. |
-| [az appconfig kv delete](/cli/azure/appconfig/kv#az_appconfig_kv_delete) | Delete a key-value pair. |
+| [az appconfig kv set](/cli/azure/appconfig/kv#az-appconfig-kv-set) | Create or update a key-value pair. |
+| [az appconfig kv list](/cli/azure/appconfig/kv#az-appconfig-kv-list) | List key-value pairs in an App Configuration store. |
+| [az appconfig kv delete](/cli/azure/appconfig/kv#az-appconfig-kv-delete) | Delete a key-value pair. |
## Next steps
azure-app-configuration Use Key Vault References Spring Boot https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-app-configuration/use-key-vault-references-spring-boot.md
To add a secret to the vault, you need to take just a few additional steps. In t
## Connect to Key Vault
-1. In this tutorial, you use a service principal for authentication to Key Vault. To create this service principal, use the Azure CLI [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command:
+1. In this tutorial, you use a service principal for authentication to Key Vault. To create this service principal, use the Azure CLI [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command:
```azurecli az ad sp create-for-rbac -n "http://mySP" --role Contributor --sdk-auth
azure-arc Create Complete Managed Instance Directly Connected https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-arc/data/create-complete-managed-instance-directly-connected.md
In addition, you need the following additional extensions to connect the cluster
## Access your Kubernetes cluster
-After installing the client tools, you need access to a Kubernetes cluster. You can create Kubernetes cluster with [`az aks create`](/cli/azure/aks#az_aks_create), or you can follow the steps below to create the cluster in the Azure portal.
+After installing the client tools, you need access to a Kubernetes cluster. You can create Kubernetes cluster with [`az aks create`](/cli/azure/aks#az-aks-create), or you can follow the steps below to create the cluster in the Azure portal.
### Create a cluster
azure-arc Create Complete Managed Instance Indirectly Connected https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-arc/data/create-complete-managed-instance-indirectly-connected.md
Follow the steps below to deploy the cluster from the Azure CLI.
az aks create --resource-group <resource_group_name> --name <cluster_name> --node-count 3 --enable-addons monitoring --generate-ssh-keys --node-vm-size <node size> ```
- For command details, see [az aks create](/cli/azure/aks#az_aks_create).
+ For command details, see [az aks create](/cli/azure/aks#az-aks-create).
For a complete demonstration, including an application on a single-node Kubernetes cluster, go to [Quickstart: Deploy an Azure Kubernetes Service cluster using the Azure CLI](../../aks/kubernetes-walkthrough.md).
azure-arc Cluster Connect https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-arc/kubernetes/cluster-connect.md
A conceptual overview of this feature is available in [Cluster connect - Azure A
## Prerequisites -- [Install or upgrade Azure CLI](/cli/azure/install-azure-cli) to version >= 2.16.0 and <= 2.29.0
+- [Install](/cli/azure/install-azure-cli) or [update](/cli/azure/update-azure-cli) Azure CLI to version >= 2.16.0.
-- Install the `connectedk8s` Azure CLI extension of version >= 1.2.0:
+- Install the `connectedk8s` Azure CLI extension of version >= 1.2.5:
```azurecli az extension add --name connectedk8s
azure-arc Quick Enable Hybrid Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-arc/servers/learn/quick-enable-hybrid-vm.md
Title: Connect hybrid machine with Azure Arc-enabled servers
-description: Learn how to connect and register your hybrid machine with Azure Arc-enabled servers.
+ Title: Quickstart - Connect hybrid machine with Azure Arc-enabled servers
+description: In this quickstart, you connect and register a hybrid machine with Azure Arc-enabled servers.
Previously updated : 12/15/2020 Last updated : 03/23/2022 # Quickstart: Connect hybrid machines with Azure Arc-enabled servers
-[Azure Arc-enabled servers](../overview.md) enables you to manage and govern your Windows and Linux machines hosted across on-premises, edge, and multicloud environments. In this quickstart, you'll deploy and configure the Connected Machine agent on your Windows or Linux machine hosted outside of Azure for management by Azure Arc-enabled servers.
+Get started with [Azure Arc-enabled servers](../overview.md) to manage and govern your Windows and Linux machines hosted across on-premises, edge, and multicloud environments.
-## Prerequisites
-
-* If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.
-
-* Deploying the Azure Arc-enabled servers Hybrid Connected Machine agent requires that you have administrator permissions on the machine to install and configure the agent. On Linux, by using the root account, and on Windows, with an account that is a member of the Local Administrators group.
-
-* Before you get started, be sure to review the agent [prerequisites](../prerequisites.md) and verify the following:
-
- * Your target machine is running a supported [operating system](../prerequisites.md#supported-operating-systems).
-
- * Your account is granted assignment to the [required Azure roles](../prerequisites.md#required-permissions).
-
- * If the machine connects through a firewall or proxy server to communicate over the Internet, make sure the URLs [listed](../network-requirements.md#urls) are not blocked.
-
- * Azure Arc-enabled servers supports only the regions specified [here](../overview.md#supported-regions).
-
-> [!WARNING]
-> The Linux hostname or Windows computer name cannot use one of the reserved words or trademarks in the name, otherwise attempting to register the connected machine with Azure will fail. See [Resolve reserved resource name errors](../../../azure-resource-manager/templates/error-reserved-resource-name.md) for a list of the reserved words.
--
-## Register Azure resource providers
+In this quickstart, you'll deploy and configure the Azure Connected Machine agent on a Windows or Linux machine hosted outside of Azure, so that it can be managed through Azure Arc-enabled servers.
-Azure Arc-enabled servers depends on the following Azure resource providers in your subscription in order to use this service:
-
-* Microsoft.HybridCompute
-* Microsoft.GuestConfiguration
-* Microsoft.HybridConnectivity
-
-Register them using the following commands:
-
-```azurepowershell-interactive
-Login-AzAccount
-Set-AzContext -SubscriptionId [subscription you want to onboard]
-Register-AzResourceProvider -ProviderNamespace Microsoft.HybridCompute
-Register-AzResourceProvider -ProviderNamespace Microsoft.GuestConfiguration
-Register-AzResourceProvider -ProviderNamespace Microsoft.HybridConnectivity
-```
+## Prerequisites
-```azurecli-interactive
-az account set --subscription "{Your Subscription Name}"
-az provider register --namespace 'Microsoft.HybridCompute'
-az provider register --namespace 'Microsoft.GuestConfiguration'
-az provider register --namespace 'Microsoft.HybridConnectivity'
-```
+* An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
+* Deploying the Connected Machine agent on a machine requires that you have administrator permissions to install and configure the agent. On Linux this is done by using the root account, and on Windows, with an account that is a member of the Local Administrators group.
+* The Microsoft.HybridCompute, Microsoft.GuestConfiguration, and Microsoft.HybridConnectivity resource providers must be registered on your subscription. You can [register these resource providers ahead of time](../prerequisites.md#azure-resource-providers), or while completing the steps in this quickstart.
+* Before you get started, be sure to review the [agent prerequisites](../prerequisites.md) and verify the following:
+ * Your target machine is running a supported [operating system](../prerequisites.md#supported-operating-systems).
+ * Your account has the [required Azure built-in roles](../prerequisites.md#required-permissions).
+ * Ensure the machine is in a [supported region](../overview.md#supported-regions).
+ * Confirm that the Linux hostname or Windows computer name doesn't use a [reserved word or trademark](../../../azure-resource-manager/templates/error-reserved-resource-name.md).
+ * If the machine connects through a firewall or proxy server to communicate over the Internet, make sure the URLs [listed](../network-requirements.md#urls) are not blocked.
## Generate installation script
-The script to automate the download, installation, and establish the connection with Azure Arc, is available from the Azure portal. To complete the process, do the following:
-
-1. Launch the Azure Arc service in the Azure portal by clicking **All services**, then searching for and selecting **Servers - Azure Arc**.
+Use the Azure portal to create a script that automates the agent download and installation, and establishes the connection with Azure Arc.
- :::image type="content" source="./media/quick-enable-hybrid-vm/search-machines.png" alt-text="Search for Azure Arc-enabled servers in All Services" border="false":::
+1. Launch the Azure Arc service in the Azure portal by searching for and selecting **Servers - Azure Arc**.
-1. On the **Servers - Azure Arc** page, select **Add** at the upper left.
+ :::image type="content" source="media/quick-enable-hybrid-vm/search-machines.png" alt-text="Search for Azure Arc-enabled servers in the Azure portal.":::
-1. On the **Select a method** page, select the **Add servers using interactive script** tile, and then select **Generate script**.
+1. On the **Servers - Azure Arc** page, select **Add** near the upper left.
-1. On the **Generate script** page, select the subscription and resource group where you want the machine to be managed within Azure. Select an Azure location where the machine metadata will be stored. This location can be the same or different, as the resource group's location.
+1. On the next page, from the **Add a single server** tile, select **Generate script**.
-1. On the **Prerequisites** page, review the information and then select **Next: Resource details**.
+1. Review the information on the **Prerequisites** page, then select **Next**.
1. On the **Resource details** page, provide the following:
- 1. In the **Resource group** drop-down list, select the resource group the machine will be managed from.
- 1. In the **Region** drop-down list, select the Azure region to store the servers metadata.
- 1. In the **Operating system** drop-down list, select the operating system that the script be configured to run on.
- 1. If the machine is communicating through a proxy server to connect to the internet, specify the proxy server IP address or the name and port number that the machine will use to communicate with the proxy server. Enter the value in the format `http://<proxyURL>:<proxyport>`.
- 1. Select **Next: Tags**.
+ 1. Select the subscription and resource group where you want the machine to be managed within Azure.
+ 1. For **Region**, choose the Azure region in which the server's metadata will be stored.
+ 1. For **Operating system**, select the operating system of the server you want to connect.
+ 1. For **Connectivity method**, choose how the Azure Connected Machine agent should connect to the internet. If you select **Proxy server**, enter the proxy server IP address or the name and port number that the machine will use in the format `http://<proxyURL>:<proxyport>`.
+ 1. Select **Next**.
-1. On the **Tags** page, review the default **Physical location tags** suggested and enter a value, or specify one or more **Custom tags** to support your standards.
+1. On the **Tags** page, review the default **Physical location tags** suggested and enter a value, or specify one or more **Custom tags** to support your standards. Then select **Next**.
-1. Select **Next: Download and run script**.
+1. On the **Download and run script** page, select the **Register** button to register the required resource providers in your subscription, if you haven't already done so.
-1. On the **Download and run script** page, review the summary information, and then select **Download**. If you still need to make changes, select **Previous**.
+1. In the **Download or copy the following script** section, review the script. If you want to make any changes, use the **Previous** button to go back and update your selections. Otherwise, select **Download** to save the script file.
## Install the agent using the script
+Now that you've generated the script, the next step is to run it on the server that you want to onboard to Azure Arc. The script will download the Connected Machine agent from the Microsoft Download Center, install the agent on the server, create the Azure Arc-enabled server resource, and associate it with the agent.
+
+Follow the steps below for the operating system of your server.
+ ### Windows agent 1. Log in to the server. 1. Open an elevated 64-bit PowerShell command prompt.
-1. Change to the folder or share that you copied the script to, and execute it on the server by running the `./OnboardingScript.ps1` script.
+1. Change to the folder or share that you copied the script to, then execute it on the server by running the `./OnboardingScript.ps1` script.
### Linux agent
The script to automate the download, installation, and establish the connection
bash ~/Install_linux_azcmagent.sh ```
- * If the target machine communicates through a proxy server, run the following command:
+1. Alternately, if the target machine communicates through a proxy server, run the following command:
- ```bash
- bash ~/Install_linux_azcmagent.sh --proxy "{proxy-url}:{proxy-port}"
- ```
+ ```bash
+ bash ~/Install_linux_azcmagent.sh --proxy "{proxy-url}:{proxy-port}"
+ ```
## Verify the connection with Azure Arc
After you install the agent and configure it to connect to Azure Arc-enabled ser
:::image type="content" source="./media/quick-enable-hybrid-vm/enabled-machine.png" alt-text="A successful machine connection" border="false":::
+> [!TIP]
+> You can repeat these steps as needed to onboard additional machines. We also provide a variety of other options for deploying the agent, including several methods designed to onboard machines at scale. For more information, see [Azure Connected Machine agent deployment options](../deployment-options.md).
+ ## Next steps Now that you've enabled your Linux or Windows hybrid machine and successfully connected to the service, you are ready to enable Azure Policy to understand compliance in Azure.
azure-arc Manage Vm Extensions Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-arc/servers/manage-vm-extensions-cli.md
az extension add --name connectedmachine
## Enable extension
-To enable a VM extension on your Azure Arc-enabled server, use [az connectedmachine extension create](/cli/azure/connectedmachine/extension#az_connectedmachine_extension_create) with the `--machine-name`, `--extension-name`, `--location`, `--type`, `settings`, and `--publisher` parameters.
+To enable a VM extension on your Azure Arc-enabled server, use [az connectedmachine extension create](/cli/azure/connectedmachine/extension#az-connectedmachine-extension-create) with the `--machine-name`, `--extension-name`, `--location`, `--type`, `settings`, and `--publisher` parameters.
The following example enables the Log Analytics VM extension on an Azure Arc-enabled server:
az connectedmachine extension create --resource-group "resourceGroupName" --mach
## List extensions installed
-To get a list of the VM extensions on your Azure Arc-enabled server, use [az connectedmachine extension list](/cli/azure/connectedmachine/extension#az_connectedmachine_extension_list) with the `--machine-name` and `--resource-group` parameters.
+To get a list of the VM extensions on your Azure Arc-enabled server, use [az connectedmachine extension list](/cli/azure/connectedmachine/extension#az-connectedmachine-extension-list) with the `--machine-name` and `--resource-group` parameters.
Example:
The following example shows the partial JSON output from the `az connectedmachin
## Update extension configuration
-Some VM extensions require configuration settings in order to install them on the Arc-enabled server, like the Custom Script Extension and the Log Analytics agent VM extension. To upgrade the configuration of an extension, use [az connectedmachine extension update](/cli/azure/connectedmachine/extension#az_connectedmachine_extension_update).
+Some VM extensions require configuration settings in order to install them on the Arc-enabled server, like the Custom Script Extension and the Log Analytics agent VM extension. To upgrade the configuration of an extension, use [az connectedmachine extension update](/cli/azure/connectedmachine/extension#az-connectedmachine-extension-update).
The following example shows how to configure the Custom Script Extension:
az connectedmachine extension update --name "CustomScriptExtension" --type "Cust
When a new version of a supported VM extension is released, you can upgrade it to that latest release. To upgrade a VM extension, use [az connectedmachine upgrade-extension](/cli/azure/connectedmachine) with the `--machine-name`, `--resource-group`, and `--extension-targets` parameters.
-For the `--extension-targets` parameter, you need to specify the extension and the latest version available. To find out what the latest version available is, you can get this information from the **Extensions** page for the selected Arc-enabled server in the Azure portal, or by running [az vm extension image list](/cli/azure/vm/extension/image#az_vm_extension_image_list).
+For the `--extension-targets` parameter, you need to specify the extension and the latest version available. To find out what the latest version available is, you can get this information from the **Extensions** page for the selected Arc-enabled server in the Azure portal, or by running [az vm extension image list](/cli/azure/vm/extension/image#az-vm-extension-image-list).
To upgrade the Log Analytics agent extension for Windows that has a newer version available, run the following command:
To upgrade the Log Analytics agent extension for Windows that has a newer versio
az connectedmachine upgrade-extension --machine-name "myMachineName" --resource-group "myResourceGroup --extension-targets --extension-targets "{\"MicrosoftMonitoringAgent\":{\"targetVersion\":\"1.0.18053.0\"}}"" ```
-You can review the version of installed VM extensions at any time by running the command [az connectedmachine extension list](/cli/azure/connectedmachine/extension#az_connectedmachine_extension_list). The `typeHandlerVersion` property value represents the version of the extension.
+You can review the version of installed VM extensions at any time by running the command [az connectedmachine extension list](/cli/azure/connectedmachine/extension#az-connectedmachine-extension-list). The `typeHandlerVersion` property value represents the version of the extension.
## Remove extensions
-To remove an installed VM extension on your Azure Arc-enabled server, use [az connectedmachine extension delete](/cli/azure/connectedmachine/extension#az_connectedmachine_extension_delete) with the `--extension-name`, `--machine-name`, and `--resource-group` parameters.
+To remove an installed VM extension on your Azure Arc-enabled server, use [az connectedmachine extension delete](/cli/azure/connectedmachine/extension#az-connectedmachine-extension-delete) with the `--extension-name`, `--machine-name`, and `--resource-group` parameters.
For example, to remove the Log Analytics VM extension for Linux, run the following command:
azure-cache-for-redis Cache Best Practices Development https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/cache-best-practices-development.md
description: Learn how to develop code for Azure Cache for Redis.
Previously updated : 02/25/2022 Last updated : 03/23/2022
A large request/response can cause timeouts. As an example, suppose your timeout
In the following example, request 'A' and 'B' are sent quickly to the server. The server starts sending responses 'A' and 'B' quickly. Because of data transfer times, response 'B' must wait behind response 'A' times out even though the server responded quickly.
-```console
+```dos
|-- 1 Second Timeout (A)-| |-Request A-| |-- 1 Second Timeout (B) -|
Locate your cache instance and your application in the same region. Connecting t
While you can connect from outside of Azure, it isn't recommended *especially when using Redis as a cache*. If you're using Redis server as just a key/value store, latency may not be the primary concern.
+## Rely on hostname not public IP address
+
+The public IP address assigned to your cache can change as a result of a scale operation or backend improvement. We recommend relying on the hostname, in the form `<cachename>.redis.cache.windows.net`, instead of an explicit public IP address.
+ ## Use TLS encryption Azure Cache for Redis requires TLS encrypted communications by default. TLS versions 1.0, 1.1 and 1.2 are currently supported. However, TLS 1.0 and 1.1 are on a path to deprecation industry-wide, so use TLS 1.2 if at all possible.
To continue to pin intermediate certificates, add the following to the pinned in
If your application validates certificate in code, you need to modify it to recognize the properties for example, Issuers, Thumbprint of the newly pinned certificates. This extra verification should cover all pinned certificates to be more future-proof.
-#### Rely on hostname not public IP address
-
-The public IP address assigned to your cache can change as a result of a scale operation or backend improvement. We recommend relying on the hostname, in the form `<cachename>.redis.cache.windows.net`, instead of an explicit public IP address.
- ## Client library-specific guidance - [StackExchange.Redis (.NET)](cache-best-practices-connection.md#using-forcereconnect-with-stackexchangeredis)
azure-cache-for-redis Cache Monitor Diagnostic Settings https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/cache-monitor-diagnostic-settings.md
PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diag
## Create diagnostic setting via Azure CLI
-Use the `az monitor diagnostic-settings create` command to create a diagnostic setting with the Azure CLI. For more for information on command and parameter descriptions, see [Create diagnostic settings to send platform logs and metrics to different destinations](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create).
+Use the `az monitor diagnostic-settings create` command to create a diagnostic setting with the Azure CLI. For more for information on command and parameter descriptions, see [Create diagnostic settings to send platform logs and metrics to different destinations](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create).
```azurecli az monitor diagnostic-settings create
azure-cache-for-redis Cli Samples https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/cli-samples.md
ms.devlang: azurecli Previously updated : 04/14/2017 Last updated : 03/11/2022 # Manage Azure Cache for Redis with Azure CLI
The following table includes links to bash scripts built using the Azure CLI.
| Create cache | Description | | | -- |
-| [Create a cache](./scripts/create-cache.md) | Creates a resource group and a basic tier Azure Cache for Redis. |
-| [Create a premium cache with clustering](./scripts/create-premium-cache-cluster.md) | Creates a resource group and a premium tier cache with clustering enabled.|
-| [Get cache details](./scripts/show-cache.md) | Gets details of an Azure Cache for Redis instance, including provisioning status. |
-| [Get the hostname, ports, and keys](./scripts/cache-keys-ports.md) | Gets the hostname, ports, and keys for an Azure Cache for Redis instance. |
-|**Web app plus cache**| **Description**|
-| [Connect a web app to an Azure Cache for Redis](./../app-service/scripts/cli-connect-to-redis.md) | Creates an Azure web app and an Azure Cache for Redis, then adds the redis connection details to the app settings. |
-|**Delete cache**| **Description** |
-| [Delete a cache](./scripts/delete-cache.md) | Deletes an Azure Cache for Redis instance |
+| [Create and manage a cache](./scripts/create-manage-cache.md) | Creates a resource group and a basic tier Azure Cache for Redis. It then gets details of an Azure Cache for Redis instance, including provisioning status, the hostname, ports, and keys for an Azure Cache for Redis instance. Finally, it deletes the cache.|
+| [Create and manage a premium cache with clustering](./scripts/create-manage-premium-cache-cluster.md) | Creates a resource group and a premium tier cache with clustering enabled. It then gets details of an Azure Cache for Redis instance, including provisioning status, the hostname, ports, and keys for an Azure Cache for Redis instance. Finally, it deletes the cache.|
For more information about the Azure CLI, see [Install the Azure CLI](/cli/azure/install-azure-cli) and [Get started with Azure CLI](/cli/azure/get-started-with-azure-cli).
azure-cache-for-redis Cache Keys Ports https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/scripts/cache-keys-ports.md
- Title: Get the hostname, ports, keys - Azure Cache for Redis - Azure CLI
-description: This Azure CLI code sample shows how to get the hostname, ports, and keys for an Azure Cache for Redis instance.
--
-tags: azure-service-management
-- Previously updated : 08/30/2017 ---
-# Get the hostname, ports, and keys for Azure Cache for Redis
-
-In this scenario, you learn how to retrieve the hostname, ports, and keys used to connect to an Azure Cache for Redis instance.
--
-## Sample script
-
-[!code-azurecli[main](../../../cli_scripts/redis-cache/cache-keys-ports/cache-keys-ports.sh "Azure Cache for Redis")]
--
-## Script explanation
-
-This script uses the following commands to retrieve the hostname, keys, and ports of an Azure Cache for Redis instance. Each command in the table links to command specific documentation.
-
-| Command | Notes |
-|||
-| [az redis show](/cli/azure/redis) | Retrieve details of an Azure Cache for Redis instance. |
-| [az redis list-keys](/cli/azure/redis) | Retrieve access keys for an Azure Cache for Redis instance. |
--
-## Next steps
-
-For more information on the Azure CLI, see [Azure CLI documentation](/cli/azure).
-
-Additional Azure Cache for Redis CLI script samples can be found in the [Azure Cache for Redis documentation](../cli-samples.md).
azure-cache-for-redis Create Cache https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/scripts/create-cache.md
- Title: Create an Azure Cache for Redis - Azure CLI
-description: This Azure CLI code sample shows how to create an Azure Cache for Redis instance using the command az redis create.
-
-tags: azure-service-management
-- Previously updated : 08/30/2017----
-# Create an Azure Cache for Redis
-
-In this scenario, you learn how to create an Azure Cache for Redis.
--
-## Sample script
-
-[!code-azurecli[main](../../../cli_scripts/redis-cache/create-cache/create-cache.sh "Azure Cache for Redis")]
---
-## Script explanation
-
-This script uses the following commands to create a resource group and an Azure Cache for Redis. Each command in the table links to command specific documentation.
-
-| Command | Notes |
-|||
-| [az group create](/cli/azure/group) | Creates a resource group in which all resources are stored. |
-| [az redis create](/cli/azure/redis) | Create Azure Cache for Redis instance. |
--
-## Next steps
-
-For more information on the Azure CLI, see [Azure CLI documentation](/cli/azure).
-
-Additional Azure Cache for Redis CLI script samples can be found in the [Azure Cache for Redis documentation](../cli-samples.md).
azure-cache-for-redis Create Manage Cache https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/scripts/create-manage-cache.md
+
+ Title: Create, query, and delete an Azure Cache for Redis - Azure CLI
+description: This Azure CLI code sample shows how to create an Azure Cache for Redis instance using the command az redis create. It then gets details of an Azure Cache for Redis instance, including provisioning status, the hostname, ports, and keys for an Azure Cache for Redis instance. Finally, it deletes the cache.
+
+tags: azure-service-management
+
+ms.devlang: azurecli
+ Last updated : 03/11/2022++++
+# Create an Azure Cache for Redis using the Azure CLI
+
+In this scenario, you learn how to create an Azure Cache for Redis. You then learn to get details of an Azure Cache for Redis instance, including provisioning status, the hostname, ports, and keys for an Azure Cache for Redis instance. Finally, you learn to delete the cache.
+++
+## Sample script
++
+### Run the script
++
+## Clean up resources
++
+```azurecli
+az group delete --name $resourceGroup
+```
+
+## Sample reference
+
+This script uses the following commands to create a resource group and an Azure Cache for Redis. Each command in the table links to command specific documentation.
+
+| Command | Notes |
+|||
+| [az group create](/cli/azure/group) | Creates a resource group in which all resources are stored. |
+| [az redis create](/cli/azure/redis) | Create Azure Cache for Redis instance. |
+| [az redis show](/cli/azure/redis) | Retrieve details of an Azure Cache for Redis instance. |
+| [az redis list-keys](/cli/azure/redis) | Retrieve access keys for an Azure Cache for Redis instance. |
+| [az redis delete](/cli/azure/redis) | Delete Azure Cache for Redis instance. |
+
+## Next steps
+
+For more information on the Azure CLI, see [Azure CLI documentation](/cli/azure).
+
+For an Azure Cache for Redis CLI script sample that creates a premium Azure Cache for Redis with clustering, see [Premium Azure Cache for Redis with Clustering](create-manage-premium-cache-cluster.md).
azure-cache-for-redis Create Manage Premium Cache Cluster https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/scripts/create-manage-premium-cache-cluster.md
+
+ Title: Create, query, and delete a Premium Azure Cache for Redis with clustering - Azure CLI
+description: This Azure CLI code sample shows how to create a 6 GB Premium tier Azure Cache for Redis with clustering enabled and two shards. It then gets details of an Azure Cache for Redis instance, including provisioning status, the hostname, ports, and keys for an Azure Cache for Redis instance. Finally, it deletes the cache.
++
+tags: azure-service-management
+
+ms.devlang: azurecli
+ Last updated : 03/11/2022+++
+# Create a Premium Azure Cache for Redis with clustering
+
+In this scenario, you learn how to create a 6 GB Premium tier Azure Cache for Redis with clustering enabled and two shards. You then learn to get details of an Azure Cache for Redis instance, including provisioning status, the hostname, ports, and keys for an Azure Cache for Redis instance. Finally, you learn to delete the cache.
+++
+## Sample script
++
+### Run the script
++
+## Clean up resources
++
+```azurecli
+az group delete --name $resourceGroup
+```
+
+## Sample reference
+
+This script uses the following commands to create a resource group and a Premium tier Azure Cache for Redis with clustering enable. Each command in the table links to command specific documentation.
+
+| Command | Notes |
+|||
+| [az group create](/cli/azure/group) | Creates a resource group in which all resources are stored. |
+| [az redis create](/cli/azure/redis) | Create Azure Cache for Redis instance. |
+| [az redis show](/cli/azure/redis) | Retrieve details of an Azure Cache for Redis instance. |
+| [az redis list-keys](/cli/azure/redis) | Retrieve access keys for an Azure Cache for Redis instance. |
+| [az redis delete](/cli/azure/redis) | Delete Azure Cache for Redis instance. |
+
+## Next steps
+
+For more information on the Azure CLI, see [Azure CLI documentation](/cli/azure).
+
+For an Azure Cache for Redis CLI script sample that creates a basic Azure Cache for Redis, see [Azure Cache for Redis](create-manage-cache.md).
azure-cache-for-redis Create Premium Cache Cluster https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/scripts/create-premium-cache-cluster.md
- Title: Create a Premium Azure Cache for Redis with clustering - Azure CLI
-description: This Azure CLI code sample shows how to create a 6 GB Premium tier Azure Cache for Redis with clustering enabled and two shards.
--
-tags: azure-service-management
-- Previously updated : 08/30/2017 ---
-# Create a Premium Azure Cache for Redis with clustering
-
-In this scenario, you learn how to create a 6 GB Premium tier Azure Cache for Redis with clustering enabled and two shards.
--
-## Sample script
-
-[!code-azurecli[main](../../../cli_scripts/redis-cache/create-premium-cache-cluster/create-premium-cache-cluster.sh "Azure Cache for Redis")]
--
-## Script explanation
-
-This script uses the following commands to create a resource group and a Premium tier Azure Cache for Redis with clustering enable. Each command in the table links to command specific documentation.
-
-| Command | Notes |
-|||
-| [az group create](/cli/azure/group) | Creates a resource group in which all resources are stored. |
-| [az redis create](/cli/azure/redis) | Create Azure Cache for Redis instance. |
--
-## Next steps
-
-For more information on the Azure CLI, see [Azure CLI documentation](/cli/azure).
-
-Additional Azure Cache for Redis CLI script samples can be found in the [Azure Cache for Redis documentation](../cli-samples.md).
azure-cache-for-redis Delete Cache https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/scripts/delete-cache.md
- Title: Delete an Azure Cache for Redis - Azure CLI
-description: This Azure CLI code sample shows how to delete an Azure Cache for Redis instance using the command az redis delete.
--
-tags: azure-service-management
-- Previously updated : 08/30/2017 ---
-# Delete an Azure Cache for Redis
-
-In this scenario, you learn how to delete an Azure Cache for Redis.
--
-## Sample script
-
-[!code-azurecli[main](../../../cli_scripts/redis-cache/delete-cache/delete-cache.sh "Azure Cache for Redis")]
--
-## Script explanation
-
-This script uses the following commands to delete an Azure Cache for Redis instance. Each command in the table links to command specific documentation.
-
-| Command | Notes |
-|||
-| [az redis delete](/cli/azure/redis) | Delete Azure Cache for Redis instance. |
--
-## Next steps
-
-For more information on the Azure CLI, see [Azure CLI documentation](/cli/azure).
-
-Additional Azure Cache for Redis CLI script samples can be found in the [Azure Cache for Redis documentation](../cli-samples.md).
azure-cache-for-redis Show Cache https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/scripts/show-cache.md
- Title: Get details of an Azure Cache for Redis - Azure CLI
-description: This Azure CLI code sample shows how to retrieve the details of an Azure Cache for Redis instance, including its provisioning status.
--
-tags: azure-service-management
-- Previously updated : 08/30/2017 ---
-# Get details of an Azure Cache for Redis
-
-In this scenario, you learn how to retrieve the details of an Azure Cache for Redis instance, including its provisioning status.
--
-## Sample script
-
-[!code-azurecli[main](../../../cli_scripts/redis-cache/show-cache/show-cache.sh "Azure Cache for Redis")]
-
-## Script explanation
-
-This script uses the following commands to retrieve the details of an Azure Cache for Redis instance. Each command in the table links to command specific documentation.
-
-| Command | Notes |
-|||
-| [az redis show](/cli/azure/redis) | Retrieve details of an Azure Cache for Redis instance. |
--
-## Next steps
-
-For more information on the Azure CLI, see [Azure CLI documentation](/cli/azure).
-
-Additional Azure Cache for Redis CLI script samples can be found in the [Azure Cache for Redis documentation](../cli-samples.md).
azure-functions Bring Dependency To Functions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/bring-dependency-to-functions.md
When running your function app on Linux, there's another way to bring in third-p
First, you need to create an Azure Storage Account. In the account, you also need to create file share in Azure files. To create these resources, follow this [guide](../storage/files/storage-how-to-use-files-portal.md)
-After you created the storage account and file share, use the [az webapp config storage-account add](/cli/azure/webapp/config/storage-account#az_webapp_config_storage_account_add) command to attach the file share to your functions app, as shown in the following example.
+After you created the storage account and file share, use the [az webapp config storage-account add](/cli/azure/webapp/config/storage-account#az-webapp-config-storage-account-add) command to attach the file share to your functions app, as shown in the following example.
```azurecli az webapp config storage-account add \
azure-functions Configure Encrypt At Rest Using Cmk https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/configure-encrypt-at-rest-using-cmk.md
Adding this application setting causes your function app to restart. After the a
Now you can replace the value of the `WEBSITE_RUN_FROM_PACKAGE` application setting with a Key Vault reference to the SAS-encoded URL. This keeps the SAS URL encrypted in Key Vault, which provides an extra layer of security.
-1. Use the following [`az keyvault create`](/cli/azure/keyvault#az_keyvault_create) command to create a Key Vault instance.
+1. Use the following [`az keyvault create`](/cli/azure/keyvault#az-keyvault-create) command to create a Key Vault instance.
```azurecli az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus
Now you can replace the value of the `WEBSITE_RUN_FROM_PACKAGE` application sett
1. Follow [these instructions to grant your app access](../app-service/app-service-key-vault-references.md#granting-your-app-access-to-key-vault) to your key vault:
-1. Use the following [`az keyvault secret set`](/cli/azure/keyvault/secret#az_keyvault_secret_set) command to add your external URL as a secret in your key vault:
+1. Use the following [`az keyvault secret set`](/cli/azure/keyvault/secret#az-keyvault-secret-set) command to add your external URL as a secret in your key vault:
```azurecli az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>" ```
-1. Use the following [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command to create the `WEBSITE_RUN_FROM_PACKAGE` application setting with the value as a Key Vault reference to the external URL:
+1. Use the following [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command to create the `WEBSITE_RUN_FROM_PACKAGE` application setting with the value as a Key Vault reference to the external URL:
```azurecli az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"
azure-functions Create First Function Arc Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-arc-cli.md
Before you can deploy your function code to your new App Service Kubernetes envi
### Create Storage account
-Use the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command to create a general-purpose storage account in your resource group and region:
+Use the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command to create a general-purpose storage account in your resource group and region:
```azurecli az storage account create --name <STORAGE_NAME> --location westeurope --resource-group myResourceGroup --sku Standard_LRS
In the previous example, replace `<STORAGE_NAME>` with a name that is appropriat
### Create the function app
-Run the [az functionapp create](/cli/azure/functionapp#az_functionapp_create) command to create a new function app in the environment.
+Run the [az functionapp create](/cli/azure/functionapp#az-functionapp-create) command to create a new function app in the environment.
# [C\#](#tab/csharp) ```azurecli
azure-functions Create First Function Arc Custom Container https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-arc-custom-container.md
Before you can deploy your container to your new App Service Kubernetes environm
### Create Storage account
-Use the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command to create a general-purpose storage account in your resource group and region:
+Use the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command to create a general-purpose storage account in your resource group and region:
```azurecli az storage account create --name <STORAGE_NAME> --location westeurope --resource-group myResourceGroup --sku Standard_LRS
In the previous example, replace `<STORAGE_NAME>` with a name that is appropriat
### Create the function app
-Run the [az functionapp create](/cli/azure/functionapp#az_functionapp_create) command to create a new function app in the environment.
+Run the [az functionapp create](/cli/azure/functionapp#az-functionapp-create) command to create a new function app in the environment.
# [C\#](#tab/csharp) ```azurecli
az functionapp create --resource-group MyResourceGroup --name <APP_NAME> --custo
In this example, replace `<CUSTOM_LOCATION_ID>` with the ID of the custom location you determined for the App Service Kubernetes environment. Also, replace `<STORAGE_NAME>` with the name of the account you used in the previous step, `<APP_NAME>` with a globally unique name appropriate to you, and `<DOCKER_ID>` with your Docker Hub ID.
-The *deployment-container-image-name* parameter specifies the image to use for the function app. You can use the [az functionapp config container show](/cli/azure/functionapp/config/container#az_functionapp_config_container_show) command to view information about the image used for deployment. You can also use the [az functionapp config container set](/cli/azure/functionapp/config/container#az_functionapp_config_container_set) command to deploy from a different image.
+The *deployment-container-image-name* parameter specifies the image to use for the function app. You can use the [az functionapp config container show](/cli/azure/functionapp/config/container#az-functionapp-config-container-show) command to view information about the image used for deployment. You can also use the [az functionapp config container set](/cli/azure/functionapp/config/container#az-functionapp-config-container-set) command to deploy from a different image.
When you first create the function app, it pulls the initial image from your Docker Hub. You can also [Enable continuous deployment to Azure](functions-create-function-linux-custom-image.md#enable-continuous-deployment-to-azure) from Docker Hub.
azure-functions Create First Function Cli Csharp Ieux https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-cli-csharp-ieux.md
Before you can deploy your function code to Azure, you need to create a <abbr ti
az group create --name AzureFunctionsQuickstart-rg --location westeurope ```
- The [az group create](/cli/azure/group#az_group_create) command creates a resource group. You generally create your resource group and resources in a <abbr title="A geographical reference to a specific Azure datacenter in which resources are allocated.">region</abbr> near you, using an available region returned from the `az account list-locations` command.
+ The [az group create](/cli/azure/group#az-group-create) command creates a resource group. You generally create your resource group and resources in a <abbr title="A geographical reference to a specific Azure datacenter in which resources are allocated.">region</abbr> near you, using an available region returned from the `az account list-locations` command.
# [Azure PowerShell](#tab/azure-powershell)
azure-functions Create First Function Cli Csharp https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-cli-csharp.md
To learn more, see [Azure Functions HTTP triggers and bindings](./functions-bind
```azurecli az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime dotnet --functions-version 3 --name <APP_NAME> --storage-account <STORAGE_NAME> ```
- The [az functionapp create](/cli/azure/functionapp#az_functionapp_create) command creates the function app in Azure.
+ The [az functionapp create](/cli/azure/functionapp#az-functionapp-create) command creates the function app in Azure.
# [Azure CLI](#tab/azure-cli/isolated-process)
To learn more, see [Azure Functions HTTP triggers and bindings](./functions-bind
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime dotnet-isolated --functions-version 3 --name <APP_NAME> --storage-account <STORAGE_NAME> ```
- The [az functionapp create](/cli/azure/functionapp#az_functionapp_create) command creates the function app in Azure.
+ The [az functionapp create](/cli/azure/functionapp#az-functionapp-create) command creates the function app in Azure.
# [Azure PowerShell](#tab/azure-powershell/in-process)
azure-functions Create First Function Cli Java Uiex https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-cli-java-uiex.md
To create a function app running on Linux instead of Windows, change the `runtim
az login ```
- The [az login](/cli/azure/reference-index#az_login) command signs you into your Azure account.
+ The [az login](/cli/azure/reference-index#az-login) command signs you into your Azure account.
# [Azure PowerShell](#tab/azure-powershell) ```azurepowershell
azure-functions Create First Function Cli Java https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-cli-java.md
A function app and related resources are created in Azure when you first deploy
az login ```
- The [az login](/cli/azure/reference-index#az_login) command signs you into your Azure account.
+ The [az login](/cli/azure/reference-index#az-login) command signs you into your Azure account.
# [Azure PowerShell](#tab/azure-powershell) ```azurepowershell
azure-functions Create First Function Cli Node https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-cli-node.md
Each binding requires a direction, a type, and a unique name. The HTTP trigger h
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime node --runtime-version 14 --functions-version 4 --name <APP_NAME> --storage-account <STORAGE_NAME> ```
- The [az functionapp create](/cli/azure/functionapp#az_functionapp_create) command creates the function app in Azure. If you're using Node.js 16, also change `--runtime-version` to `16`.
+ The [az functionapp create](/cli/azure/functionapp#az-functionapp-create) command creates the function app in Azure. If you're using Node.js 16, also change `--runtime-version` to `16`.
# [Azure PowerShell](#tab/azure-powershell)
azure-functions Create First Function Cli Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-cli-powershell.md
Each binding requires a direction, a type, and a unique name. The HTTP trigger h
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime powershell --functions-version 3 --name <APP_NAME> --storage-account <STORAGE_NAME> ```
- The [az functionapp create](/cli/azure/functionapp#az_functionapp_create) command creates the function app in Azure.
+ The [az functionapp create](/cli/azure/functionapp#az-functionapp-create) command creates the function app in Azure.
# [Azure PowerShell](#tab/azure-powershell)
azure-functions Create First Function Cli Python Uiex https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-cli-python-uiex.md
Before you can deploy your function code to Azure, you need to create a <abbr ti
az login ```
- The [az login](/cli/azure/reference-index#az_login) command signs you into your Azure account.
+ The [az login](/cli/azure/reference-index#az-login) command signs you into your Azure account.
# [Azure PowerShell](#tab/azure-powershell) ```azurepowershell
Before you can deploy your function code to Azure, you need to create a <abbr ti
az group create --name AzureFunctionsQuickstart-rg --location westeurope ```
- The [az group create](/cli/azure/group#az_group_create) command creates a resource group. You generally create your resource group and resources in a <abbr title="A geographical reference to a specific Azure datacenter in which resources are allocated.">region</abbr> near you, using an available region returned from the `az account list-locations` command.
+ The [az group create](/cli/azure/group#az-group-create) command creates a resource group. You generally create your resource group and resources in a <abbr title="A geographical reference to a specific Azure datacenter in which resources are allocated.">region</abbr> near you, using an available region returned from the `az account list-locations` command.
# [Azure PowerShell](#tab/azure-powershell)
Before you can deploy your function code to Azure, you need to create a <abbr ti
az storage account create --name <STORAGE_NAME> --location westeurope --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS ```
- The [az storage account create](/cli/azure/storage/account#az_storage_account_create) command creates the storage account.
+ The [az storage account create](/cli/azure/storage/account#az-storage-account-create) command creates the storage account.
# [Azure PowerShell](#tab/azure-powershell)
Before you can deploy your function code to Azure, you need to create a <abbr ti
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime python --runtime-version 3.8 --functions-version 3 --name <APP_NAME> --storage-account <STORAGE_NAME> --os-type linux ```
- The [az functionapp create](/cli/azure/functionapp#az_functionapp_create) command creates the function app in Azure. If you are using Python 3.7 or 3.6, change `--runtime-version` to `3.7` or `3.6`, respectively.
+ The [az functionapp create](/cli/azure/functionapp#az-functionapp-create) command creates the function app in Azure. If you are using Python 3.7 or 3.6, change `--runtime-version` to `3.7` or `3.6`, respectively.
# [Azure PowerShell](#tab/azure-powershell)
azure-functions Create First Function Cli Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-cli-python.md
Use the following commands to create these items. Both Azure CLI and PowerShell
az login ```
- The [az login](/cli/azure/reference-index#az_login) command signs you into your Azure account.
+ The [az login](/cli/azure/reference-index#az-login) command signs you into your Azure account.
# [Azure PowerShell](#tab/azure-powershell) ```azurepowershell
Use the following commands to create these items. Both Azure CLI and PowerShell
az group create --name AzureFunctionsQuickstart-rg --location <REGION> ```
- The [az group create](/cli/azure/group#az_group_create) command creates a resource group. In the above command, replace `<REGION>` with a region near you, using an available region code returned from the [az account list-locations](/cli/azure/account#az_account_list_locations) command.
+ The [az group create](/cli/azure/group#az-group-create) command creates a resource group. In the above command, replace `<REGION>` with a region near you, using an available region code returned from the [az account list-locations](/cli/azure/account#az-account-list-locations) command.
# [Azure PowerShell](#tab/azure-powershell)
Use the following commands to create these items. Both Azure CLI and PowerShell
az storage account create --name <STORAGE_NAME> --sku Standard_LRS ```
- The [az storage account create](/cli/azure/storage/account#az_storage_account_create) command creates the storage account.
+ The [az storage account create](/cli/azure/storage/account#az-storage-account-create) command creates the storage account.
# [Azure PowerShell](#tab/azure-powershell)
Use the following commands to create these items. Both Azure CLI and PowerShell
az functionapp create --consumption-plan-location westeurope --runtime python --runtime-version 3.8 --functions-version 3 --name <APP_NAME> --os-type linux --storage-account <STORAGE_NAME> ```
- The [az functionapp create](/cli/azure/functionapp#az_functionapp_create) command creates the function app in Azure. If you are using Python 3.7 or 3.6, change `--runtime-version` to `3.7` or `3.6`, respectively. You must supply `--os-type linux` because Python functions can't run on Windows, which is the default.
+ The [az functionapp create](/cli/azure/functionapp#az-functionapp-create) command creates the function app in Azure. If you are using Python 3.7 or 3.6, change `--runtime-version` to `3.7` or `3.6`, respectively. You must supply `--os-type linux` because Python functions can't run on Windows, which is the default.
# [Azure PowerShell](#tab/azure-powershell)
azure-functions Create First Function Cli Typescript https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/create-first-function-cli-typescript.md
Each binding requires a direction, a type, and a unique name. The HTTP trigger h
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime node --runtime-version 14 --functions-version 4 --name <APP_NAME> --storage-account <STORAGE_NAME> ```
- The [az functionapp create](/cli/azure/functionapp#az_functionapp_create) command creates the function app in Azure. If you're using Node.js 16, also change `--runtime-version` to `16`.
+ The [az functionapp create](/cli/azure/functionapp#az-functionapp-create) command creates the function app in Azure. If you're using Node.js 16, also change `--runtime-version` to `16`.
# [Azure PowerShell](#tab/azure-powershell)
azure-functions Deployment Zip Push https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/deployment-zip-push.md
When you are developing on a local computer, you can manually create a .zip file
## <a name="cli"></a>Deploy by using Azure CLI
-You can use Azure CLI to trigger a push deployment. Push deploy a .zip file to your function app by using the [az functionapp deployment source config-zip](/cli/azure/functionapp/deployment/source#az_functionapp_deployment_source_config_zip) command. To use this command, you must use Azure CLI version 2.0.21 or later. To see what Azure CLI version you are using, use the `az --version` command.
+You can use Azure CLI to trigger a push deployment. Push deploy a .zip file to your function app by using the [az functionapp deployment source config-zip](/cli/azure/functionapp/deployment/source#az-functionapp-deployment-source-config-zip) command. To use this command, you must use Azure CLI version 2.0.21 or later. To see what Azure CLI version you are using, use the `az --version` command.
In the following command, replace the `<zip_file_path>` placeholder with the path to the location of your .zip file. Also, replace `<app_name>` with the unique name of your function app and replace `<resource_group>` with the name of your resource group.
azure-functions Event Grid How Tos https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/event-grid-how-tos.md
For more information about how to create subscriptions by using the Azure portal
### Azure CLI
-To create a subscription by using [the Azure CLI](/cli/azure/get-started-with-azure-cli), use the [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) command.
+To create a subscription by using [the Azure CLI](/cli/azure/get-started-with-azure-cli), use the [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) command.
The command requires the endpoint URL that invokes the function, and the endpoint varies between version 1.x of the Functions runtime and later versions. The following example shows the version-specific URL pattern:
To test an Event Grid trigger locally, you have to get Event Grid HTTP requests
1. [Generate a request](#generate-a-request) and copy the request body from the viewer app. 1. [Manually post the request](#manually-post-the-request) to the localhost URL of your Event Grid trigger function.
-When you're done testing, you can use the same subscription for production by updating the endpoint. Use the [az eventgrid event-subscription update](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_update) Azure CLI command.
+When you're done testing, you can use the same subscription for production by updating the endpoint. Use the [az eventgrid event-subscription update](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-update) Azure CLI command.
### Create a viewer web app
azure-functions Functions Bindings Azure Sql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-bindings-azure-sql.md
The Azure SQL bindings for Azure Functions are open-source and available on the
- [Read data from a database (Input binding)](./functions-bindings-azure-sql-input.md) - [Save data to a database (Output binding)](./functions-bindings-azure-sql-output.md) - [Review ToDo API sample with Azure SQL bindings](/samples/azure-samples/azure-sql-binding-func-dotnet-todo/todo-backend-dotnet-azure-sql-bindings-azure-functions/)-- [Learn how to connect Azure Function to Azure SQL with managed identity](./functions-identity-access-azure-sql-with-managed-identity.md)
+- [Learn how to connect Azure Function to Azure SQL with managed identity](./functions-identity-access-azure-sql-with-managed-identity.md)
azure-functions Functions Create First Java Gradle https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-create-first-java-gradle.md
az login
``` > [!TIP]
-> If your account can access multiple subscriptions, use [az account set](/cli/azure/account#az_account_set) to set the default subscription for this session.
+> If your account can access multiple subscriptions, use [az account set](/cli/azure/account#az-account-set) to set the default subscription for this session.
Use the following command to deploy your project to a new function app.
azure-functions Functions Create Function Linux Custom Image https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-create-function-linux-custom-image.md
Use the following commands to create these items. Both Azure CLI and PowerShell
az login ```
- The [az login](/cli/azure/reference-index#az_login) command signs you into your Azure account.
+ The [az login](/cli/azure/reference-index#az-login) command signs you into your Azure account.
# [Azure PowerShell](#tab/azure-powershell) ```azurepowershell
Use the following commands to create these items. Both Azure CLI and PowerShell
az group create --name AzureFunctionsContainers-rg --location <REGION> ```
- The [az group create](/cli/azure/group#az_group_create) command creates a resource group. In the above command, replace `<REGION>` with a region near you, using an available region code returned from the [az account list-locations](/cli/azure/account#az_account_list_locations) command.
+ The [az group create](/cli/azure/group#az-group-create) command creates a resource group. In the above command, replace `<REGION>` with a region near you, using an available region code returned from the [az account list-locations](/cli/azure/account#az-account-list-locations) command.
# [Azure PowerShell](#tab/azure-powershell)
Use the following commands to create these items. Both Azure CLI and PowerShell
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsContainers-rg --sku Standard_LRS ```
- The [az storage account create](/cli/azure/storage/account#az_storage_account_create) command creates the storage account.
+ The [az storage account create](/cli/azure/storage/account#az-storage-account-create) command creates the storage account.
# [Azure PowerShell](#tab/azure-powershell)
A function app on Azure manages the execution of your functions in your hosting
az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> --resource-group AzureFunctionsContainers-rg --plan myPremiumPlan --deployment-container-image-name <DOCKER_ID>/azurefunctionsimage:v1.0.0 ```
- In the [az functionapp create](/cli/azure/functionapp#az_functionapp_create) command, the *deployment-container-image-name* parameter specifies the image to use for the function app. You can use the [az functionapp config container show](/cli/azure/functionapp/config/container#az_functionapp_config_container_show) command to view information about the image used for deployment. You can also use the [az functionapp config container set](/cli/azure/functionapp/config/container#az_functionapp_config_container_set) command to deploy from a different image. NOTE: If you are using a custom container registry then the *deployment-container-image-name* parameter will refer to the registry URL.
+ In the [az functionapp create](/cli/azure/functionapp#az-functionapp-create) command, the *deployment-container-image-name* parameter specifies the image to use for the function app. You can use the [az functionapp config container show](/cli/azure/functionapp/config/container#az-functionapp-config-container-show) command to view information about the image used for deployment. You can also use the [az functionapp config container set](/cli/azure/functionapp/config/container#az-functionapp-config-container-set) command to deploy from a different image. NOTE: If you are using a custom container registry then the *deployment-container-image-name* parameter will refer to the registry URL.
# [Azure PowerShell](#tab/azure-powershell) ```azurepowershell
A function app on Azure manages the execution of your functions in your hosting
```azurecli az functionapp config appsettings set --name <APP_NAME> --resource-group AzureFunctionsContainers-rg --settings AzureWebJobsStorage=<CONNECTION_STRING> ```
- The [az functionapp config appsettings set](/cli/azure/functionapp/config/appsettings#az_functionapp_config_ppsettings_set) command creates the setting.
+ The [az functionapp config appsettings set](/cli/azure/functionapp/config/appsettings#az-functionapp-config-ppsettings-set) command creates the setting.
# [Azure PowerShell](#tab/azure-powershell) ```azurepowershell
You can enable Azure Functions to automatically update your deployment of an ima
az functionapp deployment container config --enable-cd --query CI_CD_URL --output tsv --name <APP_NAME> --resource-group AzureFunctionsContainers-rg ```
- The [az functionapp deployment container config](/cli/azure/functionapp/deployment/container#az_functionapp_deployment_container_config) command enables continuous deployment and returns the deployment webhook URL. You can retrieve this URL at any later time by using the [az functionapp deployment container show-cd-url](/cli/azure/functionapp/deployment/container#az_functionapp_deployment_container_show_cd_url) command.
+ The [az functionapp deployment container config](/cli/azure/functionapp/deployment/container#az-functionapp-deployment-container-config) command enables continuous deployment and returns the deployment webhook URL. You can retrieve this URL at any later time by using the [az functionapp deployment container show-cd-url](/cli/azure/functionapp/deployment/container#az-functionapp-deployment-container-show-cd-url) command.
# [Azure PowerShell](#tab/azure-powershell) ```azurepowershell
azure-functions Functions Identity Access Azure Sql With Managed Identity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-identity-access-azure-sql-with-managed-identity.md
Enabling Azure AD authentication can be completed via the Azure portal, PowerShe
1. If your Azure AD tenant doesn't have a user yet, create one by following the steps at [Add or delete users using Azure Active Directory](../active-directory/fundamentals/add-users-azure-active-directory.md).
-1. Find the object ID of the Azure AD user using the [`az ad user list`](/cli/azure/ad/user#az_ad_user_list) and replace *\<user-principal-name>*. The result is saved to a variable.
+1. Find the object ID of the Azure AD user using the [`az ad user list`](/cli/azure/ad/user#az-ad-user-list) and replace *\<user-principal-name>*. The result is saved to a variable.
```azurecli-interactive azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].objectId --output tsv)
Enabling Azure AD authentication can be completed via the Azure portal, PowerShe
> To see the list of all user principal names in Azure AD, run `az ad user list --query [].userPrincipalName`. >
-1. Add this Azure AD user as an Active Directory admin using [`az sql server ad-admin create`](/cli/azure/sql/server/ad-admin#az_sql_server_ad_admin_create) command in the Cloud Shell. In the following command, replace *\<server-name>* with the server name (without the `.database.windows.net` suffix).
+1. Add this Azure AD user as an Active Directory admin using [`az sql server ad-admin create`](/cli/azure/sql/server/ad-admin#az-sql-server-ad-admin-create) command in the Cloud Shell. In the following command, replace *\<server-name>* with the server name (without the `.database.windows.net` suffix).
```azurecli-interactive az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id $azureaduser
azure-functions Functions Reference Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-reference-python.md
Azure Functions supports the following Python versions:
<sup>*</sup>Official CPython distributions
-To request a specific Python version when you create your function app in Azure, use the `--runtime-version` option of the [`az functionapp create`](/cli/azure/functionapp#az_functionapp_create) command. The Functions runtime version is set by the `--functions-version` option. The Python version is set when the function app is created and can't be changed.
+To request a specific Python version when you create your function app in Azure, use the `--runtime-version` option of the [`az functionapp create`](/cli/azure/functionapp#az-functionapp-create) command. The Functions runtime version is set by the `--functions-version` option. The Python version is set when the function app is created and can't be changed.
When running locally, the runtime uses the available Python version.
azure-functions Functions Cli Create App Service Plan https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/scripts/functions-cli-create-app-service-plan.md
Each command in the table links to command specific documentation. This script u
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Creates an Azure Storage account. |
-| [az functionapp plan create](/cli/azure/functionapp/plan#az_functionapp_plan_create) | Creates a Premium plan. |
-| [az functionapp create](/cli/azure/functionapp#az_functionapp_create) | Creates a function app in the App Service plan. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Creates an Azure Storage account. |
+| [az functionapp plan create](/cli/azure/functionapp/plan#az-functionapp-plan-create) | Creates a Premium plan. |
+| [az functionapp create](/cli/azure/functionapp#az-functionapp-create) | Creates a function app in the App Service plan. |
## Next steps
azure-functions Functions Cli Create Function App Connect To Cosmos Db https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/scripts/functions-cli-create-function-app-connect-to-cosmos-db.md
This script uses the following commands: Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Create a resource group with location |
-| [az storage accounts create](/cli/azure/storage/account#az_storage_account_create) | Create a storage account |
-| [az functionapp create](/cli/azure/functionapp#az_functionapp_create) | Creates a function app in the serverless [Consumption plan](../consumption-plan.md). |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Create an Azure Cosmos DB database. |
-| [az cosmosdb show](/cli/azure/cosmosdb#az_cosmosdb_show)| Gets the database account connection. |
-| [az cosmosdb list-keys](/cli/azure/cosmosdb#az_cosmosdb_list_keys)| Gets the keys for the database. |
-| [az functionapp config appsettings set](/cli/azure/functionapp/config/appsettings#az_functionapp_config_appsettings_set) | Sets the connection string as an app setting in the function app. |
+| [az group create](/cli/azure/group#az-group-create) | Create a resource group with location |
+| [az storage accounts create](/cli/azure/storage/account#az-storage-account-create) | Create a storage account |
+| [az functionapp create](/cli/azure/functionapp#az-functionapp-create) | Creates a function app in the serverless [Consumption plan](../consumption-plan.md). |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Create an Azure Cosmos DB database. |
+| [az cosmosdb show](/cli/azure/cosmosdb#az-cosmosdb-show)| Gets the database account connection. |
+| [az cosmosdb list-keys](/cli/azure/cosmosdb#az-cosmosdb-list-keys)| Gets the keys for the database. |
+| [az functionapp config appsettings set](/cli/azure/functionapp/config/appsettings#az-functionapp-config-appsettings-set) | Sets the connection string as an app setting in the function app. |
## Next steps
azure-functions Functions Cli Create Function App Connect To Storage Account https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/scripts/functions-cli-create-function-app-connect-to-storage-account.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Create a resource group with location. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Create a storage account. |
-| [az functionapp create](/cli/azure/functionapp#az_functionapp_create) | Creates a function app in the serverless [Consumption plan](../consumption-plan.md). |
-| [az storage account show-connection-string](/cli/azure/storage/account#az_storage_account_show_connection_string) | Gets the connection string for the account. |
-| [az functionapp config appsettings set](/cli/azure/functionapp/config/appsettings#az_functionapp_config_appsettings_set) | Sets the connection string as an app setting in the function app. |
+| [az group create](/cli/azure/group#az-group-create) | Create a resource group with location. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Create a storage account. |
+| [az functionapp create](/cli/azure/functionapp#az-functionapp-create) | Creates a function app in the serverless [Consumption plan](../consumption-plan.md). |
+| [az storage account show-connection-string](/cli/azure/storage/account#az-storage-account-show-connection-string) | Gets the connection string for the account. |
+| [az functionapp config appsettings set](/cli/azure/functionapp/config/appsettings#az-functionapp-config-appsettings-set) | Sets the connection string as an app setting in the function app. |
## Next steps
azure-functions Functions Cli Create Function App Github Continuous https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/scripts/functions-cli-create-function-app-github-continuous.md
Each command in the table links to command specific documentation. This script u
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Creates the storage account required by the function app. |
-| [az functionapp create](/cli/azure/functionapp#az_functionapp_create) | Creates a function app in the serverless [Consumption plan](../consumption-plan.md) and associates it with a Git or Mercurial repository. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Creates the storage account required by the function app. |
+| [az functionapp create](/cli/azure/functionapp#az-functionapp-create) | Creates a function app in the serverless [Consumption plan](../consumption-plan.md) and associates it with a Git or Mercurial repository. |
## Next steps
azure-functions Functions Cli Create Function App Vsts Continuous https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/scripts/functions-cli-create-function-app-vsts-continuous.md
This script uses the following commands to create a resource group, storage acco
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Creates the storage account required by the function app. |
-| [az functionapp create](/cli/azure/functionapp#az_functionapp_create) | Creates a function app in the serverless [Consumption plan](../consumption-plan.md). |
-| [az functionapp deployment source config](/cli/azure/functionapp/deployment/source#az_functionapp_deployment_source_config) | Associates a function app with a Git or Mercurial repository. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Creates the storage account required by the function app. |
+| [az functionapp create](/cli/azure/functionapp#az-functionapp-create) | Creates a function app in the serverless [Consumption plan](../consumption-plan.md). |
+| [az functionapp deployment source config](/cli/azure/functionapp/deployment/source#az-functionapp-deployment-source-config) | Associates a function app with a Git or Mercurial repository. |
## Next steps
azure-functions Functions Cli Create Premium Plan https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/scripts/functions-cli-create-premium-plan.md
Each command in the table links to command specific documentation. This script u
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Creates an Azure Storage account. |
-| [az functionapp plan create](/cli/azure/functionapp/plan#az_functionapp_plan_create) | Creates a Premium plan in a [specific SKU](../functions-premium-plan.md#available-instance-skus). |
-| [az functionapp create](/cli/azure/functionapp#az_functionapp_create) | Creates a function app in the App Service plan. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Creates an Azure Storage account. |
+| [az functionapp plan create](/cli/azure/functionapp/plan#az-functionapp-plan-create) | Creates a Premium plan in a [specific SKU](../functions-premium-plan.md#available-instance-skus). |
+| [az functionapp create](/cli/azure/functionapp#az-functionapp-create) | Creates a function app in the App Service plan. |
## Next steps
azure-functions Functions Cli Create Serverless Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/scripts/functions-cli-create-serverless-python.md
Each command in the table links to command specific documentation. This script u
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Creates an Azure Storage account. |
-| [az functionapp create](/cli/azure/functionapp#az_functionapp_create) | Creates a function app. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Creates an Azure Storage account. |
+| [az functionapp create](/cli/azure/functionapp#az-functionapp-create) | Creates a function app. |
## Next steps
azure-functions Functions Cli Create Serverless https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/scripts/functions-cli-create-serverless.md
Each command in the table links to command specific documentation. This script u
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Creates an Azure Storage account. |
-| [az functionapp create](/cli/azure/functionapp#az_functionapp_create) | Creates a function app. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Creates an Azure Storage account. |
+| [az functionapp create](/cli/azure/functionapp#az-functionapp-create) | Creates a function app. |
## Next steps
azure-functions Functions Cli Mount Files Storage Linux https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/scripts/functions-cli-mount-files-storage-linux.md
Each command in the table links to command specific documentation. This script u
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Creates an Azure Storage account. |
-| [az functionapp create](/cli/azure/functionapp#az_functionapp_create) | Creates a function app. |
-| [az storage share create](/cli/azure/storage/share#az_storage_share_create) | Creates an Azure Files share in storage account. |
-| [az storage directory create](/cli/azure/storage/directory#az_storage_directory_create) | Creates a directory in the share. |
-| [az webapp config storage-account add](/cli/azure/webapp/config/storage-account#az_webapp_config_storage_account_add) | Mounts the share to the function app. |
-| [az webapp config storage-account list](/cli/azure/webapp/config/storage-account#az_webapp_config_storage_account_list) | Shows file shares mounted to the function app. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Creates an Azure Storage account. |
+| [az functionapp create](/cli/azure/functionapp#az-functionapp-create) | Creates a function app. |
+| [az storage share create](/cli/azure/storage/share#az-storage-share-create) | Creates an Azure Files share in storage account. |
+| [az storage directory create](/cli/azure/storage/directory#az-storage-directory-create) | Creates a directory in the share. |
+| [az webapp config storage-account add](/cli/azure/webapp/config/storage-account#az-webapp-config-storage-account-add) | Mounts the share to the function app. |
+| [az webapp config storage-account list](/cli/azure/webapp/config/storage-account#az-webapp-config-storage-account-list) | Shows file shares mounted to the function app. |
## Next steps
azure-government Compare Azure Government Global Azure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-government/compare-azure-government-global-azure.md
Azure Government services operate the same way as the corresponding services in
You can use AzureCLI or PowerShell to obtain Azure Government endpoints for services you provisioned: -- Use **Azure CLI** to run the [az cloud show](/cli/azure/cloud#az_cloud_show) command and provide `AzureUSGovernment` as the name of the target cloud environment. For example,
+- Use **Azure CLI** to run the [az cloud show](/cli/azure/cloud#az-cloud-show) command and provide `AzureUSGovernment` as the name of the target cloud environment. For example,
```azurecli az cloud show --name AzureUSGovernment
azure-government Documentation Government Csp List https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-government/documentation-government-csp-list.md
Below you can find a list of all the authorized Cloud Solution Providers (CSPs),
|[DLT Solutions](https://www.dlt.com)| |[Ingram Micro Inc.](https://usa.ingrammicro.com/)| |[Insight Public Sector Inc](https://www.ips.insight.com/en_US/public-sector.html)|
+|[Pax8](https://www.pax8.com/en-us/microsoft/)|
|[Synnex](https://www.synnexcorp.com)| |[Tech Data Corporation](https://www.techdata.com/)| |[Tech Data Government Solutions, LLC](https://gov.as.techdata.com/en-us/Pages/default.aspx)|
azure-maps Render Coverage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/render-coverage.md
Title: Render coverage | Microsoft Azure Maps
-description: Learn whether Azure Maps renders various regions with detailed or simplified data. See the level it uses for raster-tile and vector-tile maps in those regions.
+ Title: Render coverage
+
+description: Render coverage tables list the countries that support Azure Maps road tiles.
Previously updated : 01/14/2022 Last updated : 03/23/2022 - # Azure Maps render coverage
-Azure Maps uses both raster tiles and vector tiles to create maps. At the lowest resolution, the entire world fits in a single tile. At the highest resolution, a single tile represents 38 square meters. You'll see more details about continents, regions, cities, and individual streets as you zoom in the map. For more information about tiles, see [Zoom levels and tile grid](zoom-levels-and-tile-grid.md).
-
-However, Maps doesn't have the same level of information and accuracy for all regions. The following tables detail the level of information you can render for each region.
+The render coverage tables below list the countries that support Azure Maps road tiles. Both raster and vector tiles are supported. At the lowest resolution, the entire world fits in a single tile. At the highest resolution, a single tile represents 38 square meters. You'll see more details about continents, regions, cities, and individual streets as you zoom in the map. For more information about tiles, see [Zoom levels and tile grid](zoom-levels-and-tile-grid.md).
### Legend
However, Maps doesn't have the same level of information and accuracy for all re
|--|-| | Γ£ô | Country is provided with detailed data. | | Γùæ | Country is provided with simplified data. |
-| Country is missing | Country data is not provided. |
+| Country is missing | Country data isn't provided. |
## Americas
However, Maps doesn't have the same level of information and accuracy for all re
| Zambia | Γ£ô | | Zimbabwe | Γ£ô |
-## Additional information
+## Next steps
+
+> [!div class="nextstepaction"]
+> [Zoom levels and tile grid](zoom-levels-and-tile-grid.md)
-- See [Zoom levels and tile grid](zoom-levels-and-tile-grid.md) for more information about Azure Maps rendering.
+> [!div class="nextstepaction"]
+> [Get map tiles](/rest/api/maps/render/getmaptile)
-- [Azure Maps routing service](routing-coverage.md).
+> [!div class="nextstepaction"]
+> [Azure Maps routing coverage](routing-coverage.md)
azure-maps Traffic Coverage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/traffic-coverage.md
Title: Traffic coverage | Microsoft Azure Maps
description: Learn about traffic coverage in Azure Maps. See whether information on traffic flow and incidents is available in various regions throughout the world. Previously updated : 01/13/2022 Last updated : 03/24/2022
# Azure Maps traffic coverage
-Azure Maps provides rich traffic information in the form of traffic **flow** and **incidents**. This data can be visualized on maps or used to generate smarter routes that factor in real driving conditions.
+The Azure Maps [Traffic API](/rest/api/maps/traffic) is a suite of web services designed for developers to create web and mobile applications around real-time traffic. This data can be visualized on maps or used to generate smarter routes that factor in current driving conditions.
The following tables provide information about what kind of traffic information you can request from each country or region. If a market is missing in the following tables, it isn't currently supported.
+- **Incidents**: Provides an accurate view about traffic jams and incidents around a road network.
+- **Flow**: Provides real time observed speeds and travel times for all key roads in a network.
+ ## Americas | Country/Region | Incidents | Flow |
The following tables provide information about what kind of traffic information
| South Africa | Γ£ô | Γ£ô | | United Arab Emirates | Γ£ô | Γ£ô |
-## Additional information
+## Next steps
+
+See the following articles in the REST API documentation for detailed information.
+
+> [!div class="nextstepaction"]
+> [Get Traffic Flow Segment](/rest/api/maps/traffic/get-traffic-flow-segment)
+
+> [!div class="nextstepaction"]
+> [Get Traffic Flow Tile](/rest/api/maps/traffic/get-traffic-flow-tile)
+
+> [!div class="nextstepaction"]
+> [Get Traffic Incident Detail](/rest/api/maps/traffic/get-traffic-incident-detail)
-Use the [Traffic](/rest/api/maps/traffic) REST API to incorporate Azure Maps traffic data into your mapping applications.
+> [!div class="nextstepaction"]
+> [Get Traffic Incident Tile](/rest/api/maps/traffic/get-traffic-incident-tile)
azure-monitor Diagnostics Extension Windows Install https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/agents/diagnostics-extension-windows-install.md
You can install and configure the diagnostics extension on an individual virtual
See [Use monitoring and diagnostics with a Windows VM and Azure Resource Manager templates](../../virtual-machines/extensions/diagnostics-template.md) on deploying the diagnostics extension with Azure Resource Manager templates. ## Azure CLI deployment
-The Azure CLI can be used to deploy the Azure Diagnostics extension to an existing virtual machine using [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) as in the following example.
+The Azure CLI can be used to deploy the Azure Diagnostics extension to an existing virtual machine using [az vm extension set](/cli/azure/vm/extension#az-vm-extension-set) as in the following example.
```azurecli az vm extension set \
azure-monitor Alerts Resource Move https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/alerts/alerts-resource-move.md
Navigate to Alerts > Alert processing rules (preview) > filter by the containing
### Change the scope of a rule using Azure CLI
-1. Get the existing rule ([metric alerts](/cli/azure/monitor/metrics/alert#az_monitor_metrics_alert_show), [activity log alerts](/cli/azure/monitor/activity-log/alert#az_monitor_activity_log-alert_list)).
-2. Update the rule scope directly ([metric alerts](/cli/azure/monitor/metrics/alert#az_monitor_metrics_alert_update), [activity log alerts](/cli/azure/monitor/activity-log/alert/scope))
+1. Get the existing rule ([metric alerts](/cli/azure/monitor/metrics/alert#az-monitor-metrics-alert-show), [activity log alerts](/cli/azure/monitor/activity-log/alert#az-monitor-activity-log-alert-list)).
+2. Update the rule scope directly ([metric alerts](/cli/azure/monitor/metrics/alert#az-monitor-metrics-alert-update), [activity log alerts](/cli/azure/monitor/activity-log/alert/scope))
3. If needed, split into two rules (relevant for some cases of metric alerts, as noted above). ## Next steps
azure-monitor Alerts Troubleshoot Metric https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/alerts/alerts-troubleshoot-metric.md
To check the current usage of metric alert rules, follow the steps below.
- PowerShell - [Get-AzMetricAlertRuleV2](/powershell/module/az.monitor/get-azmetricalertrulev2) - REST API - [List by subscription](/rest/api/monitor/metricalerts/listbysubscription)-- Azure CLI - [az monitor metrics alert list](/cli/azure/monitor/metrics/alert#az_monitor_metrics_alert_list)
+- Azure CLI - [az monitor metrics alert list](/cli/azure/monitor/metrics/alert#az-monitor-metrics-alert-list)
## Managing alert rules using Resource Manager templates, REST API, Azure PowerShell, or the Azure CLI
azure-monitor Asp Net https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/asp-net.md
This section will guide you through automatically adding Application Insights to
3. Before the closing `</ApplicationInsights>` tag, add a line that contains the connection string for your Application Insights resource. Find your connection string on the overview pane of the newly created Application Insights resource. ```xml
- <InstrumentationKey>Copy connection string from Application Insights Resource Overview</InstrumentationKey>
+ <ConnectionString>Copy connection string from Application Insights Resource Overview</ConnectionString>
``` 4. Select **Project** > **Manage NuGet Packages** > **Updates**. Then update each `Microsoft.ApplicationInsights` NuGet package to the latest stable release.
This section will guide you through manually adding Application Insights to a te
Learn more about Application Insights configuration with ApplicationInsights.config here: http://go.microsoft.com/fwlink/?LinkID=513840 -->
- <InstrumentationKey>Copy connection string from Application Insights Resource Overview</InstrumentationKey>
+ <ConnectionString>Copy connection string from Application Insights Resource Overview</ConnectionString>
</ApplicationInsights> ``` 4. Before the closing `</ApplicationInsights>` tag, add the connection string for your Application Insights resource. You can find your connection string on the overview pane of the newly created Application Insights resource. ```xml
- <InstrumentationKey>Copy connection string from Application Insights Resource Overview</InstrumentationKey>
+ <ConnectionString>Copy connection string from Application Insights Resource Overview</ConnectionString>
``` 5. At the same level of your project as the *ApplicationInsights.config* file, create a folder called *ErrorHandler* with a new C# file called *AiHandleErrorAttribute.cs*. The contents of the file will look like this:
azure-monitor Ip Collection https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/ip-collection.md
By default, IP addresses are temporarily collected but not stored in Application
When telemetry is sent to Azure, Application Insights uses the IP address to do a geolocation lookup by using [GeoLite2 from MaxMind](https://dev.maxmind.com/geoip/geoip2/geolite2/). Application Insights uses the results of this lookup to populate the fields `client_City`, `client_StateOrProvince`, and `client_CountryOrRegion`. The address is then discarded, and `0.0.0.0` is written to the `client_IP` field.
+> [!NOTE]
+> Application Insights uses an older version of the GeoLite2 database. If you experience accuracy issues with IP to geolocation mappings, then as a workaround you can disable IP masking and utilize another geomapping service to convert the client_IP field of the underlying telemetry to a more accurate geolocation. We are currently working on an update to improve the geolocation accuracy.
+ The telemetry types are: * Browser telemetry: Application Insights collects the sender's IP address. The ingestion endpoint calculates the IP address.
azure-monitor Troubleshoot Portal Connectivity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/troubleshoot-portal-connectivity.md
++
+ Title: Application Insights portal connectivity troubleshooting
+description: Troubleshooting guide for Application Insights portal connectivity issues
++ Last updated : 03/09/2022++++
+# "Error retrieving data" message on Application Insights portal
+
+This is a troubleshooting guide for the Application Insights portal when encountering connectivity errors similar to `Error retrieving data` or `Missing localization resource`.
+
+![image Portal connectivity error](./media/troubleshoot-portal-connectivity/troubleshoot-portal-connectivity.png)
+
+The source of the issue is likely third-party browser plugins that interfere with the portal's connectivity.
+
+To confirm that this is the source of the issue and to identify which plugin is interfering:
+
+- Open the portal in an InPrivate or Incognito window and verify the site functions correctly.
+
+- Attempt disabling plugins to identify the one that is causing the connectivity issue.
azure-monitor Azure Cli Metrics Alert Sample https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/azure-cli-metrics-alert-sample.md
condition=$(az monitor metrics alert condition create --aggregation Average \
--dimension $dim01 --output tsv) ```
-To see a list of the possible metrics, run the [az monitor metrics list-definitions](/cli/azure/monitor/metrics#az_monitor_metrics_list_definitions) command. The `--output` parameter displays the values in a readable format.
+To see a list of the possible metrics, run the [az monitor metrics list-definitions](/cli/azure/monitor/metrics#az-monitor-metrics-list-definitions) command. The `--output` parameter displays the values in a readable format.
```azurecli
az monitor metrics alert delete --name alert-02
This article uses the following Azure CLI commands: -- [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create)-- [az appservice plan show](/cli/azure/appservice/plan#az_appservice_plan_show)
+- [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create)
+- [az appservice plan show](/cli/azure/appservice/plan#az-appservice-plan-show)
- [az group create](/cli/azure/group#az-group-create) - [az group delete](/cli/azure/group#az-group-delete)-- [az monitor action-group create](/cli/azure/monitor/action-group#az_monitor_action_group_create)
+- [az monitor action-group create](/cli/azure/monitor/action-group#az-monitor-action-group-create)
- [az monitor metrics alert condition create](/cli/azure/monitor/metrics/alert#az-monitor-metrics-alert-condition-create) - [az monitor metrics alert create](/cli/azure/monitor/metrics/alert#az-monitor-metrics-alert-create) - [az monitor metrics alert delete](/cli/azure/monitor/metrics/alert#az-monitor-metrics-alert-delete) - [az monitor metrics alert dimension create](/cli/azure/monitor/metrics/alert#az-monitor-metrics-alert-dimension-create)-- [az monitor metrics list-definitions](/cli/azure/monitor/metrics#az_monitor_metrics_list_definitions)-- [az vm show](/cli/azure/vm#az_vm_show)
+- [az monitor metrics list-definitions](/cli/azure/monitor/metrics#az-monitor-metrics-list-definitions)
+- [az vm show](/cli/azure/vm#az-vm-show)
## Next steps
azure-monitor Container Insights Azure Redhat Setup https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/containers/container-insights-azure-redhat-setup.md
Container insights provides rich monitoring experience for the Azure Kubernetes
Container insights can be enabled for new, or one or more existing deployments of Azure Red Hat OpenShift using the following supported methods: - For an existing cluster from the Azure portal or using Azure Resource Manager template.-- For a new cluster using Azure Resource Manager template, or while creating a new cluster using the [Azure CLI](/cli/azure/openshift#az_openshift_create).
+- For a new cluster using Azure Resource Manager template, or while creating a new cluster using the [Azure CLI](/cli/azure/openshift#az-openshift-create).
## Supported and unsupported features
azure-monitor Container Insights Azure Redhat4 Setup https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/containers/container-insights-azure-redhat4-setup.md
Container insights provides a rich monitoring experience for Azure Kubernetes Se
You can enable Container insights for one or more existing deployments of Azure Red Hat OpenShift v4.x by using the supported methods described in this article.
-For an existing cluster, run this [Bash script in the Azure CLI](/cli/azure/openshift#az_openshift_create&preserve-view=true).
+For an existing cluster, run this [Bash script in the Azure CLI](/cli/azure/openshift#az-openshift-create&preserve-view=true).
## Supported and unsupported features
azure-monitor Container Insights Hybrid Setup https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/containers/container-insights-hybrid-setup.md
To first identify the full resource ID of your Log Analytics workspace required
} ```
-7. Edit the values for **workspaceResourceId** using the value you copied in step 3, and for **workspaceRegion** copy the **Region** value after running the Azure CLI command [az monitor log-analytics workspace show](/cli/azure/monitor/log-analytics/workspace#az_monitor-log-analytics-workspace-list&preserve-view=true).
+7. Edit the values for **workspaceResourceId** using the value you copied in step 3, and for **workspaceRegion** copy the **Region** value after running the Azure CLI command [az monitor log-analytics workspace show](/cli/azure/monitor/log-analytics/workspace#az-monitor-log-analytics-workspace-list&preserve-view=true).
8. Save this file as containerSolutionParams.json to a local folder.
azure-monitor Container Insights Log Alerts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/containers/container-insights-log-alerts.md
To alert for high CPU or memory utilization, or low free disk space on cluster n
If you're not familiar with Azure Monitor alerts, see [Overview of alerts in Microsoft Azure](../alerts/alerts-overview.md) before you start. To learn more about alerts that use log queries, see [Log alerts in Azure Monitor](../alerts/alerts-unified-log.md). For more about metric alerts, see [Metric alerts in Azure Monitor](../alerts/alerts-metric-overview.md). ## Log query measurements
-Log query alerts can perform two different measurements of the result of a log query, each of which support distinct scenarios for monitoring virtual machines.
+[Log alerts](../alerts/alerts-unified-log.md) can measure two different things, which can be used to monitor virtual machines in different scenarios:
-[Metric measurement](../alerts/alerts-unified-log.md#calculation-of-a-value) create a separate alert for each record in the query results that has a numeric value that exceeds a threshold defined in the alert rule. These are ideal for numeric data such as CPU.
+- [Result count](../alerts/alerts-unified-log.md#result-count): Counts the number of rows returned by the query, and can be used to work with events such as Windows event logs, syslog, application exceptions.
+- [Calculation of a value](../alerts/alerts-unified-log.md#calculation-of-a-value): Makes a calculation based on a numeric column, and can be used to include any number of resources. For example, CPU percentage.
+### Targeting resources and dimensions
-[Number of results](../alerts/alerts-unified-log.md#result-count) create a single alert when a query returns at least a specified number of records. These are ideal for non-numeric data such or for analyzing performance trends across multiple computers. You may also choose this strategy if you want to minimize your number of alerts or possibly create an alert only when multiple components have the same error condition.
+You can monitor multiple instancesΓÇÖ values with one rule using dimensions. For example, you would use dimensions if you want to monitor the CPU usage on multiple instances running your web site or app, and create an alert for CPU usage of over 80%.
-> [!NOTE]
-> Resource-centric log alert rules, currently in public preview, will simplify log query alerts and replace the functionality currently provided by metric measurement queries. You can use the AKS cluster as a target for the rule which will better identify it as the affected resource. When resource-center log query alerts become generally available, the guidance in this scenario will be updated.
+To create resource-centric alerts at scale for a subscription or resource group, you can **Split by dimensions**. When you want to monitor the same condition on multiple Azure resources, splitting by dimensions splits the alerts into separate alerts by grouping unique combinations using numerical or string columns. Splitting on Azure resource ID column makes the specified resource into the alert target.
+You may also decide not to split when you want a condition on multiple resources in the scope. For example, if you want to create an alert if at least five machines in the resource group scope have CPU usage over 80%.
++
+You might want to see a list of the alerts by affected computer. You can use a custom workbook that uses a custom [Resource Graph](../../governance/resource-graph/overview.md) to provide this view. Use the following query to display alerts, and use the data source **Azure Resource Graph** in the workbook.
## Create a log query alert rule
-[Comparison of log query alert measures](../vm/monitor-virtual-machine-alerts.md#example-log-query-alert) provides a complete walkthrough of log query alert rules for each type of measurement, including a comparison of the log queries supporting each. You can use these same processes to create alert rules for AKS clusters using queries similar to the ones in this article.
+[This example of a log query alert](../vm/monitor-virtual-machine-alerts.md#example-log-query-alert) provides a complete walkthrough of creating a log query alert rule. You can use these same processes to create alert rules for AKS clusters using queries similar to the ones in this article.
## Resource utilization
KubePodInventory
>[!NOTE] >To alert on certain pod phases, such as *Pending*, *Failed*, or *Unknown*, modify the last line of the query. For example, to alert on *FailedCount* use: <br/>`| summarize AggregatedValue = avg(FailedCount) by bin(TimeGenerated, trendBinSize)`
-The following query returns cluster nodes disks which exceed 90% free space used. To get the cluster ID, first run the following query and copy the value from the `ClusterId` property:
+The following query returns cluster nodes disks that exceed 90% free space used. To get the cluster ID, first run the following query and copy the value from the `ClusterId` property:
```kusto InsightsMetrics
azure-monitor Container Insights Optout https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/containers/container-insights-optout.md
After you enable monitoring of your AKS cluster, you can stop monitoring the clu
## Azure CLI
-Use the [az aks disable-addons](/cli/azure/aks#az_aks_disable_addons) command to disable Container insights. The command removes the agent from the cluster nodes, it does not remove the solution or the data already collected and stored in your Azure Monitor resource.
+Use the [az aks disable-addons](/cli/azure/aks#az-aks-disable-addons) command to disable Container insights. The command removes the agent from the cluster nodes, it does not remove the solution or the data already collected and stored in your Azure Monitor resource.
```azurecli az aks disable-addons -a monitoring -n MyExistingManagedCluster -g MyExistingManagedClusterRG
azure-monitor Azure Cli Application Insights Component https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/insights/azure-cli-application-insights-component.md
The examples in this article do the following management tasks:
## Create a component
-If you don't already have a resource group and workspace, create them by using [az group create](/cli/azure/group#az_group_create) and [az monitor log-analytics workspace create](/cli/azure/monitor/log-analytics/workspace#az_monitor_log_analytics_workspace_create):
+If you don't already have a resource group and workspace, create them by using [az group create](/cli/azure/group#az-group-create) and [az monitor log-analytics workspace create](/cli/azure/monitor/log-analytics/workspace#az-monitor-log-analytics-workspace-create):
```azurecli az group create --name ContosoAppInsightRG --location eastus2
az monitor log-analytics workspace create --resource-group ContosoAppInsightRG \
--workspace-name AppInWorkspace ```
-To create a component, run the [az monitor app-insights component create](/cli/azure/monitor/app-insights/component#az_monitor_app_insights_component_create) command. The [az monitor app-insights component show](/cli/azure/monitor/app-insights/component#az_monitor_app_insights_component_show) command displays the component.
+To create a component, run the [az monitor app-insights component create](/cli/azure/monitor/app-insights/component#az-monitor-app-insights-component-create) command. The [az monitor app-insights component show](/cli/azure/monitor/app-insights/component#az-monitor-app-insights-component-show) command displays the component.
```azurecli az monitor app-insights component create --resource-group ContosoAppInsightRG \
az monitor app-insights component show --resource-group ContosoAppInsightRG --ap
## Connect a webapp
-This example connects your component to a webapp. You can create a webapp by using the [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create) and [az webapp create](/cli/azure/webapp#az_webapp_create) commands:
+This example connects your component to a webapp. You can create a webapp by using the [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create) and [az webapp create](/cli/azure/webapp#az-webapp-create) commands:
```azurecli az appservice plan create --resource-group ContosoAppInsightRG --name ContosoAppService
az webapp create --resource-group ContosoAppInsightRG --name ContosoApp \
--plan ContosoAppService --name ContosoApp8765 ```
-Run the [az monitor app-insights component connect-webapp](/cli/azure/monitor/app-insights/component#az_monitor_app_insights_component_connect_webapp) command to connect your component to the webapp:
+Run the [az monitor app-insights component connect-webapp](/cli/azure/monitor/app-insights/component#az-monitor-app-insights-component-connect-webapp) command to connect your component to the webapp:
```azurecli az monitor app-insights component connect-webapp --resource-group ContosoAppInsightRG \ --app ContosoApp --web-app ContosoApp8765 --enable-debugger false --enable-profiler false ```
-You can instead connect to an Azure function by using the [az monitor app-insights component connect-function](/cli/azure/monitor/app-insights/component#az_monitor_app_insights_component_connect_function) command.
+You can instead connect to an Azure function by using the [az monitor app-insights component connect-function](/cli/azure/monitor/app-insights/component#az-monitor-app-insights-component-connect-function) command.
## Link a component to storage
-You can link a component to a storage account. To create a storage account, use the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command:
+You can link a component to a storage account. To create a storage account, use the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command:
```azurecli az storage account create --resource-group ContosoAppInsightRG \ --name contosolinkedstorage --location eastus2 --sku Standard_LRS ```
-To link your component to the storage account, run the [az monitor app-insights component linked-storage link](/cli/azure/monitor/app-insights/component/linked-storage#az_monitor_app_insights_component_linked_storage_link) command. You can see the existing links by using the [az monitor app-insights component linked-storage show](/cli/azure/monitor/app-insights/component/linked-storage#az_monitor_app_insights_component_linked_storage_show) command:
+To link your component to the storage account, run the [az monitor app-insights component linked-storage link](/cli/azure/monitor/app-insights/component/linked-storage#az-monitor-app-insights-component-linked-storage-link) command. You can see the existing links by using the [az monitor app-insights component linked-storage show](/cli/azure/monitor/app-insights/component/linked-storage#az-monitor-app-insights-component-linked-storage-show) command:
```azurecli
az monitor app-insights component linked-storage show --resource-group ContosoAp
--app ContosoApp ```
-To unlink the storage, run the [az monitor app-insights component linked-storage unlink](/cli/azure/monitor/app-insights/component/linked-storage#az_monitor_app_insights_component_linked_storage_unlink) command:
+To unlink the storage, run the [az monitor app-insights component linked-storage unlink](/cli/azure/monitor/app-insights/component/linked-storage#az-monitor-app-insights-component-linked-storage-unlink) command:
```AzureCLI az monitor app-insights component linked-storage unlink \
Continuous export saves events from Application Insights portal in a storage con
> Continuous export is only supported for classic Application Insights resources. [Workspace-based Application Insights resources](../app/create-workspace-resource.md) must use [diagnostic settings](../app/create-workspace-resource.md#export-telemetry). >
-To create a storage container, run the [az storage container create](/cli/azure/storage/container#az_storage_container_create) command.
+To create a storage container, run the [az storage container create](/cli/azure/storage/container#az-storage-container-create) command.
```azurecli az storage container create --name contosostoragecontainer --account-name contosolinkedstorage \ --public-access blob ```
-You need access for the container to be write only. Run the [az storage container policy create](/cli/azure/storage/container/policy#az_storage_container_policy_create) cmdlet:
+You need access for the container to be write only. Run the [az storage container policy create](/cli/azure/storage/container/policy#az-storage-container-policy-create) cmdlet:
```azurecli az storage container policy create --container-name contosostoragecontainer \ --account-name contosolinkedstorage --name WAccessPolicy --permissions w ```
-Create an SAS key by using the [az storage container generate-sas](/cli/azure/storage/container#az_storage_container_generate_sas) command. Be sure to use the `--output tsv` parameter value to save the key without unwanted formatting like quotation marks. For more information, see [Use Azure CLI effectively](/cli/azure/use-cli-effectively).
+Create an SAS key by using the [az storage container generate-sas](/cli/azure/storage/container#az-storage-container-generate-sas) command. Be sure to use the `--output tsv` parameter value to save the key without unwanted formatting like quotation marks. For more information, see [Use Azure CLI effectively](/cli/azure/use-cli-effectively).
```azurecli containersas=$(az storage container generate-sas --name contosostoragecontainer \ --account-name contosolinkedstorage --permissions w --output tsv) ```
-To create a continuous export, run the [az monitor app-insights component continues-export create](/cli/azure/monitor/app-insights/component/continues-export#az_monitor_app_insights_component_continues_export_create) command:
+To create a continuous export, run the [az monitor app-insights component continues-export create](/cli/azure/monitor/app-insights/component/continues-export#az-monitor-app-insights-component-continues-export-create) command:
```azurecli az monitor app-insights component continues-export create --resource-group ContosoAppInsightRG \
az monitor app-insights component continues-export create --resource-group Conto
--dest-sas $containersas ```
-You can delete a configured continuous export by using the [az monitor app-insights component continues-export delete](/cli/azure/monitor/app-insights/component/continues-export#az_monitor_app_insights_component_continues_export_delete) command:
+You can delete a configured continuous export by using the [az monitor app-insights component continues-export delete](/cli/azure/monitor/app-insights/component/continues-export#az-monitor-app-insights-component-continues-export-delete) command:
```azurecli az monitor app-insights component continues-export list \
az monitor app-insights component continues-export delete \
## Clean up deployment
-If you created a resource group to test these commands, you can remove the resource group and all its contents by using the [az group delete](/cli/azure/group#az_group_delete) command:
+If you created a resource group to test these commands, you can remove the resource group and all its contents by using the [az group delete](/cli/azure/group#az-group-delete) command:
```azurecli az group delete --name ContosoAppInsightRG
az group delete --name ContosoAppInsightRG
## Azure CLI commands used in this article -- [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create)-- [az group create](/cli/azure/group#az_group_create)-- [az group delete](/cli/azure/group#az_group_delete)-- [az monitor app-insights component connect-webapp](/cli/azure/monitor/app-insights/component#az_monitor_app_insights_component_connect_webapp)-- [az monitor app-insights component continues-export create](/cli/azure/monitor/app-insights/component/continues-export#az_monitor_app_insights_component_continues_export_create)-- [az monitor app-insights component continues-export delete](/cli/azure/monitor/app-insights/component/continues-export#az_monitor_app_insights_component_continues_export_delete)-- [az monitor app-insights component continues-export list](/cli/azure/monitor/app-insights/component/continues-export#az_monitor_app_insights_component_continues_export_list)-- [az monitor app-insights component create](/cli/azure/monitor/app-insights/component#az_monitor_app_insights_component_create)-- [az monitor app-insights component linked-storage link](/cli/azure/monitor/app-insights/component/linked-storage#az_monitor_app_insights_component_linked_storage_link)-- [az monitor app-insights component linked-storage unlink](/cli/azure/monitor/app-insights/component/linked-storage#az_monitor_app_insights_component_linked_storage_unlink)-- [az monitor app-insights component show](/cli/azure/monitor/app-insights/component#az_monitor_app_insights_component_show)-- [az monitor log-analytics workspace create](/cli/azure/monitor/log-analytics/workspace#az_monitor_log_analytics_workspace_create)-- [az storage account create](/cli/azure/storage/account#az_storage_account_create)-- [az storage container create](/cli/azure/storage/container#az_storage_container_create)-- [az storage container generate-sas](/cli/azure/storage/container#az_storage_container_generate_sas)-- [az storage container policy create](/cli/azure/storage/container/policy#az_storage_container_policy_create)-- [az webapp create](/cli/azure/webapp#az_webapp_create)
+- [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create)
+- [az group create](/cli/azure/group#az-group-create)
+- [az group delete](/cli/azure/group#az-group-delete)
+- [az monitor app-insights component connect-webapp](/cli/azure/monitor/app-insights/component#az-monitor-app-insights-component-connect-webapp)
+- [az monitor app-insights component continues-export create](/cli/azure/monitor/app-insights/component/continues-export#az-monitor-app-insights-component-continues-export-create)
+- [az monitor app-insights component continues-export delete](/cli/azure/monitor/app-insights/component/continues-export#az-monitor-app-insights-component-continues-export-delete)
+- [az monitor app-insights component continues-export list](/cli/azure/monitor/app-insights/component/continues-export#az-monitor-app-insights-component-continues-export-list)
+- [az monitor app-insights component create](/cli/azure/monitor/app-insights/component#az-monitor-app-insights-component-create)
+- [az monitor app-insights component linked-storage link](/cli/azure/monitor/app-insights/component/linked-storage#az-monitor-app-insights-component-linked-storage-link)
+- [az monitor app-insights component linked-storage unlink](/cli/azure/monitor/app-insights/component/linked-storage#az-monitor-app-insights-component-linked-storage-unlink)
+- [az monitor app-insights component show](/cli/azure/monitor/app-insights/component#az-monitor-app-insights-component-show)
+- [az monitor log-analytics workspace create](/cli/azure/monitor/log-analytics/workspace#az-monitor-log-analytics-workspace-create)
+- [az storage account create](/cli/azure/storage/account#az-storage-account-create)
+- [az storage container create](/cli/azure/storage/container#az-storage-container-create)
+- [az storage container generate-sas](/cli/azure/storage/container#az-storage-container-generate-sas)
+- [az storage container policy create](/cli/azure/storage/container/policy#az-storage-container-policy-create)
+- [az webapp create](/cli/azure/webapp#az-webapp-create)
## Next steps
azure-monitor Azure Cli Log Analytics Workspace Sample https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/logs/azure-cli-log-analytics-workspace-sample.md
Use the Azure CLI commands described here to manage your log analytics workspace
## Create a workspace for Monitor Logs
-Run the [az group create](/cli/azure/group#az_group_create) command to create a resource group or use an existing resource group. To create a workspace, use the [az monitor log-analytics workspace create](/cli/azure/monitor/log-analytics/workspace#az_monitor_log_analytics_workspace_create) command.
+Run the [az group create](/cli/azure/group#az-group-create) command to create a resource group or use an existing resource group. To create a workspace, use the [az monitor log-analytics workspace create](/cli/azure/monitor/log-analytics/workspace#az-monitor-log-analytics-workspace-create) command.
```azurecli az group create --name ContosoRG --location eastus2
For more information about workspaces, see [Azure Monitor Logs overview](./data-
Each workspace contains tables with columns that have multiple rows of data. Each table is defined by a unique set of columns of data provided by the data source.
-To see the tables in your workspace, use the [az monitor log-analytics workspace table list](/cli/azure/monitor/log-analytics/workspace/table#az_monitor_log_analytics_workspace_table_list) command:
+To see the tables in your workspace, use the [az monitor log-analytics workspace table list](/cli/azure/monitor/log-analytics/workspace/table#az-monitor-log-analytics-workspace-table-list) command:
```azurecli az monitor log-analytics workspace table list --resource-group ContosoRG \
az monitor log-analytics workspace table list --resource-group ContosoRG \
The output value `table` presents the results in a more readable format. For more information, see [Output formatting](/cli/azure/use-cli-effectively#output-formatting).
-To change the retention time for a table, run the [az monitor log-analytics workspace table update](/cli/azure/monitor/log-analytics/workspace/table#az_monitor_log_analytics_workspace_table_update) command:
+To change the retention time for a table, run the [az monitor log-analytics workspace table update](/cli/azure/monitor/log-analytics/workspace/table#az-monitor-log-analytics-workspace-table-update) command:
```azurecli az monitor log-analytics workspace table update --resource-group ContosoRG \
az monitor log-analytics workspace table delete ΓÇôsubscription ContosoSID --res
## Export data from selected tables
-You can continuously export data from selected tables to an Azure storage account or Azure Event Hubs. Use the [az monitor log-analytics workspace data-export create](/cli/azure/monitor/log-analytics/workspace/data-export#az_monitor_log_analytics_workspace_data_export_create) command:
+You can continuously export data from selected tables to an Azure storage account or Azure Event Hubs. Use the [az monitor log-analytics workspace data-export create](/cli/azure/monitor/log-analytics/workspace/data-export#az-monitor-log-analytics-workspace-data-export-create) command:
```azurecli az monitor log-analytics workspace data-export create --resource-group ContosoRG \
az monitor log-analytics workspace data-export create --resource-group ContosoRG
--enable ```
-To see your data exports, run the [az monitor log-analytics workspace data-export list](/cli/azure/monitor/log-analytics/workspace/data-export#az_monitor_log_analytics_workspace_data_export_list) command.
+To see your data exports, run the [az monitor log-analytics workspace data-export list](/cli/azure/monitor/log-analytics/workspace/data-export#az-monitor-log-analytics-workspace-data-export-list) command.
```azurecli az monitor log-analytics workspace data-export list --resource-group ContosoRG \ --workspace-name ContosoWorkspace --output table ```
-To delete a data export, run the [az monitor log-analytics workspace data-export delete](/cli/azure/monitor/log-analytics/workspace/data-export#az_monitor_log_analytics_workspace_data_export_delete) command. The `--yes` parameter skips confirmation.
+To delete a data export, run the [az monitor log-analytics workspace data-export delete](/cli/azure/monitor/log-analytics/workspace/data-export#az-monitor-log-analytics-workspace-data-export-delete) command. The `--yes` parameter skips confirmation.
```azurecli az monitor log-analytics workspace data-export delete --resource-group ContosoRG \
For more information about data export, see [Log Analytics workspace data export
Linked services define a relation from the workspace to another Azure resource. Azure Monitor Logs and Azure resources use this connection in their operations. Example uses of linked services, including an automation account and a workspace association to customer-managed keys.
-To create a linked service, run the [az monitor log-analytics workspace linked-service create](/cli/azure/monitor/log-analytics/workspace/linked-service#az_monitor_log_analytics_workspace_linked_service_create) command:
+To create a linked service, run the [az monitor log-analytics workspace linked-service create](/cli/azure/monitor/log-analytics/workspace/linked-service#az-monitor-log-analytics-workspace-linked-service-create) command:
```azurecli az monitor log-analytics workspace linked-service create --resource-group ContosoRG \
az monitor log-analytics workspace linked-service list --resource-group ContosoR
--workspace-name ContosoWorkspace ```
-To remove a linked service relation, run the [az monitor log-analytics workspace linked-service delete](/cli/azure/monitor/log-analytics/workspace/linked-service#az_monitor_log_analytics_workspace_linked_service_delete) command:
+To remove a linked service relation, run the [az monitor log-analytics workspace linked-service delete](/cli/azure/monitor/log-analytics/workspace/linked-service#az-monitor-log-analytics-workspace-linked-service-delete) command:
```azurecli az monitor log-analytics workspace linked-service delete --resource-group ContosoRG \
For more information, see [az monitor log-analytics workspace linked-service](/c
If you provide and manage your own storage account for log analytics, you can manage it with these Azure CLI commands.
-To link your workspace to a storage account, run the [az monitor log-analytics workspace linked-storage create](/cli/azure/monitor/log-analytics/workspace/linked-storage#az_monitor_log_analytics_workspace_linked_storage_create) command:
+To link your workspace to a storage account, run the [az monitor log-analytics workspace linked-storage create](/cli/azure/monitor/log-analytics/workspace/linked-storage#az-monitor-log-analytics-workspace-linked-storage-create) command:
```azurecli az monitor log-analytics workspace linked-storage create --resource-group ContosoRG \
az monitor log-analytics workspace linked-storage list --resource-group ContosoR
--workspace-name ContosoWorkspace --output table ```
-To remove the link to a storage account, run the [az monitor log-analytics workspace linked-storage delete](/cli/azure/monitor/log-analytics/workspace/linked-storage#az_monitor_log_analytics_workspace_linked_storage_delete) command:
+To remove the link to a storage account, run the [az monitor log-analytics workspace linked-storage delete](/cli/azure/monitor/log-analytics/workspace/linked-storage#az-monitor-log-analytics-workspace-linked-storage-delete) command:
```azurecli az monitor log-analytics workspace linked-storage delete --resource-group ContosoRG \
For more information, see, [Using customer-managed storage accounts in Azure Mon
## Manage intelligence packs
-To see the available intelligence packs, run the [az monitor log-analytics workspace pack list](/cli/azure/monitor/log-analytics/workspace/pack#az_monitor_log_analytics_workspace_pack_list) command. The command also tells you whether the pack is enabled.
+To see the available intelligence packs, run the [az monitor log-analytics workspace pack list](/cli/azure/monitor/log-analytics/workspace/pack#az-monitor-log-analytics-workspace-pack-list) command. The command also tells you whether the pack is enabled.
```azurecli az monitor log-analytics workspace pack list --resource-group ContosoRG \ --workspace-name ContosoWorkspace ```
-Use the [az monitor log-analytics workspace pack enable](/cli/azure/monitor/log-analytics/workspace/pack#az_monitor_log_analytics_workspace_pack_enable) or [az monitor log-analytics workspace pack disable](/cli/azure/monitor/log-analytics/workspace/pack#az_monitor_log_analytics_workspace_pack_disable) commands:
+Use the [az monitor log-analytics workspace pack enable](/cli/azure/monitor/log-analytics/workspace/pack#az-monitor-log-analytics-workspace-pack-enable) or [az monitor log-analytics workspace pack disable](/cli/azure/monitor/log-analytics/workspace/pack#az-monitor-log-analytics-workspace-pack-disable) commands:
```azurecli az monitor log-analytics workspace pack enable --resource-group ContosoRG \
az monitor log-analytics workspace pack disable --resource-group ContosoRG \
## Manage saved searches
-To create a saved search, run the [az monitor log-analytics workspace saved-search](/cli/azure/monitor/log-analytics/workspace/saved-search#az_monitor_log_analytics_workspace_saved_search_create) command:
+To create a saved search, run the [az monitor log-analytics workspace saved-search](/cli/azure/monitor/log-analytics/workspace/saved-search#az-monitor-log-analytics-workspace-saved-search-create) command:
```azurecli az monitor log-analytics workspace saved-search create --resource-group ContosoRG \
az monitor log-analytics workspace saved-search create --resource-group ContosoR
--saved-query "AzureActivity | summarize count() by bin(TimeGenerated, 1h)" --fa Function01 --fp "a:string = value" ```
-View your saved search by using the [az monitor log-analytics workspace saved-search show](/cli/azure/monitor/log-analytics/workspace/saved-search#az_monitor_log_analytics_workspace_saved_search_show) command. See all saved searches by using [az monitor log-analytics workspace saved-search list](/cli/azure/monitor/log-analytics/workspace/saved-search#az_monitor_log_analytics_workspace_saved_search_list).
+View your saved search by using the [az monitor log-analytics workspace saved-search show](/cli/azure/monitor/log-analytics/workspace/saved-search#az-monitor-log-analytics-workspace-saved-search-show) command. See all saved searches by using [az monitor log-analytics workspace saved-search list](/cli/azure/monitor/log-analytics/workspace/saved-search#az-monitor-log-analytics-workspace-saved-search-list).
```azurecli az monitor log-analytics workspace saved-search show --resource-group ContosoRG \
az monitor log-analytics workspace saved-search list --resource-group ContosoRG
--workspace-name ContosoWorkspace ```
-To delete a saved search, run the [az monitor log-analytics workspace saved-search delete](/cli/azure/monitor/log-analytics/workspace/saved-search#az_monitor_log_analytics_workspace_saved_search_delete) command:
+To delete a saved search, run the [az monitor log-analytics workspace saved-search delete](/cli/azure/monitor/log-analytics/workspace/saved-search#az-monitor-log-analytics-workspace-saved-search-delete) command:
```azurecli az monitor log-analytics workspace saved-search delete --resource-group ContosoRG \
If you created a resource group to test these commands, you can remove the resou
az group delete --name ContosoRG ```
-If you want to remove a new workspace from an existing resource group, run the [az monitor log-analytics workspace delete](/cli/azure/monitor/log-analytics/workspace#az_monitor_log_analytics_workspace_delete) command:
+If you want to remove a new workspace from an existing resource group, run the [az monitor log-analytics workspace delete](/cli/azure/monitor/log-analytics/workspace#az-monitor-log-analytics-workspace-delete) command:
```azurecli az monitor log-analytics workspace delete --resource-group ContosoRG --workspace-name ContosoWorkspace --yes ```
-Log analytics workspaces have a soft delete option. You can recover a deleted workspace for two weeks after deletion. Run the [az monitor log-analytics workspace recover](/cli/azure/monitor/log-analytics/workspace#az_monitor_log_analytics_workspace_recover) command:
+Log analytics workspaces have a soft delete option. You can recover a deleted workspace for two weeks after deletion. Run the [az monitor log-analytics workspace recover](/cli/azure/monitor/log-analytics/workspace#az-monitor-log-analytics-workspace-recover) command:
```azurecli az monitor log-analytics workspace recover --resource-group ContosoRG
In the delete command, add the `--force` parameter to delete the workspace immed
## Azure CLI commands used in this article -- [az group create](/cli/azure/group#az_group_create)
+- [az group create](/cli/azure/group#az-group-create)
- [az group delete](/cli/azure/group#az-group-delete)-- [az monitor log-analytics workspace create](/cli/azure/monitor/log-analytics/workspace#az_monitor_log_analytics_workspace_create)-- [az monitor log-analytics workspace data-export create](/cli/azure/monitor/log-analytics/workspace/data-export#az_monitor_log_analytics_workspace_data_export_create)-- [az monitor log-analytics workspace data-export delete](/cli/azure/monitor/log-analytics/workspace/data-export#az_monitor_log_analytics_workspace_data_export_delete)-- [az monitor log-analytics workspace data-export list](/cli/azure/monitor/log-analytics/workspace/data-export#az_monitor_log_analytics_workspace_data_export_list)-- [az monitor log-analytics workspace delete](/cli/azure/monitor/log-analytics/workspace#az_monitor_log_analytics_workspace_delete)-- [az monitor log-analytics workspace linked-service create](/cli/azure/monitor/log-analytics/workspace/linked-service#az_monitor_log_analytics_workspace_linked_service_create)-- [az monitor log-analytics workspace linked-service delete](/cli/azure/monitor/log-analytics/workspace/linked-service#az_monitor_log_analytics_workspace_linked_service_delete)-- [az monitor log-analytics workspace linked-storage create](/cli/azure/monitor/log-analytics/workspace/linked-storage#az_monitor_log_analytics_workspace_linked_storage_create)-- [az monitor log-analytics workspace linked-storage delete](/cli/azure/monitor/log-analytics/workspace/linked-storage#az_monitor_log_analytics_workspace_linked_storage_delete)-- [az monitor log-analytics workspace pack disable](/cli/azure/monitor/log-analytics/workspace/pack#az_monitor_log_analytics_workspace_pack_disable)-- [az monitor log-analytics workspace pack enable](/cli/azure/monitor/log-analytics/workspace/pack#az_monitor_log_analytics_workspace_pack_enable)-- [az monitor log-analytics workspace pack list](/cli/azure/monitor/log-analytics/workspace/pack#az_monitor_log_analytics_workspace_pack_list)-- [az monitor log-analytics workspace recover](/cli/azure/monitor/log-analytics/workspace#az_monitor_log_analytics_workspace_recover)-- [az monitor log-analytics workspace saved-search delete](/cli/azure/monitor/log-analytics/workspace/saved-search#az_monitor_log_analytics_workspace_saved_search_delete)-- [az monitor log-analytics workspace saved-search list](/cli/azure/monitor/log-analytics/workspace/saved-search#az_monitor_log_analytics_workspace_saved_search_list)-- [az monitor log-analytics workspace saved-search show](/cli/azure/monitor/log-analytics/workspace/saved-search#az_monitor_log_analytics_workspace_saved_search_show)-- [az monitor log-analytics workspace saved-search](/cli/azure/monitor/log-analytics/workspace/saved-search#az_monitor_log_analytics_workspace_saved_search_create)-- [az monitor log-analytics workspace table list](/cli/azure/monitor/log-analytics/workspace/table#az_monitor_log_analytics_workspace_table_list)-- [az monitor log-analytics workspace table update](/cli/azure/monitor/log-analytics/workspace/table#az_monitor_log_analytics_workspace_table_update)
+- [az monitor log-analytics workspace create](/cli/azure/monitor/log-analytics/workspace#az-monitor-log-analytics-workspace-create)
+- [az monitor log-analytics workspace data-export create](/cli/azure/monitor/log-analytics/workspace/data-export#az-monitor-log-analytics-workspace-data-export-create)
+- [az monitor log-analytics workspace data-export delete](/cli/azure/monitor/log-analytics/workspace/data-export#az-monitor-log-analytics-workspace-data-export-delete)
+- [az monitor log-analytics workspace data-export list](/cli/azure/monitor/log-analytics/workspace/data-export#az-monitor-log-analytics-workspace-data-export-list)
+- [az monitor log-analytics workspace delete](/cli/azure/monitor/log-analytics/workspace#az-monitor-log-analytics-workspace-delete)
+- [az monitor log-analytics workspace linked-service create](/cli/azure/monitor/log-analytics/workspace/linked-service#az-monitor-log-analytics-workspace-linked-service-create)
+- [az monitor log-analytics workspace linked-service delete](/cli/azure/monitor/log-analytics/workspace/linked-service#az-monitor-log-analytics-workspace-linked-service-delete)
+- [az monitor log-analytics workspace linked-storage create](/cli/azure/monitor/log-analytics/workspace/linked-storage#az-monitor-log-analytics-workspace-linked-storage-create)
+- [az monitor log-analytics workspace linked-storage delete](/cli/azure/monitor/log-analytics/workspace/linked-storage#az-monitor-log-analytics-workspace-linked-storage-delete)
+- [az monitor log-analytics workspace pack disable](/cli/azure/monitor/log-analytics/workspace/pack#az-monitor-log-analytics-workspace-pack-disable)
+- [az monitor log-analytics workspace pack enable](/cli/azure/monitor/log-analytics/workspace/pack#az-monitor-log-analytics-workspace-pack-enable)
+- [az monitor log-analytics workspace pack list](/cli/azure/monitor/log-analytics/workspace/pack#az-monitor-log-analytics-workspace-pack-list)
+- [az monitor log-analytics workspace recover](/cli/azure/monitor/log-analytics/workspace#az-monitor-log-analytics-workspace-recover)
+- [az monitor log-analytics workspace saved-search delete](/cli/azure/monitor/log-analytics/workspace/saved-search#az-monitor-log-analytics-workspace-saved-search-delete)
+- [az monitor log-analytics workspace saved-search list](/cli/azure/monitor/log-analytics/workspace/saved-search#az-monitor-log-analytics-workspace-saved-search-list)
+- [az monitor log-analytics workspace saved-search show](/cli/azure/monitor/log-analytics/workspace/saved-search#az-monitor-log-analytics-workspace-saved-search-show)
+- [az monitor log-analytics workspace saved-search](/cli/azure/monitor/log-analytics/workspace/saved-search#az-monitor-log-analytics-workspace-saved-search-create)
+- [az monitor log-analytics workspace table list](/cli/azure/monitor/log-analytics/workspace/table#az-monitor-log-analytics-workspace-table-list)
+- [az monitor log-analytics workspace table update](/cli/azure/monitor/log-analytics/workspace/table#az-monitor-log-analytics-workspace-table-update)
## Next steps
azure-monitor Unify App Resource Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/logs/unify-app-resource-data.md
na Previously updated : 09/22/2020+ Last updated : 03/23/2022
azure-monitor Monitor Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/monitor-reference.md
The table below lists the available curated visualizations and more detailed inf
| [Azure Monitor SAP](../virtual-machines/workloads/sap/monitor-sap-on-azure.md) | GA | No | An Azure-native monitoring product for anyone running their SAP landscapes on Azure. It works with both SAP on Azure Virtual Machines and SAP on Azure Large Instances. Collects telemetry data from Azure infrastructure and databases in one central location and visually correlate the data for faster troubleshooting. You can monitor different components of an SAP landscape, such as Azure virtual machines (VMs), high-availability cluster, SAP HANA database, SAP NetWeaver, and so on, by adding the corresponding provider for that component. | | [Azure Stack HCI insights](/azure-stack/hci/manage/azure-stack-hci-insights) | Preview | [Yes](https://portal.azure.com/#blade/Microsoft_Azure_Monitoring/AzureMonitoringBrowseBlade/azureStackHCIInsights) | Azure Monitor Workbook based. Provides health, performance, and usage insights about registered Azure Stack HCI, version 21H2 clusters that are connected to Azure and are enrolled in monitoring. It stores its data in a Log Analytics workspace, which allows it to deliver powerful aggregation and filtering and analyze data trends over time. | | [Azure VM Insights](/azure/azure-monitor/insights/vminsights-overview) | GA | [Yes](https://portal.azure.com/#blade/Microsoft_Azure_Monitoring/AzureMonitoringBrowseBlade/virtualMachines) | Monitors your Azure virtual machines (VM) and virtual machine scale sets at scale. It analyzes the performance and health of your Windows and Linux VMs, and monitors their processes and dependencies on other resources and external processes. |
- | [Azure Virtual Desktop Insights](../virtual-desktop/azure-monitor.md) | GA | [Yes](https://portal.azure.com/#blade/Microsoft_Azure_WVD/WvdManagerMenuBlade/insights/menuId/insights) | Azure Virtual Desktop Insights is a dashboard built on Azure Monitor Workbooks that helps IT professionals understand their Windows Virtual Desktop environments. |
+ | [Azure Virtual Desktop Insights](../virtual-desktop/azure-monitor.md) | GA | [Yes](https://portal.azure.com/#blade/Microsoft_Azure_WVD/WvdManagerMenuBlade/insights/menuId/insights) | Azure Virtual Desktop Insights is a dashboard built on Azure Monitor Workbooks that helps IT professionals understand their Azure Virtual Desktop environments. |
## Product integrations
The following table lists Azure services and the data they collect into Azure Mo
| [Azure Database for PostgreSQL](../postgresql/index.yml) | Microsoft.DBforPostgreSQL/serverGroupsv2 | [**Yes**](./essentials/metrics-supported.md#microsoftdbforpostgresqlservergroupsv2) | [**Yes**](./essentials/resource-logs-categories.md#microsoftdbforpostgresqlservergroupsv2) | | | | [Azure Database for PostgreSQL](../postgresql/index.yml) | Microsoft.DBforPostgreSQL/servers | [**Yes**](./essentials/metrics-supported.md#microsoftdbforpostgresqlservers) | [**Yes**](./essentials/resource-logs-categories.md#microsoftdbforpostgresqlservers) | | | | [Azure Database for PostgreSQL](../postgresql/index.yml) | Microsoft.DBforPostgreSQL/serversv2 | [**Yes**](./essentials/metrics-supported.md#microsoftdbforpostgresqlserversv2) | [**Yes**](./essentials/resource-logs-categories.md#microsoftdbforpostgresqlserversv2) | | |
- | [Microsoft Windows Virtual Desktop](../virtual-desktop/index.yml) | Microsoft.DesktopVirtualization/applicationgroups | No | [**Yes**](./essentials/resource-logs-categories.md#microsoftdesktopvirtualizationapplicationgroups) | [Windows Virtual Desktop Insights](../virtual-desktop/azure-monitor.md) | |
- | [Microsoft Windows Virtual Desktop](../virtual-desktop/index.yml) | Microsoft.DesktopVirtualization/hostpools | No | [**Yes**](./essentials/resource-logs-categories.md#microsoftdesktopvirtualizationhostpools) | [Windows Virtual Desktop Insights](../virtual-desktop/azure-monitor.md) | |
- | [Microsoft Windows Virtual Desktop](../virtual-desktop/index.yml) | Microsoft.DesktopVirtualization/workspaces | No | [**Yes**](./essentials/resource-logs-categories.md#microsoftdesktopvirtualizationworkspaces) | | |
+ | [Microsoft Azure Virtual Desktop](../virtual-desktop/index.yml) | Microsoft.DesktopVirtualization/applicationgroups | No | [**Yes**](./essentials/resource-logs-categories.md#microsoftdesktopvirtualizationapplicationgroups) | [Azure Virtual Desktop Insights](../virtual-desktop/azure-monitor.md) | |
+ | [Microsoft Azure Virtual Desktop](../virtual-desktop/index.yml) | Microsoft.DesktopVirtualization/hostpools | No | [**Yes**](./essentials/resource-logs-categories.md#microsoftdesktopvirtualizationhostpools) | [Azure Virtual Desktop Insights](../virtual-desktop/azure-monitor.md) | |
+ | [Microsoft Azure Virtual Desktop](../virtual-desktop/index.yml) | Microsoft.DesktopVirtualization/workspaces | No | [**Yes**](./essentials/resource-logs-categories.md#microsoftdesktopvirtualizationworkspaces) | | |
| [Azure IoT Hub](../iot-hub/index.yml) | Microsoft.Devices/ElasticPools | [**Yes**](./essentials/metrics-supported.md#microsoftdeviceselasticpools) | No | | | | [Azure IoT Hub](../iot-hub/index.yml) | Microsoft.Devices/ElasticPools/IotHubTenants | [**Yes**](./essentials/metrics-supported.md#microsoftdeviceselasticpoolsiothubtenants) | [**Yes**](./essentials/resource-logs-categories.md#microsoftdeviceselasticpoolsiothubtenants) | | | | [Azure IoT Hub](../iot-hub/index.yml) | Microsoft.Devices/IotHubs | [**Yes**](./essentials/metrics-supported.md#microsoftdevicesiothubs) | [**Yes**](./essentials/resource-logs-categories.md#microsoftdevicesiothubs) | | |
azure-monitor Monitor Virtual Machine Alerts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/vm/monitor-virtual-machine-alerts.md
Metric rules for virtual machines can use the following data:
> When VM insights supports the Azure Monitor agent, which is currently in public preview, it sends performance data from the guest operating system to Metrics so that you can use metric alerts. ### Log alerts
-[Log alerts](../alerts/alerts-unified-log.md) can measure two different things, each of which supports distinct scenarios for monitoring virtual machines:
+[Log alerts](../alerts/alerts-unified-log.md) can measure two different things which can be used to monitor virtual machines in different scenarios:
-- [Result count](../alerts/alerts-unified-log.md#result-count): This measure counts the number of rows returned by the query, and can be used to work with events such as Windows event logs, syslog, application exceptions.-- [Calculation of a value](../alerts/alerts-unified-log.md#calculation-of-a-value): This measure is based on a numeric column and can be used to include any number of resources. For example, CPU percentage.
+- [Result count](../alerts/alerts-unified-log.md#result-count): Counts the number of rows returned by the query, and can be used to work with events such as Windows event logs, syslog, application exceptions.
+- [Calculation of a value](../alerts/alerts-unified-log.md#calculation-of-a-value): Makes a calculation based on a numeric column, and can be used to include any number of resources. For example, CPU percentage.
### Targeting resources and dimensions You can monitor multiple instancesΓÇÖ values with one rule using dimensions. You would use dimensions if, for example, you want to monitor CPU usage on multiple instances running your web site or app for CPU usage over 80%.
-To create resource-centric alerts at scale for a subscription or resource group, you can use the **Split by dimensions** section of the condition to split alerts into separate alerts by grouping unique combinations using numerical or string columns. When you want to monitor the same condition on multiple Azure resources, splitting on Azure resource ID column will change the target of the alert to the specified resource.
+To create resource-centric alerts at scale for a subscription or resource group, you can **Split by dimensions**. When you want to monitor the same condition on multiple Azure resources, splitting by dimensions splits the alerts into separate alerts by grouping unique combinations using numerical or string columns. Splitting on Azure resource ID column makes the specified resource into the alert target.
You may also decide not to split when you want a condition on multiple resources in the scope, for example, if you want to alert if at least five machines in the resource group scope have CPU usage over 80%.
azure-netapp-files Azure Netapp Files Quickstart Set Up Account Create Volumes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-netapp-files/azure-netapp-files-quickstart-set-up-account-create-volumes.md
Use the Azure portal, PowerShell, or the Azure CLI to [register for NetApp Resou
> To obtain the region name that is supported by our command line tools, please use `az account list-locations --query "[].{Region:name}" --out table` >
-2. Create a new resource group by using the [az group create](/cli/azure/group#az_group_create) command:
+2. Create a new resource group by using the [az group create](/cli/azure/group#az-group-create) command:
```azurecli-interactive az group create \
Use the Azure portal, PowerShell, or the Azure CLI to [register for NetApp Resou
--location $LOCATION ```
-3. Create Azure NetApp Files account with [az netappfiles account create](/cli/azure/netappfiles/account#az_netappfiles_account_create) command:
+3. Create Azure NetApp Files account with [az netappfiles account create](/cli/azure/netappfiles/account#az-netappfiles-account-create) command:
```azurecli-interactive az netappfiles account create \
The following code snippet shows how to create a NetApp account in an Azure Reso
SERVICE_LEVEL="Premium" # Valid values are Standard, Premium and Ultra ```
-2. Create a new capacity pool by using the [az netappfiles pool create](/cli/azure/netappfiles/pool#az_netappfiles_pool_create)
+2. Create a new capacity pool by using the [az netappfiles pool create](/cli/azure/netappfiles/pool#az-netappfiles-pool-create)
```azurecli-interactive az netappfiles pool create \
The following code snippet shows how to create a capacity pool in an Azure Resou
SUBNET_NAME="myANFSubnet" ```
-1. Create virtual network without subnet by using the [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) command.
+1. Create virtual network without subnet by using the [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) command.
```azurecli-interactive az network vnet create \
The following code snippet shows how to create a capacity pool in an Azure Resou
```
-2. Create a delegated subnet by using [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) command.
+2. Create a delegated subnet by using [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) command.
```azurecli-interactive az network vnet subnet create \
The following code snippet shows how to create a capacity pool in an Azure Resou
--delegations "Microsoft.NetApp/volumes" ```
-3. Create the volume by using the [az netappfiles volume create](/cli/azure/netappfiles/volume#az_netappfiles_volume_create) command.
+3. Create the volume by using the [az netappfiles volume create](/cli/azure/netappfiles/volume#az-netappfiles-volume-create) command.
```azurecli-interactive VNET_ID=$(az network vnet show --resource-group $RESOURCE_GROUP --name $VNET_NAME --query "id" -o tsv)
When you are done and if you want to, you can delete the resource group. The act
> [!IMPORTANT] > All resources within the resource groups will be permanently deleted and cannot be undone.
-1. Delete resource group by using the [az group delete](/cli/azure/group#az_group_delete) command.
+1. Delete resource group by using the [az group delete](/cli/azure/group#az-group-delete) command.
```azurecli-interactive az group delete \
azure-netapp-files Troubleshoot Capacity Pools https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-netapp-files/troubleshoot-capacity-pools.md
na Previously updated : 01/14/2021 Last updated : 03/24/2022 # Troubleshoot capacity pool errors
This article describes resolutions to issues you might have when managing capaci
| Error condition | Resolution | |-|-| | Issues creating a capacity pool | Make sure that the capacity pool count does not exceed the limit. See [Resource limits for Azure NetApp Files](azure-netapp-files-resource-limits.md). If the count is less than the limit and you still experience issues, file a support ticket and specify the capacity pool name. |
-| Issues deleting a capacity pool | Make sure that you remove all Azure NetApp Files volumes and snapshots in the subscription where you are trying to delete the capacity pool. <br> If you already removed all volumes and snapshots and you still cannot delete the capacity pool, references to resources might still exist without showing in the portal. In this case, file a support ticket, and specify that you have performed the above recommended steps. |
+| Issues deleting a capacity pool | Make sure that you remove all Azure NetApp Files volumes and snapshots in the subscription where you're trying to delete the capacity pool. <br> If you already removed all volumes and snapshots and you still cannot delete the capacity pool, references to resources might still exist without showing in the portal. In this case, file a support ticket, and specify that you've performed the above recommended steps. |
| Volume creation or modification fails with `Requested throughput not available` error | Available throughput for a volume is determined by its capacity poolΓÇÖs size and the service level. If you do not have sufficient throughput, you should increase the pool size or adjust the existing volume throughput. | ## Issues when changing the capacity pool of a volume | Error condition | Resolution | |-|-|
-| Changing the capacity pool for a volume is not permitted. | You might not be authorized yet to use this feature. <br> The feature to move a volume to another capacity pool is currently in preview. If you are using this feature for the first time, you need to register the feature first and set `-FeatureName ANFTierChange`. See the registration steps in [Dynamically change the service level of a volume](dynamic-change-volume-service-level.md). |
+| Changing the capacity pool for a volume is not permitted. | You might not be authorized yet to use this feature. <br> The feature to move a volume to another capacity pool is currently in preview. If you're using this feature for the first time, you need to register the feature first and set `-FeatureName ANFTierChange`. See the registration steps in [Dynamically change the service level of a volume](dynamic-change-volume-service-level.md). |
| The capacity pool size is too small for total volume size. | The error is a result of the destination capacity pool not having the available capacity for the volume being moved. <br> Increase the size of the destination pool, or choose another pool that is larger. See [Resize a capacity pool or a volume](azure-netapp-files-resize-capacity-pools-or-volumes.md). | | The pool change cannot be completed because a volume called `'{source pool name}'` already exists in the target pool `'{target pool name}'` | This error occurs because the volume with same name already exists in the target capacity pool. Select another capacity pool that does not have a volume with same name. |
+| Error changing volume's pool. Pool: `'{target pool name}'` not available or does not exit | You cannot change a volume's capacity pool when the destination capacity pool is not healthy. Check the status of the destination capacity pool. If the pool is in a failed state (not "Succeeded"), try performing an update on the capacity pool by adding a tag name and value pair, then save. |
+| Cannot change the volume's pool because the selected pool is the same as the existing pool: `'{Pool Name}'` | Confirm you're moving the volume to the correct destination capacity pool and try again. |
+| Cannot change QoS type from manual to auto | Once the QoS type is changed to manual, you cannot change it to auto. Given this, there are three options: <ul><li> Do not move the volume if it must be in a capacity pool with QoS type auto.</li><li> Create a new capacity pool with QoS type manual enabled, then you can move the volume to the new capacity pool. </li><li> Change the destination pool to QoS type manual from auto. Then perform the move. </li></ul> For information about QoS, see [Storage hierarchy of Azure NetApp Files](azure-netapp-files-understand-storage-hierarchy.md#qos_types). |
+| Cannot change a volume from a Double Encrypted Pool to a Single Encrypted Pool or from a Single Encrypted Pool to a Double Encrypted Pool | The destination pool must be of the same encryption type as the source pool. |
## Next steps
azure-netapp-files Volume Hard Quota Guidelines https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-netapp-files/volume-hard-quota-guidelines.md
This action will open the Azure Cloud Shell:
[ ![Screenshot that shows Cloud Shell window.](../media/azure-netapp-files/hard-quota-update-cloud-shell-window.png) ](../media/azure-netapp-files/hard-quota-update-cloud-shell-window.png#lightbox)
-The following examples use the commands to [show](/cli/azure/netappfiles/volume#az_netappfiles_volume_show) and [update](/cli/azure/netappfiles/volume#az_netappfiles_volume_update) the size of a volume:
+The following examples use the commands to [show](/cli/azure/netappfiles/volume#az-netappfiles-volume-show) and [update](/cli/azure/netappfiles/volume#az-netappfiles-volume-update) the size of a volume:
[ ![Screenshot that shows using PowerShell to show volume size.](../media/azure-netapp-files/hard-quota-update-powershell-volume-show.png) ](../media/azure-netapp-files/hard-quota-update-powershell-volume-show.png#lightbox) [ ![Screenshot that shows using PowerShell to update volume size.](../media/azure-netapp-files/hard-quota-update-powershell-volume-update.png) ](../media/azure-netapp-files/hard-quota-update-powershell-volume-update.png#lightbox)
-The following examples use the commands to [show](/cli/azure/netappfiles/pool#az_netappfiles_pool_show) and [update](/cli/azure/netappfiles/pool#az_netappfiles_pool_update) the size of a capacity pool:
+The following examples use the commands to [show](/cli/azure/netappfiles/pool#az-netappfiles-pool-show) and [update](/cli/azure/netappfiles/pool#az-netappfiles-pool-update) the size of a capacity pool:
[ ![Screenshot that shows using PowerShell to show capacity pool size.](../media/azure-netapp-files/hard-quota-update-powershell-pool-show.png) ](../media/azure-netapp-files/hard-quota-update-powershell-pool-show.png#lightbox)
azure-portal Azure Portal Dashboards Create Programmatically https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-portal/azure-portal-dashboards-create-programmatically.md
Once you've configured your template, deploy it using any of the following metho
- [REST APIs](/rest/api/resources/deployments) - [PowerShell](../azure-resource-manager/templates/deploy-powershell.md)-- [Azure CLI](/cli/azure/group/deployment#az_group_deployment_create)
+- [Azure CLI](/cli/azure/group/deployment#az-group-deployment-create)
- [The Azure portal template deployment page](https://portal.azure.com/#create/Microsoft.Template) Next you'll see two versions of our example dashboard JSON. The first is the version that we exported from the portal that was already bound to a resource. The second is the template version that can be programmatically bound to any virtual machine and deployed using Azure Resource Manager.
Prepare your environment for the Azure CLI.
- These examples use the following dashboard: [portal-dashboard-template-testvm.json](https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/azure-portal/portal-dashboard-template-testvm.json). Be sure to replace all of the content in angled brackets with your values.
-Run the [az portal dashboard create](/cli/azure/portal/dashboard#az_portal_dashboard_create) command to create a dashboard based on your template:
+Run the [az portal dashboard create](/cli/azure/portal/dashboard#az-portal-dashboard-create) command to create a dashboard based on your template:
```azurecli az portal dashboard create --resource-group myResourceGroup --name 'Simple VM Dashboard' \ --input-path portal-dashboard-template-testvm.json --location centralus ```
-You can update a dashboard by using the [az portal dashboard update](/cli/azure/portal/dashboard#az_portal_dashboard_update) command:
+You can update a dashboard by using the [az portal dashboard update](/cli/azure/portal/dashboard#az-portal-dashboard-update) command:
```azurecli az portal dashboard update --resource-group myResourceGroup --name 'Simple VM Dashboard' \ --input-path portal-dashboard-template-testvm.json --location centralus ```
-See the details of a dashboard by running the [az portal dashboard show](/cli/azure/portal/dashboard#az_portal_dashboard_show) command:
+See the details of a dashboard by running the [az portal dashboard show](/cli/azure/portal/dashboard#az-portal-dashboard-show) command:
```azurecli az portal dashboard show --resource-group myResourceGroup --name 'Simple VM Dashboard' ```
-To see all the dashboards for the current subscription, use [az portal dashboard list](/cli/azure/portal/dashboard#az_portal_dashboard_list):
+To see all the dashboards for the current subscription, use [az portal dashboard list](/cli/azure/portal/dashboard#az-portal-dashboard-list):
```azurecli az portal dashboard list
azure-portal Quickstart Portal Dashboard Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-portal/quickstart-portal-dashboard-azure-cli.md
To remove the virtual machine and associated dashboard that you created, delete
az group delete --name myResourceGroup ```
-To remove only the dashboard, use the [az portal dashboard delete](/cli/azure/portal/dashboard#az_portal_dashboard_delete) command:
+To remove only the dashboard, use the [az portal dashboard delete](/cli/azure/portal/dashboard#az-portal-dashboard-delete) command:
```azurecli az portal dashboard delete --resource-group myResourceGroup --name "Simple VM Dashboard"
azure-portal Networking Quota Requests https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-portal/supportability/networking-quota-requests.md
This article shows how to request increases for networking quotas in the [Azure
To view your current networking usage and quota in the Azure portal, open your subscription, then select **Usage + quotas**. You can also use the following options to view your network usage and limits. -- [Usage CLI](/cli/azure/network#az_network_list_usages)
+- [Usage CLI](/cli/azure/network#az-network-list-usages)
- [PowerShell](/powershell/module/azurerm.network/get-azurermnetworkusage) - [The network usage API](/rest/api/virtualnetwork/virtualnetworks/listusage)
azure-resource-manager Bicep Config Modules https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/bicep/bicep-config-modules.md
module stgModule 'ts/CoreSpecs:storage:v1' = {
## Credentials for publishing/restoring modules
-To [publish](bicep-cli.md#publish) modules to a private module registry or to [restore](bicep-cli.md#restore) external modules to the local cache, the account must have the correct permissions to access the registry. You can configure the credential precedence for authenticating to the registry. By default, Bicep uses the credentials from the user authenticated in Azure CLI or Azure PowerShell. To customize the credential precedence, add `cloud` and `credentialPrecedence` elements to the config file.
-
-```json
-{
- "cloud": {
- "credentialPrecedence": [
- "AzureCLI",
- "AzurePowerShell"
- ]
- }
-}
-```
-
-The available credentials are:
--- AzureCLI-- AzurePowerShell-- Environment-- ManagedIdentity-- VisualStudio-- VisualStudioCode
+To [publish](bicep-cli.md#publish) modules to a private module registry or to [restore](bicep-cli.md#restore) external modules to the local cache, the account must have the correct permissions to access the registry. You can configure the credential precedence for authenticating to the registry. By default, Bicep uses the credentials from the user authenticated in Azure CLI or Azure PowerShell. To customize the credential precedence, see [Add credential precedence to Bicep config](bicep-config.md#credential-precedence).
## Next steps
azure-resource-manager Bicep Config https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/bicep/bicep-config.md
Last updated 11/16/2021
# Configure your Bicep environment
-Bicep supports a configuration file named **bicepconfig.json**. Within this file, you can add values that customize your Bicep development experience. If you don't add this file, Bicep uses default values.
+Bicep supports a configuration file named `bicepconfig.json`. Within this file, you can add values that customize your Bicep development experience. If you don't add this file, Bicep uses default values.
-To customize values, create this file in the directory where you store Bicep files. You can add bicepconfig.json files in multiple directories. The closest configuration file in the directory hierarchy is used.
+To customize values, create this file in the directory where you store Bicep files. You can add `bicepconfig.json` files in multiple directories. The configuration file closest to the Bicep file in the directory hierarchy is used.
## Available settings
-When working with [modules](modules.md), you can add aliases for module paths. These aliases simplify your Bicep file because you don't have to repeat complicated paths. You can also configure the credential precedence for authenticating to the registry. The credential is used to restore external modules to the local cache. For more information, see [Add module settings to Bicep config](bicep-config-modules.md).
+When working with [modules](modules.md), you can add aliases for module paths. These aliases simplify your Bicep file because you don't have to repeat complicated paths. For more information, see [Add module settings to Bicep config](bicep-config-modules.md).
-When working with the [Bicep linter](linter.md), you can override the default settings for the Bicep file validation. For more information, see [Add linter settings to Bicep config](bicep-config-linter.md).
+The [Bicep linter](linter.md) checks Bicep files for syntax errors and best practice violations. You can override the default settings for the Bicep file validation by modifying `bicepconfig.json`. For more information, see [Add linter settings to Bicep config](bicep-config-linter.md).
+
+You can also configure the credential precedence for authenticating to Azure from Bicep CLI and Visual Studio Code. The credentials are used to publish modules to registries and to restore external modules to the local cache when using the insert resource function.
+
+## Credential precedence
+
+You can configure the credential precedence for authenticating to the registry. By default, Bicep uses the credentials from the user authenticated in Azure CLI or Azure PowerShell. To customize the credential precedence, add `cloud` and `credentialPrecedence` elements to the config file.
+
+```json
+{
+ "cloud": {
+ "credentialPrecedence": [
+ "AzureCLI",
+ "AzurePowerShell"
+ ]
+ }
+}
+```
+
+The available credential types are:
+
+- AzureCLI
+- AzurePowerShell
+- Environment
+- ManagedIdentity
+- VisualStudio
+- VisualStudioCode
## Intellisense
-The Bicep extension for Visual Studio Code supports intellisense for your **bicepconfig.json** file. Use the intellisense to discover available properties and values.
+The Bicep extension for Visual Studio Code supports intellisense for your `bicepconfig.json` file. Use the intellisense to discover available properties and values.
:::image type="content" source="./media/bicep-config/bicep-linter-configure-intellisense.png" alt-text="The intellisense support in configuring bicepconfig.json.":::
azure-resource-manager Deploy Github Actions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/bicep/deploy-github-actions.md
az group create -n exampleRG -l westus
## Generate deployment credentials
-Your GitHub action runs under an identity. Use the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command to create a [service principal](../../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) for the identity.
+Your GitHub action runs under an identity. Use the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command to create a [service principal](../../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) for the identity.
Replace the placeholder `myApp` with the name of your application. Replace `{subscription-id}` with your subscription ID.
azure-resource-manager Deploy Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/bicep/deploy-powershell.md
The deployment can take several minutes to complete.
## Deploy remote Bicep file
-Currently, Azure PowerShell doesn't support deploying remote Bicep files. Use [Bicep CLI](./install.md#vs-code-and-bicep-extension) to [build](/cli/azure/bicep#az_bicep_build) the Bicep file to a JSON template, and then load the JSON file to the remote location.
+Currently, Azure PowerShell doesn't support deploying remote Bicep files. Use [Bicep CLI](./install.md#vs-code-and-bicep-extension) to [build](/cli/azure/bicep#az-bicep-build) the Bicep file to a JSON template, and then load the JSON file to the remote location.
## Parameters
azure-resource-manager Deploy To Management Group https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/bicep/deploy-to-management-group.md
To deploy to a management group, use the management group deployment commands.
# [Azure CLI](#tab/azure-cli)
-For Azure CLI, use [az deployment mg create](/cli/azure/deployment/mg#az_deployment_mg_create):
+For Azure CLI, use [az deployment mg create](/cli/azure/deployment/mg#az-deployment-mg-create):
```azurecli-interactive az deployment mg create \
azure-resource-manager Deploy To Tenant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/bicep/deploy-to-tenant.md
The commands for tenant deployments are different than the commands for resource
# [Azure CLI](#tab/azure-cli)
-For Azure CLI, use [az deployment tenant create](/cli/azure/deployment/tenant#az_deployment_tenant_create):
+For Azure CLI, use [az deployment tenant create](/cli/azure/deployment/tenant#az-deployment-tenant-create):
```azurecli-interactive az deployment tenant create \
azure-resource-manager Deploy What If https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/bicep/deploy-what-if.md
The preceding commands return a text summary that you can manually inspect. To g
To preview changes before deploying a Bicep file, use:
-* [az deployment group what-if](/cli/azure/deployment/group#az_deployment_group_what_if) for resource group deployments
-* [az deployment sub what-if](/cli/azure/deployment/sub#az_deployment_sub_what_if) for subscription level deployments
-* [az deployment mg what-if](/cli/azure/deployment/mg#az_deployment_mg_what_if) for management group deployments
-* [az deployment tenant what-if](/cli/azure/deployment/tenant#az_deployment_tenant_what_if) for tenant deployments
+* [az deployment group what-if](/cli/azure/deployment/group#az-deployment-group-what-if) for resource group deployments
+* [az deployment sub what-if](/cli/azure/deployment/sub#az-deployment-sub-what-if) for subscription level deployments
+* [az deployment mg what-if](/cli/azure/deployment/mg#az-deployment-mg-what-if) for management group deployments
+* [az deployment tenant what-if](/cli/azure/deployment/tenant#az-deployment-tenant-what-if) for tenant deployments
You can use the `--confirm-with-what-if` switch (or its short form `-c`) to preview the changes and get prompted to continue with the deployment. Add this switch to:
-* [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create)
-* [az deployment sub create](/cli/azure/deployment/sub#az_deployment_sub_create).
-* [az deployment mg create](/cli/azure/deployment/mg#az_deployment_mg_create)
-* [az deployment tenant create](/cli/azure/deployment/tenant#az_deployment_tenant_create)
+* [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create)
+* [az deployment sub create](/cli/azure/deployment/sub#az-deployment-sub-create).
+* [az deployment mg create](/cli/azure/deployment/mg#az-deployment-mg-create)
+* [az deployment tenant create](/cli/azure/deployment/tenant#az-deployment-tenant-create)
For example, use `az deployment group create --confirm-with-what-if` or `-c` for resource group deployments.
azure-resource-manager Deployment Script Bicep https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/bicep/deployment-script-bicep.md
For deployment script API version 2020-10-01 or later, there are two principals
- **Deployment script principal**: This principal is only required if the deployment script needs to authenticate to Azure and call Azure CLI/PowerShell. There are two ways to specify the deployment script principal: - Specify a [user-assigned managed identity]() in the `identity` property (see [Sample Bicep files](#sample-bicep-files)). When specified, the script service calls `Connect-AzAccount -Identity` before invoking the deployment script. The managed identity must have the required access to complete the operation in the script. Currently, only user-assigned managed identity is supported for the `identity` property. To login with a different identity, use the second method in this list.
- - Pass the service principal credentials as secure environment variables, and then can call [Connect-AzAccount](/powershell/module/az.accounts/connect-azaccount) or [az login](/cli/azure/reference-index#az_login) in the deployment script.
+ - Pass the service principal credentials as secure environment variables, and then can call [Connect-AzAccount](/powershell/module/az.accounts/connect-azaccount) or [az login](/cli/azure/reference-index#az-login) in the deployment script.
If a managed identity is used, the deployment principal needs the **Managed Identity Operator** role (a built-in role) assigned to the managed identity resource.
Timeout : PT1H
Using Azure CLI, you can manage deployment scripts at subscription or resource group scope: -- [az deployment-scripts delete](/cli/azure/deployment-scripts#az_deployment_scripts_delete): Delete a deployment script.-- [az deployment-scripts list](/cli/azure/deployment-scripts#az_deployment_scripts_list): List all deployment scripts.-- [az deployment-scripts show](/cli/azure/deployment-scripts#az_deployment_scripts_show): Retrieve a deployment script.-- [az deployment-scripts show-log](/cli/azure/deployment-scripts#az_deployment_scripts_show_log): Show deployment script logs.
+- [az deployment-scripts delete](/cli/azure/deployment-scripts#az-deployment-scripts-delete): Delete a deployment script.
+- [az deployment-scripts list](/cli/azure/deployment-scripts#az-deployment-scripts-list): List all deployment scripts.
+- [az deployment-scripts show](/cli/azure/deployment-scripts#az-deployment-scripts-show): Retrieve a deployment script.
+- [az deployment-scripts show-log](/cli/azure/deployment-scripts#az-deployment-scripts-show-log): Show deployment script logs.
The list command output is similar to:
azure-resource-manager Private Module Registry https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/bicep/private-module-registry.md
A Bicep registry is hosted on [Azure Container Registry (ACR)](../../container-r
# [Azure CLI](#tab/azure-cli)
- To get the login server name, use [az acr show](/cli/azure/acr#az_acr_show).
+ To get the login server name, use [az acr show](/cli/azure/acr#az-acr-show).
```azurecli az acr show --resource-group <resource-group-name> --name <registry-name> --query loginServer
azure-resource-manager Create Custom Provider https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/custom-providers/create-custom-provider.md
Prepare your environment for the Azure CLI.
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../../includes/azure-cli-prepare-your-environment-no-header.md)]
-Azure CLI examples use `az rest` for `REST` requests. For more information, see [az rest](/cli/azure/reference-index#az_rest).
+Azure CLI examples use `az rest` for `REST` requests. For more information, see [az rest](/cli/azure/reference-index#az-rest).
# [PowerShell](#tab/azure-powershell)
To deploy the custom provider, use Azure CLI, PowerShell, or the Azure portal:
# [Azure CLI](#tab/azure-cli)
-This example prompts you to enter a resource group, location, and provider's function app name. The names are stored in variables that are used in other commands. The [az group create](/cli/azure/group#az_group_create) and [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create) commands deploy the resources.
+This example prompts you to enter a resource group, location, and provider's function app name. The names are stored in variables that are used in other commands. The [az group create](/cli/azure/group#az-group-create) and [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create) commands deploy the resources.
```azurecli-interactive read -p "Enter a resource group name:" rgName &&
azure-resource-manager Managed Application Define Create Cli Sample https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/managed-applications/scripts/managed-application-define-create-cli-sample.md
This script uses the following command to create the managed application definit
| Command | Notes | |||
-| [az managedapp definition create](/cli/azure/managedapp/definition#az_managedapp_definition_create) | Create a managed application definition. Provide the package that contains the required files. |
+| [az managedapp definition create](/cli/azure/managedapp/definition#az-managedapp-definition-create) | Create a managed application definition. Provide the package that contains the required files. |
## Next steps
azure-resource-manager Azure Services Resource Providers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/management/azure-services-resource-providers.md
The resources providers that are marked with **- registered** are registered by
| Microsoft.DBforMariaDB | [Azure Database for MariaDB](../../mariadb/index.yml) | | Microsoft.DBforMySQL | [Azure Database for MySQL](../../mysql/index.yml) | | Microsoft.DBforPostgreSQL | [Azure Database for PostgreSQL](../../postgresql/index.yml) |
-| Microsoft.DesktopVirtualization | [Windows Virtual Desktop](../../virtual-desktop/index.yml) |
+| Microsoft.DesktopVirtualization | [Azure Virtual Desktop](../../virtual-desktop/index.yml) |
| Microsoft.Devices | [Azure IoT Hub](../../iot-hub/index.yml)<br />[Azure IoT Hub Device Provisioning Service](../../iot-dps/index.yml) | | Microsoft.DeviceUpdate | [Device Update for IoT Hub](../../iot-hub-device-update/index.yml) | Microsoft.DevOps | [Azure DevOps](/azure/devops/) |
azure-resource-manager Create Private Link Access Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/management/create-private-link-access-portal.md
Title: Create private link for managing resources - Azure portal description: Use Azure portal to create private link for managing resources. Previously updated : 07/29/2021 Last updated : 03/24/2022 # Use portal to create private link for managing Azure resources (preview)
azure-resource-manager Create Private Link Access Rest https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/management/create-private-link-access-rest.md
Title: Manage resources through private link description: Restrict management access for resource to private link Previously updated : 07/29/2021 Last updated : 03/24/2022 # Use REST API to create private link for managing Azure resources (preview)
azure-resource-manager Extension Resource Types https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/management/extension-resource-types.md
Title: Extension resource types description: Lists the Azure resource types are used to extend the capabilities of other resource types. Previously updated : 10/20/2021 Last updated : 03/23/2022 # Resource types that extend capabilities of other resources
An extension resource is a resource that adds to another resource's capabilities
## Microsoft.Advisor -- Microsoft.Advisor/configurations-- Microsoft.Advisor/recommendations-- Microsoft.Advisor/suppressions
+* advisorScore
+* configurations
+* recommendations
+* suppressions
## Microsoft.AlertsManagement -- Microsoft.AlertsManagement/alerts
+* alerts
## Microsoft.Authorization -- Microsoft.Authorization/batchResourceCheckAccess-- Microsoft.Authorization/denyAssignments-- Microsoft.Authorization/eligibleChildResources-- Microsoft.Authorization/locks-- Microsoft.Authorization/policyAssignments-- Microsoft.Authorization/policyDefinitions-- Microsoft.Authorization/policyExemptions-- Microsoft.Authorization/policySetDefinitions-- Microsoft.Authorization/privateLinkAssociations-- Microsoft.Authorization/roleAssignmentApprovals-- Microsoft.Authorization/roleAssignments-- Microsoft.Authorization/roleAssignmentScheduleInstances-- Microsoft.Authorization/roleAssignmentScheduleRequests-- Microsoft.Authorization/roleAssignmentSchedules-- Microsoft.Authorization/roleDefinitions-- Microsoft.Authorization/roleEligibilityScheduleInstances-- Microsoft.Authorization/roleEligibilityScheduleRequests-- Microsoft.Authorization/roleEligibilitySchedules-- Microsoft.Authorization/roleManagementPolicies-- Microsoft.Authorization/roleManagementPolicyAssignments
+* batchResourceCheckAccess
+* denyAssignments
+* eligibleChildResources
+* locks
+* policyAssignments
+* policyDefinitions
+* policyExemptions
+* policySetDefinitions
+* privateLinkAssociations
+* roleAssignmentApprovals
+* roleAssignments
+* roleAssignmentScheduleInstances
+* roleAssignmentScheduleRequests
+* roleAssignmentSchedules
+* roleDefinitions
+* roleEligibilityScheduleInstances
+* roleEligibilityScheduleRequests
+* roleEligibilitySchedules
+* roleManagementPolicies
+* roleManagementPolicyAssignments
## Microsoft.Automanage -- Microsoft.Automanage/configurationProfileAssignmentIntents-- Microsoft.Automanage/configurationProfileAssignments
+* configurationProfileAssignmentIntents
+* configurationProfileAssignments
## Microsoft.Billing -- Microsoft.Billing/billingPeriods-- Microsoft.Billing/billingPermissions-- Microsoft.Billing/billingRoleAssignments-- Microsoft.Billing/billingRoleDefinitions-- Microsoft.Billing/createBillingRoleAssignment
+* billingPeriods
+* billingPermissions
+* billingRoleAssignments
+* billingRoleDefinitions
+* createBillingRoleAssignment
## Microsoft.Blueprint -- Microsoft.Blueprint/blueprintAssignments-- Microsoft.Blueprint/blueprints
+* blueprintAssignments
+* blueprints
## Microsoft.Capacity -- Microsoft.Capacity/listSkus
+* listSkus
## Microsoft.ChangeAnalysis -- Microsoft.ChangeAnalysis/changes-- Microsoft.ChangeAnalysis/changeSnapshots-- Microsoft.ChangeAnalysis/computeChanges
+* changes
+* changeSnapshots
+* computeChanges
+
+## Microsoft.Chaos
+
+* artifactSetDefinitions
+* artifactSetSnapshots
+* chaosProviderConfigurations
+* chaosTargets
+* targets
## Microsoft.Consumption -- Microsoft.Consumption/AggregatedCost-- Microsoft.Consumption/Balances-- Microsoft.Consumption/Budgets-- Microsoft.Consumption/Charges-- Microsoft.Consumption/CostTags-- Microsoft.Consumption/credits-- Microsoft.Consumption/events-- Microsoft.Consumption/Forecasts-- Microsoft.Consumption/lots-- Microsoft.Consumption/Marketplaces-- Microsoft.Consumption/Pricesheets-- Microsoft.Consumption/products-- Microsoft.Consumption/ReservationDetails-- Microsoft.Consumption/ReservationRecommendationDetails-- Microsoft.Consumption/ReservationRecommendations-- Microsoft.Consumption/ReservationSummaries-- Microsoft.Consumption/ReservationTransactions
+* AggregatedCost
+* Balances
+* Budgets
+* Charges
+* CostTags
+* credits
+* events
+* Forecasts
+* lots
+* Marketplaces
+* Pricesheets
+* products
+* ReservationDetails
+* ReservationRecommendationDetails
+* ReservationRecommendations
+* ReservationSummaries
+* ReservationTransactions
## Microsoft.ContainerInstance -- Microsoft.ContainerInstance/serviceAssociationLinks
+* serviceAssociationLinks
## Microsoft.CostManagement -- Microsoft.CostManagement/Alerts-- Microsoft.CostManagement/Budgets-- Microsoft.CostManagement/CheckNameAvailability-- Microsoft.CostManagement/Dimensions-- Microsoft.CostManagement/Exports-- Microsoft.CostManagement/ExternalSubscriptions-- Microsoft.CostManagement/Forecast-- Microsoft.CostManagement/GenerateDetailedCostReport-- Microsoft.CostManagement/Insights-- Microsoft.CostManagement/OperationResults-- Microsoft.CostManagement/OperationStatus-- Microsoft.CostManagement/Query-- Microsoft.CostManagement/Reportconfigs-- Microsoft.CostManagement/Reports-- Microsoft.CostManagement/ScheduledActions-- Microsoft.CostManagement/Views
+* Alerts
+* BenefitUtilizationSummaries
+* Budgets
+* CheckNameAvailability
+* Dimensions
+* Exports
+* ExternalSubscriptions
+* Forecast
+* GenerateDetailedCostReport
+* Insights
+* OperationResults
+* OperationStatus
+* Query
+* Reportconfigs
+* Reports
+* ScheduledActions
+* Views
## Microsoft.CustomProviders -- Microsoft.CustomProviders/associations
+* associations
## Microsoft.DataMigration -- Microsoft.DataMigration/DatabaseMigrations
+* DatabaseMigrations
## Microsoft.Diagnostics -- Microsoft.Diagnostics/InsightDiagnostics-- Microsoft.Diagnostics/solutions
+* InsightDiagnostics
+* Solutions
## Microsoft.EventGrid -- Microsoft.EventGrid/eventSubscriptions-- Microsoft.EventGrid/extensionTopics
+* eventSubscriptions
+* extensionTopics
## Microsoft.GuestConfiguration -- Microsoft.GuestConfiguration/configurationProfileAssignments-- Microsoft.GuestConfiguration/guestConfigurationAssignments-- Microsoft.GuestConfiguration/software
+* configurationProfileAssignments
+* guestConfigurationAssignments
+* software
## Microsoft.HybridConnectivity -- Microsoft.HybridConnectivity/endpoints
+* endpoints
## microsoft.insights -- microsoft.insights/baseline-- microsoft.insights/dataCollectionRuleAssociations-- microsoft.insights/diagnosticSettings-- microsoft.insights/diagnosticSettingsCategories-- microsoft.insights/eventtypes-- microsoft.insights/extendedDiagnosticSettings-- microsoft.insights/guestDiagnosticSettingsAssociation-- microsoft.insights/logDefinitions-- microsoft.insights/logs-- microsoft.insights/metricbaselines-- microsoft.insights/metricDefinitions-- microsoft.insights/metricNamespaces-- microsoft.insights/metrics-- microsoft.insights/myWorkbooks-- microsoft.insights/topology-- microsoft.insights/transactions
+* dataCollectionRuleAssociations
+* diagnosticSettings
+* diagnosticSettingsCategories
+* eventtypes
+* extendedDiagnosticSettings
+* guestDiagnosticSettingsAssociation
+* logDefinitions
+* logs
+* metricbaselines
+* metricDefinitions
+* metricNamespaces
+* metrics
+* myWorkbooks
+* topology
+* transactions
## Microsoft.IoTSecurity -- Microsoft.IoTSecurity/sensors-- Microsoft.IoTSecurity/sites
+* sensors
+* sites
## Microsoft.KubernetesConfiguration -- Microsoft.KubernetesConfiguration/extensions-- Microsoft.KubernetesConfiguration/fluxConfigurations-- Microsoft.KubernetesConfiguration/sourceControlConfigurations
+* extensions
+* fluxConfigurations
+* namespaces
+* sourceControlConfigurations
## Microsoft.Maintenance -- Microsoft.Maintenance/applyUpdates-- Microsoft.Maintenance/configurationAssignments-- Microsoft.Maintenance/updates
+* applyUpdates
+* configurationAssignments
+* updates
## Microsoft.ManagedIdentity -- Microsoft.ManagedIdentity/Identities
+* Identities
## Microsoft.ManagedServices -- Microsoft.ManagedServices/registrationAssignments-- Microsoft.ManagedServices/registrationDefinitions
+* registrationAssignments
+* registrationDefinitions
+
+## Microsoft.Network
+
+* networkManagerConnections
## Microsoft.OperationalInsights -- Microsoft.OperationalInsights/storageInsightConfigs
+* storageInsightConfigs
## Microsoft.OperationsManagement -- Microsoft.OperationsManagement/managementassociations
+* managementassociations
## Microsoft.PolicyInsights -- Microsoft.PolicyInsights/attestations-- Microsoft.PolicyInsights/eventGridFilters-- Microsoft.PolicyInsights/policyEvents-- Microsoft.PolicyInsights/policyStates-- Microsoft.PolicyInsights/policyTrackedResources-- Microsoft.PolicyInsights/remediations
+* attestations
+* eventGridFilters
+* policyEvents
+* policyStates
+* policyTrackedResources
+* remediations
## Microsoft.Quota -- Microsoft.Quota/operationsStatus-- Microsoft.Quota/quotaRequests-- Microsoft.Quota/quotas-- Microsoft.Quota/usages
+* operationsStatus
+* quotaRequests
+* quotas
+* usages
## Microsoft.RecoveryServices -- Microsoft.RecoveryServices/backupProtectedItems-- Microsoft.RecoveryServices/replicationEligibilityResults
+* backupProtectedItems
+* replicationEligibilityResults
## Microsoft.ResourceHealth -- Microsoft.ResourceHealth/childResources-- Microsoft.ResourceHealth/events-- Microsoft.ResourceHealth/impactedResources
+* childResources
+* events
+* impactedResources
## Microsoft.Resources -- Microsoft.Resources/links-- Microsoft.Resources/tags
+* links
+* tags
## Microsoft.Security -- Microsoft.Security/adaptiveNetworkHardenings-- Microsoft.Security/advancedThreatProtectionSettings-- Microsoft.Security/antiMalwareSettings-- Microsoft.Security/assessmentMetadata-- Microsoft.Security/assessments-- Microsoft.Security/Compliances-- Microsoft.Security/dataCollectionAgents-- Microsoft.Security/deviceSecurityGroups-- Microsoft.Security/InformationProtectionPolicies-- Microsoft.Security/insights-- Microsoft.Security/jitPolicies-- Microsoft.Security/serverVulnerabilityAssessments-- Microsoft.Security/sqlVulnerabilityAssessments
+* adaptiveNetworkHardenings
+* advancedThreatProtectionSettings
+* antiMalwareSettings
+* assessmentMetadata
+* assessments
+* Compliances
+* dataCollectionAgents
+* deviceSecurityGroups
+* InformationProtectionPolicies
+* insights
+* jitPolicies
+* serverVulnerabilityAssessments
+* sqlVulnerabilityAssessments
## Microsoft.SecurityInsights -- Microsoft.SecurityInsights/aggregations-- Microsoft.SecurityInsights/alertRules-- Microsoft.SecurityInsights/alertRuleTemplates-- Microsoft.SecurityInsights/automationRules-- Microsoft.SecurityInsights/bookmarks-- Microsoft.SecurityInsights/cases-- Microsoft.SecurityInsights/dataConnectors-- Microsoft.SecurityInsights/dataConnectorsCheckRequirements-- Microsoft.SecurityInsights/enrichment-- Microsoft.SecurityInsights/entities-- Microsoft.SecurityInsights/entityQueryTemplates-- Microsoft.SecurityInsights/incidents-- Microsoft.SecurityInsights/listrepositories-- Microsoft.SecurityInsights/metadata-- Microsoft.SecurityInsights/onboardingStates-- Microsoft.SecurityInsights/settings-- Microsoft.SecurityInsights/sourceControls-- Microsoft.SecurityInsights/threatIntelligence-- Microsoft.SecurityInsights/watchlists
+* aggregations
+* alertRules
+* alertRuleTemplates
+* automationRules
+* bookmarks
+* cases
+* dataConnectors
+* dataConnectorsCheckRequirements
+* enrichment
+* entities
+* entityQueryTemplates
+* incidents
+* listrepositories
+* metadata
+* MitreCoverageRecords
+* onboardingStates
+* settings
+* sourceControls
+* threatIntelligence
+* watchlists
## Microsoft.SerialConsole -- Microsoft.SerialConsole/serialPorts
+* serialPorts
## Microsoft.ServiceLinker -- Microsoft.ServiceLinker/linkers
+* dryruns
+* linkers
## Microsoft.SoftwarePlan -- Microsoft.SoftwarePlan/hybridUseBenefits
+* hybridUseBenefits
## Microsoft.Subscription -- Microsoft.Subscription/policies
+* policies
## microsoft.support -- microsoft.support/supporttickets
+* supporttickets
## Microsoft.WorkloadMonitor -- Microsoft.WorkloadMonitor/monitors
+* monitors
## Next steps
azure-resource-manager Preview Features https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/management/preview-features.md
The portal only shows a preview feature when the service that owns the feature h
# [Azure CLI](#tab/azure-cli)
-To list all the subscription's preview features, use the [az feature list](/cli/azure/feature#az_feature_list) command.
+To list all the subscription's preview features, use the [az feature list](/cli/azure/feature#az-feature-list) command.
The default output for Azure CLI is JSON. For more information about other output formats, see [Output formats for Azure CLI commands](/cli/azure/format-output-azure-cli).
Microsoft.Compute/AllowPreReleaseRegions Pending
Microsoft.Compute/InGuestPatchVMPreview NotRegistered ```
-To filter output for a specific preview feature, use the [az feature show](/cli/azure/feature#az_feature_show) command.
+To filter output for a specific preview feature, use the [az feature show](/cli/azure/feature#az-feature-show) command.
```azurecli-interactive az feature show --name InGuestPatchVMPreview --namespace Microsoft.Compute --output table
The **Preview features** screen refreshes and the preview feature's **State** is
# [Azure CLI](#tab/azure-cli)
-To register a preview feature, use the [az feature register](/cli/azure/feature#az_feature_register) command.
+To register a preview feature, use the [az feature register](/cli/azure/feature#az-feature-register) command.
```azurecli-interactive az feature register --name InGuestPatchVMPreview --namespace Microsoft.Compute
You can unregister preview features from **Preview features**. The **State** cha
# [Azure CLI](#tab/azure-cli)
-To unregister a preview feature, use the [az feature unregister](/cli/azure/feature#az_feature_unregister) command. The `RegistrationState` state changes to **Unregistered**.
+To unregister a preview feature, use the [az feature unregister](/cli/azure/feature#az-feature-unregister) command. The `RegistrationState` state changes to **Unregistered**.
```azurecli-interactive az feature unregister --name InGuestPatchVMPreview --namespace Microsoft.Compute
azure-resource-manager Resource Manager Personal Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/management/resource-manager-personal-data.md
To list **deployments** in the history, use:
* [List By Resource Group](/rest/api/resources/deployments/listbyresourcegroup) * [Get-AzResourceGroupDeployment](/powershell/module/az.resources/Get-AzResourceGroupDeployment)
-* [az deployment group list](/cli/azure/deployment/group#az_deployment_group_list)
+* [az deployment group list](/cli/azure/deployment/group#az-deployment-group-list)
To delete **deployments** from the history, use: * [Delete](/rest/api/resources/deployments/delete) * [Remove-AzResourceGroupDeployment](/powershell/module/az.resources/Remove-AzResourceGroupDeployment)
-* [az deployment group delete](/cli/azure/deployment/group#az_deployment_group_delete)
+* [az deployment group delete](/cli/azure/deployment/group#az-deployment-group-delete)
## Delete personal data in resource group names
To list **resource groups**, use:
* [List](/rest/api/resources/resourcegroups/list) * [Get-AzResourceGroup](/powershell/module/az.resources/Get-AzResourceGroup)
-* [az group list](/cli/azure/group#az_group_list)
+* [az group list](/cli/azure/group#az-group-list)
To delete **resource groups**, use: * [Delete](/rest/api/resources/resourcegroups/delete) * [Remove-AzResourceGroup](/powershell/module/az.resources/Remove-AzResourceGroup)
-* [az group delete](/cli/azure/group#az_group_delete)
+* [az group delete](/cli/azure/group#az-group-delete)
## Delete personal data in tags
To list **tags**, use:
* [List](/rest/api/resources/tags/list) * [Get-AzTag](/powershell/module/az.resources/Get-AzTag)
-* [az tag list](/cli/azure/tag#az_tag_list)
+* [az tag list](/cli/azure/tag#az-tag-list)
To delete **tags**, use: * [Delete](/rest/api/resources/tags/delete) * [Remove-AzTag](/powershell/module/az.resources/Remove-AzTag)
-* [az tag delete](/cli/azure/tag#az_tag_delete)
+* [az tag delete](/cli/azure/tag#az-tag-delete)
## Next steps * For an overview of Azure Resource Manager, see the [What is Resource Manager?](overview.md)
azure-resource-manager Deploy Github Actions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/templates/deploy-github-actions.md
The file has two sections:
## Generate deployment credentials
-You can create a [service principal](../../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You can create a [service principal](../../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
Create a resource group if you do not already have one.
azure-resource-manager Deploy To Management Group https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/templates/deploy-to-management-group.md
To deploy to a management group, use the management group deployment commands.
# [Azure CLI](#tab/azure-cli)
-For Azure CLI, use [az deployment mg create](/cli/azure/deployment/mg#az_deployment_mg_create):
+For Azure CLI, use [az deployment mg create](/cli/azure/deployment/mg#az-deployment-mg-create):
```azurecli-interactive az deployment mg create \
azure-resource-manager Deploy To Tenant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/templates/deploy-to-tenant.md
The commands for tenant deployments are different than the commands for resource
# [Azure CLI](#tab/azure-cli)
-For Azure CLI, use [az deployment tenant create](/cli/azure/deployment/tenant#az_deployment_tenant_create):
+For Azure CLI, use [az deployment tenant create](/cli/azure/deployment/tenant#az-deployment-tenant-create):
```azurecli-interactive az deployment tenant create \
azure-resource-manager Deployment History Deletions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/templates/deployment-history-deletions.md
To reenable automatic deletions, use Azure REST API or Azure CLI.
# [Azure CLI](#tab/azure-cli)
-For Azure CLI, use [az feature register](/cli/azure/feature#az_feature_register).
+For Azure CLI, use [az feature register](/cli/azure/feature#az-feature-register).
```azurecli-interactive az feature register --namespace Microsoft.Resources --name DisableDeploymentGrooming
To see the current status of your subscription, use:
az feature show --namespace Microsoft.Resources --name DisableDeploymentGrooming ```
-To reenable automatic deletions, use [az feature unregister](/cli/azure/feature#az_feature_unregister).
+To reenable automatic deletions, use [az feature unregister](/cli/azure/feature#az-feature-unregister).
```azurecli-interactive az feature unregister --namespace Microsoft.Resources --name DisableDeploymentGrooming
azure-resource-manager Deployment Script Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/templates/deployment-script-template.md
For deployment script API version 2020-10-01 or later, there are two principals
- **Deployment script principal**: This principal is only required if the deployment script needs to authenticate to Azure and call Azure CLI/PowerShell. There are two ways to specify the deployment script principal: - Specify a user-assigned managed identity in the `identity` property (see [Sample templates](#sample-templates)). When specified, the script service calls `Connect-AzAccount -Identity` before invoking the deployment script. The managed identity must have the required access to complete the operation in the script. Currently, only user-assigned managed identity is supported for the `identity` property. To log in with a different identity, use the second method in this list.
- - Pass the service principal credentials as secure environment variables, and then can call [Connect-AzAccount](/powershell/module/az.accounts/connect-azaccount) or [az login](/cli/azure/reference-index#az_login) in the deployment script.
+ - Pass the service principal credentials as secure environment variables, and then can call [Connect-AzAccount](/powershell/module/az.accounts/connect-azaccount) or [az login](/cli/azure/reference-index#az-login) in the deployment script.
If a managed identity is used, the deployment principal needs the **Managed Identity Operator** role (a built-in role) assigned to the managed identity resource.
azure-resource-manager Export Template Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/templates/export-template-cli.md
This article shows how to export templates through **Azure CLI**. For other opti
After setting up your resource group successfully, you can export an Azure Resource Manager template for the resource group.
-To export all resources in a resource group, use [az group export](/cli/azure/group#az_group_export) and provide the resource group name.
+To export all resources in a resource group, use [az group export](/cli/azure/group#az-group-export) and provide the resource group name.
```azurecli-interactive az group export --name demoGroup
If you use the `--include-parameter-default-value` parameter when exporting the
You can save a template from a deployment in the deployment history. The template you get is exactly the one that was used for deployment.
-To get a template from a resource group deployment, use the [az deployment group export](/cli/azure/deployment/group#az_deployment_group_export) command. You specify the name of the deployment to retrieve. For help with getting the name of a deployment, see [View deployment history with Azure Resource Manager](deployment-history.md).
+To get a template from a resource group deployment, use the [az deployment group export](/cli/azure/deployment/group#az-deployment-group-export) command. You specify the name of the deployment to retrieve. For help with getting the name of a deployment, see [View deployment history with Azure Resource Manager](deployment-history.md).
```azurecli-interactive az deployment group export --resource-group demoGroup --name demoDeployment
az deployment group export --resource-group demoGroup --name demoDeployment > de
To get templates deployed at other levels, use:
-* [az deployment sub export](/cli/azure/deployment/sub#az_deployment_sub_export) for deployments to subscriptions
-* [az deployment mg export](/cli/azure/deployment/mg#az_deployment_mg_export) for deployments to management groups
-* [az deployment tenant export](/cli/azure/deployment/tenant#az_deployment_tenant_export) for deployments to tenants
+* [az deployment sub export](/cli/azure/deployment/sub#az-deployment-sub-export) for deployments to subscriptions
+* [az deployment mg export](/cli/azure/deployment/mg#az-deployment-mg-export) for deployments to management groups
+* [az deployment tenant export](/cli/azure/deployment/tenant#az-deployment-tenant-export) for deployments to tenants
## Next steps
azure-resource-manager Quickstart Create Templates Use The Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/templates/quickstart-create-templates-use-the-portal.md
Title: Deploy template - Azure portal
-description: Learn how to create your first Azure Resource Manager template (ARM template) using the Azure portal, and how to deploy it.
+description: Learn how to create your first Azure Resource Manager template (ARM template) using the Azure portal. You also learn how to deploy it.
Previously updated : 04/27/2021 Last updated : 03/24/2022
# Quickstart: Create and deploy ARM templates by using the Azure portal
-Learn how to generate an Azure Resource Manager template (ARM template) using the Azure portal, and the process of editing and deploying the template from the portal. ARM templates are JSON files that define the resources you need to deploy for your solution. To understand the concepts associated with deploying and managing your Azure solutions, see [template deployment overview](overview.md).
+In this quickstart, you learn how to generate an Azure Resource Manager template (ARM template) in the Azure portal. You edit and deploy the template from the portal.
+
+ARM templates are JSON files that define the resources you need to deploy for your solution. To understand the concepts associated with deploying and managing your Azure solutions, see [template deployment overview](overview.md).
After completing the tutorial, you deploy an Azure Storage account. The same process can be used to deploy other Azure resources.
If you don't have an Azure subscription, [create a free account](https://azure.m
## Generate a template using the portal
-Creating an ARM template from scratch is not an easy task, especially if you are new to Azure deployment and you are not familiar with the JSON format. Using the Azure portal, you can configure a resource, for example an Azure Storage account. Before you deploy the resource, you can export your configuration into a template. You can save the template and reuse it in the future.
+If you're new to Azure deployment, you may find it challenging to create an ARM template. To get around this challenge, you can configure your deployment in the Azure portal and download the corresponding ARM template. You save the template and reuse it in the future.
-Many experienced template developers use this method to generate templates when they try to deploy Azure resources that they are not familiar with. For more information about exporting templates by using the portal, see [Export resource groups to templates](../management/manage-resource-groups-portal.md#export-resource-groups-to-templates). The other way to find a working template is from [Azure Quickstart templates](https://azure.microsoft.com/resources/templates/).
+Many experienced template developers use this method to generate templates when they try to deploy Azure resources that they aren't familiar with. For more information about exporting templates by using the portal, see [Export resource groups to templates](../management/manage-resource-groups-portal.md#export-resource-groups-to-templates). The other way to find a working template is from [Azure Quickstart templates](https://azure.microsoft.com/resources/templates/).
1. In a web browser, go to the [Azure portal](https://portal.azure.com) and sign in. 1. From the Azure portal menu, select **Create a resource**.
Many experienced template developers use this method to generate templates when
> [!NOTE] > Some of the exported templates require some edits before you can deploy them.
-1. Select **Review + create** on the bottom of the screen. Do not select **Create** in the next step.
+1. Select **Review + create** on the bottom of the screen. Don't select **Create** in the next step.
1. Select **Download a template for automation** on the bottom of the screen. The portal shows the generated template: ![Generate a template from the portal](./media/quickstart-create-templates-use-the-portal/azure-resource-manager-template-tutorial-create-storage-account-template.png)
- The main pane shows the template. It is a JSON file with six top-level elements - `schema`, `contentVersion`, `parameters`, `variables`, `resources`, and `output`. For more information, see [Understand the structure and syntax of ARM templates](./syntax.md)
+ The main pane shows the template. It's a JSON file with six top-level elements - `schema`, `contentVersion`, `parameters`, `variables`, `resources`, and `output`. For more information, see [Understand the structure and syntax of ARM templates](./syntax.md)
There are nine parameters defined. One of them is called **storageAccountName**. The second highlighted part on the previous screenshot shows how to reference this parameter in the template. In the next section, you edit the template to use a generated name for the storage account.
Azure requires that each Azure service has a unique name. The deployment could f
1. Select **Build your own template in the editor**. 1. Select **Load file**, and then follow the instructions to load template.json you downloaded in the last section.+
+ After the file is loaded, you may notice a warning that the template schema wasn't loaded. You can ignore this warning. The schema is valid.
+ 1. Make the following three changes to the template: ![Azure Resource Manager templates](./media/quickstart-create-templates-use-the-portal/azure-resource-manager-template-tutorial-edit-storage-account-template-revised.png)
Azure requires that each Azure service has a unique name. The deployment could f
![Azure Resource Manager templates deployment resource group](./media/quickstart-create-templates-use-the-portal/azure-resource-manager-template-tutorial-portal-deployment-resource-group.png)
- You can see the deployment status was successful, and there is only one storage account in the resource group. The storage account name is a unique string generated by the template. To learn more about using Azure storage accounts, see [Quickstart: Upload, download, and list blobs using the Azure portal](../../storage/blobs/storage-quickstart-blobs-portal.md).
+ You can see the deployment status was successful, and there's only one storage account in the resource group. The storage account name is a unique string generated by the template. To learn more about using Azure storage accounts, see [Quickstart: Upload, download, and list blobs using the Azure portal](../../storage/blobs/storage-quickstart-blobs-portal.md).
## Clean up resources
When the Azure resources are no longer needed, clean up the resources you deploy
## Next steps
-In this tutorial, you learned how to generate a template from the Azure portal, and how to deploy the template using the portal. The template used in this Quickstart is a simple template with one Azure resource. When the template is complex, it is easier to use Visual Studio Code or Visual Studio to develop the template. To learn more about template development, see our new beginner tutorial series:
+In this tutorial, you learned how to generate a template from the Azure portal, and how to deploy the template using the portal. The template used in this Quickstart is a simple template with one Azure resource. When the template is complex, it's easier to use Visual Studio Code or Visual Studio to develop the template. To learn more about template development, see our new beginner tutorial series:
> [!div class="nextstepaction"] > [Beginner tutorials](./template-tutorial-create-first-template.md)
azure-resource-manager Template Functions Resource https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/templates/template-functions-resource.md
Title: Template functions - resources description: Describes the functions to use in an Azure Resource Manager template (ARM template) to retrieve values about resources. Previously updated : 03/10/2022 Last updated : 03/24/2022
You can use the response from `pickZones` to determine whether to provide null f
}, ```
-The following example shows how to use the `pickZones` function to enable zone redundancy for Cosmos DB.
+Cosmos DB isn't a zonal resource but you can use the `pickZones` function to determine whether to enable zone redundancy for georeplication. Pass the **Microsoft.Storage/storageAccounts** resource type to determine whether to enable zone redundancy.
:::code language="json" source="~/resourcemanager-templates/azure-resource-manager/functions/resource/pickzones-cosmosdb.json":::
azure-resource-manager Template Specs Create Portal Forms https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/templates/template-specs-create-portal-forms.md
New-AzTemplateSpec `
-UIFormDefinitionFile keyvaultform.json ```
-For Azure CLI, use [az ts create](/cli/azure/ts#az_ts_create) and provide the form in the `--ui-form-definition` parameter.
+For Azure CLI, use [az ts create](/cli/azure/ts#az-ts-create) and provide the form in the `--ui-form-definition` parameter.
```azurecli az ts create \
azure-resource-manager Create Troubleshooting Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/troubleshooting/create-troubleshooting-template.md
For example, an error occurs when your deployment template references an existin
## Deploy a troubleshooting template
-The following ARM template and Bicep file get information from an existing storage account. You run the deployment with Azure PowerShell [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) or Azure CLI [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create). Specify the storage account's name and resource group. The output is an object with the storage account's property names and values.
+The following ARM template and Bicep file get information from an existing storage account. You run the deployment with Azure PowerShell [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) or Azure CLI [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create). Specify the storage account's name and resource group. The output is an object with the storage account's property names and values.
```json {
azure-resource-manager Deployment Quota Exceeded https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/troubleshooting/deployment-quota-exceeded.md
During deployment, you receive an error that states the current deployment will
# [Azure CLI](#tab/azure-cli)
-Use the [az deployment group delete](/cli/azure/deployment/group#az_deployment_group_delete) command to delete deployments from the history.
+Use the [az deployment group delete](/cli/azure/deployment/group#az-deployment-group-delete) command to delete deployments from the history.
```azurecli-interactive az deployment group delete --resource-group exampleGroup --name deploymentName
azure-resource-manager Enable Debug Logging https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/troubleshooting/enable-debug-logging.md
You can specify a property, like `StatusMessage` or `StatusCode` to filter the o
You can't enable debug logging with Azure CLI but you can retrieve debug logging data.
-Get the deployment operations with the [az deployment operation group list](/cli/azure/deployment/operation/group#az_deployment_operation_group_list) command:
+Get the deployment operations with the [az deployment operation group list](/cli/azure/deployment/operation/group#az-deployment-operation-group-list) command:
```azurecli az deployment operation group list \
azure-resource-manager Error Not Found https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/troubleshooting/error-not-found.md
When you receive this error while doing a management task, check the values you
- Resource group name - Subscription
-If you're using PowerShell or Azure CLI, check that you're running commands in the subscription that contains the resource. You can change the subscription with [Set-AzContext](/powershell/module/Az.Accounts/Set-AzContext) or [az account set](/cli/azure/account#az_account_set). Many commands provide a subscription parameter that lets you specify a different subscription than the current context.
+If you're using PowerShell or Azure CLI, check that you're running commands in the subscription that contains the resource. You can change the subscription with [Set-AzContext](/powershell/module/Az.Accounts/Set-AzContext) or [az account set](/cli/azure/account#az-account-set). Many commands provide a subscription parameter that lets you specify a different subscription than the current context.
If you can't verify the properties, sign in to the [Microsoft Azure portal](https://portal.azure.com). Find the resource you're trying to use and examine the resource name, resource group, and subscription.
azure-resource-manager Error Policy Requestdisallowedbypolicy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/troubleshooting/error-policy-requestdisallowedbypolicy.md
You can use the name of a policy assignment or policy definition to get more det
# [Azure CLI](#tab/azure-cli)
-To get more information about a policy definition, use [az policy definition show](/cli/azure/policy/definition#az_policy_definition_show).
+To get more information about a policy definition, use [az policy definition show](/cli/azure/policy/definition#az-policy-definition-show).
```azurecli defname=<policy definition name> az policy definition show --name $defname ```
-To get more information about a policy assignment, use [az policy assignment show](/cli/azure/policy/assignment#az_policy_assignment_show).
+To get more information about a policy assignment, use [az policy assignment show](/cli/azure/policy/assignment#az-policy-assignment-show).
```azurecli rg=<resource group name>
azure-resource-manager Error Register Resource Provider https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/troubleshooting/error-register-resource-provider.md
You receive these errors for one of these reasons:
You can use Azure CLI to get information about a resource provider's registration status and register a resource provider.
-Use [az provider list](/cli/azure/provider#az_provider_list) to display the registration status for your subscription's resource providers. The examples use the `--output table` parameter to filter the output for readability. You can omit the parameter to see all properties.
+Use [az provider list](/cli/azure/provider#az-provider-list) to display the registration status for your subscription's resource providers. The examples use the `--output table` parameter to filter the output for readability. You can omit the parameter to see all properties.
The following command lists all the subscription's resource providers and whether they're `Registered` or `NotRegistered`.
Get the registration status for a specific resource provider:
az provider list --query "[?namespace=='Microsoft.Compute']" --output table ```
-To register a resource provider, use the [az provider register](/cli/azure/provider#az_provider_register) command, and specify the _namespace_ to register.
+To register a resource provider, use the [az provider register](/cli/azure/provider#az-provider-register) command, and specify the _namespace_ to register.
```azurecli-interactive az provider register --namespace Microsoft.Cdn ```
-To get a resource type's supported locations, use [az provider show](/cli/azure/provider#az_provider_show):
+To get a resource type's supported locations, use [az provider show](/cli/azure/provider#az-provider-show):
```azurecli-interactive az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].locations"
azure-resource-manager Error Resource Quota https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/troubleshooting/error-resource-quota.md
For quota information, see [Azure subscription and service limits, quotas, and c
# [Azure CLI](#tab/azure-cli)
-For Azure CLI, use the [az vm list-usage](/cli/azure/vm#az_vm_list_usage) command to find virtual machine quotas.
+For Azure CLI, use the [az vm list-usage](/cli/azure/vm#az-vm-list-usage) command to find virtual machine quotas.
```azurecli az vm list-usage --location "West US" --output table
azure-resource-manager Error Sku Not Available https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/troubleshooting/error-sku-not-available.md
# Resolve errors for SKU not available
-This article describes how to resolve errors when a SKU isn't available in an Azure subscription's region or availability zones. Examples of resource SKUs are virtual machine (VM) size or storage account types. Errors occur during deployments with an Azure Resource Manager template (ARM template) or Bicep file. The error also occurs with commands like [New-AzVM](/powershell/module/az.compute/new-azvm) or [az vm create](/cli/azure/vm#az_vm_create) that specify a **size** parameter for a SKU that's not available.
+This article describes how to resolve errors when a SKU isn't available in an Azure subscription's region or availability zones. Examples of resource SKUs are virtual machine (VM) size or storage account types. Errors occur during deployments with an Azure Resource Manager template (ARM template) or Bicep file. The error also occurs with commands like [New-AzVM](/powershell/module/az.compute/new-azvm) or [az vm create](/cli/azure/vm#az-vm-create) that specify a **size** parameter for a SKU that's not available.
## Symptom
If a SKU isn't available for your subscription in a location or zone that meets
# [Azure CLI](#tab/azure-cli)
-To determine which SKUs are available in a location or zone, use the [az vm list-skus](/cli/azure/vm#az_vm_list_skus) command.
+To determine which SKUs are available in a location or zone, use the [az vm list-skus](/cli/azure/vm#az-vm-list-skus) command.
```azurecli-interactive az vm list-skus --location centralus --size Standard_D --all --output table
To determine which SKUs are available in a **Region**, use the [portal](https://
To determine which SKUs are available in a location, use the [Resource Skus - List](/rest/api/compute/resourceskus/list) operation.
-You can use [az rest](/cli/azure/reference-index#az_rest) to run the list operation. Replace `<subscription ID>` including the angle brackets with your subscription ID. The output is a large data set that you can save to a JSON file.
+You can use [az rest](/cli/azure/reference-index#az-rest) to run the list operation. Replace `<subscription ID>` including the angle brackets with your subscription ID. The output is a large data set that you can save to a JSON file.
```azurecli az rest --method get --uri https://management.azure.com/subscriptions/<subscription ID>/providers/Microsoft.Compute/skus?api-version=2021-07-01 --output-file .\sku-list.json
azure-resource-manager Find Error Code https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/troubleshooting/find-error-code.md
There are more PowerShell cmdlets available to validate deployment templates:
# [Azure CLI](#tab/azure-cli)
-To validate an ARM template before deployment, run [az deployment group validate](/cli/azure/deployment/group#az_deployment_group_validate).
+To validate an ARM template before deployment, run [az deployment group validate](/cli/azure/deployment/group#az-deployment-group-validate).
```azurecli az deployment group validate \
az deployment group validate \
There are more Azure CLI commands available to validate deployment templates: -- [az deployment sub validate](/cli/azure/deployment/sub#az_deployment_sub_validate)-- [az deployment mg validate](/cli/azure/deployment/mg#az_deployment_mg_validate)-- [az deployment tenant validate](/cli/azure/deployment/tenant#az_deployment_tenant_validate)
+- [az deployment sub validate](/cli/azure/deployment/sub#az-deployment-sub-validate)
+- [az deployment mg validate](/cli/azure/deployment/mg#az-deployment-mg-validate)
+- [az deployment tenant validate](/cli/azure/deployment/tenant#az-deployment-tenant-validate)
Get-AzResourceGroupDeployment `
# [Azure CLI](#tab/azure-cli)
-To see a deployment's operations messages with Azure CLI, use [az deployment operation group list](/cli/azure/deployment/operation/group#az_deployment_operation_group_list).
+To see a deployment's operations messages with Azure CLI, use [az deployment operation group list](/cli/azure/deployment/operation/group#az-deployment-operation-group-list).
To show all the operations for a deployment:
az deployment operation group list \
--query "[*].properties.statusCode" ```
-To get a deployment's result, use [az deployment group show](/cli/azure/deployment/group#az_deployment_group_show).
+To get a deployment's result, use [az deployment group show](/cli/azure/deployment/group#az-deployment-group-show).
```azurecli az deployment group show \
azure-resource-manager Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-resource-manager/troubleshooting/overview.md
To follow best practices for developing your templates, use either:
* [Bicep linter](../bicep/linter.md) * [ARM template test toolkit](../templates/test-toolkit.md)
-When you deploy, you can find the cause of errors from the Azure portal in a resource group's **Deployments** or **Activity log**. If you're using Azure PowerShell, use commands like [Get-AzResourceGroupDeploymentOperation](/powershell/module/az.resources/get-azresourcegroupdeploymentoperation) and [Get-AzActivityLog](/powershell/module/az.monitor/get-azactivitylog). For Azure CLI, use commands like [az deployment operation group](/cli/azure/deployment/operation/group) and [az monitor activity-log list](/cli/azure/monitor/activity-log#az_monitor_activity_log_list).
+When you deploy, you can find the cause of errors from the Azure portal in a resource group's **Deployments** or **Activity log**. If you're using Azure PowerShell, use commands like [Get-AzResourceGroupDeploymentOperation](/powershell/module/az.resources/get-azresourcegroupdeploymentoperation) and [Get-AzActivityLog](/powershell/module/az.monitor/get-azactivitylog). For Azure CLI, use commands like [az deployment operation group](/cli/azure/deployment/operation/group) and [az monitor activity-log list](/cli/azure/monitor/activity-log#az-monitor-activity-log-list).
## Next steps
azure-signalr Availability Zones https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-signalr/availability-zones.md
Title: Availability zones support in Azure SignalR Service
-description: Availability zones support in Azure SignalR Service
+description: Azure availability zones and zone redundancy in Azure SignalR Service
Previously updated : 02/15/2022 Last updated : 03/22/2022
-# Availability zones support in Azure SignalR Service
-
-[Availability zones](../availability-zones/az-overview.md#availability-zones) are unique physical locations within an Azure region. To ensure resiliency, there's a minimum of three separate zones in all enabled regions. Each zone has one or more datacenters equipped with independent power, cooling, and networking.
-## Zone redundancy
+# Availability zones support in Azure SignalR Service
-Azure SignalR Service leverages availability zones in a Zone Redundant manner. That means, the service doesn't spin to a specific zone. Instead workloads are evenly distributed across multiple zones in a region. When a single zone fails, traffic are automatically routed to other zones, keeping the service available.
+Azure SignalR Service uses [Azure availability zones](../availability-zones/az-overview.md#availability-zones) to provide high availability and fault tolerance within an Azure region.
-## Region support
+> [!NOTE]
+> Zone redundancy is a Premium tier feature. It is implicitly enabled when you create or upgrade to a Premium tier resource. Standard tier resources can be upgraded to Premium tier without downtime.
-Not all Azure regions support availability zones. For the regions list, see [regions that support availability zones](../availability-zones/az-region.md).
+## Zone redundancy
-## Tier support
+Zone-enabled Azure regions (not all [regions support availability zones](../availability-zones/az-region.md)) have a minimum of three availability zones. A zone is one or more datacenters, each with its own independent power and network connections. All the zones in a region are connected by a dedicated low-latency regional network. If a zone fails, Azure SignalR Service traffic running on the affected zone is routed to other zones in the region.
-Zone redundancy is a Premium tier feature. It is implicitly enabled when you create or upgrade to a Premium tier resource. Standard tier resources can be upgraded to Premium tier without downtime.
+Azure SignalR Service uses availability zones in a *zone-redundant* manner. Zone redundancy means the service isn't constrained to run in a specific zone. Instead, total service is evenly distributed across multiple zones in a region. Zone redundancy reduces the potential for data loss and service interruption if one of the zones fails.
## Next steps * Learn more about [regions that support availability zones](../availability-zones/az-region.md).
-* Learn more about building for [reliability](/azure/architecture/framework/resiliency/app-design) in Azure.
+* Learn more about designing for [reliability](/azure/architecture/framework/resiliency/app-design) in Azure.
azure-signalr Signalr Cli Create Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-signalr/scripts/signalr-cli-create-service.md
Each command in the table links to command specific documentation. This script u
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az signalr create](/cli/azure/signalr#az_signalr_create) | Creates an Azure SignalR Service resource. |
-| [az signalr key list](/cli/azure/signalr/key#az_signalr_key_list) | List the keys, which will be used by your application when pushing real-time content updates with SignalR. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az signalr create](/cli/azure/signalr#az-signalr-create) | Creates an Azure SignalR Service resource. |
+| [az signalr key list](/cli/azure/signalr/key#az-signalr-key-list) | List the keys, which will be used by your application when pushing real-time content updates with SignalR. |
## Next steps
azure-signalr Signalr Cli Create With App Service Github Oauth https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-signalr/scripts/signalr-cli-create-with-app-service-github-oauth.md
Each command in the table links to command specific documentation. This script u
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az signalr create](/cli/azure/signalr#az_signalr_create) | Creates an Azure SignalR Service resource. |
-| [az signalr key list](/cli/azure/signalr/key#az_signalr_key_list) | List the keys, which will be used by your application when pushing real-time content updates with SignalR. |
-| [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an Azure App Service Plan for hosting web apps. |
-| [az webapp create](/cli/azure/webapp#az_webapp_create) | Creates an Azure Web app using the App Service hosting plan. |
-| [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) | Adds new app settings for the web app. These app settings are used to store the SignalR connection string and GitHub OAuth app secrets. |
-| [az webapp deployment user set](/cli/azure/webapp/deployment/user#az_webapp_deployment_user_set) | Update deployment credentials. |
-| [az webapp deployment source config-local-git](/cli/azure/webapp/deployment/source#az_webapp_deployment_source_config_local_git) | Get a URL for a git repository endpoint to clone and push to for web app deployment. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az signalr create](/cli/azure/signalr#az-signalr-create) | Creates an Azure SignalR Service resource. |
+| [az signalr key list](/cli/azure/signalr/key#az-signalr-key-list) | List the keys, which will be used by your application when pushing real-time content updates with SignalR. |
+| [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an Azure App Service Plan for hosting web apps. |
+| [az webapp create](/cli/azure/webapp#az-webapp-create) | Creates an Azure Web app using the App Service hosting plan. |
+| [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) | Adds new app settings for the web app. These app settings are used to store the SignalR connection string and GitHub OAuth app secrets. |
+| [az webapp deployment user set](/cli/azure/webapp/deployment/user#az-webapp-deployment-user-set) | Update deployment credentials. |
+| [az webapp deployment source config-local-git](/cli/azure/webapp/deployment/source#az-webapp-deployment-source-config-local-git) | Get a URL for a git repository endpoint to clone and push to for web app deployment. |
## Next steps
azure-signalr Signalr Cli Create With App Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-signalr/scripts/signalr-cli-create-with-app-service.md
Each command in the table links to command specific documentation. This script u
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az signalr create](/cli/azure/signalr#az_signalr_create) | Creates an Azure SignalR Service resource. |
-| [az signalr key list](/cli/azure/signalr/key#az_signalr_key_list) | List the keys, which will be used by your application when pushing real-time content updates with SignalR. |
-| [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create) | Creates an Azure App Service Plan for hosting web apps. |
-| [az webapp create](/cli/azure/webapp#az_webapp_create) | Creates an Azure Web app using the App Service hosting plan. |
-| [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) | Adds a new app setting for the web app. This app setting is used to store the SignalR connection string. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az signalr create](/cli/azure/signalr#az-signalr-create) | Creates an Azure SignalR Service resource. |
+| [az signalr key list](/cli/azure/signalr/key#az-signalr-key-list) | List the keys, which will be used by your application when pushing real-time content updates with SignalR. |
+| [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create) | Creates an Azure App Service Plan for hosting web apps. |
+| [az webapp create](/cli/azure/webapp#az-webapp-create) | Creates an Azure Web app using the App Service hosting plan. |
+| [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) | Adds a new app setting for the web app. This app setting is used to store the SignalR connection string. |
## Next steps
azure-signalr Signalr Howto Azure Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-signalr/signalr-howto-azure-policy.md
When a resource is non-compliant, there are many possible reasons. To determine
### Policy compliance in the Azure CLI
-You can also use the Azure CLI to get compliance data. For example, use the [az policy assignment list](/cli/azure/policy/assignment#az_policy_assignment_list) command in the CLI to get the policy IDs of the Azure SignalR Service policies that are applied:
+You can also use the Azure CLI to get compliance data. For example, use the [az policy assignment list](/cli/azure/policy/assignment#az-policy-assignment-list) command in the CLI to get the policy IDs of the Azure SignalR Service policies that are applied:
```azurecli az policy assignment list --query "[?contains(displayName,'SignalR')].{name:displayName, ID:id}" --output table
Name
[Preview]: Azure SignalR Service should use private links /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Authorization/policyAssignments/<assignmentId> ```
-Then run [az policy state list](/cli/azure/policy/state#az_policy_state_list) to return the JSON-formatted compliance state for all resources under a specific resource group:
+Then run [az policy state list](/cli/azure/policy/state#az-policy-state-list) to return the JSON-formatted compliance state for all resources under a specific resource group:
```azurecli az policy state list --g <resourceGroup> ```
-Or run [az policy state list](/cli/azure/policy/state#az_policy_state_list) to return the JSON-formatted compliance state of a specific SignalR resource:
+Or run [az policy state list](/cli/azure/policy/state#az-policy-state-list) to return the JSON-formatted compliance state of a specific SignalR resource:
```azurecli az policy state list \
azure-signalr Signalr Howto Key Rotation https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-signalr/signalr-howto-key-rotation.md
For security reasons and compliance requirements, routinely rotate your access k
![Regenerate Keys](media/signalr-howto-key-rotation/regenerate-keys.png)
-You also can regenerate keys by using the [Azure CLI](/cli/azure/signalr/key#az_signalr_key_renew).
+You also can regenerate keys by using the [Azure CLI](/cli/azure/signalr/key#az-signalr-key-renew).
## Update configurations with new connection strings
azure-sql Active Geo Replication Configure Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/active-geo-replication-configure-portal.md
Select the database you want to set up for geo-replication. You'll need the foll
You can select any region for your secondary server, but we recommend the [paired region](../../availability-zones/cross-region-replication-azure.md).
-Run the [az sql db replica create](/cli/azure/sql/db/replica#az_sql_db_replica_create) command.
+Run the [az sql db replica create](/cli/azure/sql/db/replica#az-sql-db-replica-create) command.
```azurecli az sql db replica create --resource-group ContosoHotel --server contosoeast --name guestlist --partner-server contosowest --family Gen5 --capacity 2 --secondary-type Geo
Optionally, you can add a secondary database to an elastic pool. To create the s
The secondary database is created and the deployment process begins.
-When the deployment is complete, you can check the status of the secondary database by running the [az sql db replica list-links](/cli/azure/sql/db/replica#az_sql_db_replica_list-links) command:
+When the deployment is complete, you can check the status of the secondary database by running the [az sql db replica list-links](/cli/azure/sql/db/replica#az-sql-db-replica-list-links) command:
```azurecli az sql db replica list-links --name guestlist --resource-group ContosoHotel --server contosowest
The secondary database can be switched to become the primary.
# [Azure CLI](#tab/azure-cli)
-Run the [az sql db replica set-primary](/cli/azure/sql/db/replica#az_sql_db_replica_set-primary) command.
+Run the [az sql db replica set-primary](/cli/azure/sql/db/replica#az-sql-db-replica-set-primary) command.
```azurecli az sql db replica set-primary --name guestlist --resource-group ContosoHotel --server contosowest
This operation permanently stops the replication to the secondary database, and
# [Azure CLI](#tab/azure-cli)
-Run the [az sql db replica delete-link](/cli/azure/sql/db/replica#az_sql_db_replica_delete-link) command.
+Run the [az sql db replica delete-link](/cli/azure/sql/db/replica#az-sql-db-replica-delete-link) command.
```azurecli az sql db replica delete-link --name guestlist --resource-group ContosoHotel --server contosoeast --partner-server contosowest
azure-sql Alerts Insights Configure Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/alerts-insights-configure-portal.md
ms.devlang: --++ Last updated : "03/23/2022" Previously updated : 05/04/2020 # Create alerts for Azure SQL Database and Azure Synapse Analytics using the Azure portal [!INCLUDE[appliesto-sqldb-asa](../includes/appliesto-sqldb-asa.md)]
azure-sql Application Authentication Get Client Id Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/application-authentication-get-client-id-keys.md
$roleassignment = az role assignment create --role "Contributor" --scope /subscr
# output the values we need for our C# application to successfully authenticate Write-Output "Copy these values into the C# sample app"
-Write-Output "_subscriptionId:" (az account show --query "id")
+Write-Output "-subscriptionId:" (az account show --query "id")
Write-Output "_tenantId:" (az account show --query "tenantId") Write-Output "_applicationId:" $azureAdApplication.ApplicationId.Guid Write-Output "_applicationSecret:" $secret
azure-sql Audit Log Format https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/audit-log-format.md
--++ Last updated : "03/23/2022" Previously updated : 06/03/2020 # SQL Database audit log format
azure-sql Audit Write Storage Account Behind Vnet Firewall https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/audit-write-storage-account-behind-vnet-firewall.md
--++ Last updated : "03/23/2022" Previously updated : 06/17/2020 # Write audit to a storage account behind VNet and firewall
azure-sql Auditing Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/auditing-overview.md
--++ Last updated : "03/23/2022" Previously updated : 08/25/2021 # Auditing for Azure SQL Database and Azure Synapse Analytics
azure-sql Authentication Aad Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/authentication-aad-configure.md
You can also provision an Azure AD admin for the SQL Managed Instance by calling
| Command | Description | | | |
-|[az sql mi ad-admin create](/cli/azure/sql/mi/ad-admin#az_sql_mi_ad_admin_create) | Provisions an Azure Active Directory administrator for the SQL Managed Instance (must be from the current subscription). |
-|[az sql mi ad-admin delete](/cli/azure/sql/mi/ad-admin#az_sql_mi_ad_admin_delete) | Removes an Azure Active Directory administrator for the SQL Managed Instance. |
-|[az sql mi ad-admin list](/cli/azure/sql/mi/ad-admin#az_sql_mi_ad_admin_list) | Returns information about an Azure Active Directory administrator currently configured for the SQL Managed Instance. |
-|[az sql mi ad-admin update](/cli/azure/sql/mi/ad-admin#az_sql_mi_ad_admin_update) | Updates the Active Directory administrator for the SQL Managed Instance. |
+|[az sql mi ad-admin create](/cli/azure/sql/mi/ad-admin#az-sql-mi-ad-admin-create) | Provisions an Azure Active Directory administrator for the SQL Managed Instance (must be from the current subscription). |
+|[az sql mi ad-admin delete](/cli/azure/sql/mi/ad-admin#az-sql-mi-ad-admin-delete) | Removes an Azure Active Directory administrator for the SQL Managed Instance. |
+|[az sql mi ad-admin list](/cli/azure/sql/mi/ad-admin#az-sql-mi-ad-admin-list) | Returns information about an Azure Active Directory administrator currently configured for the SQL Managed Instance. |
+|[az sql mi ad-admin update](/cli/azure/sql/mi/ad-admin#az-sql-mi-ad-admin-update) | Updates the Active Directory administrator for the SQL Managed Instance. |
For more information about CLI commands, see [az sql mi](/cli/azure/sql/mi).
You can provision an Azure AD admin by calling the following CLI commands:
| Command | Description | | | |
-|[az sql server ad-admin create](/cli/azure/sql/server/ad-admin#az_sql_server_ad_admin_create) | Provisions an Azure Active Directory administrator for the server hosting SQL Database or Azure Synapse. (Must be from the current subscription) |
-|[az sql server ad-admin delete](/cli/azure/sql/server/ad-admin#az_sql_server_ad_admin_delete) | Removes an Azure Active Directory administrator for the server hosting SQL Database or Azure Synapse. |
-|[az sql server ad-admin list](/cli/azure/sql/server/ad-admin#az_sql_server_ad_admin_list) | Returns information about an Azure Active Directory administrator currently configured for the server hosting SQL Database or Azure Synapse. |
-|[az sql server ad-admin update](/cli/azure/sql/server/ad-admin#az_sql_server_ad_admin_update) | Updates the Active Directory administrator for the server hosting SQL Database or Azure Synapse. |
+|[az sql server ad-admin create](/cli/azure/sql/server/ad-admin#az-sql-server-ad-admin-create) | Provisions an Azure Active Directory administrator for the server hosting SQL Database or Azure Synapse. (Must be from the current subscription) |
+|[az sql server ad-admin delete](/cli/azure/sql/server/ad-admin#az-sql-server-ad-admin-delete) | Removes an Azure Active Directory administrator for the server hosting SQL Database or Azure Synapse. |
+|[az sql server ad-admin list](/cli/azure/sql/server/ad-admin#az-sql-server-ad-admin-list) | Returns information about an Azure Active Directory administrator currently configured for the server hosting SQL Database or Azure Synapse. |
+|[az sql server ad-admin update](/cli/azure/sql/server/ad-admin#az-sql-server-ad-admin-update) | Updates the Active Directory administrator for the server hosting SQL Database or Azure Synapse. |
For more information about CLI commands, see [az sql server](/cli/azure/sql/server).
azure-sql Authentication Azure Ad Only Authentication Create Server https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/authentication-azure-ad-only-authentication-create-server.md
Replace the following values in the example:
az sql server create --enable-ad-only-auth --external-admin-principal-type User --external-admin-name <AzureADAccount> --external-admin-sid <AzureADAccountSID> -g <ResourceGroupName> -n <ServerName> ```
-For more information, see [az sql server create](/cli/azure/sql/server#az_sql_server_create).
+For more information, see [az sql server create](/cli/azure/sql/server#az-sql-server-create).
To check the server status after creation, see the following command:
Replace the following values in the example:
az sql mi create --enable-ad-only-auth --external-admin-principal-type User --external-admin-name <AzureADAccount> --external-admin-sid <AzureADAccountSID> -g <ResourceGroupName> -n <managedinstancename> --subnet /subscriptions/<Subscription ID>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Network/virtualNetworks/<VNetName>/subnets/<SubnetName> ```
-For more information, see [az sql mi create](/cli/azure/sql/mi#az_sql_mi_create).
+For more information, see [az sql mi create](/cli/azure/sql/mi#az-sql-mi-create).
# [PowerShell](#tab/azure-powershell)
azure-sql Authentication Azure Ad User Assigned Managed Identity Create Server https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/authentication-azure-ad-user-assigned-managed-identity-create-server.md
Replace the following values in the example:
az sql server create --assign-identity --identity-type UserAssigned --user-assigned-identity-id /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity> --primary-user-assigned-identity-id /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<primaryIdentity> --enable-ad-only-auth --external-admin-principal-type User --external-admin-name <AzureADAccount> --external-admin-sid <AzureADAccountSID> -g <ResourceGroupName> -n <ServerName> -l <Location> ```
-For more information, see [az sql server create](/cli/azure/sql/server#az_sql_server_create).
+For more information, see [az sql server create](/cli/azure/sql/server#az-sql-server-create).
> [!NOTE] > The above example provisions a server with only a user-assigned managed identity. You could set the `--identity-type` to be `UserAssigned,SystemAssigned` if you wanted both types of managed identities to be created with the server.
azure-sql Authentication Azure Ad User Assigned Managed Identity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/authentication-azure-ad-user-assigned-managed-identity.md
The Azure CLI 2.26.0 (or higher) is required to run these commands with UMI.
#### Azure SQL Database -- To provision a new server with UMI, use the [az sql server create](/cli/azure/sql/server#az_sql_server_create) command.-- To obtain the UMI server information, use the [az sql server show](/cli/azure/sql/server#az_sql_server_show) command. -- To update the UMI server setting, use the [az sql server update](/cli/azure/sql/server#az_sql_server_update) command.
+- To provision a new server with UMI, use the [az sql server create](/cli/azure/sql/server#az-sql-server-create) command.
+- To obtain the UMI server information, use the [az sql server show](/cli/azure/sql/server#az-sql-server-show) command.
+- To update the UMI server setting, use the [az sql server update](/cli/azure/sql/server#az-sql-server-update) command.
#### Azure SQL Managed Instance -- To provision a new managed instance with UMI, use the [az sql mi create](/cli/azure/sql/mi#az_sql_mi_create) command.-- To obtain the UMI managed instance information, use the [az sql server show](/cli/azure/sql/mi#az_sql_mi_show) command.-- To update the UMI managed instance setting, use the [az sql mi update](/cli/azure/sql/mi#az_sql_mi_update) command.
+- To provision a new managed instance with UMI, use the [az sql mi create](/cli/azure/sql/mi#az-sql-mi-create) command.
+- To obtain the UMI managed instance information, use the [az sql server show](/cli/azure/sql/mi#az-sql-mi-show) command.
+- To update the UMI managed instance setting, use the [az sql mi update](/cli/azure/sql/mi#az-sql-mi-update) command.
### Create or set a managed identity using PowerShell
azure-sql Automated Backups Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/automated-backups-overview.md
az sql db create \
--tier Hyperscale \ --backup-storage-redundancy Zone ```
-For more information, see [az sql db create](/cli/azure/sql/db#az_sql_db_create) and [az sql db update](/cli/azure/sql/db#az_sql_db_update).
+For more information, see [az sql db create](/cli/azure/sql/db#az-sql-db-create) and [az sql db update](/cli/azure/sql/db#az-sql-db-update).
Except for Hyperscale and Basic tier databases, you can update the backup storage redundancy setting for an existing database with the `--backup-storage-redundancy` parameter and the `az sql db update` command. It may take up to 48 hours for the changes to be applied on the database. Switching from geo-redundant backup storage to local or zone redundant storage disables geo-restore.
az sql db copy \
--backup-storage-redundancy Zone ```
-For syntax details, see [az sql db copy](/cli/azure/sql/db#az_sql_db_copy). For an overview of database copy, visit [Copy a transactionally consistent copy of a database in Azure SQL Database](database-copy.md).
+For syntax details, see [az sql db copy](/cli/azure/sql/db#az-sql-db-copy). For an overview of database copy, visit [Copy a transactionally consistent copy of a database in Azure SQL Database](database-copy.md).
#### [SQL Managed Instance](#tab/managed-instance)
azure-sql Block Crud Tsql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/block-crud-tsql.md
This feature allows Azure administrators to block the creation or modification o
To block creation or modification of resources through T-SQL and enforce resource management through an Azure Resource Manager template (ARM template) for a given subscription, the subscription level preview features in Azure portal can be used. This is particularly useful when you are using [Azure Policies](../../governance/policy/overview.md) to enforce organizational standards through ARM templates. Since T-SQL does not adhere to the Azure Policies, a block on T-SQL create or modify operations can be applied. The syntax blocked includes CRUD (create, update, delete) statements for databases in Azure SQL, specifically `CREATE DATABASE`, `ALTER DATABASE`, and `DROP DATABASE` statements.
-T-SQL CRUD operations can be blocked via Azure portal, [PowerShell](/powershell/module/az.resources/register-azproviderfeature), or [Azure CLI](/cli/azure/feature#az_feature_register).
+T-SQL CRUD operations can be blocked via Azure portal, [PowerShell](/powershell/module/az.resources/register-azproviderfeature), or [Azure CLI](/cli/azure/feature#az-feature-register).
## Permissions
azure-sql Connect Github Actions Sql Db https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/connect-github-actions-sql-db.md
The file has two sections:
## Generate deployment credentials
-You can create a [service principal](../../active-directory/develop/app-objects-and-service-principals.md) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You can create a [service principal](../../active-directory/develop/app-objects-and-service-principals.md) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
Replace the placeholders `server-name` with the name of your SQL server hosted on Azure. Replace the `subscription-id` and `resource-group` with the subscription ID and resource group connected to your SQL server.
azure-sql Database Copy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/database-copy.md
az sql db copy --dest-name "CopyOfMySampleDatabase" --dest-resource-group "myRes
--name "<databaseName>" --resource-group "<resourceGroup>" --server $sourceserver ```
-The database copy is an asynchronous operation but the target database is created immediately after the request is accepted. If you need to cancel the copy operation while still in progress, drop the the target database using the [az sql db delete](/cli/azure/sql/db#az_sql_db_delete) command.
+The database copy is an asynchronous operation but the target database is created immediately after the request is accepted. If you need to cancel the copy operation while still in progress, drop the the target database using the [az sql db delete](/cli/azure/sql/db#az-sql-db-delete) command.
* * *
azure-sql Database Export https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/database-export.md
When you need to export a database for archiving or for moving to another platfo
- Cease all read and write activity during the export. - Use a [clustered index](/sql/relational-databases/indexes/clustered-and-nonclustered-indexes-described) with non-null values on all large tables. Without clustered indexes, an export may fail if it takes longer than 6-12 hours. This is because the export service needs to complete a table scan to try to export entire table. A good way to determine if your tables are optimized for export is to run **DBCC SHOW_STATISTICS** and make sure that the *RANGE_HI_KEY* is not null and its value has good distribution. For details, see [DBCC SHOW_STATISTICS](/sql/t-sql/database-console-commands/dbcc-show-statistics-transact-sql). - [Azure SQL Managed Instance](../managed-instance/sql-managed-instance-paas-overview.md) does not currently support exporting a database to a BACPAC file using the Azure portal or Azure PowerShell. To export a managed instance into a BACPAC file, use SQL Server Management Studio (SSMS) or [SQLPackage](/sql/tools/sqlpackage).-- For databases in the [Hyperscale service tier](service-tier-hyperscale.md), BACPAC export/import from Azure portal, from PowerShell using [New-AzSqlDatabaseExport](/powershell/module/az.sql/new-azsqldatabaseexport) or [New-AzSqlDatabaseImport](/powershell/module/az.sql/new-azsqldatabaseimport), from Azure CLI using [az sql db export](/cli/azure/sql/db#az_sql_db_export) and [az sql db import](/cli/azure/sql/db#az_sql_db_import), and from [REST API](/rest/api/sql/) is not supported. BACPAC import/export for smaller Hyperscale databases (up to 200 GB) is supported using SSMS and [SQLPackage](/sql/tools/sqlpackage) version 18.4 and later. For larger databases, BACPAC export/import may take a long time, and may fail for various reasons.
+- For databases in the [Hyperscale service tier](service-tier-hyperscale.md), BACPAC export/import from Azure portal, from PowerShell using [New-AzSqlDatabaseExport](/powershell/module/az.sql/new-azsqldatabaseexport) or [New-AzSqlDatabaseImport](/powershell/module/az.sql/new-azsqldatabaseimport), from Azure CLI using [az sql db export](/cli/azure/sql/db#az-sql-db-export) and [az sql db import](/cli/azure/sql/db#az-sql-db-import), and from [REST API](/rest/api/sql/) is not supported. BACPAC import/export for smaller Hyperscale databases (up to 200 GB) is supported using SSMS and [SQLPackage](/sql/tools/sqlpackage) version 18.4 and later. For larger databases, BACPAC export/import may take a long time, and may fail for various reasons.
> [!NOTE] > BACPACs are not intended to be used for backup and restore operations. Azure automatically creates backups for every user database. For details, see [business continuity overview](business-continuity-high-availability-disaster-recover-hadr-overview.md) and [SQL Database backups](automated-backups-overview.md).
azure-sql Database Import https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/database-import.md
$importStatus
# [Azure CLI](#tab/azure-cli)
-Use the [az-sql-db-import](/cli/azure/sql/db#az_sql_db_import) command to submit an import database request to Azure. Depending on database size, the import may take some time to complete. The DTU based provisioning model supports select database max size values for each tier. When importing a database [use one of these supported values](/sql/t-sql/statements/create-database-transact-sql).
+Use the [az-sql-db-import](/cli/azure/sql/db#az-sql-db-import) command to submit an import database request to Azure. Depending on database size, the import may take some time to complete. The DTU based provisioning model supports select database max size values for each tier. When importing a database [use one of these supported values](/sql/t-sql/statements/create-database-transact-sql).
```azurecli # get the storage account key
azure-sql Elastic Pool Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/elastic-pool-manage.md
To create and manage SQL Database elastic pools with [Azure CLI](/cli/azure), us
| Cmdlet | Description | | | |
-|[az sql elastic-pool create](/cli/azure/sql/elastic-pool#az_sql_elastic_pool_create)|Creates an elastic pool.|
-|[az sql elastic-pool list](/cli/azure/sql/elastic-pool#az_sql_elastic_pool_list)|Returns a list of elastic pools in a server.|
-|[az sql elastic-pool list-dbs](/cli/azure/sql/elastic-pool#az_sql_elastic_pool_list_dbs)|Returns a list of databases in an elastic pool.|
-|[az sql elastic-pool list-editions](/cli/azure/sql/elastic-pool#az_sql_elastic_pool_list_editions)|Also includes available pool DTU settings, storage limits, and per database settings. In order to reduce verbosity, additional storage limits and per database settings are hidden by default.|
-|[az sql elastic-pool update](/cli/azure/sql/elastic-pool#az_sql_elastic_pool_update)|Updates an elastic pool.|
-|[az sql elastic-pool delete](/cli/azure/sql/elastic-pool#az_sql_elastic_pool_delete)|Deletes the elastic pool.|
+|[az sql elastic-pool create](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-create)|Creates an elastic pool.|
+|[az sql elastic-pool list](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-list)|Returns a list of elastic pools in a server.|
+|[az sql elastic-pool list-dbs](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-list-dbs)|Returns a list of databases in an elastic pool.|
+|[az sql elastic-pool list-editions](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-list-editions)|Also includes available pool DTU settings, storage limits, and per database settings. In order to reduce verbosity, additional storage limits and per database settings are hidden by default.|
+|[az sql elastic-pool update](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-update)|Updates an elastic pool.|
+|[az sql elastic-pool delete](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-delete)|Deletes the elastic pool.|
## Transact-SQL (T-SQL)
azure-sql Elastic Pool Scale https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/elastic-pool-scale.md
After initially picking the number of vCores or eDTUs, you can scale an elastic
* [Transact-SQL](/sql/t-sql/statements/alter-database-transact-sql#overview-sql-database) * [Azure portal](elastic-pool-manage.md#azure-portal) * [PowerShell](/powershell/module/az.sql/Get-AzSqlElasticPool)
-* [Azure CLI](/cli/azure/sql/elastic-pool#az_sql_elastic_pool_update)
+* [Azure CLI](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-update)
* [REST API](/rest/api/sql/elasticpools/update)
You are billed for each hour a database exists using the highest service tier +
### DTU-based purchasing model - The eDTU price for an elastic pool includes a certain amount of storage at no additional cost. Extra storage beyond the included amount can be provisioned for an additional cost up to the max size limit in increments of 250 GB up to 1 TB, and then in increments of 256 GB beyond 1 TB. For included storage amounts and max size limits, see [Resources limits for elastic pools using the DTU purchasing model](resource-limits-dtu-elastic-pools.md#elastic-pool-storage-sizes-and-compute-sizes) or [Resource limits for elastic pools using the vCore purchasing model](resource-limits-vcore-elastic-pools.md).-- Extra storage for an elastic pool can be provisioned by increasing its max size using the [Azure portal](elastic-pool-manage.md#azure-portal), [PowerShell](/powershell/module/az.sql/Get-AzSqlElasticPool), the [Azure CLI](/cli/azure/sql/elastic-pool#az_sql_elastic_pool_update), or the [REST API](/rest/api/sql/elasticpools/update).
+- Extra storage for an elastic pool can be provisioned by increasing its max size using the [Azure portal](elastic-pool-manage.md#azure-portal), [PowerShell](/powershell/module/az.sql/Get-AzSqlElasticPool), the [Azure CLI](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-update), or the [REST API](/rest/api/sql/elasticpools/update).
- The price of extra storage for an elastic pool is the extra storage amount multiplied by the extra storage unit price of the service tier. For details on the price of extra storage, see [SQL Database pricing](https://azure.microsoft.com/pricing/details/sql-database/). > [!IMPORTANT]
azure-sql Failover Group Add Elastic Pool Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/failover-group-add-elastic-pool-tutorial.md
Use the [az sql elastic-pool create](/cli/azure/sql/elastic-pool#az-sql-elastic-
### Add database to elastic pool
-Use the [az sql db update](/cli/azure/sql/db#az_sql_db_update) command to add a database to an elastic pool.
+Use the [az sql db update](/cli/azure/sql/db#az-sql-db-update) command to add a database to an elastic pool.
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/failover-groups/add-elastic-pool-to-failover-group-az-cli.sh" id="AddDatabaseToPool":::
This portion of the tutorial uses the following Azure CLI cmdlets:
| Command | Notes | ||| | [az sql elastic-pool create](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-create) | Creates an elastic pool. |
-| [az sql db update](/cli/azure/sql/db#az_sql_db_update) | Updates a database|
+| [az sql db update](/cli/azure/sql/db#az-sql-db-update) | Updates a database|
Change the failover location as appropriate for your environment.
### Create secondary server
-Use the [az sql server create](/cli/azure/sql/server#az_sql_server_create) command to create a secondary server.
+Use the [az sql server create](/cli/azure/sql/server#az-sql-server-create) command to create a secondary server.
> [!NOTE] > The server login and firewall settings must match that of your primary server.
Use the [az sql elastic-pool create](/cli/azure/sql/elastic-pool#az-sql-elastic-
### Create failover group
-Use the [az sql failover-group create](/cli/azure/sql/failover-group#az_sql_failover_group_create) command to create a failover group.
+Use the [az sql failover-group create](/cli/azure/sql/failover-group#az-sql-failover-group-create) command to create a failover group.
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/failover-groups/add-elastic-pool-to-failover-group-az-cli.sh" id="CreateFailoverGroup"::: ### Add database to the failover group
-Use the [az sql failover-group update](/cli/azure/sql/failover-group#az_sql_failover_group_update) command to add a database to the failover group.
+Use the [az sql failover-group update](/cli/azure/sql/failover-group#az-sql-failover-group-update) command to add a database to the failover group.
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/failover-groups/add-elastic-pool-to-failover-group-az-cli.sh" id="AddDatabaseToFailoverGroup":::
This portion of the tutorial uses the following Azure CLI cmdlets:
| Command | Notes | |||
-| [az sql server create](/cli/azure/sql/server#az_sql_server_create) | Creates a server that hosts databases and elastic pools. |
+| [az sql server create](/cli/azure/sql/server#az-sql-server-create) | Creates a server that hosts databases and elastic pools. |
| [az sql elastic-pool create](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-create) | Creates an elastic pool.|
-| [az sql failover-group create](/cli/azure/sql/failover-group#az_sql_failover_group_create) | Creates a failover group. |
-| [az sql failover-group update](/cli/azure/sql/failover-group#az_sql_failover_group_update) | Updates a failover group.|
+| [az sql failover-group create](/cli/azure/sql/failover-group#az-sql-failover-group-create) | Creates a failover group. |
+| [az sql failover-group update](/cli/azure/sql/failover-group#az-sql-failover-group-update) | Updates a failover group.|
Test failover using the Azure CLI.
### Verify the roles of each server
-Use the [az sql failover-group show](/cli/azure/sql/failover-group#az_sql_failover_group_show) command to confirm the roles of each server in the failover group.
+Use the [az sql failover-group show](/cli/azure/sql/failover-group#az-sql-failover-group-show) command to confirm the roles of each server in the failover group.
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/failover-groups/add-elastic-pool-to-failover-group-az-cli.sh" id="VerifyRoles"::: ### Fail over to the secondary server
-Use the [az sql failover-group set-primary](/cli/azure/sql/failover-group#az_sql_failover_group_set_primary) command to fail over to the secondary server. Use the [az sql failover-group show](/cli/azure/sql/failover-group#az_sql_failover_group_show) command to verify a successful failover.
+Use the [az sql failover-group set-primary](/cli/azure/sql/failover-group#az-sql-failover-group-set-primary) command to fail over to the secondary server. Use the [az sql failover-group show](/cli/azure/sql/failover-group#az-sql-failover-group-show) command to verify a successful failover.
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/failover-groups/add-elastic-pool-to-failover-group-az-cli.sh" id="FailingOver"::: ### Revert failover group back to the primary server
-Use the [az sql failover-group set-primary](/cli/azure/sql/failover-group#az_sql_failover_group_set_primary) command to fail back to the primary server.
+Use the [az sql failover-group set-primary](/cli/azure/sql/failover-group#az-sql-failover-group-set-primary) command to fail back to the primary server.
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/failover-groups/add-elastic-pool-to-failover-group-az-cli.sh" id="FailingBack":::
This portion of the tutorial uses the following Azure CLI cmdlets:
| Command | Notes | |||
-| [az sql failover-group show](/cli/azure/sql/failover-group#az_sql_failover_group_show) | Gets the failover groups in a server. |
-| [az sql failover-group set-primary](/cli/azure/sql/failover-group#az_sql_failover_group_set_primary) | Set the primary of the failover group by failing over all databases from the current primary server. |
+| [az sql failover-group show](/cli/azure/sql/failover-group#az-sql-failover-group-show) | Gets the failover groups in a server. |
+| [az sql failover-group set-primary](/cli/azure/sql/failover-group#az-sql-failover-group-set-primary) | Set the primary of the failover group by failing over all databases from the current primary server. |
This portion of the tutorial uses the following Azure CLI cmdlets:
| Command | Notes | |||
-| [az group delete](/cli/azure/vm/extension#az_vm_extension_set) | Deletes a resource group including all nested resources. |
+| [az group delete](/cli/azure/vm/extension#az-vm-extension-set) | Deletes a resource group including all nested resources. |
azure-sql Failover Group Add Single Database Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/failover-group-add-single-database-tutorial.md
Change the failover location as appropriate for your environment.
### Create the secondary server
-Use the [az sql server create](/cli/azure/sql/server#az_sql_server_create) command to create a secondary server with .
+Use the [az sql server create](/cli/azure/sql/server#az-sql-server-create) command to create a secondary server with .
> [!NOTE] > The server login and firewall settings must match that of your primary server.
Use the [az sql server create](/cli/azure/sql/server#az_sql_server_create) comma
### Create the failover group
-Use the [az sql failover-group create](/cli/azure/sql/failover-group#az_sql_failover_group_create) command to create a failover group.
+Use the [az sql failover-group create](/cli/azure/sql/failover-group#az-sql-failover-group-create) command to create a failover group.
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/failover-groups/add-single-db-to-failover-group-az-cli.sh" id="CreateFailoverGroup":::
This portion of the tutorial uses the following Azure CLI cmdlets:
| Command | Notes | |||
-| [az sql server create](/cli/azure/sql/server#az_sql_server_create) | Creates a server that hosts databases and elastic pools. |
-| [az sql failover-group create](/cli/azure/sql/failover-group#az_sql_failover_group_create) | Creates a failover group. |
-| [az sql failover-group update](/cli/azure/sql/failover-group#az_sql_failover_group_update) | Updates a failover group.|
+| [az sql server create](/cli/azure/sql/server#az-sql-server-create) | Creates a server that hosts databases and elastic pools. |
+| [az sql failover-group create](/cli/azure/sql/failover-group#az-sql-failover-group-create) | Creates a failover group. |
+| [az sql failover-group update](/cli/azure/sql/failover-group#az-sql-failover-group-update) | Updates a failover group.|
Test failover using the Azure CLI.
### Verify the roles of each server
-Use the [az sql failover-group show](/cli/azure/sql/failover-group#az_sql_failover_group_show) command to confirm the roles of each server.
+Use the [az sql failover-group show](/cli/azure/sql/failover-group#az-sql-failover-group-show) command to confirm the roles of each server.
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/failover-groups/add-single-db-to-failover-group-az-cli.sh" id="VerifyRole"::: ### Fail over to the secondary server
-Use the [az sql failover-group set-primary](/cli/azure/sql/failover-group#az_sql_failover_group_set_primary) to fail over to the secondary server. Use the [az sql failover-group show](/cli/azure/sql/failover-group#az_sql_failover_group_show) command to verify a successful failover.
+Use the [az sql failover-group set-primary](/cli/azure/sql/failover-group#az-sql-failover-group-set-primary) to fail over to the secondary server. Use the [az sql failover-group show](/cli/azure/sql/failover-group#az-sql-failover-group-show) command to verify a successful failover.
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/failover-groups/add-single-db-to-failover-group-az-cli.sh" id="FailingOver"::: ### Revert failover group back to the primary server
-Use the [az sql failover-group set-primary](/cli/azure/sql/failover-group#az_sql_failover_group_set_primary) command to fail back to the primary server.
+Use the [az sql failover-group set-primary](/cli/azure/sql/failover-group#az-sql-failover-group-set-primary) command to fail back to the primary server.
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/failover-groups/add-single-db-to-failover-group-az-cli.sh" id="FailingBack":::
This portion of the tutorial uses the following Azure CLI cmdlets:
| Command | Notes | |||
-| [az sql failover-group show](/cli/azure/sql/failover-group#az_sql_failover_group_show) | Gets the failover groups in a server. |
-| [az sql failover-group set-primary](/cli/azure/sql/failover-group#az_sql_failover_group_set_primary) | Set the primary of the failover group by failing over all databases from the current primary server. |
+| [az sql failover-group show](/cli/azure/sql/failover-group#az-sql-failover-group-show) | Gets the failover groups in a server. |
+| [az sql failover-group set-primary](/cli/azure/sql/failover-group#az-sql-failover-group-set-primary) | Set the primary of the failover group by failing over all databases from the current primary server. |
This portion of the tutorial uses the following Azure CLI cmdlets:
| Command | Notes | |||
-| [az group delete](/cli/azure/vm/extension#az_vm_extension_set) | Deletes a resource group including all nested resources. |
+| [az group delete](/cli/azure/vm/extension#az-vm-extension-set) | Deletes a resource group including all nested resources. |
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az account set](/cli/azure/account#az_account_set) | Sets a subscription to be the current active subscription. |
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az sql server create](/cli/azure/sql/server#az_sql_server_create) | Creates a server that hosts single databases and elastic pools in Azure SQL Database. |
+| [az account set](/cli/azure/account#az-account-set) | Sets a subscription to be the current active subscription. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az sql server create](/cli/azure/sql/server#az-sql-server-create) | Creates a server that hosts single databases and elastic pools in Azure SQL Database. |
| [az sql server firewall-rule create](/cli/azure/sql/server/firewall-rule) | Creates the server-level IP firewall rules in Azure SQL Database. | | [az sql db create](/cli/azure/sql/db) | Creates a database in Azure SQL Database. |
-| [az sql failover-group create](/cli/azure/sql/failover-group#az_sql_failover_group_create) | Creates a failover group in Azure SQL Database. |
-| [az sql failover-group show](/cli/azure/sql/failover-group#az_sql_failover_group_show) | Lists the failover groups in a server in Azure SQL Database. |
-| [az sql failover-group set-primary](/cli/azure/sql/failover-group#az_sql_failover_group_set_primary) | Set the primary of the failover group by failing over all databases from the current primary server. |
-| [az group delete](/cli/azure/vm/extension#az_vm_extension_set) | Deletes a resource group including all nested resources. |
+| [az sql failover-group create](/cli/azure/sql/failover-group#az-sql-failover-group-create) | Creates a failover group in Azure SQL Database. |
+| [az sql failover-group show](/cli/azure/sql/failover-group#az-sql-failover-group-show) | Lists the failover groups in a server in Azure SQL Database. |
+| [az sql failover-group set-primary](/cli/azure/sql/failover-group#az-sql-failover-group-set-primary) | Set the primary of the failover group by failing over all databases from the current primary server. |
+| [az group delete](/cli/azure/vm/extension#az-vm-extension-set) | Deletes a resource group including all nested resources. |
# [Azure portal](#tab/azure-portal)
azure-sql Long Term Backup Retention Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/long-term-backup-retention-configure.md
You can configure SQL Database to [retain automated backups](long-term-retention
# [Azure CLI](#tab/azure-cli)
-Run the [az sql db ltr-policy set](/cli/azure/sql/db/ltr-policy#az_sql_db_ltr_policy_set) command to create an LTR policy. The following example sets a long-term retention policy for 12 weeks for the weekly backup.
+Run the [az sql db ltr-policy set](/cli/azure/sql/db/ltr-policy#az-sql-db-ltr-policy-set) command to create an LTR policy. The following example sets a long-term retention policy for 12 weeks for the weekly backup.
```azurecli az sql db ltr-policy set \
View the backups that are retained for a specific database with an LTR policy, a
### View LTR policies
-Run the [az sql db ltr-policy show](/cli/azure/sql/db/ltr-policy#az_sql_db_ltr_policy_show) command to view the LTR policy for a single database on your server.
+Run the [az sql db ltr-policy show](/cli/azure/sql/db/ltr-policy#az-sql-db-ltr-policy-show) command to view the LTR policy for a single database on your server.
```azurecli az sql db ltr-policy show \
az sql db ltr-policy show \
### View LTR backups
-Use the [az sql db ltr-backup list](/cli/azure/sql/db/ltr-backup#az_sql_db_ltr_backup_list) command to list the LTR backups for a database. You can use this command to find the `name` parameter for use in other commands.
+Use the [az sql db ltr-backup list](/cli/azure/sql/db/ltr-backup#az-sql-db-ltr-backup-list) command to list the LTR backups for a database. You can use this command to find the `name` parameter for use in other commands.
```azurecli az sql db ltr-backup list \
az sql db ltr-backup list \
### Delete LTR backups
-Run the [az sql db ltr-backup delete](/cli/azure/sql/db/ltr-backup#az_sql_db_ltr_backup_delete) command to remove an LTR backup. You can use [az sql db ltr-backup list](/cli/azure/sql/db/ltr-backup#az_sql_db_ltr_backup_list) to find the backup `name`.
+Run the [az sql db ltr-backup delete](/cli/azure/sql/db/ltr-backup#az-sql-db-ltr-backup-delete) command to remove an LTR backup. You can use [az sql db ltr-backup list](/cli/azure/sql/db/ltr-backup#az-sql-db-ltr-backup-list) to find the backup `name`.
```azurecli az sql db ltr-backup delete \
az sql db ltr-backup delete \
### Restore from LTR backups
-Run the [az sql db ltr-backup restore](/cli/azure/sql/db/ltr-backup#az_sql_db_ltr_backup_restore) command to restore your database from an LTR backup. You can run [az sql db ltr-backup show](/cli/azure/sql/db/ltr-backup#az_sql_db_ltr_backup_show) to get the `backup-id`.
+Run the [az sql db ltr-backup restore](/cli/azure/sql/db/ltr-backup#az-sql-db-ltr-backup-restore) command to restore your database from an LTR backup. You can run [az sql db ltr-backup show](/cli/azure/sql/db/ltr-backup#az-sql-db-ltr-backup-show) to get the `backup-id`.
1. Create a variable for the `backup-id` with the command `az sql db ltr-backup show' for future use.
azure-sql Maintenance Window Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/maintenance-window-configure.md
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login' ```
-For more information, see [set active subscription](/cli/azure/account#az_account_set) or [log in interactively](/cli/azure/reference-index#az_login)
+For more information, see [set active subscription](/cli/azure/account#az-account-set) or [log in interactively](/cli/azure/reference-index#az-login)
### Discover available maintenance windows
When setting the maintenance window, each region has its own maintenance window
#### Discover SQL Database and elastic pool maintenance windows The following example returns the available maintenance windows for the *eastus2* region using the [az maintenance public-configuration list
-](/cli/azure/maintenance/public-configuration#az_maintenance_public_configuration_list) command. For databases and elastic pools, set `maintenanceScope` to `SQLDB`.
+](/cli/azure/maintenance/public-configuration#az-maintenance-public-configuration-list) command. For databases and elastic pools, set `maintenanceScope` to `SQLDB`.
```azurecli location="eastus2"
The following example returns the available maintenance windows for the *eastus2
#### Discover SQL Managed Instance maintenance windows The following example returns the available maintenance windows for the *eastus2* region using the [az maintenance public-configuration list
-](/cli/azure/maintenance/public-configuration#az_maintenance_public_configuration_list) command. For managed instances, set `maintenanceScope` to `SQLManagedInstance`.
+](/cli/azure/maintenance/public-configuration#az-maintenance-public-configuration-list) command. For managed instances, set `maintenanceScope` to `SQLManagedInstance`.
```azurecli az maintenance public-configuration list --query "[?location=='eastus2'&&contains(maintenanceScope,'SQLManagedInstance')]"
The following example returns the available maintenance windows for the *eastus2
### Set the maintenance window while creating a single database
-The following example creates a new database and sets the maintenance window using the [az sql db create](/cli/azure/sql/db#az_sql_db_create) command. The `--maint-config-id` (or `-m`) must be set to a valid value for your database's region. To get valid values for your region, see [Discover available maintenance windows](#discover-available-maintenance-windows).
+The following example creates a new database and sets the maintenance window using the [az sql db create](/cli/azure/sql/db#az-sql-db-create) command. The `--maint-config-id` (or `-m`) must be set to a valid value for your database's region. To get valid values for your region, see [Discover available maintenance windows](#discover-available-maintenance-windows).
```azurecli # Set variables for your database
The following example creates a new database and sets the maintenance window usi
### Set the maintenance window while creating an elastic pool
-The following example creates a new elastic pool and sets the maintenance window using the [az sql elastic-pool create](/cli/azure/sql/elastic-pool#az_sql_elastic_pool_create) cmdlet. The maintenance window is set on the elastic pool, so all databases in the pool have the pool's maintenance window schedule. The `--maint-config-id` (or `-m`) must be set to a valid value for your pool's region. To get valid values for your region, see [Discover available maintenance windows](#discover-available-maintenance-windows).
+The following example creates a new elastic pool and sets the maintenance window using the [az sql elastic-pool create](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-create) cmdlet. The maintenance window is set on the elastic pool, so all databases in the pool have the pool's maintenance window schedule. The `--maint-config-id` (or `-m`) must be set to a valid value for your pool's region. To get valid values for your region, see [Discover available maintenance windows](#discover-available-maintenance-windows).
```azurecli # Set variables for your pool
The following example creates a new elastic pool and sets the maintenance window
### Set the maintenance window while creating a managed instance
-The following example creates a new managed instance and sets the maintenance window using [az sql mi create](/cli/azure/sql/mi#az_sql_mi_create). The maintenance window is set on the instance, so all databases in the instance have the instance's maintenance window schedule. *MaintenanceConfigName* must be a valid value for your instance's region. To get valid values for your region, see [Discover available maintenance windows](#discover-available-maintenance-windows).
+The following example creates a new managed instance and sets the maintenance window using [az sql mi create](/cli/azure/sql/mi#az-sql-mi-create). The maintenance window is set on the instance, so all databases in the instance have the instance's maintenance window schedule. *MaintenanceConfigName* must be a valid value for your instance's region. To get valid values for your region, see [Discover available maintenance windows](#discover-available-maintenance-windows).
```azurecli az sql mi create -g mygroup -n myinstance -l mylocation -i -u myusername -p mypassword --subnet /subscriptions/{SubID}/resourceGroups/{ResourceGroup}/providers/Microsoft.Network/virtualNetworks/{VNETName}/subnets/{SubnetName} -m /subscriptions/{SubID}/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_{Region}_{MaintenanceConfigName}
The following examples show how to configure the maintenance window using Azure
### Set the maintenance window for an existing database
-The following example sets the maintenance window on an existing database using the [az sql db update](/cli/azure/sql/db#az_sql_db_update) command. The `--maint-config-id` (or `-m`) must be set to a valid value for your database's region. To get valid values for your region, see [Discover available maintenance windows](#discover-available-maintenance-windows).
+The following example sets the maintenance window on an existing database using the [az sql db update](/cli/azure/sql/db#az-sql-db-update) command. The `--maint-config-id` (or `-m`) must be set to a valid value for your database's region. To get valid values for your region, see [Discover available maintenance windows](#discover-available-maintenance-windows).
```azurecli # Select different maintenance window
The following example sets the maintenance window on an existing database using
### Set the maintenance window on an existing elastic pool
-The following example sets the maintenance window on an existing elastic pool using the [az sql elastic-pool update](/cli/azure/sql/elastic-pool#az_sql_elastic_pool_update) command.
+The following example sets the maintenance window on an existing elastic pool using the [az sql elastic-pool update](/cli/azure/sql/elastic-pool#az-sql-elastic-pool-update) command.
It's important to make sure that the `maintenanceConfig` value is a valid value for your pool's region. To get valid values for a region, see [Discover available maintenance windows](#discover-available-maintenance-windows). ```azurecli
It's important to make sure that the `maintenanceConfig` value is a valid value
### Set the maintenance window on an existing managed instance
-The following example sets the maintenance window using [az sql mi update](/cli/azure/sql/mi#az_sql_mi_update). The maintenance window is set on the instance, so all databases in the instance have the instance's maintenance window schedule. For `-MaintenanceConfigurationId`, the *MaintenanceConfigName* must be a valid value for your instance's region. To get valid values for your region, see [Discover available maintenance windows](#discover-available-maintenance-windows).
+The following example sets the maintenance window using [az sql mi update](/cli/azure/sql/mi#az-sql-mi-update). The maintenance window is set on the instance, so all databases in the instance have the instance's maintenance window schedule. For `-MaintenanceConfigurationId`, the *MaintenanceConfigName* must be a valid value for your instance's region. To get valid values for your region, see [Discover available maintenance windows](#discover-available-maintenance-windows).
```azurecli az sql mi update -g mygroup -n myinstance -m /subscriptions/{SubID}/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_{Region}_{MainteanceConfigName}
azure-sql Performance Guidance https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/performance-guidance.md
Previously updated : 03/18/2022 Last updated : 03/22/2022 # Tune applications and databases for performance in Azure SQL Database and Azure SQL Managed Instance [!INCLUDE[appliesto-sqldb-sqlmi](../includes/appliesto-sqldb-sqlmi.md)]
Once you have identified a performance issue that you are facing with Azure SQL
- Tune your application and apply some best practices that can improve performance. - Tune the database by changing indexes and queries to more efficiently work with data.
-This article assumes that you have already worked through the Azure SQL Database [database advisor recommendations](database-advisor-implement-performance-recommendations.md) and the Azure SQL Database [auto-tuning recommendations](automatic-tuning-overview.md), if applicable. It also assumes that you have reviewed [An overview of monitoring and tuning](monitor-tune-overview.md) and its related articles related to troubleshooting performance issues. Additionally, this article assumes that you do not have a CPU resources, running-related performance issue that can be resolved by increasing the compute size or service tier to provide more resources to your database.
+This article assumes that you have already worked through the Azure SQL Database [database advisor recommendations](database-advisor-implement-performance-recommendations.md) and the Azure SQL Database [auto-tuning recommendations](automatic-tuning-overview.md), if applicable. It also assumes that you have reviewed the [overview of monitoring and tuning](monitor-tune-overview.md) and its related articles related to troubleshooting performance issues. Additionally, this article assumes that you do not have a CPU resources, running-related performance issue that can be resolved by increasing the compute size or service tier to provide more resources to your database.
## Tune your application
Some database applications have read-heavy workloads. Caching layers might reduc
## Get configuration and design tips
-If you use Azure SQL Database, you can execute an open-source T-SQL [script](https://aka.ms/sqldbtips) to analyze your database on demand and provide tips to improve database performance and health. Some tips suggest configuration and operational changes based on best practices, while other tips recommend design changes suitable for your workload, such as enabling advanced database engine features.
+If you use Azure SQL Database, you can execute an open-source T-SQL [script for improving database configuration and design in Azure SQL DB](https://aka.ms/sqldbtips). The script will analyze your database on demand and provide tips to improve database performance and health. Some tips suggest configuration and operational changes based on best practices, while other tips recommend design changes suitable for your workload, such as enabling advanced database engine features.
-To learn more about the script and get started, visit the [wiki](https://aka.ms/sqldbtipswiki) page.
+To learn more about the script and get started, visit the [Azure SQL Tips wiki](https://aka.ms/sqldbtipswiki) page.
## Next steps -- Learn about the [DTU-based purchasing model](service-tiers-dtu.md).-- Learn more about the [vCore-based purchasing model](service-tiers-vcore.md).
+- Learn about the [DTU-based purchasing model](service-tiers-dtu.md)
+- Learn more about the [vCore-based purchasing model](service-tiers-vcore.md)
- Read [What is an Azure elastic pool?](elastic-pool-overview.md) - Discover [When to consider an elastic pool](elastic-pool-overview.md) - Read about [Monitoring Microsoft Azure SQL Database and Azure SQL Managed Instance performance using dynamic management views](monitoring-with-dmvs.md) - Learn to [Diagnose and troubleshoot high CPU on Azure SQL Database](high-cpu-diagnose-troubleshoot.md)-- [Tune nonclustered indexes with missing index suggestions](/sql/relational-databases/indexes/tune-nonclustered-missing-index-suggestions)
+- [Tune nonclustered indexes with missing index suggestions](/sql/relational-databases/indexes/tune-nonclustered-missing-index-suggestions)
+- Video: [Data Loading Best Practices on Azure SQL Database](/shows/data-exposed/data-loading-best-practices-on-azure-sql-database?WT.mc_id=dataexposed-c9-niner)
azure-sql Copy Database To New Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/scripts/copy-database-to-new-server-cli.md
This script uses the following commands. Each command in the table links to comm
| Command | Description | |||
-| [az sql db copy](/cli/azure/sql/db#az_sql_db_copy) | Creates a copy of a database that uses the snapshot at the current time. |
+| [az sql db copy](/cli/azure/sql/db#az-sql-db-copy) | Creates a copy of a database that uses the snapshot at the current time. |
## Next steps
azure-sql Create And Configure Database Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/scripts/create-and-configure-database-cli.md
This script uses the following commands. Each command in the table links to comm
| Command | Description | |||
-| [az sql server](/cli/azure/sql/server#az_sql_server_create) | Server commands |
-| [az sql server firewall](/cli/azure/sql/server/firewall-rule#az_sql_server_firewall_rule_create) | Server firewall commands. |
-| [az sql db](/cli/azure/sql/db#az_sql_db_create) | Database commands. |
+| [az sql server](/cli/azure/sql/server#az-sql-server-create) | Server commands |
+| [az sql server firewall](/cli/azure/sql/server/firewall-rule#az-sql-server-firewall-rule-create) | Server firewall commands. |
+| [az sql db](/cli/azure/sql/db#az-sql-db-create) | Database commands. |
## Next steps
azure-sql Import From Bacpac Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/scripts/import-from-bacpac-cli.md
This script uses the following commands. Each command in the table links to comm
| Command | Description | ||| | [az sql server](/cli/azure/sql/server) | Server commands. |
-| [az sql db import](/cli/azure/sql/db#az_sql_db_import) | Database import command. |
+| [az sql db import](/cli/azure/sql/db#az-sql-db-import) | Database import command. |
## Next steps
azure-sql Monitor And Scale Database Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/scripts/monitor-and-scale-database-cli.md
This Azure CLI script example scales a single database in Azure SQL Database to
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/monitor-and-scale-database/monitor-and-scale-database.sh" id="FullScript"::: > [!TIP]
-> Use [az sql db op list](/cli/azure/sql/db/op?#az_sql_db_op_list) to get a list of operations performed on the database, and use [az sql db op cancel](/cli/azure/sql/db/op#az_sql_db_op_cancel) to cancel an update operation on the database.
+> Use [az sql db op list](/cli/azure/sql/db/op?#az-sql-db-op-list) to get a list of operations performed on the database, and use [az sql db op cancel](/cli/azure/sql/db/op#az-sql-db-op-cancel) to cancel an update operation on the database.
## Clean up resources
This script uses the following commands. Each command in the table links to comm
| Script | Description | ||| | [az sql server](/cli/azure/sql/server) | Server commands. |
-| [az sql db show-usage](/cli/azure/sql#az_sql_show_usage) | Shows the size usage information for a database. |
+| [az sql db show-usage](/cli/azure/sql#az-sql-show-usage) | Shows the size usage information for a database. |
## Next steps
azure-sql Restore Database Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/scripts/restore-database-cli.md
This script uses the following commands. Each command in the table links to comm
| Command | Description | |||
-| [az sql db restore](/cli/azure/sql/db#az_sql_db_restore) | Restore database command. |
+| [az sql db restore](/cli/azure/sql/db#az-sql-db-restore) | Restore database command. |
## Next steps
azure-sql Setup Geodr Failover Group Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/scripts/setup-geodr-failover-group-cli.md
This script uses the following commands. Each command in the table links to comm
| Command | Description | |||
-| [az sql failover-group create](/cli/azure/sql/failover-group#az_sql_failover_group_create) | Creates a failover group. |
+| [az sql failover-group create](/cli/azure/sql/failover-group#az-sql-failover-group-create) | Creates a failover group. |
| [az sql failover-group set-primary](/cli/azure/sql/failover-group#az-sql-failover-group-set-primary) | Set the primary of the failover group by failing over all databases from the current primary server | | [az sql failover-group show](/cli/azure/sql/failover-group) | Gets a failover group | | [az sql failover-group delete](/cli/azure/sql/failover-group) | Deletes a failover group |
azure-sql Single Database Create Quickstart https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/single-database-create-quickstart.md
az sql db create \
# [Azure CLI (sql up)](#tab/azure-cli-sql-up)
-The Azure CLI code blocks in this section use the [az sql up](/cli/azure/sql#az_sql_up) command to simplify the database creation process. With it, you can create a database and all of its associated resources with a single command. This includes the resource group, server name, server location, database name, and login information. The database is created with a default pricing tier of General Purpose, Provisioned, Gen5, 2 vCores.
+The Azure CLI code blocks in this section use the [az sql up](/cli/azure/sql#az-sql-up) command to simplify the database creation process. With it, you can create a database and all of its associated resources with a single command. This includes the resource group, server name, server location, database name, and login information. The database is created with a default pricing tier of General Purpose, Provisioned, Gen5, 2 vCores.
[!INCLUDE [quickstarts-free-trial-note](../../../includes/quickstarts-free-trial-note.md)]
Change the location as appropriate for your environment. Replace `0.0.0.0` with
:::code language="azurecli" source="~/azure_cli_scripts/sql-database/create-and-configure-database/create-and-configure-database.sh" id="SetParameterValues"::: > [!NOTE]
-> [az sql up](/cli/azure/sql#az_sql_up) is currently in preview and does not currently support the serverless compute tier. Also, the use of non-alphabetic and non-numeric characters in the database name are not currently supported.
+> [az sql up](/cli/azure/sql#az-sql-up) is currently in preview and does not currently support the serverless compute tier. Also, the use of non-alphabetic and non-numeric characters in the database name are not currently supported.
### Create a database and resources
-Use the [az sql up](/cli/azure/sql#az_sql_up) command to create and configure a [logical server](logical-servers.md) for Azure SQL Database for immediate use. Make sure to record the generated resource group and server names, so you can manage these resources later.
+Use the [az sql up](/cli/azure/sql#az-sql-up) command to create and configure a [logical server](logical-servers.md) for Azure SQL Database for immediate use. Make sure to record the generated resource group and server names, so you can manage these resources later.
> [!NOTE] > When running the `az sql up` command for the first time, Azure CLI prompts you to install the `db-up` extension. This extension is currently in preview. Accept the installation to continue. For more information about extensions, see [Use extensions with Azure CLI](/cli/azure/azure-cli-extensions-overview).
To delete **myResourceGroup** and all its resources using the Azure portal:
# [Azure CLI](#tab/azure-cli)
-Use the following command to remove the resource group and all resources associated with it using the [az group delete](/cli/azure/vm/extension#az_vm_extension_set) command - unless you have an ongoing need for these resources. Some of these resources may take a while to create, as well as to delete.
+Use the following command to remove the resource group and all resources associated with it using the [az group delete](/cli/azure/vm/extension#az-vm-extension-set) command - unless you have an ongoing need for these resources. Some of these resources may take a while to create, as well as to delete.
```azurecli az group delete --name $resourceGroup
azure-sql Single Database Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/single-database-manage.md
To create and manage the servers, databases, and firewalls with [Azure CLI](/cli
| Cmdlet | Description | | | |
-|[az sql db create](/cli/azure/sql/db#az_sql_db_create) |Creates a database|
-|[az sql db list](/cli/azure/sql/db#az_sql_db_list)|Lists all databases and data warehouses in a server, or all databases in an elastic pool|
-|[az sql db list-editions](/cli/azure/sql/db#az_sql_db_list_editions)|Lists available service objectives and storage limits|
-|[az sql db list-usages](/cli/azure/sql/db#az_sql_db_list_usages)|Returns database usages|
-|[az sql db show](/cli/azure/sql/db#az_sql_db_show)|Gets a database or data warehouse|
-|[az sql db update](/cli/azure/sql/db#az_sql_db_update)|Updates a database|
-|[az sql db delete](/cli/azure/sql/db#az_sql_db_delete)|Removes a database|
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group|
-|[az sql server create](/cli/azure/sql/server#az_sql_server_create)|Creates a server|
-|[az sql server list](/cli/azure/sql/server#az_sql_server_list)|Lists servers|
-|[az sql server list-usages](/cli/azure/sql/server#az_sql_server_list-usages)|Returns server usages|
-|[az sql server show](/cli/azure/sql/server#az_sql_server_show)|Gets a server|
-|[az sql server update](/cli/azure/sql/server#az_sql_server_update)|Updates a server|
-|[az sql server delete](/cli/azure/sql/server#az_sql_server_delete)|Deletes a server|
-|[az sql server firewall-rule create](/cli/azure/sql/server/firewall-rule#az_sql_server_firewall_rule_create)|Creates a server firewall rule|
-|[az sql server firewall-rule list](/cli/azure/sql/server/firewall-rule#az_sql_server_firewall_rule_list)|Lists the firewall rules on a server|
-|[az sql server firewall-rule show](/cli/azure/sql/server/firewall-rule#az_sql_server_firewall_rule_show)|Shows the detail of a firewall rule|
-|[az sql server firewall-rule update](/cli/azure/sql/server/firewall-rule##az_sql_server_firewall_rule_update)|Updates a firewall rule|
-|[az sql server firewall-rule delete](/cli/azure/sql/server/firewall-rule#az_sql_server_firewall_rule_delete)|Deletes a firewall rule|
+|[az sql db create](/cli/azure/sql/db#az-sql-db-create) |Creates a database|
+|[az sql db list](/cli/azure/sql/db#az-sql-db-list)|Lists all databases and data warehouses in a server, or all databases in an elastic pool|
+|[az sql db list-editions](/cli/azure/sql/db#az-sql-db-list-editions)|Lists available service objectives and storage limits|
+|[az sql db list-usages](/cli/azure/sql/db#az-sql-db-list-usages)|Returns database usages|
+|[az sql db show](/cli/azure/sql/db#az-sql-db-show)|Gets a database or data warehouse|
+|[az sql db update](/cli/azure/sql/db#az-sql-db-update)|Updates a database|
+|[az sql db delete](/cli/azure/sql/db#az-sql-db-delete)|Removes a database|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group|
+|[az sql server create](/cli/azure/sql/server#az-sql-server-create)|Creates a server|
+|[az sql server list](/cli/azure/sql/server#az-sql-server-list)|Lists servers|
+|[az sql server list-usages](/cli/azure/sql/server#az-sql-server-list-usages)|Returns server usages|
+|[az sql server show](/cli/azure/sql/server#az-sql-server-show)|Gets a server|
+|[az sql server update](/cli/azure/sql/server#az-sql-server-update)|Updates a server|
+|[az sql server delete](/cli/azure/sql/server#az-sql-server-delete)|Deletes a server|
+|[az sql server firewall-rule create](/cli/azure/sql/server/firewall-rule#az-sql-server-firewall-rule-create)|Creates a server firewall rule|
+|[az sql server firewall-rule list](/cli/azure/sql/server/firewall-rule#az-sql-server-firewall-rule-list)|Lists the firewall rules on a server|
+|[az sql server firewall-rule show](/cli/azure/sql/server/firewall-rule#az-sql-server-firewall-rule-show)|Shows the detail of a firewall rule|
+|[az sql server firewall-rule update](/cli/azure/sql/server/firewall-rule##az-sql-server-firewall-rule-update)|Updates a firewall rule|
+|[az sql server firewall-rule delete](/cli/azure/sql/server/firewall-rule#az-sql-server-firewall-rule-delete)|Deletes a firewall rule|
## Transact-SQL (T-SQL)
azure-sql Sql Vulnerability Assessment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/sql-vulnerability-assessment.md
You can use Azure CLI commands to programmatically manage your vulnerability ass
| Command name as a link | Description | | :-- | :- |
-| [az security va sql baseline delete](/cli/azure/security/va/sql/baseline#az_security_va_sql_baseline_delete) | Delete Sql Vulnerability Assessment rule baseline. |
-| [az security va sql baseline list](/cli/azure/security/va/sql/baseline#az_security_va_sql_baseline_list) | View Sql Vulnerability Assessment baseline for all rules. |
-| [az security va sql baseline set](/cli/azure/security/va/sql/baseline#az_security_va_sql_baseline_set) | Sets Sql Vulnerability Assessment baseline. Replaces the current baseline. |
-| [az security va sql baseline show](/cli/azure/security/va/sql/baseline#az_security_va_sql_baseline_show) | View Sql Vulnerability Assessment rule baseline. |
-| [az security va sql baseline update](/cli/azure/security/va/sql/baseline#az_security_va_sql_baseline_update) | Update Sql Vulnerability Assessment rule baseline. Replaces the current rule baseline. |
-| [az security va sql results list](/cli/azure/security/va/sql/results#az_security_va_sql_results_list) | View all Sql Vulnerability Assessment scan results. |
-| [az security va sql results show](/cli/azure/security/va/sql/results#az_security_va_sql_results_show) | View Sql Vulnerability Assessment scan results. |
-| [az security va sql scans list](/cli/azure/security/va/sql/scans#az_security_va_sql_scans_list) | List all Sql Vulnerability Assessment scan summaries. |
-| [az security va sql scans show](/cli/azure/security/va/sql/scans#az_security_va_sql_scans_show) | View Sql Vulnerability Assessment scan summaries. |
+| [az security va sql baseline delete](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-delete) | Delete Sql Vulnerability Assessment rule baseline. |
+| [az security va sql baseline list](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-list) | View Sql Vulnerability Assessment baseline for all rules. |
+| [az security va sql baseline set](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-set) | Sets Sql Vulnerability Assessment baseline. Replaces the current baseline. |
+| [az security va sql baseline show](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-show) | View Sql Vulnerability Assessment rule baseline. |
+| [az security va sql baseline update](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-update) | Update Sql Vulnerability Assessment rule baseline. Replaces the current rule baseline. |
+| [az security va sql results list](/cli/azure/security/va/sql/results#az-security-va-sql-results-list) | View all Sql Vulnerability Assessment scan results. |
+| [az security va sql results show](/cli/azure/security/va/sql/results#az-security-va-sql-results-show) | View Sql Vulnerability Assessment scan results. |
+| [az security va sql scans list](/cli/azure/security/va/sql/scans#az-security-va-sql-scans-list) | List all Sql Vulnerability Assessment scan summaries. |
+| [az security va sql scans show](/cli/azure/security/va/sql/scans#az-security-va-sql-scans-show) | View Sql Vulnerability Assessment scan summaries. |
azure-sql Transparent Data Encryption Byok Key Rotation https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/transparent-data-encryption-byok-key-rotation.md
Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault -KeyId <ke
# [The Azure CLI](#tab/azure-cli)
-Use the [az keyvault key create](/cli/azure/keyvault/key#az_keyvault_key_create), [az sql server key create](/cli/azure/sql/server/key#az_sql_server_key_create), and [az sql server tde-key set](/cli/azure/sql/server/tde-key#az_sql_server_tde_key_set) commands.
+Use the [az keyvault key create](/cli/azure/keyvault/key#az-keyvault-key-create), [az sql server key create](/cli/azure/sql/server/key#az-sql-server-key-create), and [az sql server tde-key set](/cli/azure/sql/server/tde-key#az-sql-server-tde-key-set) commands.
```azurecli # add a new key to Key Vault
azure-sql Transparent Data Encryption Byok Remove Tde Protector https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/transparent-data-encryption-byok-remove-tde-protector.md
The PowerShell command **az sql server key show** provides the thumbprint of t
For command reference, see the [Azure CLI keyvault](/cli/azure/keyvault/key).
-1. Create a [new key in Key Vault](/cli/azure/keyvault/key#az_keyvault_key_create). Make sure this new key is created in a separate key vault from the potentially compromised TDE protector, since access control is provisioned on a vault level.
+1. Create a [new key in Key Vault](/cli/azure/keyvault/key#az-keyvault-key-create). Make sure this new key is created in a separate key vault from the potentially compromised TDE protector, since access control is provisioned on a vault level.
2. Add the new key to the server and update it as the new TDE protector of the server.
azure-sql Troubleshoot Transaction Log Errors Issues https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/troubleshoot-transaction-log-errors-issues.md
To resolve this issue, try the following methods:
- [Troubleshooting connectivity issues and other errors with Azure SQL Database and Azure SQL Managed Instance](troubleshoot-common-errors-issues.md) - [Troubleshoot transient connection errors in SQL Database and SQL Managed Instance](troubleshoot-common-connectivity-issues.md)-
+- Video: [Data Loading Best Practices on Azure SQL Database](/shows/data-exposed/data-loading-best-practices-on-azure-sql-database?WT.mc_id=dataexposed-c9-niner)
For information on transaction log sizes, see: - For vCore resource limits for a single database, see [resource limits for single databases using the vCore purchasing model](resource-limits-vcore-single-databases.md)
azure-sql Vnet Service Endpoint Rule Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/database/vnet-service-endpoint-rule-overview.md
You must already have a subnet that's tagged with the particular virtual network
## Use PowerShell to create a virtual network rule
-A script can also create virtual network rules by using the PowerShell cmdlet `New-AzSqlServerVirtualNetworkRule` or [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create). For more information, see [PowerShell to create a virtual network service endpoint and rule for SQL Database][sql-db-vnet-service-endpoint-rule-powershell-md-52d].
+A script can also create virtual network rules by using the PowerShell cmdlet `New-AzSqlServerVirtualNetworkRule` or [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create). For more information, see [PowerShell to create a virtual network service endpoint and rule for SQL Database][sql-db-vnet-service-endpoint-rule-powershell-md-52d].
## Use REST API to create a virtual network rule
azure-sql Api References Create Manage Instance https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/api-references-create-manage-instance.md
To create and configure managed instances with [Azure CLI](/cli/azure), use the
| Cmdlet | Description | | | |
-|[az sql mi create](/cli/azure/sql/mi#az_sql_mi_create) |Creates a managed instance.|
-|[az sql mi list](/cli/azure/sql/mi#az_sql_mi_list)|Lists available managed instances.|
-|[az sql mi show](/cli/azure/sql/mi#az_sql_mi_show)|Gets the details for a managed instance.|
-|[az sql mi update](/cli/azure/sql/mi#az_sql_mi_update)|Updates a managed instance.|
-|[az sql mi delete](/cli/azure/sql/mi#az_sql_mi_delete)|Removes a managed instance.|
-|[az sql mi op list](/cli/azure/sql/mi/op#az_sql_mi_op_list)|Gets a list of management operations performed on the managed instance.|
-|[az sql mi op show](/cli/azure/sql/mi/op#az_sql_mi_op_show)|Gets the specific management operation performed on the managed instance.|
-|[az sql mi op cancel](/cli/azure/sql/mi/op#az_sql_mi_op_cancel)|Cancels the specific management operation performed on the managed instance.|
-|[az sql midb create](/cli/azure/sql/midb#az_sql_midb_create) |Creates a managed database.|
-|[az sql midb list](/cli/azure/sql/midb#az_sql_midb_list)|Lists available managed databases.|
-|[az sql midb restore](/cli/azure/sql/midb#az_sql_midb_restore)|Restores a managed database.|
-|[az sql midb delete](/cli/azure/sql/midb#az_sql_midb_delete)|Removes a managed database.|
+|[az sql mi create](/cli/azure/sql/mi#az-sql-mi-create) |Creates a managed instance.|
+|[az sql mi list](/cli/azure/sql/mi#az-sql-mi-list)|Lists available managed instances.|
+|[az sql mi show](/cli/azure/sql/mi#az-sql-mi-show)|Gets the details for a managed instance.|
+|[az sql mi update](/cli/azure/sql/mi#az-sql-mi-update)|Updates a managed instance.|
+|[az sql mi delete](/cli/azure/sql/mi#az-sql-mi-delete)|Removes a managed instance.|
+|[az sql mi op list](/cli/azure/sql/mi/op#az-sql-mi-op-list)|Gets a list of management operations performed on the managed instance.|
+|[az sql mi op show](/cli/azure/sql/mi/op#az-sql-mi-op-show)|Gets the specific management operation performed on the managed instance.|
+|[az sql mi op cancel](/cli/azure/sql/mi/op#az-sql-mi-op-cancel)|Cancels the specific management operation performed on the managed instance.|
+|[az sql midb create](/cli/azure/sql/midb#az-sql-midb-create) |Creates a managed database.|
+|[az sql midb list](/cli/azure/sql/midb#az-sql-midb-list)|Lists available managed databases.|
+|[az sql midb restore](/cli/azure/sql/midb#az-sql-midb-restore)|Restores a managed database.|
+|[az sql midb delete](/cli/azure/sql/midb#az-sql-midb-delete)|Removes a managed database.|
## Transact-SQL: Create and configure instance databases
azure-sql Auditing Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/auditing-configure.md
ms.devlang:
f1_keywords: - "mi.azure.sqlaudit.general.f1"--++ Last updated : "03/23/2022" Previously updated : 06/21/2021 # Get started with Azure SQL Managed Instance auditing [!INCLUDE[appliesto-sqlmi](../includes/appliesto-sqlmi.md)]
For additional information:
- [CREATE SERVER AUDIT](/sql/t-sql/statements/create-server-audit-transact-sql) - [ALTER SERVER AUDIT](/sql/t-sql/statements/alter-server-audit-transact-sql) ++
+## Auditing of Microsoft Support operations
+
+Auditing of Microsoft Support operations for SQL Managed Instance allows you to audit Microsoft support engineers' operations when they need to access your server during a support request. The use of this capability, along with your auditing, enables more transparency into your workforce and allows for anomaly detection, trend visualization, and data loss prevention.
+
+To enable auditing of Microsoft Support operations navigate to create audit under audit in your SQL MI Instance, and switch Enable Auditing of Microsoft support operations to ON
+
+![create audit icon](./media/auditing-configure/support-operations.png)
++ ## Set up auditing for your server to Event Hubs or Azure Monitor logs Audit logs from a managed instance can be sent to Azure Event Hubs or Azure Monitor logs. This section describes how to configure this:
azure-sql Authentication Azure Ad User Assigned Managed Identity Create Managed Instance https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/authentication-azure-ad-user-assigned-managed-identity-create-managed-instance.md
Replace the following values in the example:
az sql mi create --assign-identity --identity-type UserAssigned --user-assigned-identity-id /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity> --primary-user-assigned-identity-id /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<primaryIdentity> --enable-ad-only-auth --external-admin-principal-type User --external-admin-name <AzureADAccount> --external-admin-sid <AzureADAccountSID> -g <ResourceGroupName> -n <managedinstancename> --subnet /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Network/virtualNetworks/<VNetName>/subnets/<SubnetName> ```
-For more information, see [az sql mi create](/cli/azure/sql/mi#az_sql_mi_create).
+For more information, see [az sql mi create](/cli/azure/sql/mi#az-sql-mi-create).
> [!NOTE] > The above example provisions a managed instance with only a user-assigned managed identity. You could set the `--identity-type` to be `UserAssigned,SystemAssigned` if you wanted both types of managed identities to be created with the instance.
azure-sql Doc Changes Updates Known Issues https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/doc-changes-updates-known-issues.md
This article lists the currently known issues with [Azure SQL Managed Instance](
|Issue |Date discovered |Status |Date resolved | ||||| |[Querying external table fails with 'not supported' error message](#querying-external-table-fails-with-not-supported-error-message)|Jan 2022|Has Workaround||
-|[When using SQL Server authentication, usernames with '@' are not supported](#when-using-sql-server-authentication-usernames-with--are-not-supported)|Oct 2021|||
+|[When using SQL Server authentication, usernames with '@' are not supported](#when-using-sql-server-authentication-usernames-with--are-not-supported)|Oct 2021|Resolved|Feb 2022|
|[Misleading error message on Azure portal suggesting recreation of the Service Principal](#misleading-error-message-on-azure-portal-suggesting-recreation-of-the-service-principal)|Sep 2021||Oct 2021| |[Changing the connection type does not affect connections through the failover group endpoint](#changing-the-connection-type-does-not-affect-connections-through-the-failover-group-endpoint)|Jan 2021|Has Workaround|| |[Procedure sp_send_dbmail may transiently fail when @query parameter is used](#procedure-sp_send_dbmail-may-transiently-fail-when--parameter-is-used)|Jan 2021|Has Workaround||
using (var scope = new TransactionScope())
## No resolution
-### When using SQL Server authentication, usernames with '@' are not supported
-
-Usernames that contain the '@' symbol in the middle (e.g. 'abc@xy') are not able to log in using SQL Server authentication.
- ### Azure AD logins and users are not supported in SSDT SQL Server Data Tools don't fully support Azure AD logins and users.
Error logs that are available in SQL Managed Instance aren't persisted, and thei
## Resolved
+### When using SQL Server authentication, usernames with '@' are not supported
+
+Usernames that contain the '@' symbol in the middle (e.g. 'abc@xy') are not able to log in using SQL Server authentication.
+ ### Restoring manual backup without CHECKSUM might fail In certain circumstances manual backup of databases that was made on a managed instance without CHECKSUM might fail to be restored. In such cases, retry restoring the backup until you're successful.
azure-sql Instance Pools Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/instance-pools-configure.md
Available [Azure CLI](/cli/azure/sql) commands:
|Cmdlet |Description | |:|:|
-|[az sql instance-pool create](/cli/azure/sql/instance-pool#az_sql_instance_pool_create) | Creates a SQL Managed Instance pool. |
-|[az sql instance-pool show](/cli/azure/sql/instance-pool#az_sql_instance_pool_show) | Returns information about an instance pool. |
-|[az sql instance-pool update](/cli/azure/sql/instance-pool#az_sql_instance_pool_update) | Sets or updates properties for an instance pool in SQL Managed Instance. |
-|[az sql instance-pool delete](/cli/azure/sql/instance-pool#az_sql_instance_pool_delete) | Removes an instance pool in SQL Managed Instance. |
+|[az sql instance-pool create](/cli/azure/sql/instance-pool#az-sql-instance-pool-create) | Creates a SQL Managed Instance pool. |
+|[az sql instance-pool show](/cli/azure/sql/instance-pool#az-sql-instance-pool-show) | Returns information about an instance pool. |
+|[az sql instance-pool update](/cli/azure/sql/instance-pool#az-sql-instance-pool-update) | Sets or updates properties for an instance pool in SQL Managed Instance. |
+|[az sql instance-pool delete](/cli/azure/sql/instance-pool#az-sql-instance-pool-delete) | Removes an instance pool in SQL Managed Instance. |
azure-sql Log Replay Service Migrate https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/log-replay-service-migrate.md
After LRS is stopped, either automatically through autocomplete, or manually thr
| Operation | Details | | :-- | :- | | **1. Copy database backups from SQL Server to Blob Storage**. | Copy full, differential, and log backups from SQL Server to a Blob Storage container by using [AzCopy](../../storage/common/storage-use-azcopy-v10.md) or [Azure Storage Explorer](https://azure.microsoft.com/features/storage-explorer/). <br /><br />Use any file names. LRS doesn't require a specific file-naming convention.<br /><br />In migrating several databases, you need a separate folder for each database. |
-| **2. Start LRS in the cloud**. | You can restart the service with a choice of cmdlets: PowerShell ([start-azsqlinstancedatabaselogreplay](/powershell/module/az.sql/start-azsqlinstancedatabaselogreplay)) or Azure CLI ([az_sql_midb_log_replay_start cmdlets](/cli/azure/sql/midb/log-replay#az_sql_midb_log_replay_start)). <br /><br /> Start LRS separately for each database that points to a backup folder on Blob Storage. <br /><br /> After you start the service, it will take backups from the Blob Storage container and start restoring them on SQL Managed Instance.<br /><br /> If you started LRS in continuous mode, after all initially uploaded backups are restored, the service will watch for any new files uploaded to the folder. The service will continuously apply logs based on the log sequence number (LSN) chain until it's stopped. |
-| **2.1. Monitor the operation's progress**. | You can monitor progress of the restore operation with a choice of cmdlets: PowerShell ([get-azsqlinstancedatabaselogreplay](/powershell/module/az.sql/get-azsqlinstancedatabaselogreplay)) or Azure CLI ([az_sql_midb_log_replay_show cmdlets](/cli/azure/sql/midb/log-replay#az_sql_midb_log_replay_show)). |
-| **2.2. Stop the operation if needed**. | If you need to stop the migration process, you have a choice of cmdlets: PowerShell ([stop-azsqlinstancedatabaselogreplay](/powershell/module/az.sql/stop-azsqlinstancedatabaselogreplay)) or Azure CLI ([az_sql_midb_log_replay_stop](/cli/azure/sql/midb/log-replay#az_sql_midb_log_replay_stop)). <br /><br /> Stopping the operation will delete the database that you're restoring on SQL Managed Instance. After you stop an operation, you can't resume LRS for a database. You need to restart the migration process from the scratch. |
-| **3. Cut over to the cloud when you're ready**. | Stop the application and the workload. Take the last log-tail backup and upload it to Azure Blob Storage.<br /><br /> Complete the cutover by initiating an LRS `complete` operation with a choice of cmdlets: PowerShell ([complete-azsqlinstancedatabaselogreplay](/powershell/module/az.sql/complete-azsqlinstancedatabaselogreplay)) or Azure CLI [az_sql_midb_log_replay_complete](/cli/azure/sql/midb/log-replay#az_sql_midb_log_replay_complete). This operation will stop LRS and cause the database to come online for read and write use on SQL Managed Instance.<br /><br /> Repoint the application connection string from SQL Server to SQL Managed Instance. You will need to orchestrate this step yourself, either through a manual connection string change in your application, or automatically (for example, if your application can read the connection string from a property, or a database). |
+| **2. Start LRS in the cloud**. | You can restart the service with a choice of cmdlets: PowerShell ([start-azsqlinstancedatabaselogreplay](/powershell/module/az.sql/start-azsqlinstancedatabaselogreplay)) or Azure CLI ([az_sql_midb_log_replay_start cmdlets](/cli/azure/sql/midb/log-replay#az-sql-midb-log-replay-start)). <br /><br /> Start LRS separately for each database that points to a backup folder on Blob Storage. <br /><br /> After you start the service, it will take backups from the Blob Storage container and start restoring them on SQL Managed Instance.<br /><br /> If you started LRS in continuous mode, after all initially uploaded backups are restored, the service will watch for any new files uploaded to the folder. The service will continuously apply logs based on the log sequence number (LSN) chain until it's stopped. |
+| **2.1. Monitor the operation's progress**. | You can monitor progress of the restore operation with a choice of cmdlets: PowerShell ([get-azsqlinstancedatabaselogreplay](/powershell/module/az.sql/get-azsqlinstancedatabaselogreplay)) or Azure CLI ([az_sql_midb_log_replay_show cmdlets](/cli/azure/sql/midb/log-replay#az-sql-midb-log-replay-show)). |
+| **2.2. Stop the operation if needed**. | If you need to stop the migration process, you have a choice of cmdlets: PowerShell ([stop-azsqlinstancedatabaselogreplay](/powershell/module/az.sql/stop-azsqlinstancedatabaselogreplay)) or Azure CLI ([az_sql_midb_log_replay_stop](/cli/azure/sql/midb/log-replay#az-sql-midb-log-replay-stop)). <br /><br /> Stopping the operation will delete the database that you're restoring on SQL Managed Instance. After you stop an operation, you can't resume LRS for a database. You need to restart the migration process from the scratch. |
+| **3. Cut over to the cloud when you're ready**. | Stop the application and the workload. Take the last log-tail backup and upload it to Azure Blob Storage.<br /><br /> Complete the cutover by initiating an LRS `complete` operation with a choice of cmdlets: PowerShell ([complete-azsqlinstancedatabaselogreplay](/powershell/module/az.sql/complete-azsqlinstancedatabaselogreplay)) or Azure CLI [az_sql_midb_log_replay_complete](/cli/azure/sql/midb/log-replay#az-sql-midb-log-replay-complete). This operation will stop LRS and cause the database to come online for read and write use on SQL Managed Instance.<br /><br /> Repoint the application connection string from SQL Server to SQL Managed Instance. You will need to orchestrate this step yourself, either through a manual connection string change in your application, or automatically (for example, if your application can read the connection string from a property, or a database). |
## Requirements for getting started
azure-sql Long Term Backup Retention Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/long-term-backup-retention-configure.md
You can configure SQL Managed Instance to [retain automated backups](../database
# [Azure CLI](#tab/azure-cli)
-1. Run the [az sql midb show](/cli/azure/sql/midb#az_sql_midb_show) command to get the details for the Managed Instance database.
+1. Run the [az sql midb show](/cli/azure/sql/midb#az-sql-midb-show) command to get the details for the Managed Instance database.
```azurecli az sql midb show /
You can configure SQL Managed Instance to [retain automated backups](../database
--subscription mysubscription ```
-2. Run the [az sql midb ltr-policy set](/cli/azure/sql/midb/ltr-policy#az_sql_midb_ltr_policy_set) command to create an LTR policy. The following example sets a long-term retention policy for 12 weeks for the weekly backup.
+2. Run the [az sql midb ltr-policy set](/cli/azure/sql/midb/ltr-policy#az-sql-midb-ltr-policy-set) command to create an LTR policy. The following example sets a long-term retention policy for 12 weeks for the weekly backup.
```azurecli az sql midb ltr-policy set /
View the backups that are retained for a specific database with an LTR policy, a
### View LTR policies
-Run the [az sql midb ltr-policy show](/cli/azure/sql/midb/ltr-policy#az_sql_midb_ltr_policy_show) command to view the LTR policy for a single database within an instance.
+Run the [az sql midb ltr-policy show](/cli/azure/sql/midb/ltr-policy#az-sql-midb-ltr-policy-show) command to view the LTR policy for a single database within an instance.
```azurecli az sql midb ltr-policy show \
az sql midb ltr-policy show \
### View LTR backups
-Use the [az sql midb ltr-backup list](/cli/azure/sql/midb/ltr-backup#az_sql_midb_ltr_backup_list) command to view the LTR backups within an instance.
+Use the [az sql midb ltr-backup list](/cli/azure/sql/midb/ltr-backup#az-sql-midb-ltr-backup-list) command to view the LTR backups within an instance.
```azurecli az sql midb ltr-backup list \
az sql midb ltr-backup list \
### Delete LTR backups
-Run the [az sql midb ltr-backup delete](/cli/azure/sql/midb/ltr-backup#az_sql_midb_ltr_backup_delete) command to remove an LTR backup. You can run [az sql midb ltr-backup list](/cli/azure/sql/midb/ltr-backup#az_sql_midb_ltr_backup_list) to get the backup `name`.
+Run the [az sql midb ltr-backup delete](/cli/azure/sql/midb/ltr-backup#az-sql-midb-ltr-backup-delete) command to remove an LTR backup. You can run [az sql midb ltr-backup list](/cli/azure/sql/midb/ltr-backup#az-sql-midb-ltr-backup-list) to get the backup `name`.
```azurecli az sql midb ltr-backup delete \
az sql midb ltr-backup delete \
### Restore from LTR backups
-Run the [az sql midb ltr-backup restore](/cli/azure/sql/midb/ltr-backup#az_sql_midb_ltr_backup_restore) command to restore your database from an LTR backup. You can run [az sql midb ltr-backup show](/cli/azure/sql/midb/ltr-backup#az_sql_midb_ltr_backup_show) to get the `backup-id`.
+Run the [az sql midb ltr-backup restore](/cli/azure/sql/midb/ltr-backup#az-sql-midb-ltr-backup-restore) command to restore your database from an LTR backup. You can run [az sql midb ltr-backup show](/cli/azure/sql/midb/ltr-backup#az-sql-midb-ltr-backup-show) to get the `backup-id`.
1. Create a variable for the `backup-id` with the command `az sql db ltr-backup show` for future use.
azure-sql Point In Time Restore https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/point-in-time-restore.md
az sql midb restore -g mygroupname --mi myinstancename -n mymanageddbname |
--dest-mi mytargetinstancename ```
-For a detailed explanation of the available parameters, see the [CLI documentation for restoring a database in a SQL Managed Instance](/cli/azure/sql/midb#az_sql_midb_restore).
+For a detailed explanation of the available parameters, see the [CLI documentation for restoring a database in a SQL Managed Instance](/cli/azure/sql/midb#az-sql-midb-restore).
azure-sql Quickstart Content Reference Guide https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/quickstart-content-reference-guide.md
As a first step, you would need to create your first SQL Managed Instance with t
> - You can also use express route or site-to-site connection from your local network, but these approaches are out of the scope of these quickstarts. > - If you change retention period from 0 (unlimited retention) to any other value, please note that retention will only apply to logs written after retention value was changed (logs written during the period when retention was set to unlimited are preserved, even after retention is enabled).
-As an alternative to manual creation of SQL Managed Instance, you can use [PowerShell](scripts/create-configure-managed-instance-powershell.md), [PowerShell with Resource Manager template](./create-template-quickstart.md), or [Azure CLI](/cli/azure/sql/mi#az_sql_mi_create) to script and automate this process.
+As an alternative to manual creation of SQL Managed Instance, you can use [PowerShell](scripts/create-configure-managed-instance-powershell.md), [PowerShell with Resource Manager template](./create-template-quickstart.md), or [Azure CLI](/cli/azure/sql/mi#az-sql-mi-create) to script and automate this process.
### Migrate your databases
azure-sql Service Tiers Managed Instance Vcore https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/service-tiers-managed-instance-vcore.md
Use the following CLI command:
az sql mi update -g mygroup -n myinstance --family Gen5 ```
-For more details, check [az sql mi update](/cli/azure/sql/mi#az_sql_mi_update) command.
+For more details, check [az sql mi update](/cli/azure/sql/mi#az-sql-mi-update) command.
azure-sql Synchronize Vnet Dns Servers Setting On Virtual Cluster https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/synchronize-vnet-dns-servers-setting-on-virtual-cluster.md
virtualNetworkName="vnet-fog-eastus"
virtualNetwork=$(az network vnet show -g $resourceGroup -n $virtualNetworkName --query "id" -otsv) ```
-Use Azure CLI command [az resource invoke-action](/cli/azure/resource#az_resource_invoke_action) to synchronize DNS servers configuration for all the virtual clusters in the subnet.
+Use Azure CLI command [az resource invoke-action](/cli/azure/resource#az-resource-invoke-action) to synchronize DNS servers configuration for all the virtual clusters in the subnet.
```Azure CLI az sql virtual-cluster list --query "[? contains(subnetId,'$virtualNetwork')].id" -o tsv \
azure-sql Vnet Subnet Move Instance https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/managed-instance/vnet-subnet-move-instance.md
$operationProgress.OperationSteps.StepsList
# [Azure CLI](#tab/azure-cli)
-Use the Azure CLI [az sql mi update](/cli/azure/sql/mi#az_sql_mi_update) command to move your instance to another subnet.
+Use the Azure CLI [az sql mi update](/cli/azure/sql/mi#az-sql-mi-update) command to move your instance to another subnet.
Provide the destination by either specifying the subnet ID as the `--subnet` property, or by specifying the virtual network name as the `--vnet-name` property, and subnet name as the `--subnet` property.
azure-sql Availability Group Az Commandline Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/virtual-machines/windows/availability-group-az-commandline-configure.md
New-AzStorageAccount -ResourceGroupName <resource group name> -Name <name> `
## Define cluster metadata
-The Azure CLI [az sql vm group](/cli/azure/sql/vm/group) command group manages the metadata of the Windows Server Failover Cluster (WSFC) service that hosts the availability group. Cluster metadata includes the Active Directory domain, cluster accounts, storage accounts to be used as the cloud witness, and SQL Server version. Use [az sql vm group create](/cli/azure/sql/vm/group#az_sql_vm_group_create) to define the metadata for WSFC so that when the first SQL Server VM is added, the cluster is created as defined.
+The Azure CLI [az sql vm group](/cli/azure/sql/vm/group) command group manages the metadata of the Windows Server Failover Cluster (WSFC) service that hosts the availability group. Cluster metadata includes the Active Directory domain, cluster accounts, storage accounts to be used as the cloud witness, and SQL Server version. Use [az sql vm group create](/cli/azure/sql/vm/group#az-sql-vm-group-create) to define the metadata for WSFC so that when the first SQL Server VM is added, the cluster is created as defined.
The following code snippet defines the metadata for the cluster:
$group = New-AzSqlVMGroup -Name <name> -Location <regio>
## Add VMs to the cluster
-Adding the first SQL Server VM to the cluster creates the cluster. The [az sql vm add-to-group](/cli/azure/sql/vm#az_sql-vm_add_to_group) command creates the cluster with the name previously given, installs the cluster role on the SQL Server VMs, and adds them to the cluster. Subsequent uses of the `az sql vm add-to-group` command add more SQL Server VMs to the newly created cluster.
+Adding the first SQL Server VM to the cluster creates the cluster. The [az sql vm add-to-group](/cli/azure/sql/vm#az-sql-vm-add-to-group) command creates the cluster with the name previously given, installs the cluster role on the SQL Server VMs, and adds them to the cluster. Subsequent uses of the `az sql vm add-to-group` command add more SQL Server VMs to the newly created cluster.
The following code snippet creates the cluster and adds the first SQL Server VM to it:
New-AzLoadBalancer -name sqlILB -ResourceGroupName <resource group name> `
## Create listener
-After you manually create the availability group, you can create the listener by using [az sql vm ag-listener](/cli/azure/sql/vm/group/ag-listener#az_sql_vm_group_ag_listener_create).
+After you manually create the availability group, you can create the listener by using [az sql vm ag-listener](/cli/azure/sql/vm/group/ag-listener#az-sql-vm-group-ag-listener-create).
The *subnet resource ID* is the value of `/subnets/<subnetname>` appended to the resource ID of the virtual network resource. To identify the subnet resource ID: 1. Go to your resource group in the [Azure portal](https://portal.azure.com).
New-AzAvailabilityGroupListener -Name <listener name> -ResourceGroupName <resour
## Modify number of replicas
-There's an added layer of complexity when you're deploying an availability group to SQL Server VMs hosted in Azure. The resource provider and the virtual machine group now manage the resources. As such, when you're adding or removing replicas in the availability group, there's an additional step of updating the listener metadata with information about the SQL Server VMs. When you're modifying the number of replicas in the availability group, you must also use the [az sql vm group ag-listener update](/cli/azure/sql/vm/group/ag-listener#az_sql_vm_group_ag_listener_update) command to update the listener with the metadata of the SQL Server VMs.
+There's an added layer of complexity when you're deploying an availability group to SQL Server VMs hosted in Azure. The resource provider and the virtual machine group now manage the resources. As such, when you're adding or removing replicas in the availability group, there's an additional step of updating the listener metadata with information about the SQL Server VMs. When you're modifying the number of replicas in the availability group, you must also use the [az sql vm group ag-listener update](/cli/azure/sql/vm/group/ag-listener#az-sql-vm-group-ag-listener-update) command to update the listener with the metadata of the SQL Server VMs.
### Add a replica
azure-sql Performance Guidelines Best Practices Checklist https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/virtual-machines/windows/performance-guidelines-best-practices-checklist.md
vm-windows-sql-server Previously updated : 06/01/2021 Last updated : 03/22/2022
For comprehensive details, see the other articles in this series: [Checklist](pe
Enable [SQL Assessment for SQL Server on Azure VMs](sql-assessment-for-sql-vm.md) and your SQL Server will be evaluated against known best practices and results shown on the [SQL VM management page](manage-sql-vm-portal.md) of the Azure portal.
+For video introductions and the latest features on Azure SQL VM optimization and management automation, review this video series from Data Exposed:
+
+- [Azure SQL VM: Caching and Storage Capping (Ep. 1)](/shows/data-exposed/azure-sql-vm-caching-and-storage-capping-ep-1-data-exposed)
+- [Azure SQL VM: Automate Management with the SQL Server IaaS Agent extension (Ep. 2)](/shows/data-exposed/azure-sql-vm-automate-management-with-the-sql-server-iaas-agent-extension-ep-2)
+- [Azure SQL VM: Use Azure Monitor Metrics to Track VM Cache Health (Ep. 3)](/shows/data-exposed/azure-sql-vm-use-azure-monitor-metrics-to-track-vm-cache-health-ep-3)
+- [Azure SQL VM: Get the best price-performance for your SQL Server workloads on Azure VM](/shows/data-exposed/azure-sql-vm-get-the-best-price-performance-for-your-sql-server-workloads-on-azure-vm)
+- [Azure SQL VM: Using PerfInsights to Evaluate Resource Health and Troubleshoot (Ep. 5)](/shows/data-exposed/azure-sql-vm-using-perfinsights-to-evaluate-resource-health-and-troubleshoot-ep-5)
+- [Azure SQL VM: Best Price-Performance with Ebdsv5 Series (Ep.6)](/shows/data-exposed/azure-sql-vm-best-price-performance-with-ebdsv5-series)
+- [Azure SQL VM: Optimally Configure SQL Server on Azure Virtual Machines with SQL Assessment (Ep. 7)](/shows/data-exposed/optimally-configure-sql-server-on-azure-virtual-machines-with-sql-assessment)
+- [Azure SQL VM: New and Improved SQL on Azure VM deployment and management experience (Ep.8) | Data Exposed](/shows/data-exposed/new-and-improved-sql-on-azure-vm-deployment-and-management-experience)
## Overview
azure-sql Sql Agent Extension Manually Register Single Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/virtual-machines/windows/sql-agent-extension-manually-register-single-vm.md
Unregister your SQL Server VM from the extension using the Azure portal:
# [Azure CLI](#tab/azure-cli)
-To unregister your SQL Server VM from the extension with the Azure CLI, use the [az sql vm delete](/cli/azure/sql/vm#az_sql_vm_delete) command. This removes the SQL Server VM *resource* but does not delete the virtual machine.
+To unregister your SQL Server VM from the extension with the Azure CLI, use the [az sql vm delete](/cli/azure/sql/vm#az-sql-vm-delete) command. This removes the SQL Server VM *resource* but does not delete the virtual machine.
To unregister your SQL Server VM with the Azure CLI:
azure-sql Sql Server Iaas Agent Extension Automate Management https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql/virtual-machines/windows/sql-server-iaas-agent-extension-automate-management.md
This article provides an overview of the extension. To install the SQL Server Ia
> [!NOTE] > Starting in September 2021, registering with the SQL IaaS extension in full mode no longer requires restarting the SQL Server service.
+To learn more about the Azure VM deployment and management experience, including recent improvements, see:
+- [Azure SQL VM: Automate Management with the SQL Server IaaS Agent extension (Ep. 2)](/shows/data-exposed/azure-sql-vm-automate-management-with-the-sql-server-iaas-agent-extension-ep-2?WT.mc_id=dataexposed-c9-niner-mighub)
+- [Azure SQL VM: New and Improved SQL on Azure VM deployment and management experience (Ep.8) | Data Exposed](/shows/data-exposed/new-and-improved-sql-on-azure-vm-deployment-and-management-experience?WT.mc_id=dataexposed-c9-niner-mighub).
+ ## Overview The SQL Server IaaS Agent extension allows for integration with the Azure portal, and depending on the management mode, unlocks a number of feature benefits for SQL Server on Azure VMs:
azure-web-pubsub Howto Monitor Azure Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-web-pubsub/howto-monitor-azure-policy.md
When a resource is non-compliant, there are many possible reasons. To determine
### Policy compliance in the Azure CLI
-You can also use the Azure CLI to get compliance data. For example, use the [az policy assignment list](/cli/azure/policy/assignment#az_policy_assignment_list) command in the CLI to get the policy IDs of the Azure Web PubSub Service policies that are applied:
+You can also use the Azure CLI to get compliance data. For example, use the [az policy assignment list](/cli/azure/policy/assignment#az-policy-assignment-list) command in the CLI to get the policy IDs of the Azure Web PubSub Service policies that are applied:
```azurecli az policy assignment list --query "[?contains(displayName,'Web PubSub')].{name:displayName, ID:id}" --output table
Name
[Preview]: Azure Web PubSub Service should use private links /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Authorization/policyAssignments/<assignmentId> ```
-Then run [az policy state list](/cli/azure/policy/state#az_policy_state_list) to return the JSON-formatted compliance state for all resources under a specific resource group:
+Then run [az policy state list](/cli/azure/policy/state#az-policy-state-list) to return the JSON-formatted compliance state for all resources under a specific resource group:
```azurecli az policy state list --g <resourceGroup> ```
-Or run [az policy state list](/cli/azure/policy/state#az_policy_state_list) to return the JSON-formatted compliance state of a specific Web PubSub resource:
+Or run [az policy state list](/cli/azure/policy/state#az-policy-state-list) to return the JSON-formatted compliance state of a specific Web PubSub resource:
```azurecli az policy state list \
azure-web-pubsub Tutorial Build Chat https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-web-pubsub/tutorial-build-chat.md
ngrok will print a URL (`https://<domain-name>.ngrok.io`) that can be accessed f
Then we update the service event handler and set the Webhook URL to `https://<domain-name>.ngrok.io/eventhandler`. Event handlers can be set from either the portal or the CLI as [described in this article](howto-develop-eventhandler.md#configure-event-handler), here we set it through CLI.
-Use the Azure CLI [az webpubsub hub create](/cli/azure/webpubsub/hub#az_webpubsub_hub_update) command to create the event handler settings for the chat hub
+Use the Azure CLI [az webpubsub hub create](/cli/azure/webpubsub/hub#az-webpubsub-hub-update) command to create the event handler settings for the chat hub
> [!Important] > Replace &lt;your-unique-resource-name&gt; with the name of your Web PubSub resource created from the previous steps.
backup Backup Afs Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/backup-afs-cli.md
A Recovery Services vault is an entity that gives you a consolidated view and ma
Follow these steps to create a Recovery Services vault:
-1. A vault is placed in a resource group. If you donΓÇÖt have an existing resource group, create a new one with [az group create](/cli/azure/group#az_group_create) . In this tutorial, we create the new resource group *azurefiles* in the East US region.
+1. A vault is placed in a resource group. If you donΓÇÖt have an existing resource group, create a new one with [az group create](/cli/azure/group#az-group-create) . In this tutorial, we create the new resource group *azurefiles* in the East US region.
```azurecli-interactive az group create --name AzureFiles --location eastus --output table
Follow these steps to create a Recovery Services vault:
eastus AzureFiles ```
-1. Use the [az backup vault create](/cli/azure/backup/vault#az_backup_vault_create) cmdlet to create the vault. Specify the same location for the vault as was used for the resource group.
+1. Use the [az backup vault create](/cli/azure/backup/vault#az-backup-vault-create) cmdlet to create the vault. Specify the same location for the vault as was used for the resource group.
The following example creates a Recovery Services vault named *azurefilesvault* in the East US region.
Follow these steps to create a Recovery Services vault:
## Enable backup for Azure file shares
-This section assumes that you already have an Azure file share for which you want to configure backup. If you don't have one, create an Azure file share using the [az storage share create](/cli/azure/storage/share#az_storage_share_create) command.
+This section assumes that you already have an Azure file share for which you want to configure backup. If you don't have one, create an Azure file share using the [az storage share create](/cli/azure/storage/share#az-storage-share-create) command.
-To enable backup for file shares, you need to create a protection policy that defines when a backup job runs and how long recovery points are stored. You can create a backup policy using the [az backup policy create](/cli/azure/backup/policy#az_backup_policy_create) cmdlet.
+To enable backup for file shares, you need to create a protection policy that defines when a backup job runs and how long recovery points are stored. You can create a backup policy using the [az backup policy create](/cli/azure/backup/policy#az-backup-policy-create) cmdlet.
-The following example uses the [az backup protection enable-for-azurefileshare](/cli/azure/backup/protection#az_backup_protection_enable_for_azurefileshare) cmdlet to enable backup for the *azurefiles* file share in the *afsaccount* storage account using the *schedule 1* backup policy:
+The following example uses the [az backup protection enable-for-azurefileshare](/cli/azure/backup/protection#az-backup-protection-enable-for-azurefileshare) cmdlet to enable backup for the *azurefiles* file share in the *afsaccount* storage account using the *schedule 1* backup policy:
```azurecli-interactive az backup protection enable-for-azurefileshare --vault-name azurefilesvault --resource-group azurefiles --policy-name schedule1 --storage-account afsaccount --azure-file-share azurefiles --output table
Name ResourceGroup
0caa93f4-460b-4328-ac1d-8293521dd928 azurefiles ```
-The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your **enable backup** operation. To track status of the job, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your **enable backup** operation. To track status of the job, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
## Trigger an on-demand backup for file share
-If you want to trigger an on-demand backup for your file share instead of waiting for the backup policy to run the job at the scheduled time, use the [az backup protection backup-now](/cli/azure/backup/protection#az_backup_protection_backup_now) cmdlet.
+If you want to trigger an on-demand backup for your file share instead of waiting for the backup policy to run the job at the scheduled time, use the [az backup protection backup-now](/cli/azure/backup/protection#az-backup-protection-backup-now) cmdlet.
You need to define the following parameters to trigger an on-demand backup:
-* **--container-name** is the name of the storage account hosting the file share. To retrieve the **name** or **friendly name** of your container, use the [az backup container list](/cli/azure/backup/container#az_backup_container_list) command.
-* **--item-name** is the name of the file share for which you want to trigger an on-demand backup. To retrieve the **name** or **friendly name** of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az_backup_item_list) command.
+* **--container-name** is the name of the storage account hosting the file share. To retrieve the **name** or **friendly name** of your container, use the [az backup container list](/cli/azure/backup/container#az-backup-container-list) command.
+* **--item-name** is the name of the file share for which you want to trigger an on-demand backup. To retrieve the **name** or **friendly name** of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az-backup-item-list) command.
* **--retain-until** specifies the date until when you want to retain the recovery point. The value should be set in UTC time format (dd-mm-yyyy). The following example triggers an on-demand backup for the *azurefiles* fileshare in the *afsaccount* storage account with retention until *20-01-2020*.
Name ResourceGroup
9f026b4f-295b-4fb8-aae0-4f058124cb12 azurefiles ```
-The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your ΓÇ£on-demand backupΓÇ¥ operation. To track the status of a job, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your ΓÇ£on-demand backupΓÇ¥ operation. To track the status of a job, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
## Next steps
backup Backup Blobs Storage Account Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/backup-blobs-storage-account-cli.md
See the [prerequisites](./blob-backup-configure-manage.md#before-you-start) and
Backup vault is a storage entity in Azure that stores backup data for various newer workloads that Azure Backup supports, such as Azure Database for PostgreSQL servers, and blobs in a storage account and Azure Disks. Backup vaults make it easy to organize your backup data, while minimizing management overhead. Backup vaults are based on the Azure Resource Manager model of Azure, which provides enhanced capabilities to help secure backup data.
-Before creating a Backup vault, choose the storage redundancy of the data within the vault. Then proceed to create the Backup vault with that storage redundancy and the location. In this article, we'll create a Backup vault _TestBkpVault_, in the region _westus_, under the resource group _testBkpVaultRG_. Use the [az dataprotection vault create](/cli/azure/dataprotection/backup-vault#az_dataprotection_backup_vault_create) command to create a Backup vault. Learn more about [creating a Backup vault](./backup-vault-overview.md#create-a-backup-vault).
+Before creating a Backup vault, choose the storage redundancy of the data within the vault. Then proceed to create the Backup vault with that storage redundancy and the location. In this article, we'll create a Backup vault _TestBkpVault_, in the region _westus_, under the resource group _testBkpVaultRG_. Use the [az dataprotection vault create](/cli/azure/dataprotection/backup-vault#az-dataprotection-backup-vault-create) command to create a Backup vault. Learn more about [creating a Backup vault](./backup-vault-overview.md#create-a-backup-vault).
```azurecli-interactive az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
After creating a vault, let's create a Backup policy to protect Azure Blobs in a
> [!IMPORTANT] > Read [this section](blob-backup-configure-manage.md#before-you-start) before creating the policy and configure backups for Azure Blobs.
-To understand the inner components of a Backup policy for Azure Blobs backup, retrieve the policy template using the [az dataprotection backup-policy get-default-policy-template](/cli/azure/dataprotection/backup-policy#az_dataprotection_backup_policy_get_default_policy_template) command. This command returns a default policy template for a given datasource type. Use this policy template to create a new policy.
+To understand the inner components of a Backup policy for Azure Blobs backup, retrieve the policy template using the [az dataprotection backup-policy get-default-policy-template](/cli/azure/dataprotection/backup-policy#az-dataprotection-backup-policy-get-default-policy-template) command. This command returns a default policy template for a given datasource type. Use this policy template to create a new policy.
```azurecli-interactive az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob
The policy template consists of a lifecycle only (which decides when to delete/c
> [!NOTE] > Restoring over long durations may lead to restore operations taking longer to complete. Also, the time taken to restore a set of data is based on the number of write and delete operations made during the restore period. For example, an account with one million objects with 3,000 objects added per day and 1,000 objects deleted per day will require approximately two hours to restore to a point 30 days in the past.<br><br>We don't recommend a retention period and restoration more than 90 days in the past for an account with this rate of change.
-Once the policy JSON has all the required values, proceed to create a new policy from the policy object using the [az dataprotection backup-policy create](/cli/azure/dataprotection/backup-policy#az_dataprotection_backup_policy_create) command.
+Once the policy JSON has all the required values, proceed to create a new policy from the policy object using the [az dataprotection backup-policy create](/cli/azure/dataprotection/backup-policy#az-dataprotection-backup-policy-create) command.
```azurecli-interactive az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob > policy.json
You need to assign a few permissions via RBAC to vault (represented by vault MSI
### Prepare the request
-Once all the relevant permissions are set, the configuration of backup is performed in 2 steps. First, we prepare the relevant request by using the relevant vault, policy, storage account using the [az dataprotection backup-instance initialize](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_initialize) command. Then, we submit the request to protect the disk using the [az dataprotection backup-instance create](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_create) command.
+Once all the relevant permissions are set, the configuration of backup is performed in 2 steps. First, we prepare the relevant request by using the relevant vault, policy, storage account using the [az dataprotection backup-instance initialize](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-initialize) command. Then, we submit the request to protect the disk using the [az dataprotection backup-instance create](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-create) command.
```azurecli-interactive az dataprotection backup-instance initialize --datasource-type AzureBlob -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA" > backup_instance.json
backup Backup Managed Disks Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/backup-managed-disks-cli.md
For information on the Azure Disk backup region availability, supported scenario
Backup vault is a storage entity in Azure that stores backup data for various newer workloads that Azure Backup supports, such as Azure Database for PostgreSQL servers, blobs in a storage account, and Azure Disks. Backup vaults make it easy to organize your backup data, while minimizing management overhead. Backup vaults are based on the Azure Resource Manager model of Azure, which provides enhanced capabilities to help secure backup data.
-Before you create a Backup vault, choose the storage redundancy of the data within the vault. Then proceed to create the Backup vault with that storage redundancy and the location. In this article, we'll create a Backup vault _TestBkpVault_, in the region _westus_, under the resource group _testBkpVaultRG_. Use the [az dataprotection vault create](/cli/azure/dataprotection/backup-vault#az_dataprotection_backup_vault_create) command to create a Backup vault. Learn more about [creating a Backup vault](./backup-vault-overview.md#create-a-backup-vault).
+Before you create a Backup vault, choose the storage redundancy of the data within the vault. Then proceed to create the Backup vault with that storage redundancy and the location. In this article, we'll create a Backup vault _TestBkpVault_, in the region _westus_, under the resource group _testBkpVaultRG_. Use the [az dataprotection vault create](/cli/azure/dataprotection/backup-vault#az-dataprotection-backup-vault-create) command to create a Backup vault. Learn more about [creating a Backup vault](./backup-vault-overview.md#create-a-backup-vault).
```azurecli-interactive az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
After creation of vault, let's create a Backup policy to protect Azure disks.
## Create a Backup policy
-To understand the inner components of a Backup policy for Azure Disk Backup, retrieve the policy template using the [az dataprotection backup-policy get-default-policy-template](/cli/azure/dataprotection/backup-policy#az_dataprotection_backup_policy_get_default_policy_template) command. This command returns a default policy template for a given datasource type. Use this policy template to create a new policy.
+To understand the inner components of a Backup policy for Azure Disk Backup, retrieve the policy template using the [az dataprotection backup-policy get-default-policy-template](/cli/azure/dataprotection/backup-policy#az-dataprotection-backup-policy-get-default-policy-template) command. This command returns a default policy template for a given datasource type. Use this policy template to create a new policy.
```azurecli-interactive az dataprotection backup-policy get-default-policy-template --datasource-type AzureDisk
The time required for completing the backup operation depends on various factors
To know more details about policy creation, refer to the [Azure Disk Backup policy](backup-managed-disks.md#create-backup-policy) document.
-Once the template is downloaded as a JSON file, you can edit it for scheduling and retention as required. Then create a new policy with the resulting JSON. If you want to edit the hourly frequency or the retention period, use the [az dataprotection backup-policy trigger set](/cli/azure/dataprotection/backup-policy/trigger#az_dataprotection_backup_policy_trigger_set) and/or [az dataprotection backup-policy retention-rule set](/cli/azure/dataprotection/backup-policy/retention-rule#az_dataprotection_backup_policy_retention_rule_set) commands. Once the policy JSON has all the required values, proceed to create a new policy from the policy object using the [az dataprotection backup-policy create](/cli/azure/dataprotection/backup-policy#az_dataprotection_backup_policy_create) command.
+Once the template is downloaded as a JSON file, you can edit it for scheduling and retention as required. Then create a new policy with the resulting JSON. If you want to edit the hourly frequency or the retention period, use the [az dataprotection backup-policy trigger set](/cli/azure/dataprotection/backup-policy/trigger#az-dataprotection-backup-policy-trigger-set) and/or [az dataprotection backup-policy retention-rule set](/cli/azure/dataprotection/backup-policy/retention-rule#az-dataprotection-backup-policy-retention-rule-set) commands. Once the policy JSON has all the required values, proceed to create a new policy from the policy object using the [az dataprotection backup-policy create](/cli/azure/dataprotection/backup-policy#az-dataprotection-backup-policy-create) command.
```azurecli-interactive az dataprotection backup-policy get-default-policy-template --datasource-type AzureDisk > policy.json
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/snapshotrg"
#### Backup vault
-The Backup vaults require permissions on the disk and the snapshot resource group to be able to trigger snapshots and manage their lifecycle. The system-assigned managed identity of the vault is used for assigning such permissions. Use the [az dataprotection backup-vault update](/cli/azure/dataprotection/backup-vault#az_dataprotection_backup_vault_update) command to enable system-assigned managed identity for the Recovery Services Vault.
+The Backup vaults require permissions on the disk and the snapshot resource group to be able to trigger snapshots and manage their lifecycle. The system-assigned managed identity of the vault is used for assigning such permissions. Use the [az dataprotection backup-vault update](/cli/azure/dataprotection/backup-vault#az-dataprotection-backup-vault-update) command to enable system-assigned managed identity for the Recovery Services Vault.
```azurecli-interactive az dataprotection backup-vault update -g testBkpVaultRG --vault-name TestBkpVault --type SystemAssigned
You need to assign a few permissions via RBAC to the vault (represented by vault
### Prepare the request
-Once all the relevant permissions are set, the configuration of backup is performed in two steps. First, we prepare the relevant request by using the relevant vault, policy, disk, and snapshot resource group using the [az dataprotection backup-instance initialize](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_initialize) command. The initialize command will return a JSON file, and then you have to update the snapshot resource group value. Then, we submit the request to protect the disk using the [az dataprotection backup-instance create](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_create) command.
+Once all the relevant permissions are set, the configuration of backup is performed in two steps. First, we prepare the relevant request by using the relevant vault, policy, disk, and snapshot resource group using the [az dataprotection backup-instance initialize](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-initialize) command. The initialize command will return a JSON file, and then you have to update the snapshot resource group value. Then, we submit the request to protect the disk using the [az dataprotection backup-instance create](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-create) command.
```azurecli-interactive az dataprotection backup-instance initialize --datasource-type AzureDisk -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/mypolicy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk" > backup_instance.json
Once the backup instance is created, you can proceed to trigger an on-demand bac
## Run an on-demand backup
-List all backup instances within a vault using [az dataprotection backup-instance list](/cli/azure/dataprotection/backup-instance) command, and then fetch the relevant instance using the [az dataprotection backup-instance show](/cli/azure/dataprotection/backup-instance) command. Alternatively, for at-scale scenarios, you can list backup instances across vaults and subscriptions using the [az dataprotection backup-instance list-from-resourcegraph](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_list_from_resourcegraph) command.
+List all backup instances within a vault using [az dataprotection backup-instance list](/cli/azure/dataprotection/backup-instance) command, and then fetch the relevant instance using the [az dataprotection backup-instance show](/cli/azure/dataprotection/backup-instance) command. Alternatively, for at-scale scenarios, you can list backup instances across vaults and subscriptions using the [az dataprotection backup-instance list-from-resourcegraph](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-list-from-resourcegraph) command.
```azurecli-interactive az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureDisk --datasource-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk
You can specify a retention rule while triggering backup. To view the retention
} ```
-Trigger an on-demand backup using the [az dataprotection backup-instance adhoc-backup](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_adhoc_backup) command.
+Trigger an on-demand backup using the [az dataprotection backup-instance adhoc-backup](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-adhoc-backup) command.
```azurecli-interactive az dataprotection backup-instance adhoc-backup --name "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166" --rule-name "Default" --resource-group "000pikumar" --vault-name "PratikPrivatePreviewVault1"
az dataprotection backup-instance adhoc-backup --name "diskrg-CLITestDisk-3df6ac
## Tracking jobs
-Track all the jobs using the [az dataprotection job list](/cli/azure/dataprotection/job#az_dataprotection_job_list) command. You can list all jobs and fetch a particular job detail.
+Track all the jobs using the [az dataprotection job list](/cli/azure/dataprotection/job#az-dataprotection-job-list) command. You can list all jobs and fetch a particular job detail.
-You can also use Az.ResourceGraph to track all jobs across all Backup vaults. Use the [az dataprotection job list-from-resourcegraph](/cli/azure/dataprotection/job#az_dataprotection_job_list_from_resourcegraph) command to get the relevant job that can be across any Backup vault.
+You can also use Az.ResourceGraph to track all jobs across all Backup vaults. Use the [az dataprotection job list-from-resourcegraph](/cli/azure/dataprotection/job#az-dataprotection-job-list-from-resourcegraph) command to get the relevant job that can be across any Backup vault.
```azurecli az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --status Completed
backup Backup Postgresql Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/backup-postgresql-cli.md
Backup vault is a storage entity in Azure. This stores the backup data for new w
Before you create a Backup vault, choose the storage redundancy of the data within the vault. Then proceed to create the Backup vault with that storage redundancy and the location.
-In this article, we'll create a Backup vault _TestBkpVault_, in the region _westus_, under the resource group _testBkpVaultRG_. Use the [az dataprotection vault create](/cli/azure/dataprotection/backup-vault#az_dataprotection_backup_vault_create) command to create a Backup vault. Learn more about [creating a Backup vault](./backup-vault-overview.md#create-a-backup-vault).
+In this article, we'll create a Backup vault _TestBkpVault_, in the region _westus_, under the resource group _testBkpVaultRG_. Use the [az dataprotection vault create](/cli/azure/dataprotection/backup-vault#az-dataprotection-backup-vault-create) command to create a Backup vault. Learn more about [creating a Backup vault](./backup-vault-overview.md#create-a-backup-vault).
```azurecli-interactive az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
The resultant PowerShell object is as follows:
### Retrieve the policy template
-To understand the inner components of a Backup policy for Azure PostgreSQL database backup, retrieve the policy template using the [az dataprotection backup-policy get-default-policy-template](/cli/azure/dataprotection/backup-policy#az_dataprotection_backup_policy_get_default_policy_template) command. This command returns a default policy template for a given datasource type. Use this policy template to create a new policy.
+To understand the inner components of a Backup policy for Azure PostgreSQL database backup, retrieve the policy template using the [az dataprotection backup-policy get-default-policy-template](/cli/azure/dataprotection/backup-policy#az-dataprotection-backup-policy-get-default-policy-template) command. This command returns a default policy template for a given datasource type. Use this policy template to create a new policy.
```azurecli-interactive az dataprotection backup-policy get-default-policy-template --datasource-type AzureDatabaseForPostgreSQL
The policy template consists of a trigger (which decides what triggers the backu
#### Modify the schedule
-The default policy template offers a backup once per week. You can modify the schedule for the backup to happen multiple days per week. To modify the schedule, use the [az dataprotection backup-policy trigger set](/cli/azure/dataprotection/backup-policy/trigger#az_dataprotection_backup_policy_trigger_set) command.
+The default policy template offers a backup once per week. You can modify the schedule for the backup to happen multiple days per week. To modify the schedule, use the [az dataprotection backup-policy trigger set](/cli/azure/dataprotection/backup-policy/trigger#az-dataprotection-backup-policy-trigger-set) command.
The following example modifies the weekly backup to back up happening on every Sunday, Wednesday, and Friday of every week. The schedule date array mentions the dates, and the days of the week of those dates are taken as days of the week. You also need to specify that these schedules should repeat every week. So, the schedule interval is "1" and the interval type is "Weekly".
az dataprotection backup-policy trigger set --policy .\OSSPolicy.json --schedul
If you want to add the *archive* protection, you need to modify the policy template as below.
-The default template will have a lifecycle for the initial datastore under the default retention rule. In this scenario, the rule says to delete the backup data after three months. You should add a new retention rule that defines when the data is *moved* to *archive* datastore, that is, backup data is first copied to archive datastore, and then deleted in vault datastore. Also, the rule should define for how long the data is kept in the *archive* datastore. Use the [az dataprotection backup-policy retention-rule create-lifecycle](/cli/azure/dataprotection/backup-policy/retention-rule#az_dataprotection_backup_policy_retention_rule_create_lifecycle) command to create new lifecycles and use the [az dataprotection backup-policy retention-rule set](/cli/azure/dataprotection/backup-policy/retention-rule#az_dataprotection_backup_policy_retention_rule_set) command to associate them with the new rules or to the existing rules.
+The default template will have a lifecycle for the initial datastore under the default retention rule. In this scenario, the rule says to delete the backup data after three months. You should add a new retention rule that defines when the data is *moved* to *archive* datastore, that is, backup data is first copied to archive datastore, and then deleted in vault datastore. Also, the rule should define for how long the data is kept in the *archive* datastore. Use the [az dataprotection backup-policy retention-rule create-lifecycle](/cli/azure/dataprotection/backup-policy/retention-rule#az-dataprotection-backup-policy-retention-rule-create-lifecycle) command to create new lifecycles and use the [az dataprotection backup-policy retention-rule set](/cli/azure/dataprotection/backup-policy/retention-rule#az-dataprotection-backup-policy-retention-rule-set) command to associate them with the new rules or to the existing rules.
The following example creates a new retention rule named *Monthly*, where the first successful backup of every month should be retained in vault for six months, moved to archive tier, and kept in archive tier for 24 months.
az dataprotection backup-policy retention-rule set --lifecycles .\VaultToArchive
#### Add a tag and the relevant criteria
-Once a retention rule is created, you've to create a corresponding *tag* in the *Trigger* property of the Backup policy. Use the [az dataprotection backup-policy tag create-absolute-criteria](/cli/azure/dataprotection/backup-policy/tag#az_dataprotection_backup_policy_tag_create_absolute_criteria) command to create a new tagging criteria and use the [az dataprotection backup-policy tag set](/cli/azure/dataprotection/backup-policy/tag#az_dataprotection_backup_policy_tag_set) command to update the existing tag or create a new tag.
+Once a retention rule is created, you've to create a corresponding *tag* in the *Trigger* property of the Backup policy. Use the [az dataprotection backup-policy tag create-absolute-criteria](/cli/azure/dataprotection/backup-policy/tag#az-dataprotection-backup-policy-tag-create-absolute-criteria) command to create a new tagging criteria and use the [az dataprotection backup-policy tag set](/cli/azure/dataprotection/backup-policy/tag#az-dataprotection-backup-policy-tag-set) command to update the existing tag or create a new tag.
The following example creates a new *tag* along with the criteria, the first successful backup of the month. The tag has the same name as the corresponding retention rule to be applied.
az dataprotection backup-policy tag create-absolute-criteria --absolute-criteria
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON ```
-Suppose if the schedule is multiple backups per week (every Sunday, Wednesday, Thursday as specified in the above example) and you want to archive the Sunday and Friday backups, then the tagging criteria can be changed as follows, using the [az dataprotection backup-policy tag create-generic-criteria](/cli/azure/dataprotection/backup-policy/tag#az_dataprotection_backup_policy_tag_create_generic_criteria) command.
+Suppose if the schedule is multiple backups per week (every Sunday, Wednesday, Thursday as specified in the above example) and you want to archive the Sunday and Friday backups, then the tagging criteria can be changed as follows, using the [az dataprotection backup-policy tag create-generic-criteria](/cli/azure/dataprotection/backup-policy/tag#az-dataprotection-backup-policy-tag-create-generic-criteria) command.
```azurecli az dataprotection backup-policy tag create-generic-criteria --days-of-week Sunday Friday > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Mon
### Create a new PostgreSQL backup policy
-Once the template is modified as per the requirements, use the [az dataprotection backup-policy create](/cli/azure/dataprotection/backup-policy#az_dataprotection_backup_policy_create) command to create a policy using the modified template.
+Once the template is modified as per the requirements, use the [az dataprotection backup-policy create](/cli/azure/dataprotection/backup-policy#az-dataprotection-backup-policy-create) command to create a policy using the modified template.
```azurecli az dataprotection backup-policy create --backup-policy-name FinalOSSPolicy --policy AddedRetentionRuleAndTag.JSON --resource-group testBkpVaultRG --vault-name TestBkpVault
See the [permissions](./backup-azure-database-postgresql-overview.md#set-of-perm
Once all the relevant permissions are set, the configuration of backup is performed in two steps.
-1. We prepare the relevant request by using the relevant vault, policy, PostgreSQL database using the [az dataprotection backup-instance initialize](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_initialize) command.
-1. We submit the request to protect the database using the [az dataprotection backup-instance create](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_create) command.
+1. We prepare the relevant request by using the relevant vault, policy, PostgreSQL database using the [az dataprotection backup-instance initialize](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-initialize) command.
+1. We submit the request to protect the database using the [az dataprotection backup-instance create](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-create) command.
```azurecli az dataprotection backup-instance initialize --datasource-id $ossId --datasource-type AzureDatabaseForPostgreSQL -l <vault-location> --policy-id <policy_arm_id> --secret-store-type AzureKeyVault --secret-store-uri $keyURI > OSSBkpInstance.JSON
az dataprotection backup-policy show -g ossdemorg --vault-name ossdemovault-1 -
} ```
-To trigger an on-demand backup, use the [az dataprotection backup-instance adhoc-backup](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_adhoc_backup) command.
+To trigger an on-demand backup, use the [az dataprotection backup-instance adhoc-backup](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-adhoc-backup) command.
```azurecli az dataprotection backup-instance adhoc-backup --name "ossrg-empdb11" --rule-name "Monthly" --resource-group testBkpVaultRG --vault-name TestBkpVault
az dataprotection backup-instance adhoc-backup --name "ossrg-empdb11" --rule-nam
## Track jobs
-Track all jobs using the [az dataprotection job list](/cli/azure/dataprotection/job#az_dataprotection_job_list) command. You can list all jobs and fetch a particular job detail.
+Track all jobs using the [az dataprotection job list](/cli/azure/dataprotection/job#az-dataprotection-job-list) command. You can list all jobs and fetch a particular job detail.
-You can also use _Az.ResourceGraph_ to track all jobs across all Backup vaults. Use the [az dataprotection job list-from-resourcegraph](/cli/azure/dataprotection/job#az_dataprotection_job_list_from_resourcegraph) command to fetch the relevant jobs that are across Backup vaults.
+You can also use _Az.ResourceGraph_ to track all jobs across all Backup vaults. Use the [az dataprotection job list-from-resourcegraph](/cli/azure/dataprotection/job#az-dataprotection-job-list-from-resourcegraph) command to fetch the relevant jobs that are across Backup vaults.
```azurecli az dataprotection job list-from-resourcegraph --datasource-type AzureDatabaseForPostgreSQL --status Completed
backup Backup Support Automation https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/backup-support-automation.md
You can automate most backup related tasks using programmatic methods in Azure
| Backup | Selective disk backup | Supported <br><br> [See the examples](./selective-disk-backup-restore.md#using-powershell) | Supported <br><br> [See the examples](./selective-disk-backup-restore.md#using-azure-cli). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-backupazurevms.md#excluding-disks-in-azure-vm-backup). | N/A | N/A | N/A | Currently not supported. | | Backup | Run on-demand backup | Supported <br><br> [See the examples](./quick-backup-vm-powershell.md#start-a-backup-job). | Supported - <br><br> [See the examples](./quick-backup-vm-cli.md#start-a-backup-job). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-backupazurevms.md#trigger-an-on-demand-backup-for-a-protected-azure-vm). | N/A | N/A | N/A | N/A | | Restore | Restore disks to primary region | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#restore-an-azure-vm). | Supported <br><br> [See the examples](./tutorial-restore-disk.md#restore-a-vm-disk). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-restoreazurevms.md). | N/A | N/A | N/A | N/A |
-| Restore | Cross-region restore | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#restore-disks-to-a-secondary-region). | Supported <br><br> [See the examples](/cli/azure/backup/restore#az_backup_restore_restore_disks). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-restoreazurevms.md#cross-region-restore). | N/A | N/A | N/A | N/A |
+| Restore | Cross-region restore | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#restore-disks-to-a-secondary-region). | Supported <br><br> [See the examples](/cli/azure/backup/restore#az-backup-restore-restore-disks). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-restoreazurevms.md#cross-region-restore). | N/A | N/A | N/A | N/A |
| Restore | Restore selective disks | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#restore-selective-disks). | Supported <br><br> [See the examples](./selective-disk-backup-restore.md#restore-disks-with-azure-cli). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-restoreazurevms.md#restore-disks-selectively). | N/A | N/A | N/A | N/A | | Restore | Create a VM from restored disks | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#using-managed-identity-to-restore-disks). | Supported <br><br> [See the examples](./tutorial-restore-disk.md#using-managed-identity-to-restore-disks). | Supported <br><br> [See the examples](/rest/api/backup/restores/trigger). | N/A | N/A | N/A | N/A | | Restore | Restore files | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#create-a-vm-from-restored-disks). | Supported <br><br> [See the examples](./tutorial-restore-disk.md#create-a-vm-from-the-restored-disk). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-restoreazurevms.md#restore-disks). | N/A | N/A | N/A | N/A | | Manage | Monitor jobs | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#restore-files-from-an-azure-vm-backup). | Supported <br><br> [See the examples](./tutorial-restore-files.md). | N/A | N/A | N/A | N/A | | Manage | Modify backup policy | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#monitoring-a-backup-job). | Supported <br><br> [See the examples](./quick-backup-vm-cli.md#monitor-the-backup-job). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-managejobs.md#tracking-the-job). | N/A | N/A | N/A | N/A |
-| Manage | Stop protection and retain backup data | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#retain-data). | Supported <br><br> [See the examples](/cli/azure/backup/protection#az_backup_protection_disable). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-backupazurevms.md#stop-protection-but-retain-existing-data). | N/A | N/A | N/A | N/A |
-| Manage | Stop protection and delete backup data | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#delete-backup-data). | Supported <br><br> [See the examples](/cli/azure/backup/protection#az_backup_protection_disable). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-backupazurevms.md#stop-protection-and-delete-data). | N/A | N/A | N/A | N/A |
-| Manage | Resume protection | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#resume-backup). | Supported <br><br> [See the examples](/cli/azure/backup/protection#az_backup_protection_resume). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-backupazurevms.md#undo-the-deletion) | N/A | N/A | N/A | N/A |
+| Manage | Stop protection and retain backup data | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#retain-data). | Supported <br><br> [See the examples](/cli/azure/backup/protection#az-backup-protection-disable). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-backupazurevms.md#stop-protection-but-retain-existing-data). | N/A | N/A | N/A | N/A |
+| Manage | Stop protection and delete backup data | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#delete-backup-data). | Supported <br><br> [See the examples](/cli/azure/backup/protection#az-backup-protection-disable). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-backupazurevms.md#stop-protection-and-delete-data). | N/A | N/A | N/A | N/A |
+| Manage | Resume protection | Supported <br><br> [See the examples](./backup-azure-vms-automation.md#resume-backup). | Supported <br><br> [See the examples](/cli/azure/backup/protection#az-backup-protection-resume). | Supported <br><br> [See the examples](./backup-azure-arm-userestapi-backupazurevms.md#undo-the-deletion) | N/A | N/A | N/A | N/A |
### SQL in Azure VM
backup Encryption At Rest With Cmk https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/encryption-at-rest-with-cmk.md
$Set-AzKeyVaultAccessPolicy -VaultName myKeyVault -ObjectId $sp.Id -PermissionsT
# [CLI](#tab/cli)
-Use the [az ad sp list](/cli/azure/ad/sp#az_ad_sp_list) command to get the principal ID of the Recovery Services vault, and then use this ID in the [az keyvault set-policy](/cli/azure/keyvault#az_keyvault_set_policy) command to set an access policy for the Key vault.
+Use the [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list) command to get the principal ID of the Recovery Services vault, and then use this ID in the [az keyvault set-policy](/cli/azure/keyvault#az-keyvault-set-policy) command to set an access policy for the Key vault.
Example:
InfrastructureEncryptionState : Disabled
# [CLI](#tab/cli)
-Use the [az backup vault encryption update](/cli/azure/backup/vault/encryption#az_backup_vault_encryption_update) command to enable encryption using customer-managed keys, and to assign or update the encryption key to be used.
+Use the [az backup vault encryption update](/cli/azure/backup/vault/encryption#az-backup-vault-encryption-update) command to enable encryption using customer-managed keys, and to assign or update the encryption key to be used.
Example:
$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -Storag
# [CLI](#tab/cli)
-Use the [az backup restore restore-disks](/cli/azure/backup/restore#az_backup_restore_restore_disks) command with the parameter [`-DiskEncryptionSetId <string>`] to [specify the DES](/cli/azure/disk-encryption-set) to be used for encrypting the restored disk.
+Use the [az backup restore restore-disks](/cli/azure/backup/restore#az-backup-restore-restore-disks) command with the parameter [`-DiskEncryptionSetId <string>`] to [specify the DES](/cli/azure/disk-encryption-set) to be used for encrypting the restored disk.
Example:
backup Manage Afs Backup Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/manage-afs-backup-cli.md
This article assumes you already have an Azure file share backed up by [Azure Ba
## Monitor jobs
-When you trigger backup or restore operations, the backup service creates a job for tracking. To monitor completed or currently running jobs, use the [az backup job list](/cli/azure/backup/job#az_backup_job_list) cmdlet. With the CLI, you also can [suspend a currently running job](/cli/azure/backup/job#az_backup_job_stop) or [wait until a job finishes](/cli/azure/backup/job#az_backup_job_wait).
+When you trigger backup or restore operations, the backup service creates a job for tracking. To monitor completed or currently running jobs, use the [az backup job list](/cli/azure/backup/job#az-backup-job-list) cmdlet. With the CLI, you also can [suspend a currently running job](/cli/azure/backup/job#az-backup-job-stop) or [wait until a job finishes](/cli/azure/backup/job#az-backup-job-wait).
The following example displays the status of backup jobs for the *azurefilesvault* Recovery Services vault:
az backup job list --resource-group azurefiles --vault-name azurefilesvault
``` ## Create policy
-You can create a backup policy by executing the [az backup policy create](/cli/azure/backup/policy#az_backup_policy_create) command with the following parameters:
+You can create a backup policy by executing the [az backup policy create](/cli/azure/backup/policy#az-backup-policy-create) command with the following parameters:
- --backup-management-type ΓÇô Azure Storage - --workload-type - AzureFileShare
If you want to retain the backup of first Sunday of every month for two months,
## Modify policy
-You can modify a backup policy to change backup frequency or retention range by using [az backup item set-policy](/cli/azure/backup/item#az_backup_item_set_policy).
+You can modify a backup policy to change backup frequency or retention range by using [az backup item set-policy](/cli/azure/backup/item#az-backup-item-set-policy).
To change the policy, define the following parameters:
-* **--container-name**: The name of the storage account that hosts the file share. To retrieve the **name** or **friendly name** of your container, use the [az backup container list](/cli/azure/backup/container#az_backup_container_list) command.
-* **--name**: The name of the file share for which you want to change the policy. To retrieve the **name** or **friendly name** of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az_backup_item_list) command.
-* **--policy-name**: The name of the backup policy you want to set for your file share. You can use [az backup policy list](/cli/azure/backup/policy#az_backup_policy_list) to view all the policies for your vault.
+* **--container-name**: The name of the storage account that hosts the file share. To retrieve the **name** or **friendly name** of your container, use the [az backup container list](/cli/azure/backup/container#az-backup-container-list) command.
+* **--name**: The name of the file share for which you want to change the policy. To retrieve the **name** or **friendly name** of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az-backup-item-list) command.
+* **--policy-name**: The name of the backup policy you want to set for your file share. You can use [az backup policy list](/cli/azure/backup/policy#az-backup-policy-list) to view all the policies for your vault.
The following example sets the *schedule2* backup policy for the *azurefiles* file share present in the *afsaccount* storage account.
Name ResourceGroup
fec6f004-0e35-407f-9928-10a163f123e5 azurefiles ```
-The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your change policy operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your change policy operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
## Stop protection on a file share
There might be a cost associated with leaving the recovery points in storage, be
To stop protection for the file share, define the following parameters:
-* **--container-name**: The name of the storage account that hosts the file share. To retrieve the **name** or **friendly name** of your container, use the [az backup container list](/cli/azure/backup/container#az_backup_container_list) command.
-* **--item-name**: The name of the file share for which you want to stop protection. To retrieve the **name** or **friendly name** of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az_backup_item_list) command.
+* **--container-name**: The name of the storage account that hosts the file share. To retrieve the **name** or **friendly name** of your container, use the [az backup container list](/cli/azure/backup/container#az-backup-container-list) command.
+* **--item-name**: The name of the file share for which you want to stop protection. To retrieve the **name** or **friendly name** of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az-backup-item-list) command.
### Stop protection and retain recovery points
-To stop protection while retaining data, use the [az backup protection disable](/cli/azure/backup/protection#az_backup_protection_disable) cmdlet.
+To stop protection while retaining data, use the [az backup protection disable](/cli/azure/backup/protection#az-backup-protection-disable) cmdlet.
The following example stops protection for the *azurefiles* file share but retains all recovery points.
Name ResourceGroup
fec6f004-0e35-407f-9928-10a163f123e5 azurefiles ```
-The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your stop protection operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your stop protection operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
### Stop protection without retaining recovery points
-To stop protection without retaining recovery points, use the [az backup protection disable](/cli/azure/backup/protection#az_backup_protection_disable) cmdlet with the **delete-backup-data** option set to **true**.
+To stop protection without retaining recovery points, use the [az backup protection disable](/cli/azure/backup/protection#az-backup-protection-disable) cmdlet with the **delete-backup-data** option set to **true**.
The following example stops protection for the *azurefiles* file share without retaining recovery points.
If you stopped protection for an Azure file share but retained recovery points,
To resume protection for the file share, define the following parameters:
-* **--container-name**: The name of the storage account that hosts the file share. To retrieve the **name** or **friendly name** of your container, use the [az backup container list](/cli/azure/backup/container#az_backup_container_list) command.
-* **--item-name**: The name of the file share for which you want to resume protection. To retrieve the **name** or **friendly name** of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az_backup_item_list) command.
+* **--container-name**: The name of the storage account that hosts the file share. To retrieve the **name** or **friendly name** of your container, use the [az backup container list](/cli/azure/backup/container#az-backup-container-list) command.
+* **--item-name**: The name of the file share for which you want to resume protection. To retrieve the **name** or **friendly name** of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az-backup-item-list) command.
* **--policy-name**: The name of the backup policy for which you want to resume the protection for the file share.
-The following example uses the [az backup protection resume](/cli/azure/backup/protection#az_backup_protection_resume) cmdlet to resume protection for the *azurefiles* file share by using the *schedule1* backup policy.
+The following example uses the [az backup protection resume](/cli/azure/backup/protection#az-backup-protection-resume) cmdlet to resume protection for the *azurefiles* file share by using the *schedule1* backup policy.
```azurecli-interactive az backup protection resume --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccountΓÇ¥ --item-name ΓÇ£AzureFileShare;azurefilesΓÇ¥ --policy-name schedule2 --out table
Name ResourceGroup
75115ab0-43b0-4065-8698-55022a234b7f azurefiles ```
-The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your resume protection operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your resume protection operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
## Unregister a storage account If you want to protect your file shares in a particular storage account by using a different Recovery Services vault, first [stop protection for all file shares](#stop-protection-on-a-file-share) in that storage account. Then unregister the account from the Recovery Services vault currently used for protection.
-You need to provide a container name to unregister the storage account. To retrieve the **name** or the **friendly name** of your container, use the [az backup container list](/cli/azure/backup/container#az_backup_container_list) command.
+You need to provide a container name to unregister the storage account. To retrieve the **name** or the **friendly name** of your container, use the [az backup container list](/cli/azure/backup/container#az-backup-container-list) command.
-The following example unregisters the *afsaccount* storage account from *azurefilesvault* by using the [az backup container unregister](/cli/azure/backup/container#az_backup_container_unregister) cmdlet.
+The following example unregisters the *afsaccount* storage account from *azurefilesvault* by using the [az backup container unregister](/cli/azure/backup/container#az-backup-container-unregister) cmdlet.
```azurecli-interactive az backup container unregister --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --out table
backup Modify Vm Policy Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/modify-vm-policy-cli.md
You can use Azure CLI to update an existing VM backup policy. This article will
To modify an existing VM backup policy, follow these steps:
-1. Execute the [az backup policy show](/cli/azure/backup/policy#az_backup_policy_show) command to retrieve the details of policy you want to update.
+1. Execute the [az backup policy show](/cli/azure/backup/policy#az-backup-policy-show) command to retrieve the details of policy you want to update.
Example:
To modify an existing VM backup policy, follow these steps:
``` 1. Save the changes.
-1. Execute the [az backup policy set](/cli/azure/backup/policy#az_backup_policy_set) command and pass the complete path of the updated JSON file as the value for the **
+1. Execute the [az backup policy set](/cli/azure/backup/policy#az-backup-policy-set) command and pass the complete path of the updated JSON file as the value for the **
```azurecli az backup policy set --resource-group rg1234 --vault-name testvault --policy C:\temp2\Policy.json --name testing123 ``` >[!NOTE]
->You can also retrieve the sample JSON policy by executing the [az backup policy get-default-for-vm](/cli/azure/backup/policy#az_backup_policy_get_default_for_vm) command.
+>You can also retrieve the sample JSON policy by executing the [az backup policy get-default-for-vm](/cli/azure/backup/policy#az-backup-policy-get-default-for-vm) command.
## Next steps
backup Quick Backup Vm Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/quick-backup-vm-cli.md
This quickstart enables backup on an existing Azure VM. If you need to create a
A Recovery Services vault is a logical container that stores the backup data for each protected resource, such as Azure VMs. When the backup job for a protected resource runs, it creates a recovery point inside the Recovery Services vault. You can then use one of these recovery points to restore data to a given point in time.
-Create a Recovery Services vault with [az backup vault create](/cli/azure/backup/vault#az_backup_vault_create). Specify the same resource group and location as the VM you wish to protect. If you used the [VM quickstart](../virtual-machines/linux/quick-create-cli.md), then you created:
+Create a Recovery Services vault with [az backup vault create](/cli/azure/backup/vault#az-backup-vault-create). Specify the same resource group and location as the VM you wish to protect. If you used the [VM quickstart](../virtual-machines/linux/quick-create-cli.md), then you created:
- a resource group named *myResourceGroup*, - a VM named *myVM*,
az backup vault create --resource-group myResourceGroup \
--location eastus ```
-By default, the Recovery Services vault is set for Geo-Redundant storage. Geo-Redundant storage ensures your backup data is replicated to a secondary Azure region that's hundreds of miles away from the primary region. If the storage redundancy setting needs to be modified, use [az backup vault backup-properties set](/cli/azure/backup/vault/backup-properties#az_backup_vault_backup_properties_set) cmdlet.
+By default, the Recovery Services vault is set for Geo-Redundant storage. Geo-Redundant storage ensures your backup data is replicated to a secondary Azure region that's hundreds of miles away from the primary region. If the storage redundancy setting needs to be modified, use [az backup vault backup-properties set](/cli/azure/backup/vault/backup-properties#az-backup-vault-backup-properties-set) cmdlet.
```azurecli az backup vault backup-properties set \
az backup vault backup-properties set \
## Enable backup for an Azure VM
-Create a protection policy to define: when a backup job runs, and how long the recovery points are stored. The default protection policy runs a backup job each day and retains recovery points for 30 days. You can use these default policy values to quickly protect your VM. To enable backup protection for a VM, use [az backup protection enable-for-vm](/cli/azure/backup/protection#az_backup_protection_enable_for_vm). Specify the resource group and VM to protect, then the policy to use:
+Create a protection policy to define: when a backup job runs, and how long the recovery points are stored. The default protection policy runs a backup job each day and retains recovery points for 30 days. You can use these default policy values to quickly protect your VM. To enable backup protection for a VM, use [az backup protection enable-for-vm](/cli/azure/backup/protection#az-backup-protection-enable-for-vm). Specify the resource group and VM to protect, then the policy to use:
```azurecli-interactive az backup protection enable-for-vm \
az backup protection enable-for-vm \
## Start a backup job
-To start a backup now rather than wait for the default policy to run the job at the scheduled time, use [az backup protection backup-now](/cli/azure/backup/protection#az_backup_protection_backup_now). This first backup job creates a full recovery point. Each backup job after this initial backup creates incremental recovery points. Incremental recovery points are storage and time-efficient, as they only transfer changes made since the last backup.
+To start a backup now rather than wait for the default policy to run the job at the scheduled time, use [az backup protection backup-now](/cli/azure/backup/protection#az-backup-protection-backup-now). This first backup job creates a full recovery point. Each backup job after this initial backup creates incremental recovery points. Incremental recovery points are storage and time-efficient, as they only transfer changes made since the last backup.
The following parameters are used to back up the VM:
az backup protection backup-now \
## Monitor the backup job
-To monitor the status of backup jobs, use [az backup job list](/cli/azure/backup/job#az_backup_job_list):
+To monitor the status of backup jobs, use [az backup job list](/cli/azure/backup/job#az-backup-job-list):
```azurecli-interactive az backup job list \
When the *Status* of the backup job reports *Completed*, your VM is protected wi
## Clean up deployment
-When no longer needed, you can disable protection on the VM, remove the restore points and Recovery Services vault, then delete the resource group and associated VM resources. If you used an existing VM, you can skip the final [az group delete](/cli/azure/group#az_group_delete) command to leave the resource group and VM in place.
+When no longer needed, you can disable protection on the VM, remove the restore points and Recovery Services vault, then delete the resource group and associated VM resources. If you used an existing VM, you can skip the final [az group delete](/cli/azure/group#az-group-delete) command to leave the resource group and VM in place.
If you want to try a Backup tutorial that explains how to restore data for your VM, go to [Next steps](#next-steps).
backup Restore Afs Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/restore-afs-cli.md
You can use a similar structure for your file shares to try out the different ty
## Fetch recovery points for the Azure file share
-Use the [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az_backup_recoverypoint_list) cmdlet to list all recovery points for the backed-up file share.
+Use the [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az-backup-recoverypoint-list) cmdlet to list all recovery points for the backed-up file share.
The following example fetches the list of recovery points for the *azurefiles* file share in the *afsaccount* storage account.
You can use this restore option to restore the complete file share in the origin
Define the following parameters to perform restore operations:
-* **--container-name**: The name of the storage account that hosts the backed-up original file share. To retrieve the name or friendly name of your container, use the [az backup container list](/cli/azure/backup/container#az_backup_container_list) command.
-* **--item-name**: The name of the backed-up original file share you want to use for the restore operation. To retrieve the name or friendly name of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az_backup_item_list) command.
+* **--container-name**: The name of the storage account that hosts the backed-up original file share. To retrieve the name or friendly name of your container, use the [az backup container list](/cli/azure/backup/container#az-backup-container-list) command.
+* **--item-name**: The name of the backed-up original file share you want to use for the restore operation. To retrieve the name or friendly name of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az-backup-item-list) command.
### Restore a full share to the original location When you restore to an original location, you don't need to specify target-related parameters. Only **Resolve Conflict** must be provided.
-The following example uses the [az backup restore restore-azurefileshare](/cli/azure/backup/restore#az_backup_restore_restore_azurefileshare) cmdlet with restore mode set to *originallocation* to restore the *azurefiles* file share in the original location. You use the recovery point 932883129628959823, which you obtained in [Fetch recovery points for the Azure file share](#fetch-recovery-points-for-the-azure-file-share):
+The following example uses the [az backup restore restore-azurefileshare](/cli/azure/backup/restore#az-backup-restore-restore-azurefileshare) cmdlet with restore mode set to *originallocation* to restore the *azurefiles* file share in the original location. You use the recovery point 932883129628959823, which you obtained in [Fetch recovery points for the Azure file share](#fetch-recovery-points-for-the-azure-file-share):
```azurecli-interactive az backup restore restore-azurefileshare --vault-name azurefilesvault --resource-group azurefiles --rp-name 932887541532871865 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode originallocation --resolve-conflict overwrite --out table
Name ResourceGroup
6a27cc23-9283-4310-9c27-dcfb81b7b4bb azurefiles ```
-The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your restore operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your restore operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
### Restore a full share to an alternate location
You can use this option to restore a file share to an alternate location and kee
* **--target-folder**: The folder under the file share to which data is restored. If the backed-up content is to be restored to a root folder, give the target folder values as an empty string. * **--resolve-conflict**: Instruction if there's a conflict with the restored data. Accepts **Overwrite** or **Skip**.
-The following example uses [az backup restore restore-azurefileshare](/cli/azure/backup/restore#az_backup_restore_restore_azurefileshare) with restore mode as *alternatelocation* to restore the *azurefiles* file share in the *afsaccount* storage account to the *azurefiles1"* file share in the *afaccount1* storage account.
+The following example uses [az backup restore restore-azurefileshare](/cli/azure/backup/restore#az-backup-restore-restore-azurefileshare) with restore mode as *alternatelocation* to restore the *azurefiles* file share in the *afsaccount* storage account to the *azurefiles1"* file share in the *afaccount1* storage account.
```azurecli-interactive az backup restore restore-azurefileshare --vault-name azurefilesvault --resource-group azurefiles --rp-name 932883129628959823 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode alternatelocation --target-storage-account afaccount1 --target-file-share azurefiles1 --target-folder restoredata --resolve-conflict overwrite --out table
Name ResourceGroup
babeb61c-d73d-4b91-9830-b8bfa83c349a azurefiles ```
-The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your restore operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your restore operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
## Item-level recovery
You can use this restore option to restore individual files or folders in the or
Define the following parameters to perform restore operations:
-* **--container-name**: The name of the storage account that hosts the backed-up original file share. To retrieve the name or friendly name of your container, use the [az backup container list](/cli/azure/backup/container#az_backup_container_list) command.
-* **--item-name**: The name of the backed-up original file share you want to use for the restore operation. To retrieve the name or friendly name of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az_backup_item_list) command.
+* **--container-name**: The name of the storage account that hosts the backed-up original file share. To retrieve the name or friendly name of your container, use the [az backup container list](/cli/azure/backup/container#az-backup-container-list) command.
+* **--item-name**: The name of the backed-up original file share you want to use for the restore operation. To retrieve the name or friendly name of your backed-up item, use the [az backup item list](/cli/azure/backup/item#az-backup-item-list) command.
Specify the following parameters for the items you want to recover:
-* **SourceFilePath**: The absolute path of the file, to be restored within the file share, as a string. This path is the same path used in the [az storage file download](/cli/azure/storage/file#az_storage_file_download) or [az storage file show](/cli/azure/storage/file#az_storage_file_show) CLI commands.
+* **SourceFilePath**: The absolute path of the file, to be restored within the file share, as a string. This path is the same path used in the [az storage file download](/cli/azure/storage/file#az-storage-file-download) or [az storage file show](/cli/azure/storage/file#az-storage-file-show) CLI commands.
* **SourceFileType**: Choose whether a directory or a file is selected. Accepts **Directory** or **File**. * **ResolveConflict**: Instruction if there's a conflict with the restored data. Accepts **Overwrite** or **Skip**. ### Restore individual files or folders to the original location
-Use the [az backup restore restore-azurefiles](/cli/azure/backup/restore#az_backup_restore_restore_azurefiles) cmdlet with restore mode set to *originallocation* to restore specific files or folders to their original location.
+Use the [az backup restore restore-azurefiles](/cli/azure/backup/restore#az-backup-restore-restore-azurefiles) cmdlet with restore mode set to *originallocation* to restore specific files or folders to their original location.
The following example restores the *RestoreTest.txt* file in its original location: the *azurefiles* file share.
Name ResourceGroup
df4d9024-0dcb-4edc-bf8c-0a3d18a25319 azurefiles ```
-The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your restore operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your restore operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
### Restore individual files or folders to an alternate location
-To restore specific files or folders to an alternate location, use the [az backup restore restore-azurefiles](/cli/azure/backup/restore#az_backup_restore_restore_azurefiles) cmdlet with restore mode set to *alternatelocation* and specify the following target-related parameters:
+To restore specific files or folders to an alternate location, use the [az backup restore restore-azurefiles](/cli/azure/backup/restore#az-backup-restore-restore-azurefiles) cmdlet with restore mode set to *alternatelocation* and specify the following target-related parameters:
* **--target-storage-account**: The storage account to which the backed-up content is restored. The target storage account must be in the same location as the vault. * **--target-file-share**: The file share within the target storage account to which the backed-up content is restored.
Name ResourceGroup
df4d9024-0dcb-4edc-bf8c-0a3d18a25319 azurefiles ```
-The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your restore operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your restore operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
## Restore multiple files or folders to original or alternate location
Name ResourceGroup
649b0c14-4a94-4945-995a-19e2aace0305 azurefiles ```
-The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your restore operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The **Name** attribute in the output corresponds to the name of the job that's created by the backup service for your restore operation. To track the status of the job, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
If you want to restore multiple items to an alternate location, use the command above by specifying target-related parameters as explained in the [Restore individual files or folders to an alternate location](#restore-individual-files-or-folders-to-an-alternate-location) section.
backup Restore Blobs Storage Account Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/restore-blobs-storage-account-cli.md
We'll refer to an existing Backup vault _TestBkpVault_, under the resource group
As the operational backup for blobs is continuous, there are no distinct points to restore from. Instead, we need to fetch the valid time-range under which blobs can be restored to any point-in-time. In this example, let's check for valid time-ranges to restore within the last 30 days.
-First, we need to fetch the relevant backup instance ID. List all backup instances within a vault using the [az dataprotection backup-instance list](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_list) command, and then fetch the relevant instance using [az dataprotection backup-instance show](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_show) command. Alternatively, for at-scale scenarios, you can list backup instances across vaults and subscriptions using the [az dataprotection backup-instance list-from-resourcegraph](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_list_from_resourcegraph) command.
+First, we need to fetch the relevant backup instance ID. List all backup instances within a vault using the [az dataprotection backup-instance list](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-list) command, and then fetch the relevant instance using [az dataprotection backup-instance show](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-show) command. Alternatively, for at-scale scenarios, you can list backup instances across vaults and subscriptions using the [az dataprotection backup-instance list-from-resourcegraph](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-list-from-resourcegraph) command.
```azurecli-interactive az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureBlob --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
az dataprotection backup-instance list-from-resourcegraph --datasource-type Azur
] ```
-Once the instance is identified, fetch the relevant recovery range using the [az dataprotection restorable-time-range find](/cli/azure/dataprotection/restorable-time-range#az_dataprotection_restorable_time_range_find) command.
+Once the instance is identified, fetch the relevant recovery range using the [az dataprotection restorable-time-range find](/cli/azure/dataprotection/restorable-time-range#az-dataprotection-restorable-time-range-find) command.
```azurecli-interactive az dataprotection restorable-time-range find --start-time 2021-05-30T00:00:00 --end-time 2021-05-31T00:00:00 --source-data-store-type OperationalStore -g testBkpVaultRG --vault-name TestBkpVault --backup-instances CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036
Once the point-in-time to restore is fixed, there are multiple options to restor
#### Restoring all the blobs to a point-in-time
-Using this option, you can restore all block blobs in the storage account by rolling them back to the selected point in time. Storage accounts containing large amounts of data or witnessing a high churn may take longer times to restore. To restore all block blobs, use the [az dataprotection backup-instance restore initialize-for-data-recovery](/cli/azure/dataprotection/backup-instance/restore#az_dataprotection_backup_instance_restore_initialize_for_data_recovery) command. The restore location and the target resource ID will be the same as the protected storage account.
+Using this option, you can restore all block blobs in the storage account by rolling them back to the selected point in time. Storage accounts containing large amounts of data or witnessing a high churn may take longer times to restore. To restore all block blobs, use the [az dataprotection backup-instance restore initialize-for-data-recovery](/cli/azure/dataprotection/backup-instance/restore#az-dataprotection-backup-instance-restore-initialize-for-data-recovery) command. The restore location and the target resource ID will be the same as the protected storage account.
```azurecli-interactive az dataprotection backup-instance restore initialize-for-data-recovery --datasource-type AzureBlob --restore-location southeastasia --source-datastore OperationalStore --target-resource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA" --point-in-time 2021-06-02T18:53:44.4465407Z
az dataprotection backup-instance restore initialize-for-data-recovery --datasou
#### Restoring selected containers
-Using this option, you can browse and select up to 10 containers to restore. To restore selected containers, use the [az dataprotection backup-instance restore initialize-for-item-recovery](/cli/azure/dataprotection/backup-instance/restore#az_dataprotection_backup_instance_restore_initialize_for_item_recovery) command.
+Using this option, you can browse and select up to 10 containers to restore. To restore selected containers, use the [az dataprotection backup-instance restore initialize-for-item-recovery](/cli/azure/dataprotection/backup-instance/restore#az-dataprotection-backup-instance-restore-initialize-for-item-recovery) command.
```azurecli-interactive az dataprotection backup-instance restore initialize-for-item-recovery --datasource-type AzureBlob --restore-location southeastasia --source-datastore OperationalStore --backup-instance-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036" --point-in-time 2021-06-02T18:53:44.4465407Z --container-list container1 container2
This option lets you restore a subset of blobs using a prefix match. You can spe
[Learn more](blob-restore.md#use-prefix-match-for-restoring-blobs) about using prefixes to restore blob ranges.
-To restore selected containers, use the [az dataprotection backup-instance restore initialize-for-item-recovery](/cli/azure/dataprotection/backup-instance/restore#az_dataprotection_backup_instance_restore_initialize_for_item_recovery) command.
+To restore selected containers, use the [az dataprotection backup-instance restore initialize-for-item-recovery](/cli/azure/dataprotection/backup-instance/restore#az-dataprotection-backup-instance-restore-initialize-for-item-recovery) command.
```azurecli-interactive az dataprotection backup-instance restore initialize-for-item-recovery --datasource-type AzureBlob --restore-location southeastasia --source-datastore OperationalStore --backup-instance-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036" --point-in-time 2021-06-02T18:53:44.4465407Z --from-prefix-pattern container1/text1 container2/text4 --to-prefix-pattern container1/text4 container2/text41
az dataprotection backup-instance restore initialize-for-item-recovery --datasou
### Trigger the restore
-Use the [az dataprotection backup-instance restore trigger](/cli/azure/dataprotection/backup-instance/restore#az_dataprotection_backup_instance_restore_trigger) command to trigger the restore with the request prepared above.
+Use the [az dataprotection backup-instance restore trigger](/cli/azure/dataprotection/backup-instance/restore#az-dataprotection-backup-instance-restore-trigger) command to trigger the restore with the request prepared above.
```azurecli-interactive az dataprotection backup-instance restore trigger -g testBkpVaultRG --vault-name TestBkpVault --backup-instance-name CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036 --restore-request-object restore.json
az dataprotection backup-instance restore trigger -g testBkpVaultRG --vault-name
## Tracking job
-Track all the jobs using the [az dataprotection job list](/cli/azure/dataprotection/job#az_dataprotection_job_list) command. You can list all jobs and fetch a particular job detail.
+Track all the jobs using the [az dataprotection job list](/cli/azure/dataprotection/job#az-dataprotection-job-list) command. You can list all jobs and fetch a particular job detail.
-You can also use Az.ResourceGraph to track all jobs across all Backup vaults. Use the [az dataprotection job list-from-resourcegraph](/cli/azure/dataprotection/job#az_dataprotection_job_list_from_resourcegraph) command to get the relevant job which can be across any Backup vault.
+You can also use Az.ResourceGraph to track all jobs across all Backup vaults. Use the [az dataprotection job list-from-resourcegraph](/cli/azure/dataprotection/job#az-dataprotection-job-list-from-resourcegraph) command to get the relevant job which can be across any Backup vault.
```azurecli-interactive az dataprotection job list-from-resourcegraph --datasource-type AzureBlob --operation Restore
backup Restore Managed Disks Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/restore-managed-disks-cli.md
Assign the relevant permissions for vault's system-assigned managed identity on
### Fetching the relevant recovery point
-List all backup instances within a vault using [az dataprotection backup-instance list](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_list) command, and then fetch the relevant instance using the [az dataprotection backup-instance show](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_show) command. Alternatively, for at-scale scenarios, you can list backup instances across vaults and subscriptions using the [az dataprotection backup-instance list-from-resourcegraph](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_list_from_resourcegraph)
+List all backup instances within a vault using [az dataprotection backup-instance list](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-list) command, and then fetch the relevant instance using the [az dataprotection backup-instance show](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-show) command. Alternatively, for at-scale scenarios, you can list backup instances across vaults and subscriptions using the [az dataprotection backup-instance list-from-resourcegraph](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-list-from-resourcegraph)
```azurecli-interactive az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureDisk --datasource-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk
az dataprotection backup-instance list-from-resourcegraph --datasource-type Azur
] ```
-Once the instance is identified, fetch the relevant recovery point using the [az dataprotection recovery-point list](/cli/azure/dataprotection/recovery-point#az_dataprotection_recovery_point_list) command.
+Once the instance is identified, fetch the relevant recovery point using the [az dataprotection recovery-point list](/cli/azure/dataprotection/recovery-point#az-dataprotection-recovery-point-list) command.
```azurecli-interactive az dataprotection recovery-point list --backup-instance-name diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166 -g testBkpVaultRG --vault-name TestBkpVault
Construct the ARM ID of the new disk to be created with the target resource grou
$targetDiskId = /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/Microsoft.Compute/disks/CLITestDisk2 ```
-Use the [az dataprotection backup-instance restore initialize-for-data-recovery](/cli/azure/dataprotection/backup-instance/restore#az_dataprotection_backup_instance_restore_initialize_for_data_recovery) command to prepare the restore request with all relevant details.
+Use the [az dataprotection backup-instance restore initialize-for-data-recovery](/cli/azure/dataprotection/backup-instance/restore#az-dataprotection-backup-instance-restore-initialize-for-data-recovery) command to prepare the restore request with all relevant details.
```azurecli-interactive az dataprotection backup-instance restore initialize-for-data-recovery --datasource-type AzureDisk --restore-location southeastasia --source-datastore OperationalStore --recovery-point-id 5081ad8f1e6c4548ae89536d0d45c493 --target-resource-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/Microsoft.Compute/disks/CLITestDisk2 > restore.json
az dataprotection backup-instance restore initialize-for-data-recovery --datasou
```
-You can also validate if the JSON file will succeed in creating new resources using the [az dataprotection backup-instance validate-for-restore](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_validate_for_restore) command.
+You can also validate if the JSON file will succeed in creating new resources using the [az dataprotection backup-instance validate-for-restore](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-validate-for-restore) command.
```azurecli-interactive az dataprotection backup-instance validate-for-restore -g testBkpVaultRG --vault-name TestBkpVault --backup-instance-name diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166 --restore-request-object restore.json
az dataprotection backup-instance validate-for-restore -g testBkpVaultRG --vault
### Trigger the restore
-Use the [az dataprotection backup-instance restore trigger](/cli/azure/dataprotection/backup-instance/restore#az_dataprotection_backup_instance_restore_trigger) command to trigger the restore with the request prepared above.
+Use the [az dataprotection backup-instance restore trigger](/cli/azure/dataprotection/backup-instance/restore#az-dataprotection-backup-instance-restore-trigger) command to trigger the restore with the request prepared above.
```azurecli-interactive az dataprotection backup-instance restore trigger -g testBkpVaultRG --vault-name TestBkpVault --backup-instance-name diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166 --restore-request-object restore.json
az dataprotection backup-instance restore trigger -g testBkpVaultRG --vault-name
## Tracking job
-Track all jobs using the [az dataprotection job list](/cli/azure/dataprotection/job#az_dataprotection_job_list) command. You can list all jobs and fetch a particular job detail.
+Track all jobs using the [az dataprotection job list](/cli/azure/dataprotection/job#az-dataprotection-job-list) command. You can list all jobs and fetch a particular job detail.
-You can also use Az.ResourceGraph to track all jobs across all Backup vaults. Use the [az dataprotection job list-from-resourcegraph](/cli/azure/dataprotection/job#az_dataprotection_job_list_from_resourcegraph) command to get the relevant job that can be across any Backup vault.
+You can also use Az.ResourceGraph to track all jobs across all Backup vaults. Use the [az dataprotection job list-from-resourcegraph](/cli/azure/dataprotection/job#az-dataprotection-job-list-from-resourcegraph) command to get the relevant job that can be across any Backup vault.
```azurecli-interactive az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --operation Restore
backup Restore Postgresql Database Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/restore-postgresql-database-cli.md
To restore the recovery point as files to a storage account, the [Backup vault's
### Fetch the relevant recovery point
-To list all backup instances within a vault, use [az dataprotection backup-instance list](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_list) command. Then fetch the relevant instance using the [az dataprotection backup-instance show](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_show) command. Alternatively, for _at-scale_ scenarios, you can list backup instances across vaults and subscriptions using the [az dataprotection backup-instance list-from-resourcegraph](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_list_from_resourcegraph) command.
+To list all backup instances within a vault, use [az dataprotection backup-instance list](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-list) command. Then fetch the relevant instance using the [az dataprotection backup-instance show](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-show) command. Alternatively, for _at-scale_ scenarios, you can list backup instances across vaults and subscriptions using the [az dataprotection backup-instance list-from-resourcegraph](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-list-from-resourcegraph) command.
```azurecli az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureDatabaseForPostgreSQL -subscriptions "xxxxxxxx-xxxx-xxxx-xxxx"
az dataprotection backup-instance list-from-resourcegraph --datasource-type Azur
. ```
-Once the instance is identified, fetch the relevant recovery point using the [az dataprotection recovery-point list](/cli/azure/dataprotection/recovery-point#az_dataprotection_recovery_point_list) command.
+Once the instance is identified, fetch the relevant recovery point using the [az dataprotection recovery-point list](/cli/azure/dataprotection/recovery-point#az-dataprotection-recovery-point-list) command.
```azurecli az dataprotection recovery-point list --backup-instance-name testpostgresql-empdb11-957d23b1-c679-4c94-ade6-c4d34635e149 -g testBkpVaultRG --vault-name TestBkpVault
Construct the Azure Resource Manager ID (ARM ID) of the new PostgreSQL database.
$targetOssId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21" ```
-Use the [az dataprotection backup-instance restore initialize-for-data-recovery](/cli/azure/dataprotection/backup-instance/restore#az_dataprotection_backup_instance_restore_initialize_for_data_recovery) command to prepare the restore request with all relevant details.
+Use the [az dataprotection backup-instance restore initialize-for-data-recovery](/cli/azure/dataprotection/backup-instance/restore#az-dataprotection-backup-instance-restore-initialize-for-data-recovery) command to prepare the restore request with all relevant details.
```azurecli az dataprotection backup-instance restore initialize-for-data-recovery --datasource-type AzureDatabaseForPostgreSQL --restore-location {location} --source-datastore VaultStore --target-resource-id $targetOssId --recovery-point-id 9da55e757af94261afa009b43cd3222a --secret-store-type AzureKeyVault --secret-store-uri "https://restoreoss-test.vault.azure.net/secrets/dbauth3" > OssRestoreReq.JSON
Fetch the Uniform Resource Identifier (URI) of the container, within the storage
$contURI = "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore" ```
-Use the [az dataprotection backup-instance restore initialize-for-data-recovery-as-files](/cli/azure/dataprotection/backup-instance/restore#az_dataprotection_backup_instance_restore_initialize_for_data_recovery_as_files) command to prepare the restore request with all relevant details.
+Use the [az dataprotection backup-instance restore initialize-for-data-recovery-as-files](/cli/azure/dataprotection/backup-instance/restore#az-dataprotection-backup-instance-restore-initialize-for-data-recovery-as-files) command to prepare the restore request with all relevant details.
```azurecli az dataprotection backup-instance restore initialize-for-data-recovery-as-files --datasource-type AzureDatabaseForPostgreSQL --restore-location {location} --source-datastore VaultStore -target-blob-container-url $contURI --target-file-name "empdb11_postgresql-westus_1628853549768" --recovery-point-id 9da55e757af94261afa009b43cd3222a > OssRestoreAsFilesReq.JSON
For archive-based recovery point, in the following script:
az dataprotection backup-instance restore initialize-for-data-recovery-as-files --datasource-type AzureDatabaseForPostgreSQL --restore-location {location} --source-datastore ArchiveStore -target-blob-container-url $contURI --target-file-name "empdb11_postgresql-westus_1628853549768" --recovery-point-id 9da55e757af94261afa009b43cd3222a --rehydration-priority Standard --rehydration-duration 12 > OssRestoreAsFilesReq.JSON ```
-To validate if the JSON file will succeed to create new resources, use the [az dataprotection backup-instance validate-for-restore](/cli/azure/dataprotection/backup-instance#az_dataprotection_backup_instance_validate_for_restore) command.
+To validate if the JSON file will succeed to create new resources, use the [az dataprotection backup-instance validate-for-restore](/cli/azure/dataprotection/backup-instance#az-dataprotection-backup-instance-validate-for-restore) command.
### Trigger the restore
-Use the [az dataprotection backup-instance restore trigger](/cli/azure/dataprotection/backup-instance/restore#az_dataprotection_backup_instance_restore_trigger) command to trigger the restore operation with the previously prepared request.
+Use the [az dataprotection backup-instance restore trigger](/cli/azure/dataprotection/backup-instance/restore#az-dataprotection-backup-instance-restore-trigger) command to trigger the restore operation with the previously prepared request.
```azurecli-interactive az dataprotection backup-instance restore trigger -g testBkpVaultRG --vault-name TestBkpVault --backup-instance-name testpostgresql-empdb11-957d23b1-c679-4c94-ade6-c4d34635e149 --restore-request-object OssRestoreReq.JSON
az dataprotection backup-instance restore trigger -g testBkpVaultRG --vault-name
## Tracking job
-Track all jobs using the [az dataprotection job list](/cli/azure/dataprotection/job#az_dataprotection_job_list) command. You can list all jobs and fetch a particular job detail.
+Track all jobs using the [az dataprotection job list](/cli/azure/dataprotection/job#az-dataprotection-job-list) command. You can list all jobs and fetch a particular job detail.
-You can also use _Az.ResourceGraph_ to track jobs across all Backup vaults. Use the [az dataprotection job list-from-resourcegraph](/cli/azure/dataprotection/job#az_dataprotection_job_list_from_resourcegraph) command to get the relevant job that is across all Backup vaults.
+You can also use _Az.ResourceGraph_ to track jobs across all Backup vaults. Use the [az dataprotection job list-from-resourcegraph](/cli/azure/dataprotection/job#az-dataprotection-job-list-from-resourcegraph) command to get the relevant job that is across all Backup vaults.
```azurecli az dataprotection job list-from-resourcegraph --datasource-type AzureDatabaseForPostgreSQL --operation Restore
backup Tutorial Restore Disk https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/tutorial-restore-disk.md
When the data transfer is complete, the snapshot is removed and a recovery point
To restore a disk, you select a recovery point as the source for the recovery data. As the default policy creates a recovery point each day and retains them for 30 days, you can keep a set of recovery points that allows you to select a particular point in time for recovery.
-To see a list of available recovery points, use [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az_backup_recoverypoint_list). The recovery point **name** is used to recover disks. In this tutorial, we want the most recent recovery point available. The `--query [0].name` parameter selects the most recent recovery point name as follows:
+To see a list of available recovery points, use [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az-backup-recoverypoint-list). The recovery point **name** is used to recover disks. In this tutorial, we want the most recent recovery point available. The `--query [0].name` parameter selects the most recent recovery point name as follows:
```azurecli-interactive az backup recoverypoint list \
az backup recoverypoint list \
If the backed-up VM has managed disks and if the intent is to restore managed disks from the recovery point, you first provide an Azure storage account. This storage account is used to store the VM configuration and the deployment template that can be later used to deploy the VM from the restored disks. Then, you also provide a target resource group for the managed disks to be restored into.
-1. To create a storage account, use [az storage account create](/cli/azure/storage/account#az_storage_account_create). The storage account name must be all lowercase, and be globally unique. Replace *mystorageaccount* with your own unique name:
+1. To create a storage account, use [az storage account create](/cli/azure/storage/account#az-storage-account-create). The storage account name must be all lowercase, and be globally unique. Replace *mystorageaccount* with your own unique name:
```azurecli-interactive az storage account create \
If the backed-up VM has managed disks and if the intent is to restore managed di
--sku Standard_LRS ```
-2. Restore the disk from your recovery point with [az backup restore restore-disks](/cli/azure/backup/restore#az_backup_restore_restore_disks). Replace *mystorageaccount* with the name of the storage account you created in the preceding command. Replace *myRecoveryPointName* with the recovery point name you obtained in the output from the previous [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az_backup_recoverypoint_list) command. ***Also provide the target resource group to which the managed disks are restored into***.
+2. Restore the disk from your recovery point with [az backup restore restore-disks](/cli/azure/backup/restore#az-backup-restore-restore-disks). Replace *mystorageaccount* with the name of the storage account you created in the preceding command. Replace *myRecoveryPointName* with the recovery point name you obtained in the output from the previous [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az-backup-recoverypoint-list) command. ***Also provide the target resource group to which the managed disks are restored into***.
```azurecli-interactive az backup restore restore-disks \
This will restore managed disks as unmanaged disks to the given storage account
The backup data replicates to the secondary region when you enable cross-region restore on the vault you've protected your VMs. You can use the backup data to perform a restore operation.
-To restore disks to the secondary region, use the `--use-secondary-region` flag in the [az backup restore restore-disks](/cli/azure/backup/restore#az_backup_restore_restore_disks) command. Ensure that you specify a target storage account that's located in the secondary region.
+To restore disks to the secondary region, use the `--use-secondary-region` flag in the [az backup restore restore-disks](/cli/azure/backup/restore#az-backup-restore-restore-disks) command. Ensure that you specify a target storage account that's located in the secondary region.
```azurecli-interactive az backup restore restore-disks \
az backup restore restore-disks \
You can restore [Azure zone pinned VMs](../virtual-machines/windows/create-portal-availability-zone.md) in any [availability zones](../availability-zones/az-overview.md) of the same region.
-To restore a VM to another zone, specify the `TargetZoneNumber` parameter in the [az backup restore restore-disks](/cli/azure/backup/restore#az_backup_restore_restore_disks) command.
+To restore a VM to another zone, specify the `TargetZoneNumber` parameter in the [az backup restore restore-disks](/cli/azure/backup/restore#az-backup-restore-restore-disks) command.
```azurecli-interactive az backup restore restore-disks \
If the backed-up VM has unmanaged disks and if the intent is to restore disks fr
In additional steps, the restored disk is used to create a VM.
-1. To create a storage account, use [az storage account create](/cli/azure/storage/account#az_storage_account_create). The storage account name must be all lowercase, and be globally unique. Replace *mystorageaccount* with your own unique name:
+1. To create a storage account, use [az storage account create](/cli/azure/storage/account#az-storage-account-create). The storage account name must be all lowercase, and be globally unique. Replace *mystorageaccount* with your own unique name:
```azurecli-interactive az storage account create \
In additional steps, the restored disk is used to create a VM.
--sku Standard_LRS ```
-2. Restore the disk from your recovery point with [az backup restore restore-disks](/cli/azure/backup/restore#az_backup_restore_restore_disks). Replace *mystorageaccount* with the name of the storage account you created in the preceding command. Replace *myRecoveryPointName* with the recovery point name you obtained in the output from the previous [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az_backup_recoverypoint_list) command:
+2. Restore the disk from your recovery point with [az backup restore restore-disks](/cli/azure/backup/restore#az-backup-restore-restore-disks). Replace *mystorageaccount* with the name of the storage account you created in the preceding command. Replace *myRecoveryPointName* with the recovery point name you obtained in the output from the previous [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az-backup-recoverypoint-list) command:
```azurecli-interactive az backup restore restore-disks \
As mentioned above, the unmanaged disks will be restored to their original stora
## Monitor the restore job
-To monitor the status of restore job, use [az backup job list](/cli/azure/backup/job#az_backup_job_list):
+To monitor the status of restore job, use [az backup job list](/cli/azure/backup/job#az-backup-job-list):
```azurecli-interactive az backup job list \
When the *Status* of the restore job reports *Completed*, the necessary informat
Azure Backup also allows you to use managed identity (MSI) during restore operation to access storage accounts where disks have to be restored to. This option is currently supported only for managed disk restore.
-If you wish to use the vault's system assigned managed identity to restore disks, pass an additional flag ***--mi-system-assigned*** to the [az backup restore restore-disks](/cli/azure/backup/restore#az_backup_restore_restore_disks) command. If you wish to use a user-assigned managed identity, pass a parameter ***--mi-user-assigned*** with the Azure Resource Manager ID of the vault's managed identity as the value of the parameter. Refer to [this article](encryption-at-rest-with-cmk.md#enable-managed-identity-for-your-recovery-services-vault) to learn how to enable managed identity for your vaults.
+If you wish to use the vault's system assigned managed identity to restore disks, pass an additional flag ***--mi-system-assigned*** to the [az backup restore restore-disks](/cli/azure/backup/restore#az-backup-restore-restore-disks) command. If you wish to use a user-assigned managed identity, pass a parameter ***--mi-user-assigned*** with the Azure Resource Manager ID of the vault's managed identity as the value of the parameter. Refer to [this article](encryption-at-rest-with-cmk.md#enable-managed-identity-for-your-recovery-services-vault) to learn how to enable managed identity for your vaults.
## Create a VM from the restored disk
az deployment group create \
--template-uri $url?$token ```
-To confirm that your VM has been created from your recovered disk, list the VMs in your resource group with [az vm list](/cli/azure/vm#az_vm_list) as follows:
+To confirm that your VM has been created from your recovered disk, list the VMs in your resource group with [az vm list](/cli/azure/vm#az-vm-list) as follows:
```azurecli-interactive az vm list --resource-group myResourceGroup --output table
backup Tutorial Restore Files https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/tutorial-restore-files.md
When the data transfer is complete, the snapshot is removed and a recovery point
If you accidentally delete or make changes to a file, you can restore individual files from a recovery point. This process allows you to browse the files backed up in a recovery point and restore only the files you need. In this example, we delete a file from a web server to demonstrate the file-level recovery process.
-1. To connect to your VM, obtain the IP address of your VM with [az vm show](/cli/azure/vm#az_vm_show):
+1. To connect to your VM, obtain the IP address of your VM with [az vm show](/cli/azure/vm#az-vm-show):
```azurecli-interactive az vm show --resource-group myResourceGroup --name myVM -d --query [publicIps] --o tsv
If you accidentally delete or make changes to a file, you can restore individual
To restore your files, Azure Backup provides a script to run on your VM that connects your recovery point as a local drive. You can browse this local drive, restore files to the VM itself, then disconnect the recovery point. Azure Backup continues to back up your data based on the assigned policy for schedule and retention.
-1. To list recovery points for your VM, use [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az_backup_recoverypoint_list). In this example, we select the most recent recovery point for the VM named *myVM* that's protected in *myRecoveryServicesVault*:
+1. To list recovery points for your VM, use [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az-backup-recoverypoint-list). In this example, we select the most recent recovery point for the VM named *myVM* that's protected in *myRecoveryServicesVault*:
```azurecli-interactive az backup recoverypoint list \
To restore your files, Azure Backup provides a script to run on your VM that con
--output tsv ```
-2. To obtain the script that connects, or mounts, the recovery point to your VM, use [az backup restore files mount-rp](/cli/azure/backup/restore/files#az_backup_restore_files_mount_rp). The following example obtains the script for the VM named *myVM* that's protected in *myRecoveryServicesVault*.
+2. To obtain the script that connects, or mounts, the recovery point to your VM, use [az backup restore files mount-rp](/cli/azure/backup/restore/files#az-backup-restore-files-mount-rp). The following example obtains the script for the VM named *myVM* that's protected in *myRecoveryServicesVault*.
Replace *myRecoveryPointName* with the name of the recovery point that you obtained in the preceding command:
With the recovery script copied to your VM, you can now connect the recovery poi
./myVM_we_1571974050985163527.sh ```
- As the script runs, you're prompted to enter a password to access the recovery point. Enter the password shown in the output from the previous [az backup restore files mount-rp](/cli/azure/backup/restore/files#az_backup_restore_files_mount_rp) command that generated the recovery script.
+ As the script runs, you're prompted to enter a password to access the recovery point. Enter the password shown in the output from the previous [az backup restore files mount-rp](/cli/azure/backup/restore/files#az-backup-restore-files-mount-rp) command that generated the recovery script.
The output from the script gives you the path for the recovery point. The following example output shows that the recovery point is mounted at */home/azureuser/myVM-20170919213536/Volume1*:
With the recovery script copied to your VM, you can now connect the recovery poi
exit ```
-7. Unmount the recovery point from your VM with [az backup restore files unmount-rp](/cli/azure/backup/restore/files#az_backup_restore_files_unmount_rp). The following example unmounts the recovery point from the VM named *myVM* in *myRecoveryServicesVault*.
+7. Unmount the recovery point from your VM with [az backup restore files unmount-rp](/cli/azure/backup/restore/files#az-backup-restore-files-unmount-rp). The following example unmounts the recovery point from the VM named *myVM* in *myRecoveryServicesVault*.
Replace *myRecoveryPointName* with the name of your recovery point that you obtained in the previous commands:
backup Tutorial Sap Hana Backup Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/tutorial-sap-hana-backup-cli.md
Check out the [scenarios that we currently support](./sap-hana-backup-support-ma
A Recovery Services vault is a logical container that stores the backup data for each protected resource, such as Azure VMs or workloads running on Azure VMs - like SQL or HANA databases. When the backup job for a protected resource runs, it creates a recovery point inside the Recovery Services vault. You can then use one of these recovery points to restore data to a given point in time.
-Create a Recovery Services vault with [az backup vault create](/cli/azure/backup/vault#az_backup_vault_create). Specify the same resource group and location as the VM you wish to protect. Learn how to create a VM using Azure CLI with this [VM quickstart](../virtual-machines/linux/quick-create-cli.md).
+Create a Recovery Services vault with [az backup vault create](/cli/azure/backup/vault#az-backup-vault-create). Specify the same resource group and location as the VM you wish to protect. Learn how to create a VM using Azure CLI with this [VM quickstart](../virtual-machines/linux/quick-create-cli.md).
For this tutorial, we'll be using the following:
az backup vault create --resource-group saphanaResourceGroup \
--location westus2 ```
-By default, the Recovery Services vault is set for Geo-Redundant storage. Geo-Redundant storage ensures your backup data is replicated to a secondary Azure region that's hundreds of miles away from the primary region. If the storage redundancy setting needs to be modified, use the [az backup vault backup-properties set](/cli/azure/backup/vault/backup-properties#az_backup_vault_backup_properties_set) cmdlet.
+By default, the Recovery Services vault is set for Geo-Redundant storage. Geo-Redundant storage ensures your backup data is replicated to a secondary Azure region that's hundreds of miles away from the primary region. If the storage redundancy setting needs to be modified, use the [az backup vault backup-properties set](/cli/azure/backup/vault/backup-properties#az-backup-vault-backup-properties-set) cmdlet.
```azurecli az backup vault backup-properties set \
az backup vault backup-properties set \
--backup-storage-redundancy "LocallyRedundant/GeoRedundant" ```
-To see if your vault was successfully created, use the [az backup vault list](/cli/azure/backup/vault#az_backup_vault_list) cmdlet. You'll see the following response:
+To see if your vault was successfully created, use the [az backup vault list](/cli/azure/backup/vault#az-backup-vault-list) cmdlet. You'll see the following response:
```output Location Name ResourceGroup
westus2 saphanaVault saphanaResourceGroup
For the SAP HANA instance (the VM with SAP HANA installed on it) to be discovered by the Azure services, a [pre-registration script](https://aka.ms/scriptforpermsonhana) must be run on the SAP HANA machine. Make sure that all the [prerequisites](./tutorial-backup-sap-hana-db.md#prerequisites) are met before running the script. To learn more about what the script does, refer to the [What the pre-registration script does](tutorial-backup-sap-hana-db.md#what-the-pre-registration-script-does) section.
-Once the script is run, the SAP HANA instance can be registered with the Recovery Services vault we created earlier. To register the instance, use the [az backup container register](/cli/azure/backup/container#az_backup_container_register) cmdlet. *VMResourceId* is the resource ID of the VM that you created to install SAP HANA.
+Once the script is run, the SAP HANA instance can be registered with the Recovery Services vault we created earlier. To register the instance, use the [az backup container register](/cli/azure/backup/container#az-backup-container-register) cmdlet. *VMResourceId* is the resource ID of the VM that you created to install SAP HANA.
```azurecli-interactive az backup container register --resource-group saphanaResourceGroup \
az backup container register --resource-group saphanaResourceGroup \
Registering the SAP HANA instance automatically discovers all its current databases. However, to discover any new databases that may be added in the future refer to the [Discovering new databases added to the registered SAP HANA](tutorial-sap-hana-manage-cli.md#protect-new-databases-added-to-an-sap-hana-instance) instance section.
-To check if the SAP HANA instance is successfully registered with your vault, use the [az backup container list](/cli/azure/backup/container#az_backup_container_list) cmdlet. You'll see the following response:
+To check if the SAP HANA instance is successfully registered with your vault, use the [az backup container list](/cli/azure/backup/container#az-backup-container-list) cmdlet. You'll see the following response:
```output Name Friendly Name Resource Group Type Registration Status
VMAppContainer;Compute;saphanaResourceGroup;saphanaVM saphanaVM saphana
## Enable backup on SAP HANA database
-The [az backup protectable-item list](/cli/azure/backup/protectable-item#az_backup_protectable_item_list) cmdlet lists out all the databases discovered on the SAP HANA instance that you registered in the previous step.
+The [az backup protectable-item list](/cli/azure/backup/protectable-item#az-backup-protectable-item-list) cmdlet lists out all the databases discovered on the SAP HANA instance that you registered in the previous step.
```azurecli-interactive az backup protectable-item list --resource-group saphanaResourceGroup \
saphanadatabase;hxe;hxe SAPHanaDatabase HXE hxehost
As you can see from the above output, the SID of the SAP HANA system is HXE. In this tutorial, we'll configure backup for the *saphanadatabase;hxe;hxe* database that resides on the *hxehost* server.
-To protect and configure backup on a database, one at a time, we use the [az backup protection enable-for-azurewl](/cli/azure/backup/protection#az_backup_protection_enable_for_azurewl) cmdlet. Provide the name of the policy that you want to use. To create a policy using CLI, use the [az backup policy create](/cli/azure/backup/policy#az_backup_policy_create) cmdlet. For this tutorial, we'll be using the *sapahanaPolicy* policy.
+To protect and configure backup on a database, one at a time, we use the [az backup protection enable-for-azurewl](/cli/azure/backup/protection#az-backup-protection-enable-for-azurewl) cmdlet. Provide the name of the policy that you want to use. To create a policy using CLI, use the [az backup policy create](/cli/azure/backup/policy#az-backup-policy-create) cmdlet. For this tutorial, we'll be using the *sapahanaPolicy* policy.
```azurecli-interactive az backup protection enable-for-azurewl --resource-group saphanaResourceGroup \
az backup protection enable-for-azurewl --resource-group saphanaResourceGroup \
--output table ```
-You can check if the above backup configuration is complete using the [az backup job list](/cli/azure/backup/job#az_backup_job_list) cmdlet. The output will display as follows:
+You can check if the above backup configuration is complete using the [az backup job list](/cli/azure/backup/job#az-backup-job-list) cmdlet. The output will display as follows:
```output Name Operation Status Item Name Start Time UTC
Name Operation Status Item Name S
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed hxe 2019-12-03T03:09:210831+00:00 ```
-The [az backup job list](/cli/azure/backup/job#az_backup_job_list) cmdlet lists out all the backup jobs (scheduled or on-demand) that have run or are currently running on the protected database, in addition to other operations like register, configure backup, and delete backup data.
+The [az backup job list](/cli/azure/backup/job#az-backup-job-list) cmdlet lists out all the backup jobs (scheduled or on-demand) that have run or are currently running on the protected database, in addition to other operations like register, configure backup, and delete backup data.
>[!NOTE] >Azure Backup doesnΓÇÖt automatically adjust for daylight saving time changes when backing up a SAP HANA database running in an Azure VM.
The [az backup job list](/cli/azure/backup/job#az_backup_job_list) cmdlet lists
## Trigger an on-demand backup
-While the section above details how to configure a scheduled backup, this section talks about triggering an on-demand backup. To do this, we use the [az backup protection backup-now](/cli/azure/backup/protection#az_backup_protection_backup_now) cmdlet.
+While the section above details how to configure a scheduled backup, this section talks about triggering an on-demand backup. To do this, we use the [az backup protection backup-now](/cli/azure/backup/protection#az-backup-protection-backup-now) cmdlet.
>[!NOTE] > The retention policy of an on-demand backup is determined by the underlying retention policy for the database.
Name ResourceGroup
e0f15dae-7cac-4475-a833-f52c50e5b6c3 saphanaResourceGroup ```
-The response will give you the job name. This job name can be used to track the job status using the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The response will give you the job name. This job name can be used to track the job status using the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
>[!NOTE] >Log backups are automatically triggered and managed by SAP HANA internally.
backup Tutorial Sap Hana Manage Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/tutorial-sap-hana-manage-cli.md
Azure CLI makes it easy to manage an SAP HANA database running on an Azure VM th
## Monitor backup and restore jobs
-To monitor completed or currently running jobs (backup or restore), use the [az backup job list](/cli/azure/backup/job#az_backup_job_list) cmdlet. CLI also allows you to [suspend a currently running job](/cli/azure/backup/job#az_backup_job_stop) or [wait until a job completes](/cli/azure/backup/job#az_backup_job_wait).
+To monitor completed or currently running jobs (backup or restore), use the [az backup job list](/cli/azure/backup/job#az-backup-job-list) cmdlet. CLI also allows you to [suspend a currently running job](/cli/azure/backup/job#az-backup-job-stop) or [wait until a job completes](/cli/azure/backup/job#az-backup-job-wait).
```azurecli-interactive az backup job list --resource-group saphanaResourceGroup \
F7c68818-039f-4a0f-8d73-e0747e68a813 Restore (Log) Completed hxe [hx
## Change policy
-To change the policy underlying the SAP HANA backup configuration, use the [az backup policy set](/cli/azure/backup/policy#az_backup_policy_set) cmdlet. The name parameter in this cmdlet refers to the backup item whose policy we want to change. For this tutorial, we'll be replacing the policy of our SAP HANA database *saphanadatabase;hxe;hxe* with a new policy *newsaphanaPolicy*. New policies can be created using the [az backup policy create](/cli/azure/backup/policy#az_backup_policy_create) cmdlet.
+To change the policy underlying the SAP HANA backup configuration, use the [az backup policy set](/cli/azure/backup/policy#az-backup-policy-set) cmdlet. The name parameter in this cmdlet refers to the backup item whose policy we want to change. For this tutorial, we'll be replacing the policy of our SAP HANA database *saphanadatabase;hxe;hxe* with a new policy *newsaphanaPolicy*. New policies can be created using the [az backup policy create](/cli/azure/backup/policy#az-backup-policy-create) cmdlet.
```azurecli-interactive az backup item set policy --resource-group saphanaResourceGroup \
cb110094-9b15-4c55-ad45-6899200eb8dd SAPHANA
## Create incremental backup policy
-To create an incremental backup policy, execute the [az backup policy create](/cli/azure/backup/policy#az_backup_policy_create) command with the following parameters:
+To create an incremental backup policy, execute the [az backup policy create](/cli/azure/backup/policy#az-backup-policy-create) command with the following parameters:
* **--backup-management-type** ΓÇô Azure Workload * **--workload-type** - SAPHana
If you want to have incremental backups only on Saturday and retain them for 60
[Registering an SAP HANA instance with a Recovery Services vault](tutorial-sap-hana-backup-cli.md#register-and-protect-the-sap-hana-instance) automatically discovers all the databases on this instance.
-However, in cases when new databases are added to the SAP HANA instance later, use the [az backup protectable-item initialize](/cli/azure/backup/protectable-item#az_backup_protectable_item_initialize) cmdlet. This cmdlet discovers the new databases added.
+However, in cases when new databases are added to the SAP HANA instance later, use the [az backup protectable-item initialize](/cli/azure/backup/protectable-item#az-backup-protectable-item-initialize) cmdlet. This cmdlet discovers the new databases added.
```azurecli-interactive az backup protectable-item initialize --resource-group saphanaResourceGroup \
az backup protectable-item initialize --resource-group saphanaResourceGroup \
--workload-type SAPHANA ```
-Then use the [az backup protectable-item list](/cli/azure/backup/protectable-item#az_backup_protectable_item_list) cmdlet to list all the databases that have been discovered on your SAP HANA instance. This list, however, excludes those databases on which backup has already been configured. Once the database to be backed-up is discovered, refer to [Enable backup on SAP HANA database](tutorial-sap-hana-backup-cli.md#enable-backup-on-sap-hana-database).
+Then use the [az backup protectable-item list](/cli/azure/backup/protectable-item#az-backup-protectable-item-list) cmdlet to list all the databases that have been discovered on your SAP HANA instance. This list, however, excludes those databases on which backup has already been configured. Once the database to be backed-up is discovered, refer to [Enable backup on SAP HANA database](tutorial-sap-hana-backup-cli.md#enable-backup-on-sap-hana-database).
```azurecli-interactive az backup protectable-item list --resource-group saphanaResourceGroup \
Let's look at each of the ways to stop protection in more detail.
### Stop protection with retain data
-To stop protection with retain data, use the [az backup protection disable](/cli/azure/backup/protection#az_backup_protection_disable) cmdlet.
+To stop protection with retain data, use the [az backup protection disable](/cli/azure/backup/protection#az-backup-protection-disable) cmdlet.
```azurecli-interactive az backup protection disable --resource-group saphanaResourceGroup \
Name ResourceGroup
g0f15dae-7cac-4475-d833-f52c50e5b6c3 saphanaResourceGroup ```
-To check the status of this operation, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+To check the status of this operation, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
### Stop protection without retain data
-To stop protection without retain data, use the [az backup protection disable](/cli/azure/backup/protection#az_backup_protection_disable) cmdlet.
+To stop protection without retain data, use the [az backup protection disable](/cli/azure/backup/protection#az-backup-protection-disable) cmdlet.
```azurecli-interactive az backup protection disable --resource-group saphanaResourceGroup \
Name ResourceGroup
g0f15dae-7cac-4475-d833-f52c50e5b6c3 saphanaResourceGroup ```
-To check the status of this operation, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+To check the status of this operation, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
## Resume protection When you stop protection for the SAP HANA database with retain data, you can later resume protection. If you don't retain the backed-up data, you won't be able to resume protection.
-To resume protection, use the [az backup protection resume](/cli/azure/backup/protection#az_backup_protection_resume) cmdlet.
+To resume protection, use the [az backup protection resume](/cli/azure/backup/protection#az-backup-protection-resume) cmdlet.
```azurecli-interactive az backup protection resume --resource-group saphanaResourceGroup \
Name ResourceGroup
b2a7f108-1020-4529-870f-6c4c43e2bb9e saphanaResourceGroup ```
-To check the status of this operation, use the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+To check the status of this operation, use the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
## Next steps
backup Tutorial Sap Hana Restore Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/tutorial-sap-hana-restore-cli.md
This tutorial assumes you have an SAP HANA database running on Azure VM that's b
## View restore points for a backed-up database
-To view the list of all the recovery points for a database, use the [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az_backup_recoverypoint_show_log_chain) cmdlet as follows:
+To view the list of all the recovery points for a database, use the [az backup recoverypoint list](/cli/azure/backup/recoverypoint#az-backup-recoverypoint-show-log-chain) cmdlet as follows:
```azurecli-interactive az backup recoverypoint list --resource-group saphanaResourceGroup \
DefaultRangeRecoveryPoint AzureWorkload
As you can see, the list above contains three recovery points: one each for full, differential, and log backup. >[!NOTE]
->You can also view the start and end points of every unbroken log backup chain, using the [az backup recoverypoint show-log-chain](/cli/azure/backup/recoverypoint#az_backup_recoverypoint_show_log_chain) cmdlet.
+>You can also view the start and end points of every unbroken log backup chain, using the [az backup recoverypoint show-log-chain](/cli/azure/backup/recoverypoint#az-backup-recoverypoint-show-log-chain) cmdlet.
## Prerequisites to restore a database
Azure Backup can restore SAP HANA databases that are running on Azure VMs as fol
* Restore to a specific date or time (to the second) by using log backups. Azure Backup automatically determines the appropriate full, differential backups and the chain of log backups that are required to restore based on the selected time. * Restore to a specific full or differential backup to restore to a specific recovery point.
-To restore a database, use the [az restore restore-azurewl](/cli/azure/backup/restore#az_backup_restore_restore_azurewl) cmdlet, which requires a recovery config object as one of the inputs. This object can be generated using the [az backup recoveryconfig show](/cli/azure/backup/recoveryconfig#az_backup_recoveryconfig_show) cmdlet. The recovery config object contains all the details to perform a restore. One of them being the restore mode ΓÇô **OriginalWorkloadRestore** or **AlternateWorkloadRestore**.
+To restore a database, use the [az restore restore-azurewl](/cli/azure/backup/restore#az-backup-restore-restore-azurewl) cmdlet, which requires a recovery config object as one of the inputs. This object can be generated using the [az backup recoveryconfig show](/cli/azure/backup/recoveryconfig#az-backup-recoveryconfig-show) cmdlet. The recovery config object contains all the details to perform a restore. One of them being the restore mode ΓÇô **OriginalWorkloadRestore** or **AlternateWorkloadRestore**.
>[!NOTE] > **OriginalWorkloadRestore** - Restore the data to the same SAP HANA instance as the original source. This option overwrites the original database. <br>
To restore a database to an alternate location, use **AlternateWorkloadRestore**
In this tutorial, you'll restore to a previous restore point. [View the list of restore points](#view-restore-points-for-a-backed-up-database) for the database and choose the point you want to restore to. This tutorial will use the restore point with the name *7660777527047692711*.
-Using the above restore point name and the restore mode, let's create the recovery config object using the [az backup recoveryconfig show](/cli/azure/backup/recoveryconfig#az_backup_recoveryconfig_show) cmdlet. Let's look at what each of the remaining parameters in this cmdlet mean:
+Using the above restore point name and the restore mode, let's create the recovery config object using the [az backup recoveryconfig show](/cli/azure/backup/recoveryconfig#az-backup-recoveryconfig-show) cmdlet. Let's look at what each of the remaining parameters in this cmdlet mean:
* **--target-item-name** This is the name that the restored database will be using. In this case, we used the name *restored_database*. * **--target-server-name** This is the name of an SAP HANA server that's successfully registered to a Recovery Services vault and lies in the same region as the database to be restored. For this tutorial, we'll restore the database to the same SAP HANA server that we've protected, named *hxehost*.
The response to the above query will be a recovery config object that looks some
{"restore_mode": "AlternateLocation", "container_uri": " VMAppContainer;Compute;saphanaResourceGroup;saphanaVM ", "item_uri": "SAPHanaDatabase;hxe;hxe", "recovery_point_id": "7660777527047692711", "item_type": "SAPHana", "source_resource_id": "/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/saphanaResourceGroup/providers/Microsoft.Compute/virtualMachines/saphanavm", "database_name": null, "container_id": null, "alternate_directory_paths": null} ```
-Now, to restore the database run the [az restore restore-azurewl](/cli/azure/backup/restore#az_backup_restore_restore_azurewl) cmdlet. To use this command, we'll enter the above json output that's saved to a file named *recoveryconfig.json*.
+Now, to restore the database run the [az restore restore-azurewl](/cli/azure/backup/restore#az-backup-restore-restore-azurewl) cmdlet. To use this command, we'll enter the above json output that's saved to a file named *recoveryconfig.json*.
```azurecli-interactive az backup restore restore-azurewl --resource-group saphanaResourceGroup \
Name Resource
5b198508-9712-43df-844b-977e5dfc30ea SAPHANA ```
-The response will give you the job name. This job name can be used to track the job status using [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The response will give you the job name. This job name can be used to track the job status using [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
## Restore and overwrite To restore to the original location, we'll use **OrignialWorkloadRestore** as the restore mode. You must then choose the restore point, which could either be a previous point-in-time or any of the previous restore points.
-For this tutorial, we'll choose the previous point-in-time ΓÇ£28-11-2019-09:53:00ΓÇ¥ to restore to. You can provide this restore point in the following formats: dd-mm-yyyy, dd-mm-yyyy-hh:mm:ss. To choose a valid point-in-time to restore to, use the [az backup recoverypoint show-log-chain](/cli/azure/backup/recoverypoint#az_backup_recoverypoint_show_log_chain) cmdlet, which lists the intervals of unbroken log chain backups.
+For this tutorial, we'll choose the previous point-in-time ΓÇ£28-11-2019-09:53:00ΓÇ¥ to restore to. You can provide this restore point in the following formats: dd-mm-yyyy, dd-mm-yyyy-hh:mm:ss. To choose a valid point-in-time to restore to, use the [az backup recoverypoint show-log-chain](/cli/azure/backup/recoverypoint#az-backup-recoverypoint-show-log-chain) cmdlet, which lists the intervals of unbroken log chain backups.
```azurecli-interactive az backup recoveryconfig show --resource-group saphanaResourceGroup \
The response to the above query will be a recovery config object that looks as f
{"restore_mode": "OriginalLocation", "container_uri": " VMAppContainer;Compute;saphanaResourceGroup;saphanaVM ", "item_uri": "SAPHanaDatabase;hxe;hxe", "recovery_point_id": "DefaultRangeRecoveryPoint", "log_point_in_time": "28-11-2019-09:53:00", "item_type": "SAPHana", "source_resource_id": "/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/saphanaResourceGroup/providers/Microsoft.Compute/virtualMachines/saphanavm", "database_name": null, "container_id": null, "alternate_directory_paths": null}" ```
-Now, to restore the database run the [az restore restore-azurewl](/cli/azure/backup/restore#az_backup_restore_restore_azurewl) cmdlet. To use this command, we'll enter the above json output that's saved to a file named *recoveryconfig.json*.
+Now, to restore the database run the [az restore restore-azurewl](/cli/azure/backup/restore#az-backup-restore-restore-azurewl) cmdlet. To use this command, we'll enter the above json output that's saved to a file named *recoveryconfig.json*.
```azurecli-interactive az backup restore restore-azurewl --resource-group saphanaResourceGroup \
Name Resource
5b198508-9712-43df-844b-977e5dfc30ea SAPHANA ```
-The response will give you the job name. This job name can be used to track the job status using the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The response will give you the job name. This job name can be used to track the job status using the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
## Restore to secondary region
Following is the response to the above command that will be a recovery configura
} ```
-Use this recovery configuration in the [az restore restore-azurewl](/cli/azure/backup/restore#az_backup_restore_restore_azurewl) cmdlet. Select the `--use-secondary-region` flag to restore the database to the secondary region.
+Use this recovery configuration in the [az restore restore-azurewl](/cli/azure/backup/restore#az-backup-restore-restore-azurewl) cmdlet. Select the `--use-secondary-region` flag to restore the database to the secondary region.
```azurecli-interactive az backup restore restore-azurewl --resource-group saphanaResourceGroup \
Name Operation Status Item Name
To restore the backup data as files instead of a database, we'll use **RestoreAsFiles** as the restore mode. Then choose the restore point, which can either be a previous point-in-time or any of the previous restore points. Once the files are dumped to a specified path, you can take these files to any SAP HANA machine where you want to restore them as a database. Because you can move these files to any machine, you can now restore the data across subscriptions and regions.
-For this tutorial, we'll choose the previous point-in-time `28-11-2019-09:53:00` to restore to, and the location to dump backup files as `/home/saphanlet, which lists the intervals of unbroken log chain backups.
+For this tutorial, we'll choose the previous point-in-time `28-11-2019-09:53:00` to restore to, and the location to dump backup files as `/home/saphanlet, which lists the intervals of unbroken log chain backups.
-Using the restore point name above and the restore mode, let's create the recovery config object using the [az backup recoveryconfig show](/cli/azure/backup/recoveryconfig#az_backup_recoveryconfig_show) cmdlet. Let's look at what each of the remaining parameters in this cmdlet mean:
+Using the restore point name above and the restore mode, let's create the recovery config object using the [az backup recoveryconfig show](/cli/azure/backup/recoveryconfig#az-backup-recoveryconfig-show) cmdlet. Let's look at what each of the remaining parameters in this cmdlet mean:
* **--target-container-name** This is the name of an SAP HANA server that's successfully registered to a Recovery Services vault and lies in the same region as the database to be restored. For this tutorial, we'll restore the database as files to the same SAP HANA server that we've protected, named *hxehost*. * **--rp-name** For a point-in-time restore the restore point name will be **DefaultRangeRecoveryPoint**
The response to the query above will be a recovery config object that looks as f
} ```
-Now, to restore the database as files run the [az restore restore-azurewl](/cli/azure/backup/restore#az_backup_restore_restore_azurewl) cmdlet. To use this command, we'll enter the json output above which is saved to a file named *recoveryconfig.json*.
+Now, to restore the database as files run the [az restore restore-azurewl](/cli/azure/backup/restore#az-backup-restore-restore-azurewl) cmdlet. To use this command, we'll enter the json output above which is saved to a file named *recoveryconfig.json*.
```azurecli-interactive az backup restore restore-azurewl --resource-group saphanaResourceGroup \
The output will look like this:
} ```
-The response will give you the job name. This job name can be used to track the job status using the [az backup job show](/cli/azure/backup/job#az_backup_job_show) cmdlet.
+The response will give you the job name. This job name can be used to track the job status using the [az backup job show](/cli/azure/backup/job#az-backup-job-show) cmdlet.
The files that are dumped onto the target container are:
baremetal-infrastructure Connect Baremetal Infrastructure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/baremetal-infrastructure/connect-baremetal-infrastructure.md
To begin using Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header](../../includes/azure-cli-prepare-your-environment-no-header.md)]
-Sign in to the Azure subscription you use for the BareMetal instance deployment through the Azure CLI. Register the `BareMetalInfrastructure` resource provider with the [az provider register](/cli/azure/provider#az_provider_register) command:
+Sign in to the Azure subscription you use for the BareMetal instance deployment through the Azure CLI. Register the `BareMetalInfrastructure` resource provider with the [az provider register](/cli/azure/provider#az-provider-register) command:
```azurecli az provider register --namespace Microsoft.BareMetalInfrastructure ```
-You can use the [az provider list](/cli/azure/provider#az_provider_list) command to see all available providers.
+You can use the [az provider list](/cli/azure/provider#az-provider-list) command to see all available providers.
During the deployment of your BareMetal instances, a new [Azure resource group](
### [Azure CLI](#tab/azure-cli)
-To see all your BareMetal instances, run the [az baremetalinstance list](/cli/azure/baremetalinstance#az_baremetalinstance_list) command for your resource group:
+To see all your BareMetal instances, run the [az baremetalinstance list](/cli/azure/baremetalinstance#az-baremetalinstance-list) command for your resource group:
```azurecli az baremetalinstance list --resource-group DSM05A-T550 ΓÇôoutput table
Also on the right side, you'll find the [Azure proximity placement group's](../v
### [Azure CLI](#tab/azure-cli)
-To see details of a BareMetal instance, run the [az baremetalinstance show](/cli/azure/baremetalinstance#az_baremetalinstance_show) command:
+To see details of a BareMetal instance, run the [az baremetalinstance show](/cli/azure/baremetalinstance#az-baremetalinstance-show) command:
```azurecli az baremetalinstance show --resource-group DSM05A-T550 --instance-name orcllabdsm01
Deleting tags also works the same way as for VMs. Both applying and deleting a t
Assigning tags to BareMetal instances works the same as assigning tags for virtual machines. As with VMs, the tags exist in the Azure metadata. Tags have the same restrictions for BareMetal instances as for VMs.
-To add tags to a BareMetal instance, run the [az baremetalinstance update](/cli/azure/baremetalinstance#az_baremetalinstance_update) command:
+To add tags to a BareMetal instance, run the [az baremetalinstance update](/cli/azure/baremetalinstance#az-baremetalinstance-update) command:
```azurecli az baremetalinstance update --resource-group DSM05a-T550 --instance-name orcllabdsm01 --set tags.Dept=Finance tags.Status=Normal
When you restart a BareMetal instance, you'll experience a delay. During this de
### [Azure CLI](#tab/azure-cli)
-To restart a BareMetal instance, use the [az baremetalinstance restart](/cli/azure/baremetalinstance#az_baremetalinstance_restart) command:
+To restart a BareMetal instance, use the [az baremetalinstance restart](/cli/azure/baremetalinstance#az-baremetalinstance-restart) command:
```azurecli az baremetalinstance restart --resource-group DSM05a-T550 --instance-name orcllabdsm01
batch Batch Cli Get Started https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/batch/batch-cli-get-started.md
az login
### Sign in to Batch account
-Next, sign in to your Batch account in the Azure CLI using the [az batch account login](/cli/azure/batch/account#az_batch_account_login) command. This step gives you access to Batch service commands. Then, you can manage Batch resources like pools, jobs, and tasks.
+Next, sign in to your Batch account in the Azure CLI using the [az batch account login](/cli/azure/batch/account#az-batch-account-login) command. This step gives you access to Batch service commands. Then, you can manage Batch resources like pools, jobs, and tasks.
You can authenticate your Batch account in the Azure CLI in two ways. The default method is to [authenticate using Azure AD](#authenticate-with-azure-ad). We recommend using this method in most scenarios. Another option is to [use Shared Key authentication](#authenticate-with-shared-key).
batch Batch Pool Vm Sizes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/batch/batch-pool-vm-sizes.md
When you select a node size for an Azure Batch pool, you can choose from almost
### Pools in Virtual Machine configuration
-Batch pools in the Virtual Machine configuration support almost all [VM sizes](../virtual-machines/sizes.md). The supported VM sizes in a region can be obtained via [Batch Management APIs](batch-apis-tools.md#batch-management-apis), as well as the [command line tools](batch-apis-tools.md#batch-command-line-tools) (PowerShell cmdlets and Azure CLI). For example, the [Azure Batch CLI command](/cli/azure/batch/location#az_batch_location_list_skus) to list supported VM sizes in a region is:
+Batch pools in the Virtual Machine configuration support almost all [VM sizes](../virtual-machines/sizes.md). The supported VM sizes in a region can be obtained via [Batch Management APIs](batch-apis-tools.md#batch-management-apis), as well as the [command line tools](batch-apis-tools.md#batch-command-line-tools) (PowerShell cmdlets and Azure CLI). For example, the [Azure Batch CLI command](/cli/azure/batch/location#az-batch-location-list-skus) to list supported VM sizes in a region is:
```azurecli-interactive az batch location list-skus --location
batch Create Pool Public Ip https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/batch/create-pool-public-ip.md
For information about creating pools without public IP addresses, read [Create a
Create one or more public IP addresses through one of these methods: - Use the [Azure portal](../virtual-network/ip-services/virtual-network-public-ip-address.md#create-a-public-ip-address)-- Use the [Azure Command-Line Interface (Azure CLI)](/cli/azure/network/public-ip#az_network_public_ip_create)
+- Use the [Azure Command-Line Interface (Azure CLI)](/cli/azure/network/public-ip#az-network-public-ip-create)
- Use [Azure PowerShell](/powershell/module/az.network/new-azpublicipaddress). Make sure your public IP addresses meet the following requirements:
batch Quick Create Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/batch/quick-create-cli.md
The Azure CLI is used to create and manage Azure resources from the command line
## Create a resource group
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command. An Azure resource group is a logical container into which Azure resources are deployed and managed.
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command. An Azure resource group is a logical container into which Azure resources are deployed and managed.
The following example creates a resource group named *QuickstartBatch-rg* in the *eastus2* location.
az group create \
## Create a storage account
-You can link an Azure Storage account with your Batch account. Although not required for this quickstart, the storage account is useful to deploy applications and store input and output data for most real-world workloads. Create a storage account in your resource group with the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command.
+You can link an Azure Storage account with your Batch account. Although not required for this quickstart, the storage account is useful to deploy applications and store input and output data for most real-world workloads. Create a storage account in your resource group with the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command.
```azurecli-interactive az storage account create \
az storage account create \
## Create a Batch account
-Create a Batch account with the [az batch account create](/cli/azure/batch/account#az_batch_account_create) command. You need an account to create compute resources (pools of compute nodes) and Batch jobs.
+Create a Batch account with the [az batch account create](/cli/azure/batch/account#az-batch-account-create) command. You need an account to create compute resources (pools of compute nodes) and Batch jobs.
The following example creates a Batch account named *mybatchaccount* in *QuickstartBatch-rg*, and links the storage account you created.
az batch account create \
--location eastus2 ```
-To create and manage compute pools and jobs, you need to authenticate with Batch. Log in to the account with the [az batch account login](/cli/azure/batch/account#az_batch_account_login) command. After you log in, your `az batch` commands use this account context.
+To create and manage compute pools and jobs, you need to authenticate with Batch. Log in to the account with the [az batch account login](/cli/azure/batch/account#az-batch-account-login) command. After you log in, your `az batch` commands use this account context.
```azurecli-interactive az batch account login \
az batch account login \
## Create a pool of compute nodes
-Now that you have a Batch account, create a sample pool of Linux compute nodes using the [az batch pool create](/cli/azure/batch/pool#az_batch_pool_create) command. The following example creates a pool named *mypool* of two *Standard_A1_v2* nodes running Ubuntu 16.04 LTS. The suggested node size offers a good balance of performance versus cost for this quick example.
+Now that you have a Batch account, create a sample pool of Linux compute nodes using the [az batch pool create](/cli/azure/batch/pool#az-batch-pool-create) command. The following example creates a pool named *mypool* of two *Standard_A1_v2* nodes running Ubuntu 16.04 LTS. The suggested node size offers a good balance of performance versus cost for this quick example.
```azurecli-interactive az batch pool create \
az batch pool create \
--node-agent-sku-id "batch.node.ubuntu 16.04" ```
-Batch creates the pool immediately, but it takes a few minutes to allocate and start the compute nodes. During this time, the pool is in the `resizing` state. To see the status of the pool, run the [az batch pool show](/cli/azure/batch/pool#az_batch_pool_show) command. This command shows all the properties of the pool, and you can query for specific properties. The following command gets the allocation state of the pool:
+Batch creates the pool immediately, but it takes a few minutes to allocate and start the compute nodes. During this time, the pool is in the `resizing` state. To see the status of the pool, run the [az batch pool show](/cli/azure/batch/pool#az-batch-pool-show) command. This command shows all the properties of the pool, and you can query for specific properties. The following command gets the allocation state of the pool:
```azurecli-interactive az batch pool show --pool-id mypool \
Continue the following steps to create a job and tasks while the pool state is c
## Create a job
-Now that you have a pool, create a job to run on it. A Batch job is a logical group for one or more tasks. A job includes settings common to the tasks, such as priority and the pool to run tasks on. Create a Batch job by using the [az batch job create](/cli/azure/batch/job#az_batch_job_create) command. The following example creates a job *myjob* on the pool *mypool*. Initially the job has no tasks.
+Now that you have a pool, create a job to run on it. A Batch job is a logical group for one or more tasks. A job includes settings common to the tasks, such as priority and the pool to run tasks on. Create a Batch job by using the [az batch job create](/cli/azure/batch/job#az-batch-job-create) command. The following example creates a job *myjob* on the pool *mypool*. Initially the job has no tasks.
```azurecli-interactive az batch job create \
az batch job create \
## Create tasks
-Now use the [az batch task create](/cli/azure/batch/task#az_batch_task_create) command to create some tasks to run in the job. In this example, you create four identical tasks. Each task runs a `command-line` to display the Batch environment variables on a compute node, and then waits 90 seconds. When you use Batch, this command line is where you specify your app or script. Batch provides several ways to deploy apps and scripts to compute nodes.
+Now use the [az batch task create](/cli/azure/batch/task#az-batch-task-create) command to create some tasks to run in the job. In this example, you create four identical tasks. Each task runs a `command-line` to display the Batch environment variables on a compute node, and then waits 90 seconds. When you use Batch, this command line is where you specify your app or script. Batch provides several ways to deploy apps and scripts to compute nodes.
The following Bash script creates four parallel tasks (*mytask1* to *mytask4*).
The command output shows settings for each of the tasks. Batch distributes the t
After you create a task, Batch queues it to run on the pool. Once a node is available to run it, the task runs.
-Use the [az batch task show](/cli/azure/batch/task#az_batch_task_show) command to view the status of the Batch tasks. The following example shows details about *mytask1* running on one of the pool nodes.
+Use the [az batch task show](/cli/azure/batch/task#az-batch-task-show) command to view the status of the Batch tasks. The following example shows details about *mytask1* running on one of the pool nodes.
```azurecli-interactive az batch task show \
AZ_BATCH_TASK_USER_IDENTITY=PoolNonAdmin
If you want to continue with Batch tutorials and samples, use the Batch account and linked storage account created in this quickstart. There is no charge for the Batch account itself.
-You are charged for pools while the nodes are running, even if no jobs are scheduled. When you no longer need a pool, delete it with the [az batch pool delete](/cli/azure/batch/pool#az_batch_pool_delete) command. When you delete the pool, all task output on the nodes is deleted.
+You are charged for pools while the nodes are running, even if no jobs are scheduled. When you no longer need a pool, delete it with the [az batch pool delete](/cli/azure/batch/pool#az-batch-pool-delete) command. When you delete the pool, all task output on the nodes is deleted.
```azurecli-interactive az batch pool delete --pool-id mypool ```
-When no longer needed, you can use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, Batch account, pools, and all related resources. Delete the resources as follows:
+When no longer needed, you can use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, Batch account, pools, and all related resources. Delete the resources as follows:
```azurecli-interactive az group delete --name QuickstartBatch-rg
batch Batch Cli Sample Add Application https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/batch/scripts/batch-cli-sample-add-application.md
Each command in the table links to command-specific documentation.
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Creates a storage account. |
-| [az batch account create](/cli/azure/batch/account#az_batch_account_create) | Creates the Batch account. |
-| [az batch account login](/cli/azure/batch/account#az_batch_account_login) | Authenticates against the specified Batch account for further CLI interaction. |
-| [az batch application create](/cli/azure/batch/application#az_batch-application-create) | Creates an application. |
-| [az batch application package create](/cli/azure/batch/application/package#az_batch-application-package-create) | Adds an application package to the specified application. |
-| [az batch application set](/cli/azure/batch/application#az_batch-application-set) | Updates properties of an application. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Creates a storage account. |
+| [az batch account create](/cli/azure/batch/account#az-batch-account-create) | Creates the Batch account. |
+| [az batch account login](/cli/azure/batch/account#az-batch-account-login) | Authenticates against the specified Batch account for further CLI interaction. |
+| [az batch application create](/cli/azure/batch/application#az-batch-application-create) | Creates an application. |
+| [az batch application package create](/cli/azure/batch/application/package#az-batch-application-package-create) | Adds an application package to the specified application. |
+| [az batch application set](/cli/azure/batch/application#az-batch-application-set) | Updates properties of an application. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
batch Batch Cli Sample Create Account https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/batch/scripts/batch-cli-sample-create-account.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az batch account create](/cli/azure/batch/account#az_batch_account_create) | Creates the Batch account. |
-| [az storage account create](/cli/azure/storage/account#az_storage_account_create) | Creates a storage account. |
-| [az batch account set](/cli/azure/batch/account#az_batch_account_set) | Updates properties of the Batch account. |
-| [az batch account show](/cli/azure/batch/account#az_batch_account_show) | Retrieves details of the specified Batch account. |
-| [az batch account keys list](/cli/azure/batch/account/keys#az_batch_account_keys_list) | Retrieves the access keys of the specified Batch account. |
-| [az batch account login](/cli/azure/batch/account#az_batch_account_login) | Authenticates against the specified Batch account for further CLI interaction. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az batch account create](/cli/azure/batch/account#az-batch-account-create) | Creates the Batch account. |
+| [az storage account create](/cli/azure/storage/account#az-storage-account-create) | Creates a storage account. |
+| [az batch account set](/cli/azure/batch/account#az-batch-account-set) | Updates properties of the Batch account. |
+| [az batch account show](/cli/azure/batch/account#az-batch-account-show) | Retrieves details of the specified Batch account. |
+| [az batch account keys list](/cli/azure/batch/account/keys#az-batch-account-keys-list) | Retrieves the access keys of the specified Batch account. |
+| [az batch account login](/cli/azure/batch/account#az-batch-account-login) | Authenticates against the specified Batch account for further CLI interaction. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
batch Batch Cli Sample Create User Subscription Account https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/batch/scripts/batch-cli-sample-create-user-subscription-account.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | ||| | [az role assignment create](/cli/azure/role) | Create a new role assignment for a user, group, or service principal. |
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az keyvault create](/cli/azure/keyvault#az_keyvault_create) | Creates a key vault. |
-| [az keyvault set-policy](/cli/azure/keyvault#az_keyvault_set_policy) | Update the security policy of the specified key vault. |
-| [az batch account create](/cli/azure/batch/account#az_batch_account_create) | Creates the Batch account. |
-| [az batch account login](/cli/azure/batch/account#az_batch_account_login) | Authenticates against the specified Batch account for further CLI interaction. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az keyvault create](/cli/azure/keyvault#az-keyvault-create) | Creates a key vault. |
+| [az keyvault set-policy](/cli/azure/keyvault#az-keyvault-set-policy) | Update the security policy of the specified key vault. |
+| [az batch account create](/cli/azure/batch/account#az-batch-account-create) | Creates the Batch account. |
+| [az batch account login](/cli/azure/batch/account#az-batch-account-login) | Authenticates against the specified Batch account for further CLI interaction. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
batch Batch Cli Sample Manage Linux Pool https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/batch/scripts/batch-cli-sample-manage-linux-pool.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az batch account create](/cli/azure/batch/account#az_batch_account_create) | Creates the Batch account. |
-| [az batch account login](/cli/azure/batch/account#az_batch_account_login) | Authenticates against the specified Batch account for further CLI interaction. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az batch account create](/cli/azure/batch/account#az-batch-account-create) | Creates the Batch account. |
+| [az batch account login](/cli/azure/batch/account#az-batch-account-login) | Authenticates against the specified Batch account for further CLI interaction. |
| [az batch pool node-agent-skus list](../batch-linux-nodes.md#list-of-virtual-machine-images) | Lists available node agent SKUs and image information. |
-| [az batch pool create](/cli/azure/batch/pool#az_batch_pool_create) | Creates a pool of compute nodes. |
-| [az batch pool resize](/cli/azure/batch/pool#az_batch_pool_resize) | Resizes the number of running VMs in the specified pool. |
-| [az batch pool show](/cli/azure/batch/pool#az_batch_pool_show) | Displays the properties of a pool. |
-| [az batch node list](/cli/azure/batch/node#az_batch_node_list) | Lists all the compute node in the specified pool. |
-| [az batch node reboot](/cli/azure/batch/node#az_batch_node_reboot) | Reboots the specified compute node. |
-| [az batch node delete](/cli/azure/batch/node#az_batch_node_delete) | Deletes the listed nodes from the specified pool. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az batch pool create](/cli/azure/batch/pool#az-batch-pool-create) | Creates a pool of compute nodes. |
+| [az batch pool resize](/cli/azure/batch/pool#az-batch-pool-resize) | Resizes the number of running VMs in the specified pool. |
+| [az batch pool show](/cli/azure/batch/pool#az-batch-pool-show) | Displays the properties of a pool. |
+| [az batch node list](/cli/azure/batch/node#az-batch-node-list) | Lists all the compute node in the specified pool. |
+| [az batch node reboot](/cli/azure/batch/node#az-batch-node-reboot) | Reboots the specified compute node. |
+| [az batch node delete](/cli/azure/batch/node#az-batch-node-delete) | Deletes the listed nodes from the specified pool. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
batch Batch Cli Sample Manage Windows Pool https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/batch/scripts/batch-cli-sample-manage-windows-pool.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az batch account create](/cli/azure/batch/account#az_batch_account_create) | Creates the Batch account. |
-| [az batch account login](/cli/azure/batch/account#az_batch_account_login) | Authenticates against the specified Batch account for further CLI interaction. |
-| [az batch pool create](/cli/azure/batch/pool#az_batch_pool_create) | Creates a pool of compute nodes. |
-| [az batch pool set](/cli/azure/batch/pool#az_batch_pool_set) | Updates the properties of a pool. |
-| [az batch pool autoscale enable](/cli/azure/batch/pool/autoscale#az_batch_pool_autoscale_enable) | Enables auto-scaling on a pool and applies a formula. |
-| [az batch pool show](/cli/azure/batch/pool#az_batch_pool_show) | Displays the properties of a pool. |
-| [az batch pool autoscale disable](/cli/azure/batch/pool/autoscale#az_batch_pool_autoscale_disable) | Disables auto-scaling on a pool. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az batch account create](/cli/azure/batch/account#az-batch-account-create) | Creates the Batch account. |
+| [az batch account login](/cli/azure/batch/account#az-batch-account-login) | Authenticates against the specified Batch account for further CLI interaction. |
+| [az batch pool create](/cli/azure/batch/pool#az-batch-pool-create) | Creates a pool of compute nodes. |
+| [az batch pool set](/cli/azure/batch/pool#az-batch-pool-set) | Updates the properties of a pool. |
+| [az batch pool autoscale enable](/cli/azure/batch/pool/autoscale#az-batch-pool-autoscale-enable) | Enables auto-scaling on a pool and applies a formula. |
+| [az batch pool show](/cli/azure/batch/pool#az-batch-pool-show) | Displays the properties of a pool. |
+| [az batch pool autoscale disable](/cli/azure/batch/pool/autoscale#az-batch-pool-autoscale-disable) | Disables auto-scaling on a pool. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
batch Batch Cli Sample Run Job https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/batch/scripts/batch-cli-sample-run-job.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az batch account create](/cli/azure/batch/account#az_batch_account_create) | Creates the Batch account. |
-| [az batch account login](/cli/azure/batch/account#az_batch_account_login) | Authenticates against the specified Batch account for further CLI interaction. |
-| [az batch pool create](/cli/azure/batch/pool#az_batch_pool_create) | Creates a pool of compute nodes. |
-| [az batch job create](/cli/azure/batch/job#az_batch_job_create) | Creates a Batch job. |
-| [az batch task create](/cli/azure/batch/task#az_batch_task_create) | Adds a task to the specified Batch job. |
-| [az batch job set](/cli/azure/batch/job#az_batch_job_set) | Updates properties of a Batch job. |
-| [az batch job show](/cli/azure/batch/job#az_batch_job_show) | Retrieves details of a specified Batch job. |
-| [az batch task show](/cli/azure/batch/task#az_batch_task_show) | Retrieves the details of a task from the specified Batch job. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az batch account create](/cli/azure/batch/account#az-batch-account-create) | Creates the Batch account. |
+| [az batch account login](/cli/azure/batch/account#az-batch-account-login) | Authenticates against the specified Batch account for further CLI interaction. |
+| [az batch pool create](/cli/azure/batch/pool#az-batch-pool-create) | Creates a pool of compute nodes. |
+| [az batch job create](/cli/azure/batch/job#az-batch-job-create) | Creates a Batch job. |
+| [az batch task create](/cli/azure/batch/task#az-batch-task-create) | Adds a task to the specified Batch job. |
+| [az batch job set](/cli/azure/batch/job#az-batch-job-set) | Updates properties of a Batch job. |
+| [az batch job show](/cli/azure/batch/job#az-batch-job-show) | Retrieves details of a specified Batch job. |
+| [az batch task show](/cli/azure/batch/task#az-batch-task-show) | Retrieves the details of a task from the specified Batch job. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
cdn Create Profile Endpoint Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cdn/create-profile-endpoint-template.md
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri
### Azure CLI
-When no longer needed, you can use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group and all resources contained within.
+When no longer needed, you can use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group and all resources contained within.
```azurecli-interactive az group delete \
cdn Cdn Azure Cli Create Endpoint https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cdn/scripts/cli/cdn-azure-cli-create-endpoint.md
az group delete --name MyResourceGroup
## Azure CLI commands used in this article -- [az cdn endpoint create](/cli/azure/cdn/endpoint#az_cdn_endpoint_create)-- [az cdn endpoint update](/cli/azure/cdn/endpoint#az_cdn_endpoint_update)-- [az cdn origin create](/cli/azure/cdn/origin#az_cdn_origin_create)-- [az cdn origin-group create](/cli/azure/cdn/origin-group#az_cdn_origin_group_create)-- [az cdn profile create](/cli/azure/cdn/profile#az_cdn_profile_create)-- [az group create](/cli/azure/group#az_group_create)-- [az group delete](/cli/azure/group#az_group_delete)-- [az cdn custom-domain create](/cli/azure/cdn/custom-domain#az_cdn_custom_domain_create)-- [az cdn custom-domain enable-https](/cli/azure/cdn/custom-domain#az_cdn_custom_domain_enable_https)
+- [az cdn endpoint create](/cli/azure/cdn/endpoint#az-cdn-endpoint-create)
+- [az cdn endpoint update](/cli/azure/cdn/endpoint#az-cdn-endpoint-update)
+- [az cdn origin create](/cli/azure/cdn/origin#az-cdn-origin-create)
+- [az cdn origin-group create](/cli/azure/cdn/origin-group#az-cdn-origin-group-create)
+- [az cdn profile create](/cli/azure/cdn/profile#az-cdn-profile-create)
+- [az group create](/cli/azure/group#az-group-create)
+- [az group delete](/cli/azure/group#az-group-delete)
+- [az cdn custom-domain create](/cli/azure/cdn/custom-domain#az-cdn-custom-domain-create)
+- [az cdn custom-domain enable-https](/cli/azure/cdn/custom-domain#az-cdn-custom-domain-enable-https)
cloud-services Cloud Services Troubleshoot Location Not Found For Role Size https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services/cloud-services-troubleshoot-location-not-found-for-role-size.md
In this scenario, you should select a different region or SKU to deploy your Clo
### List SKUs in region using Azure CLI You can use the [az vm list-skus](/cli/azure/vm
-#az_vm_list_skus) command.
+#az-vm-list-skus) command.
- Use the `--location` parameter to filter output to location you're using. - Use the `--size` parameter to search by a partial size name.
cognitive-services Releasenotes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cognitive-services/Face/ReleaseNotes.md
The Azure Face service is updated on an ongoing basis. Use this article to stay
### New detectable Face attributes * The `faceMask` attribute is available with the latest Detection 03 model, along with the additional attribute `"noseAndMouthCovered"` which detects whether the face mask is worn as intended, covering both the nose and mouth. To use the latest mask detection capability, users need to specify the detection model in the API request: assign the model version with the _detectionModel_ parameter to `detection_03`. See [Specify a face detection model](./face-api-how-to-topics/specify-detection-model.md) for more details. ### New Face API Recognition Model
-* The new Recognition 04 model is the most accurate recognition model currently available. If you're a new customer, we recommend using this model for verification and identification. It improves upon the accuracy of Recognition 03, including improved recognition for enrolled users wearing face covers (surgical masks, N95 masks, cloth masks). Now customers can build safe and seamless user experiences that detect whether an enrolled user is wearing a face cover with the latest Detection 03 model, and recognize who they are with the latest Recognition 04 model. See [Specify a face recognition model](./face-api-how-to-topics/specify-recognition-model.md) for more details.
+* The new Recognition 04 model is the most accurate recognition model currently available. If you're a new customer, we recommend using this model for verification and identification. It improves upon the accuracy of Recognition 03, including improved recognition for users wearing face covers (surgical masks, N95 masks, cloth masks). Note that we recommend against enrolling images of users wearing face covers as this will lower recognition quality. Now customers can build safe and seamless user experiences that detect whether a user is wearing a face cover with the latest Detection 03 model, and recognize them with the latest Recognition 04 model. See [Specify a face recognition model](./face-api-how-to-topics/specify-recognition-model.md) for more details.
## January 2021
The Azure Face service is updated on an ongoing basis. Use this article to stay
[Face - Detect](https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236), [Face - Identify](https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395239), [Face - Find Similar](https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395237) and [Face - Group](https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395238). * Updated the minimal detectable face size to 36x36 pixels. Faces smaller than 36x36 pixels will not be detected. * Deprecated the PersonGroup and Person data in Face V0. Those data cannot be accessed with the Face V1.0 service.
-* Deprecated the V0 endpoint of Face API on June 30, 2016.
+* Deprecated the V0 endpoint of Face API on June 30, 2016.
cognitive-services Developer Reference Resource https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cognitive-services/LUIS/developer-reference-resource.md
Use the Azure Cognitive Services Management layer to create, edit, list, and del
Find reference documentation based on the tool:
-* [Azure CLI](/cli/azure/cognitiveservices#az_cognitiveservices_list)
+* [Azure CLI](/cli/azure/cognitiveservices#az-cognitiveservices-list)
* [Azure RM PowerShell](/powershell/module/azurerm.cognitiveservices/#cognitive_services)
cognitive-services Speech Synthesis Markup https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cognitive-services/Speech-Service/speech-synthesis-markup.md
Previously updated : 01/07/2022 Last updated : 03/23/2022 ms.devlang: cpp, csharp, java, javascript, objective-c, python
The following table has descriptions of each supported role.
## Adjust speaking languages
-You can adjust speaking languages for neural voices at the sentence level and word level.
+All neural voices are multilingual. By default, they are fluent in their own language and English. You can adjust the speaking language per voice at the sentence level and word level by using the `<lang xml:lang>` element.
-Enable one voice to speak different languages fluently (like English, Spanish, and Chinese) by using the `<lang xml:lang>` element. This optional element is unique to the Speech service. Without this element, the voice speaks its primary language.
-
-Speaking language adjustments are only supported for the `en-US-JennyMultilingualNeural` neural voice. The preceding changes are applied at the sentence level and word level. If a language isn't supported, the service won't return an audio stream.
-
-> [!NOTE]
-> The `<lang xml:lang>` element is incompatible with the `prosody` and `break` elements. You can't adjust pause and prosody like pitch, contour, rate, or volume in this element.
+The `en-US-JennyMultilingualNeural` neural voice is multilingual in 14 languages (For example: English, Spanish, and Chinese). The supported languages are provided in a table following the `<lang>` syntax and attribute definitions.
**Syntax**
Speaking language adjustments are only supported for the `en-US-JennyMultilingua
| Attribute | Description | Required or optional | |--|-||
-| `lang` | Specifies the speaking languages. Speaking different languages are voice specific. | Required if adjusting the speaking language for a neural voice. If you're using `lang xml:lang`, the locale must be provided. |
+| `lang` | Specifies the language that you want the voice to speak. Speaking different languages are voice specific. | Required if adjusting the speaking language for a neural voice. If you're using `lang xml:lang`, the locale must be provided. |
+
+> [!NOTE]
+> The `<lang xml:lang>` element is incompatible with the `prosody` and `break` elements. You can't adjust pause and prosody like pitch, contour, rate, or volume in this element.
-Use this table to determine which speaking languages are supported for each neural voice. If a language isn't supported, the service won't return an audio stream.
+Use this table to determine which speaking languages are supported for each neural voice. If the voice does not speak the language of the input text, the Speech service won't output synthesized audio.
| Voice | Locale language | Description | |-||-|
Use this table to determine which speaking languages are supported for each neur
**Example**
-This SSML snippet shows how to use `<lang xml:lang>` to change the speaking languages to `en-US`, `es-MX`, and `de-DE`.
+The primary language for `en-US-JennyMultilingualNeural` is `en-US`. You must specify `en-US` as the default language within the `speak` element, whether or not the language is adjusted elsewhere. This SSML snippet shows how speak `de-DE` with the `en-US-JennyMultilingualNeural` neural voice.
+
+```xml
+<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
+ xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
+ <voice name="en-US-JennyMultilingualNeural">
+ <lang xml:lang="de-DE">
+ Wir freuen uns auf die Zusammenarbeit mit Ihnen!
+ </lang>
+ </voice>
+</speak>
+```
+
+Within the `speak` element, you can specify multiple languages including `en-US` for text-to-speech output. For each adjusted language, the text must match the language and be wrapped in a `voice` element. This SSML snippet shows how to use `<lang xml:lang>` to change the speaking languages to `es-MX`, `en-US`, and `fr-FR`.
```xml <speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US"> <voice name="en-US-JennyMultilingualNeural">
- I am looking forward to the exciting things.
<lang xml:lang="es-MX">
- Estoy deseando que lleguen las cosas emocionantes.
+ ¡Esperamos trabajar con usted!
</lang>
- <lang xml:lang="de-DE">
- Ich freue mich auf die spannenden Dinge.
+ <lang xml:lang="en-US">
+ We look forward to working with you!
+ </lang>
+ <lang xml:lang="fr-FR">
+ Nous avons hâte de travailler avec vous!
</lang> </voice> </speak>
cognitive-services Cognitive Services Apis Create Account Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cognitive-services/cognitive-services-apis-create-account-cli.md
In this quickstart, you'll learn how to sign up for Azure Cognitive Services and
## Install the Azure CLI and sign in
-Install the [Azure CLI](/cli/azure/install-azure-cli). To sign into your local installation of the CLI, run the [az login](/cli/azure/reference-index#az_login) command:
+Install the [Azure CLI](/cli/azure/install-azure-cli). To sign into your local installation of the CLI, run the [az login](/cli/azure/reference-index#az-login) command:
```azurecli-interactive az login
Before creating a Cognitive Services resource, you must have an Azure resource g
### Choose your resource group location
-To create a resource, you'll need one of the Azure locations available for your subscription. You can retrieve a list of available locations with the [az account list-locations](/cli/azure/account#az_account_list_locations) command. Most Cognitive Services can be accessed from several locations. Choose the one closest to you, or see which locations are available for the service.
+To create a resource, you'll need one of the Azure locations available for your subscription. You can retrieve a list of available locations with the [az account list-locations](/cli/azure/account#az-account-list-locations) command. Most Cognitive Services can be accessed from several locations. Choose the one closest to you, or see which locations are available for the service.
> [!IMPORTANT] > * Remember your Azure location, as you will need it when calling the Azure Cognitive Services.
az account list-locations \
--out table ```
-After you have your Azure location, create a new resource group in the Azure CLI using the [az group create](/cli/azure/group#az_group_create) command.
+After you have your Azure location, create a new resource group in the Azure CLI using the [az group create](/cli/azure/group#az-group-create) command.
In the example below, replace the Azure location `westus2` with one of the Azure locations available for your subscription.
When creating a new resource, you will need to know the "kind" of service you wa
[!INCLUDE [SKUs and pricing](./includes/quickstarts/sku-pricing.md)]
-You can find a list of available Cognitive Service "kinds" with the [az cognitiveservices account list-kinds](/cli/azure/cognitiveservices/account#az_cognitiveservices_account_list_kinds) command:
+You can find a list of available Cognitive Service "kinds" with the [az cognitiveservices account list-kinds](/cli/azure/cognitiveservices/account#az-cognitiveservices-account-list-kinds) command:
```azurecli-interactive az cognitiveservices account list-kinds
az cognitiveservices account list-kinds
### Add a new resource to your resource group
-To create and subscribe to a new Cognitive Services resource, use the [az cognitiveservices account create](/cli/azure/cognitiveservices/account#az_cognitiveservices_account_create) command. This command adds a new billable resource to the resource group created earlier. When creating your new resource, you will need to know the "kind" of service you want to use, along with its pricing tier (or sku) and an Azure location:
+To create and subscribe to a new Cognitive Services resource, use the [az cognitiveservices account create](/cli/azure/cognitiveservices/account#az-cognitiveservices-account-create) command. This command adds a new billable resource to the resource group created earlier. When creating your new resource, you will need to know the "kind" of service you want to use, along with its pricing tier (or sku) and an Azure location:
You can create an F0 (free) resource for Anomaly Detector, named `anomaly-detector-resource` with the command below.
az cognitiveservices account create \
## Get the keys for your resource
-To log into your local installation of the Command-Line Interface(CLI), use the [az login](/cli/azure/reference-index#az_login) command.
+To log into your local installation of the Command-Line Interface(CLI), use the [az login](/cli/azure/reference-index#az-login) command.
```azurecli-interactive az login ```
-Use the [az cognitiveservices account keys list](/cli/azure/cognitiveservices/account/keys#az_cognitiveservices_account_keys_list) command to get the keys for your Cognitive Service resource.
+Use the [az cognitiveservices account keys list](/cli/azure/cognitiveservices/account/keys#az-cognitiveservices-account-keys-list) command to get the keys for your Cognitive Service resource.
```azurecli-interactive az cognitiveservices account keys list \
Pricing tiers (and the amount you get billed) are based on the number of transac
## Get current quota usage for your resource
-Use the [az cognitiveservices account list-usage](/cli/azure/cognitiveservices/account#az_cognitiveservices_account_list_usage) command to get the usage for your Cognitive Service resource.
+Use the [az cognitiveservices account list-usage](/cli/azure/cognitiveservices/account#az-cognitiveservices-account-list-usage) command to get the usage for your Cognitive Service resource.
```azurecli-interactive az cognitiveservices account list-usage \
confidential-ledger Quickstart Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/confidential-ledger/quickstart-python.md
print(entry.contents)
Other Azure confidential ledger articles can build upon this quickstart. If you plan to continue on to work with subsequent quickstarts and tutorials, you may wish to leave these resources in place.
-Otherwise, when you're finished with the resources created in this article, use the Azure CLI [az group delete](/cli/azure/group?#az_group_delete) command to delete the resource group and all its contained resources:
+Otherwise, when you're finished with the resources created in this article, use the Azure CLI [az group delete](/cli/azure/group?#az-group-delete) command to delete the resource group and all its contained resources:
```azurecli az group delete --resource-group myResourceGroup
confidential-ledger Quickstart Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/confidential-ledger/quickstart-template.md
If you don't have an Azure subscription, create a [free account](https://azure.m
### Obtain your principal ID
-The template requires a principal ID. You can obtain your principal ID my running the Azure CLI [az ad sp list](/cli/azure/ad/sp#az_ad_sp_list) command, with the `--show-mine` flag:
+The template requires a principal ID. You can obtain your principal ID my running the Azure CLI [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list) command, with the `--show-mine` flag:
```azurecli-interactive az ad sp list --show-mine -o table
container-instances Container Instances Container Group Ssl https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-instances/container-instances-container-group-ssl.md
type: Microsoft.ContainerInstance/containerGroups
### Deploy the container group
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command:
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command:
```azurecli-interactive az group create --name myResourceGroup --location westus ```
-Deploy the container group with the [az container create](/cli/azure/container#az_container_create) command, passing the YAML file as an argument.
+Deploy the container group with the [az container create](/cli/azure/container#az-container-create) command, passing the YAML file as an argument.
```azurecli az container create --resource-group <myResourceGroup> --file deploy-aci.yaml
az container create --resource-group <myResourceGroup> --file deploy-aci.yaml
### View deployment state
-To view the state of the deployment, use the following [az container show](/cli/azure/container#az_container_show) command:
+To view the state of the deployment, use the following [az container show](/cli/azure/container#az-container-show) command:
```azurecli az container show --resource-group <myResourceGroup> --name app-with-ssl --output table
container-instances Container Instances Dedicated Hosts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-instances/container-instances-dedicated-hosts.md
az deployment group create --resource-group myResourceGroup --template-file depl
Within a few seconds, you should receive an initial response from Azure. A successful deployment takes place on a dedicated host. <!-- LINKS - Internal -->
-[az-group-create]: /cli/azure/group#az_group_create
-[az-deployment-group-create]: /cli/azure/deployment/group#az_deployment_group_create
+[az-group-create]: /cli/azure/group#az-group-create
+[az-deployment-group-create]: /cli/azure/deployment/group#az-deployment-group-create
<!-- LINKS - External --> [azure-support]: https://portal.azure.com/#blade/Microsoft_Azure_Support/HelpAndSupportBlade/newsupportrequest
container-instances Container Instances Managed Identity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-instances/container-instances-managed-identity.md
To use a managed identity, the identity must be granted access to one or more Az
The examples in this article use a managed identity in Azure Container Instances to access an Azure key vault secret.
-First, create a resource group named *myResourceGroup* in the *eastus* location with the following [az group create](/cli/azure/group#az_group_create) command:
+First, create a resource group named *myResourceGroup* in the *eastus* location with the following [az group create](/cli/azure/group#az-group-create) command:
```azurecli-interactive az group create --name myResourceGroup --location eastus ```
-Use the [az keyvault create](/cli/azure/keyvault#az_keyvault_create) command to create a key vault. Be sure to specify a unique key vault name.
+Use the [az keyvault create](/cli/azure/keyvault#az-keyvault-create) command to create a key vault. Be sure to specify a unique key vault name.
```azurecli-interactive az keyvault create \
az keyvault create \
--location eastus ```
-Store a sample secret in the key vault using the [az keyvault secret set](/cli/azure/keyvault/secret#az_keyvault_secret_set) command:
+Store a sample secret in the key vault using the [az keyvault secret set](/cli/azure/keyvault/secret#az-keyvault-secret-set) command:
```azurecli-interactive az keyvault secret set \
Continue with the following examples to access the key vault using either a user
### Create an identity
-First create an identity in your subscription using the [az identity create](/cli/azure/identity#az_identity_create) command. You can use the same resource group used to create the key vault, or use a different one.
+First create an identity in your subscription using the [az identity create](/cli/azure/identity#az-identity-create) command. You can use the same resource group used to create the key vault, or use a different one.
```azurecli-interactive az identity create \
az identity create \
--name myACIId ```
-To use the identity in the following steps, use the [az identity show](/cli/azure/identity#az_identity_show) command to store the identity's service principal ID and resource ID in variables.
+To use the identity in the following steps, use the [az identity show](/cli/azure/identity#az-identity-show) command to store the identity's service principal ID and resource ID in variables.
```azurecli-interactive # Get service principal ID of the user-assigned identity
Run the following [az keyvault set-policy](/cli/azure/keyvault) command to set a
### Enable user-assigned identity on a container group
-Run the following [az container create](/cli/azure/container#az_container_create) command to create a container instance based on Microsoft's `azure-cli` image. This example provides a single-container group that you can use interactively to run the Azure CLI to access other Azure services. In this section, only the base operating system is used. For an example to use the Azure CLI in the container, see [Enable system-assigned identity on a container group](#enable-system-assigned-identity-on-a-container-group).
+Run the following [az container create](/cli/azure/container#az-container-create) command to create a container instance based on Microsoft's `azure-cli` image. This example provides a single-container group that you can use interactively to run the Azure CLI to access other Azure services. In this section, only the base operating system is used. For an example to use the Azure CLI in the container, see [Enable system-assigned identity on a container group](#enable-system-assigned-identity-on-a-container-group).
The `--assign-identity` parameter passes your user-assigned managed identity to the group. The long-running command keeps the container running. This example uses the same resource group used to create the key vault, but you could specify a different one.
az container create \
--command-line "tail -f " ```
-Within a few seconds, you should get a response from the Azure CLI indicating that the deployment has completed. Check its status with the [az container show](/cli/azure/container#az_container_show) command.
+Within a few seconds, you should get a response from the Azure CLI indicating that the deployment has completed. Check its status with the [az container show](/cli/azure/container#az-container-show) command.
```azurecli-interactive az container show \
The response looks similar to the following, showing the secret. In your code, y
### Enable system-assigned identity on a container group
-Run the following [az container create](/cli/azure/container#az_container_create) command to create a container instance based on Microsoft's `azure-cli` image. This example provides a single-container group that you can use interactively to run the Azure CLI to access other Azure services.
+Run the following [az container create](/cli/azure/container#az-container-create) command to create a container instance based on Microsoft's `azure-cli` image. This example provides a single-container group that you can use interactively to run the Azure CLI to access other Azure services.
The `--assign-identity` parameter with no additional value enables a system-assigned managed identity on the group. The identity is scoped to the resource group of the container group. The long-running command keeps the container running. This example uses the same resource group used to create the key vault, which is in the scope of the identity.
az container create \
--command-line "tail -f " ```
-Within a few seconds, you should get a response from the Azure CLI indicating that the deployment has completed. Check its status with the [az container show](/cli/azure/container#az_container_show) command.
+Within a few seconds, you should get a response from the Azure CLI indicating that the deployment has completed. Check its status with the [az container show](/cli/azure/container#az-container-show) command.
```azurecli-interactive az container show \
container-instances Container Instances Quickstart https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-instances/container-instances-quickstart.md
When you're done with the container, remove it using the [az container delete][a
az container delete --resource-group myResourceGroup --name mycontainer ```
-To verify that the container has been deleted, execute the [az container list](/cli/azure/container#az_container_list) command:
+To verify that the container has been deleted, execute the [az container list](/cli/azure/container#az-container-list) command:
```azurecli-interactive az container list --resource-group myResourceGroup --output table
container-instances Tutorial Docker Compose https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-instances/tutorial-docker-compose.md
docker-compose push
It can take a few minutes to push to the registry.
-To verify the image is stored in your registry, run the [az acr repository show](/cli/azure/acr/repository#az_acr_repository_show) command:
+To verify the image is stored in your registry, run the [az acr repository show](/cli/azure/acr/repository#az-acr-repository-show) command:
```azurecli az acr repository show --name <acrName> --repository azure-vote-front
container-instances Using Azure Container Registry Mi https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-instances/using-azure-container-registry-mi.md
az group delete --name myResourceGroup
<!-- Links Internal --> [use-service-principal]: ./container-instances-using-azure-container-registry.md
-[az-identity-show]: /cli/azure/identity#az_identity_show
-[az-identity-create]: /cli/azure/identity#az_identity_create
+[az-identity-show]: /cli/azure/identity#az-identity-show
+[az-identity-create]: /cli/azure/identity#az-identity-create
[acr-overview]: ../container-registry/container-registry-intro.md [acr-get-started]: ../container-registry/container-registry-get-started-azure-cli.md [private-dns-zones]: ../dns/private-dns-privatednszone.md
container-registry Allow Access Trusted Services https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/allow-access-trusted-services.md
Where indicated, access by the trusted service requires additional configuration
## Allow trusted services - CLI
-By default, the allow trusted services setting is enabled in a new Azure container registry. Disable or enable the setting by running the [az acr update](/cli/azure/acr#az_acr_update) command.
+By default, the allow trusted services setting is enabled in a new Azure container registry. Disable or enable the setting by running the [az acr update](/cli/azure/acr#az-acr-update) command.
To disable:
container-registry Anonymous Pull Access https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/anonymous-pull-access.md
By default, access to pull or push content from an Azure container registry is o
## Configure anonymous pull access ### Enable anonymous pull access
-Update a registry using the [az acr update](/cli/azure/acr#az_acr_update) command and pass the `--anonymous-pull-enabled` parameter. By default, anonymous pull is disabled in the registry.
+Update a registry using the [az acr update](/cli/azure/acr#az-acr-update) command and pass the `--anonymous-pull-enabled` parameter. By default, anonymous pull is disabled in the registry.
```azurecli az acr update --name myregistry --anonymous-pull-enabled
container-registry Buffer Gate Public Content https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/buffer-gate-public-content.md
For details, see [Docker Hub authenticated pulls on App Service](https://azure.g
To begin managing copies of public images, you can create an Azure container registry if you don't already have one. Create a registry using the [Azure CLI](container-registry-get-started-azure-cli.md), [Azure portal](container-registry-get-started-portal.md), [Azure PowerShell](container-registry-get-started-powershell.md), or other tools.
-As a recommended one-time step, [import](container-registry-import-images.md) base images and other public content to your Azure container registry. The [az acr import](/cli/azure/acr#az_acr_import) command in the Azure CLI supports image import from public registries such as Docker Hub and Microsoft Container Registry and from other private container registries.
+As a recommended one-time step, [import](container-registry-import-images.md) base images and other public content to your Azure container registry. The [az acr import](/cli/azure/acr#az-acr-import) command in the Azure CLI supports image import from public registries such as Docker Hub and Microsoft Container Registry and from other private container registries.
`az acr import` doesn't require a local Docker installation. You can run it with a local installation of the Azure CLI or directly in Azure Cloud Shell. It supports images of any OS type, multi-architecture images, or OCI artifacts such as Helm charts.
container-registry Container Registry Auth Service Principal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-auth-service-principal.md
Once you have a service principal that you've granted access to your container r
Each value has the format `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`. > [!TIP]
-> You can regenerate the password (client secret) of a service principal by running the [az ad sp credential reset](/cli/azure/ad/sp/credential#az_ad_sp_credential_reset) command.
+> You can regenerate the password (client secret) of a service principal by running the [az ad sp credential reset](/cli/azure/ad/sp/credential#az-ad-sp-credential-reset) command.
> ### Use credentials with Azure services
container-registry Container Registry Authentication Managed Identity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-authentication-managed-identity.md
Exit the SSH session.
### Create an identity
-Create an identity in your subscription using the [az identity create](/cli/azure/identity#az_identity_create) command. You can use the same resource group you used previously to create the container registry or virtual machine, or a different one.
+Create an identity in your subscription using the [az identity create](/cli/azure/identity#az-identity-create) command. You can use the same resource group you used previously to create the container registry or virtual machine, or a different one.
```azurecli-interactive az identity create --resource-group myResourceGroup --name myACRId
container-registry Container Registry Authentication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-authentication.md
The following table lists available authentication methods and typical scenarios
### [Azure CLI](#tab/azure-cli)
-When working with your registry directly, such as pulling images to and pushing images from a development workstation to a registry you created, authenticate by using your individual Azure identity. Sign in to the [Azure CLI](/cli/azure/install-azure-cli) with [az login](/cli/azure/reference-index#az_login), and then run the [az acr login](/cli/azure/acr#az_acr_login) command:
+When working with your registry directly, such as pulling images to and pushing images from a development workstation to a registry you created, authenticate by using your individual Azure identity. Sign in to the [Azure CLI](/cli/azure/install-azure-cli) with [az login](/cli/azure/reference-index#az-login), and then run the [az acr login](/cli/azure/acr#az-acr-login) command:
```azurecli az login
For recommended practices to manage login credentials, see the [docker login](ht
### [Azure CLI](#tab/azure-cli)
-To enable the admin user for an existing registry, you can use the `--admin-enabled` parameter of the [az acr update](/cli/azure/acr#az_acr_update) command in the Azure CLI:
+To enable the admin user for an existing registry, you can use the `--admin-enabled` parameter of the [az acr update](/cli/azure/acr#az-acr-update) command in the Azure CLI:
```azurecli az acr update -n <acrName> --admin-enabled true
container-registry Container Registry Azure Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-azure-policy.md
When a resource is non-compliant, there are many possible reasons. To determine
### Policy compliance in the Azure CLI
-You can also use the Azure CLI to get compliance data. For example, use the [az policy assignment list](/cli/azure/policy/assignment#az_policy_assignment_list) command in the CLI to get the policy IDs of the Azure Container Registry policies that are applied:
+You can also use the Azure CLI to get compliance data. For example, use the [az policy assignment list](/cli/azure/policy/assignment#az-policy-assignment-list) command in the CLI to get the policy IDs of the Azure Container Registry policies that are applied:
```azurecli az policy assignment list --query "[?contains(displayName,'Container Registries')].{name:displayName, ID:id}" --output table
Container Registries should not allow unrestricted network access /sub
Container Registries should be encrypted with a Customer-Managed Key (CMK) /subscriptions/<subscriptionID>/providers/Microsoft.Authorization/policyAssignments/cce1ed4f38a147ad994ab60a ```
-Then run [az policy state list](/cli/azure/policy/state#az_policy_state_list) to return the JSON-formatted compliance state for all resources under a specific policy ID:
+Then run [az policy state list](/cli/azure/policy/state#az-policy-state-list) to return the JSON-formatted compliance state for all resources under a specific policy ID:
```azurecli az policy state list \ --resource <policyID> ```
-Or run [az policy state list](/cli/azure/policy/state#az_policy_state_list) to return the JSON-formatted compliance state of a specific registry resource, such as *myregistry*:
+Or run [az policy state list](/cli/azure/policy/state#az-policy-state-list) to return the JSON-formatted compliance state of a specific registry resource, such as *myregistry*:
```azurecli az policy state list \
container-registry Container Registry Best Practices https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-best-practices.md
When authenticating with an Azure container registry, there are two primary scen
| Type | Example scenario | Recommended method | ||||
-| Individual identity | A developer pulling images to or pushing images from their development machine. | [az acr login](/cli/azure/acr#az_acr_login) |
+| Individual identity | A developer pulling images to or pushing images from their development machine. | [az acr login](/cli/azure/acr#az-acr-login) |
| Headless/service identity | Build and deployment pipelines where the user isn't directly involved. | [Service principal](container-registry-authentication.md#service-principal) | For in-depth information about these and other Azure Container Registry authentication scenarios, see [Authenticate with an Azure container registry](container-registry-authentication.md).
container-registry Container Registry Customer Managed Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-customer-managed-keys.md
az keyvault set-policy \
``` #### Assign RBAC role
-Alternatively, use [Azure RBAC for Key Vault](../key-vault/general/rbac-guide.md) to assign permissions to the identity to access the key vault. For example, assign the Key Vault Crypto Service Encryption role to the identity using the [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) command:
+Alternatively, use [Azure RBAC for Key Vault](../key-vault/general/rbac-guide.md) to assign permissions to the identity to access the key vault. For example, assign the Key Vault Crypto Service Encryption role to the identity using the [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command:
```azurecli az role assignment create --assignee $identityPrincipalID \
You will also be unable to change (rotate) the encryption key. The resolution st
**User-assigned identity**
-If this issue occurs with a user-assigned identity, first reassign the identity using the [az acr identity assign](/cli/azure/acr/identity/#az_acr_identity_assign) command. Pass the identity's resource ID, or use the identity's name when it is in the same resource group as the registry. For example:
+If this issue occurs with a user-assigned identity, first reassign the identity using the [az acr identity assign](/cli/azure/acr/identity/#az-acr-identity-assign) command. Pass the identity's resource ID, or use the identity's name when it is in the same resource group as the registry. For example:
```azurecli az acr identity assign -n myRegistry \
container-registry Container Registry Geo Replication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-geo-replication.md
ACR begins syncing images across the configured replicas. Once complete, the por
## Delete a replica
-After you've configured a replica for your registry, you can delete it at any time if it's no longer needed. Delete a replica using the Azure portal or other tools such as the [az acr replication delete](/cli/azure/acr/replication#az_acr_replication_delete) command in the Azure CLI.
+After you've configured a replica for your registry, you can delete it at any time if it's no longer needed. Delete a replica using the Azure portal or other tools such as the [az acr replication delete](/cli/azure/acr/replication#az-acr-replication-delete) command in the Azure CLI.
To delete a replica in the Azure portal:
container-registry Container Registry Get Started Docker Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-get-started-docker-cli.md
There are [several ways to authenticate](container-registry-authentication.md) t
### [Azure CLI](#tab/azure-cli)
-The recommended method when working in a command line is with the Azure CLI command [az acr login](/cli/azure/acr#az_acr_login). For example, to log in to a registry named *myregistry*, log into the Azure CLI and then authenticate to your registry:
+The recommended method when working in a command line is with the Azure CLI command [az acr login](/cli/azure/acr#az-acr-login). For example, to log in to a registry named *myregistry*, log into the Azure CLI and then authenticate to your registry:
```azurecli az login
docker rmi myregistry.azurecr.io/samples/nginx
### [Azure CLI](#tab/azure-cli)
-To remove images from your Azure container registry, you can use the Azure CLI command [az acr repository delete](/cli/azure/acr/repository#az_acr_repository_delete). For example, the following command deletes the manifest referenced by the `samples/nginx:latest` tag, any unique layer data, and all other tags referencing the manifest.
+To remove images from your Azure container registry, you can use the Azure CLI command [az acr repository delete](/cli/azure/acr/repository#az-acr-repository-delete). For example, the following command deletes the manifest referenced by the `samples/nginx:latest` tag, any unique layer data, and all other tags referencing the manifest.
```azurecli az acr repository delete --name myregistry --image samples/nginx:latest
container-registry Container Registry Oci Artifacts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-oci-artifacts.md
To read the password from Stdin, use `--password-stdin`.
[Sign in](/cli/azure/authenticate-azure-cli) to the Azure CLI with your identity to push and pull artifacts from the container registry.
-Then, use the Azure CLI command [az acr login](/cli/azure/acr#az_acr_login) to access the registry. For example, to authenticate to a registry named *myregistry*:
+Then, use the Azure CLI command [az acr login](/cli/azure/acr#az-acr-login) to access the registry. For example, to authenticate to a registry named *myregistry*:
```azurecli az login
Create and push a new OCI artifact to the destination registry by using the `ora
oras push myregistry.azurecr.io/dockerfile:1.0 hello-world.dockerfile ```
-Run the [az acr build](/cli/azure/acr#az_acr_build) command to build the hello-world image using the new artifact as build context:
+Run the [az acr build](/cli/azure/acr#az-acr-build) command to build the hello-world image using the new artifact as build context:
```azurecli az acr build --registry myregistry --image builds/hello-world:v1 \
container-registry Container Registry Oras Artifacts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-oras-artifacts.md
IMAGE=$REGISTRY/${REPO}:$TAG
### Create a resource group
-If needed, run the [az group create](/cli/azure/group#az_group_create) command to create a resource group for the registry.
+If needed, run the [az group create](/cli/azure/group#az-group-create) command to create a resource group for the registry.
```azurecli az group create --name $ACR_NAME --location southcentralus ``` ### Create ORAS Artifact enabled registry
-Preview support for ORAS Artifacts requires Zone Redundancy, which requires a Premium service tier, in the South Central US region. Run the [az acr create](/cli/azure/acr#az_acr_create) command to create an ORAS Artifacts enabled registry. See the `az acr create` command help for more registry options.
+Preview support for ORAS Artifacts requires Zone Redundancy, which requires a Premium service tier, in the South Central US region. Run the [az acr create](/cli/azure/acr#az-acr-create) command to create an ORAS Artifacts enabled registry. See the `az acr create` command help for more registry options.
```azurecli az acr create \
In the command output, note the `zoneRedundancy` property for the registry. When
[Sign in](/cli/azure/authenticate-azure-cli) to the Azure CLI with your identity to push and pull artifacts from the container registry.
-Then, use the Azure CLI command [az acr login](/cli/azure/acr#az_acr_login) to access the registry.
+Then, use the Azure CLI command [az acr login](/cli/azure/acr#az-acr-login) to access the registry.
```azurecli az login
container-registry Container Registry Private Link https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-private-link.md
This article shows how to configure a private endpoint for your registry using t
[!INCLUDE [container-registry-scanning-limitation](../../includes/container-registry-scanning-limitation.md)] > [!NOTE]
-> Starting October 2021, new container registries allow a maximum of 200 private endpoints. Registries created earlier allow a maximum of 10 private endpoints. Use the [az acr show-usage](/cli/azure/acr#az_acr_show_usage) command to see the limit for your registry.
+> Starting October 2021, new container registries allow a maximum of 200 private endpoints. Registries created earlier allow a maximum of 10 private endpoints. Use the [az acr show-usage](/cli/azure/acr#az-acr-show-usage) command to see the limit for your registry.
## Prerequisites
az group delete --name $RESOURCE_GROUP
* To learn more about Private Link, see the [Azure Private Link](../private-link/private-link-overview.md) documentation.
-* To verify DNS settings in the virtual network that route to a private endpoint, run the [az acr check-health](/cli/azure/acr#az_acr_check_health) command with the `--vnet` parameter. For more information, see [Check the health of an Azure container registry](container-registry-check-health.md)
+* To verify DNS settings in the virtual network that route to a private endpoint, run the [az acr check-health](/cli/azure/acr#az-acr-check-health) command with the `--vnet` parameter. For more information, see [Check the health of an Azure container registry](container-registry-check-health.md)
* If you need to set up registry access rules from behind a client firewall, see [Configure rules to access an Azure container registry behind a firewall](container-registry-firewall-access-rules.md).
container-registry Container Registry Skus https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-skus.md
Throttling could occur temporarily when you generate a burst of image pull or pu
## Show registry usage
-Use the [az acr show-usage](/cli/azure/acr#az_acr_show_usage) command, or the [List Usages](/rest/api/containerregistry/registries/list-usages) REST API, to get a snapshot of your registry's current consumption of storage and other resources, compared with the limits for that registry's service tier. Storage usage also appears on the registry's **Overview** page in the portal.
+Use the [az acr show-usage](/cli/azure/acr#az-acr-show-usage) command, or the [List Usages](/rest/api/containerregistry/registries/list-usages) REST API, to get a snapshot of your registry's current consumption of storage and other resources, compared with the limits for that registry's service tier. Storage usage also appears on the registry's **Overview** page in the portal.
Usage information helps you make decisions about [changing the service tier](#changing-tiers) when your registry nears a limit. This information also helps you [manage consumption](container-registry-best-practices.md#manage-registry-size).
container-registry Container Registry Tasks Base Images https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-tasks-base-images.md
See the following tutorials for scenarios to automate application image builds a
<!-- LINKS - Internal --> [azure-cli]: /cli/azure/install-azure-cli
-[az-acr-build]: /cli/azure/acr#az_acr_build
-[az-acr-pack-build]: /cli/azure/acr/pack#az_acr_pack_build
+[az-acr-build]: /cli/azure/acr#az-acr-build
+[az-acr-pack-build]: /cli/azure/acr/pack#az-acr-pack-build
[az-acr-task]: /cli/azure/acr/task
-[az-acr-task-create]: /cli/azure/acr/task#az_acr_task_create
-[az-acr-task-run]: /cli/azure/acr/task#az_acr_task_run
-[az-acr-task-update]: /cli/azure/acr/task#az_acr_task_update
-[az-login]: /cli/azure/reference-index#az_login
+[az-acr-task-create]: /cli/azure/acr/task#az-acr-task-create
+[az-acr-task-run]: /cli/azure/acr/task#az-acr-task-run
+[az-acr-task-update]: /cli/azure/acr/task#az-acr-task-update
+[az-login]: /cli/azure/reference-index#az-login
[az-login-service-principal]: /cli/azure/authenticate-azure-cli <!-- IMAGES -->
container-registry Container Registry Tasks Logs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-tasks-logs.md
This article explains how to view and manage task run logs.
## View streamed logs
-When you trigger a task manually, log output is streamed directly to the console. For example, when you trigger a task manually by using the [az acr build](/cli/azure/acr#az_acr_build), [az acr run](/cli/azure/acr#az_acr_run), or [az acr task run](/cli/azure/acr/task#az_acr_task_run) command, you see log output streamed to the console.
+When you trigger a task manually, log output is streamed directly to the console. For example, when you trigger a task manually by using the [az acr build](/cli/azure/acr#az-acr-build), [az acr run](/cli/azure/acr#az-acr-run), or [az acr task run](/cli/azure/acr/task#az-acr-task-run) command, you see log output streamed to the console.
-The following sample [az acr run](/cli/azure/acr#az_acr_run) command manually triggers a task that runs a container pulled from the same registry:
+The following sample [az acr run](/cli/azure/acr#az-acr-run) command manually triggers a task that runs a container pulled from the same registry:
```azurecli az acr run --registry mycontainerregistry1220 \
Run ID: cf4 was successful after 5s
## View stored logs
-Azure Container Registry stores run logs for all tasks. You can view stored run logs in the Azure portal. Or, use the [az acr task logs](/cli/azure/acr/task#az_acr_task_logs) command to view a selected log. By default, logs are retained for 30 days.
+Azure Container Registry stores run logs for all tasks. You can view stored run logs in the Azure portal. Or, use the [az acr task logs](/cli/azure/acr/task#az-acr-task-logs) command to view a selected log. By default, logs are retained for 30 days.
If a task is automatically triggered, for example by a source code update, accessing the stored logs is the *only* way to view the run logs. Automatic task triggers include source code commits or pull requests, base image updates, and timer triggers.
To view run logs in the portal:
![View task run login portal](./media/container-registry-tasks-logs/portal-task-run-logs.png)
-To view a log using the Azure CLI, run [az acr task logs](/cli/azure/acr/task#az_acr_task_logs) and specify a run ID, a task name, or a specific image create by a build task. If a task name is specified, the command shows the log for the last created run.
+To view a log using the Azure CLI, run [az acr task logs](/cli/azure/acr/task#az-acr-task-logs) and specify a run ID, a task name, or a specific image create by a build task. If a task name is specified, the command shows the log for the last created run.
The following example outputs the log for the run with ID *cf4*:
az acr task logs --registry mycontainerregistry1220 \
You might want to store task run logs on a local file system or use an alternative archiving solution such as Azure Storage.
-For example, create a local *tasklogs* directory, and redirect the output of [az acr task logs](/cli/azure/acr/task#az_acr_task_logs) to a local file:
+For example, create a local *tasklogs* directory, and redirect the output of [az acr task logs](/cli/azure/acr/task#az-acr-task-logs) to a local file:
```azurecli mkdir ~/tasklogs
You can also save local log files to Azure Storage. For example, use the [Azure
<!-- LINKS - Internal --> [azure-cli]: /cli/azure/install-azure-cli
-[az-acr-build]: /cli/azure/acr#az_acr_build
-[az-acr-pack-build]: /cli/azure/acr/pack#az_acr_pack_build
+[az-acr-build]: /cli/azure/acr#az-acr-build
+[az-acr-pack-build]: /cli/azure/acr/pack#az-acr-pack-build
[az-acr-task]: /cli/azure/acr/task
-[az-acr-task-create]: /cli/azure/acr/task#az_acr_task_create
-[az-acr-task-run]: /cli/azure/acr/task#az_acr_task_run
-[az-acr-task-update]: /cli/azure/acr/task#az_acr_task_update
-[az-login]: /cli/azure/reference-index#az_login
+[az-acr-task-create]: /cli/azure/acr/task#az-acr-task-create
+[az-acr-task-run]: /cli/azure/acr/task#az-acr-task-run
+[az-acr-task-update]: /cli/azure/acr/task#az-acr-task-update
+[az-login]: /cli/azure/reference-index#az-login
[az-login-service-principal]: /cli/azure/authenticate-azure-cli <!-- IMAGES -->
container-registry Container Registry Tasks Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-tasks-overview.md
By default, ACR Tasks builds images for the Linux OS and the amd64 architecture.
## View task output
-Each task run generates log output that you can inspect to determine whether the task steps ran successfully. When you trigger a task manually, log output for the task run is streamed to the console and also stored for later retrieval. When a task is automatically triggered, for example by a source code commit or a base image update, task logs are only stored. View the run logs in the Azure portal, or use the [az acr task logs](/cli/azure/acr/task#az_acr_task_logs) command.
+Each task run generates log output that you can inspect to determine whether the task steps ran successfully. When you trigger a task manually, log output for the task run is streamed to the console and also stored for later retrieval. When a task is automatically triggered, for example by a source code commit or a base image update, task logs are only stored. View the run logs in the Azure portal, or use the [az acr task logs](/cli/azure/acr/task#az-acr-task-logs) command.
See more about [viewing and managing task logs](container-registry-tasks-logs.md).
Optionally install the [Docker Extension for Visual Studio Code](https://code.vi
<!-- LINKS - Internal --> [azure-cli]: /cli/azure/install-azure-cli
-[az-acr-build]: /cli/azure/acr#az_acr_build
-[az-acr-pack-build]: /cli/azure/acr/pack#az_acr_pack_build
+[az-acr-build]: /cli/azure/acr#az-acr-build
+[az-acr-pack-build]: /cli/azure/acr/pack#az-acr-pack-build
[az-acr-task]: /cli/azure/acr/task
-[az-acr-task-create]: /cli/azure/acr/task#az_acr_task_create
-[az-login]: /cli/azure/reference-index#az_login
+[az-acr-task-create]: /cli/azure/acr/task#az-acr-task-create
+[az-login]: /cli/azure/reference-index#az-login
[az-login-service-principal]: /cli/azure/authenticate-azure-cli <!-- IMAGES -->
container-registry Container Registry Troubleshoot Access https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-troubleshoot-access.md
May include one or more of the following:
## Further diagnosis
-Run the [az acr check-health](/cli/azure/acr#az_acr_check_health) command to get more information about the health of the registry environment and optionally access to a target registry. For example, diagnose certain network connectivity or configuration problems.
+Run the [az acr check-health](/cli/azure/acr#az-acr-check-health) command to get more information about the health of the registry environment and optionally access to a target registry. For example, diagnose certain network connectivity or configuration problems.
See [Check the health of an Azure container registry](container-registry-check-health.md) for command examples. If errors are reported, review the [error reference](container-registry-health-error-reference.md) and the following sections for recommended solutions.
-If you're experiencing problems using an Azure Kubernetes Service with an integrated registry, run the [az aks check-acr](/cli/azure/aks#az_aks_check_acr) command to validate that the AKS cluster can reach the registry.
+If you're experiencing problems using an Azure Kubernetes Service with an integrated registry, run the [az aks check-acr](/cli/azure/aks#az-aks-check-acr) command to validate that the AKS cluster can reach the registry.
> [!NOTE] > Some network connectivity symptoms can also occur when there are issues with registry authentication or authorization. See [Troubleshoot registry login](container-registry-troubleshoot-login.md).
Confirm that the virtual network is configured with either a private endpoint fo
If a private endpoint is configured, confirm that DNS resolves the registry's public FQDN such as *myregistry.azurecr.io* to the registry's private IP address.
- * Run the [az acr check-health](/cli/azure/acr#az_acr_check_health) command with the `--vnet` parameter to confirm the DNS routing to the private endpoint in the virtual network.
+ * Run the [az acr check-health](/cli/azure/acr#az-acr-check-health) command with the `--vnet` parameter to confirm the DNS routing to the private endpoint in the virtual network.
* Use a network utility such as `dig` or `nslookup` for DNS lookup. * Ensure that [DNS records are configured](container-registry-private-link.md#dns-configuration-options) for the registry FQDN and for each of the data endpoint FQDNs.
container-registry Container Registry Troubleshoot Login https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-troubleshoot-login.md
May include one or more of the following:
## Further diagnosis
-Run the [az acr check-health](/cli/azure/acr#az_acr_check_health) command to get more information about the health of the registry environment and optionally access to a target registry. For example, diagnose Docker configuration errors or Azure Active Directory login problems.
+Run the [az acr check-health](/cli/azure/acr#az-acr-check-health) command to get more information about the health of the registry environment and optionally access to a target registry. For example, diagnose Docker configuration errors or Azure Active Directory login problems.
See [Check the health of an Azure container registry](container-registry-check-health.md) for command examples. If errors are reported, review the [error reference](container-registry-health-error-reference.md) and the following sections for recommended solutions.
-If you're experiencing problems using the registry with Azure Kubernetes Service, run the [az aks check-acr](/cli/azure/aks#az_aks_check_acr) command to validate that the registry is accessible from the AKS cluster.
+If you're experiencing problems using the registry with Azure Kubernetes Service, run the [az aks check-acr](/cli/azure/aks#az-aks-check-acr) command to validate that the registry is accessible from the AKS cluster.
> [!NOTE] > Some authentication or authorization errors can also occur if there are firewall or network configurations that prevent registry access. See [Troubleshoot network issues with registry](container-registry-troubleshoot-access.md).
When using `docker login`, provide the full login server name of the registry, s
docker login myregistry.azurecr.io ```
-When using [az acr login](/cli/azure/acr#az_acr_login) with an Azure Active Directory identity, first [sign into the Azure CLI](/cli/azure/authenticate-azure-cli), and then specify the Azure resource name of the registry. The resource name is the name provided when the registry was created, such as *myregistry* (without a domain suffix). Example:
+When using [az acr login](/cli/azure/acr#az-acr-login) with an Azure Active Directory identity, first [sign into the Azure CLI](/cli/azure/authenticate-azure-cli), and then specify the Azure resource name of the registry. The resource name is the name provided when the registry was created, such as *myregistry* (without a domain suffix). Example:
```azurecli az acr login --name myregistry
Related links:
* [Login with repository-scoped token](container-registry-repository-scoped-permissions.md) * [Login with admin account](container-registry-authentication.md#admin-account) * [Azure AD authentication and authorization error codes](../active-directory/develop/reference-aadsts-error-codes.md)
-* [az acr login](/cli/azure/acr#az_acr_login) reference
+* [az acr login](/cli/azure/acr#az-acr-login) reference
### Confirm credentials are authorized to access registry
Tokens and Active Directory credentials may expire after defined periods, preven
Related links:
-* [Reset service principal credentials](/cli/azure/ad/sp/credential#az_ad_sp_credential_reset)
+* [Reset service principal credentials](/cli/azure/ad/sp/credential#az-ad-sp-credential-reset)
* [Regenerate token passwords](container-registry-repository-scoped-permissions.md#regenerate-token-passwords) * [Individual login with Azure AD](container-registry-authentication.md#individual-login-with-azure-ad)
container-registry Container Registry Tutorial Multistep Task https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-tutorial-multistep-task.md
In this tutorial, you learned how to create multi-step, multi-container-based ta
<!-- LINKS - Internal --> [azure-cli]: /cli/azure/install-azure-cli [az-acr-task]: /cli/azure/acr/task
-[az-acr-task-create]: /cli/azure/acr/task#az_acr_task_create
-[az-acr-task-run]: /cli/azure/acr/task#az_acr_task_run
-[az-acr-task-list-runs]: /cli/azure/acr/task#az_acr_task_list_runs
-[az-acr-task-credential-add]: /cli/azure/acr/task/credential#az_acr_task_credential_add
-[az-login]: /cli/azure/reference-index#az_login
+[az-acr-task-create]: /cli/azure/acr/task#az-acr-task-create
+[az-acr-task-run]: /cli/azure/acr/task#az-acr-task-run
+[az-acr-task-list-runs]: /cli/azure/acr/task#az-acr-task-list-runs
+[az-acr-task-credential-add]: /cli/azure/acr/task/credential#az-acr-task-credential-add
+[az-login]: /cli/azure/reference-index#az-login
<!-- IMAGES --> [build-task-01-new-token]: ./media/container-registry-tutorial-build-tasks/build-task-01-new-token.png
container-registry Container Registry Tutorial Prepare Registry https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-tutorial-prepare-registry.md
Navigate to your new container registry in the Azure portal and select **Access
Now that you've configured geo-replication, build a container image and push it to your registry. You must first log in to your registry before pushing images to it.
-Use the [az acr login](/cli/azure/acr#az_acr_login) command to authenticate and cache the credentials for your registry. Replace `<acrName>` with the name of the registry you created earlier.
+Use the [az acr login](/cli/azure/acr#az-acr-login) command to authenticate and cache the credentials for your registry. Replace `<acrName>` with the name of the registry you created earlier.
```azurecli az acr login --name <acrName>
container-registry Container Registry Tutorial Quick Task https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-tutorial-quick-task.md
Now that you've tested your inner loop with a quick task, configure a **build ta
<!-- LINKS - Internal --> [azure-cli]: /cli/azure/install-azure-cli
-[az-acr-build]: /cli/azure/acr#az_acr_build
-[az-ad-sp-create-for-rbac]: /cli/azure/ad/sp#az_ad_sp_create_for_rbac
-[az-container-attach]: /cli/azure/container#az_container_attach
-[az-container-create]: /cli/azure/container#az_container_create
-[az-container-delete]: /cli/azure/container#az_container_delete
-[az-keyvault-create]: /cli/azure/keyvault/secret#az_keyvault_create
-[az-keyvault-secret-set]: /cli/azure/keyvault/secret#az_keyvault_secret_set
-[az-login]: /cli/azure/reference-index#az_login
+[az-acr-build]: /cli/azure/acr#az-acr-build
+[az-ad-sp-create-for-rbac]: /cli/azure/ad/sp#az-ad-sp-create-for-rbac
+[az-container-attach]: /cli/azure/container#az-container-attach
+[az-container-create]: /cli/azure/container#az-container-create
+[az-container-delete]: /cli/azure/container#az-container-delete
+[az-keyvault-create]: /cli/azure/keyvault/secret#az-keyvault-create
+[az-keyvault-secret-set]: /cli/azure/keyvault/secret#az-keyvault-secret-set
+[az-login]: /cli/azure/reference-index#az-login
[service-principal-auth]: container-registry-auth-service-principal.md <!-- IMAGES -->
container-registry Container Registry Webhook https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/container-registry-webhook.md
Example webhook form:
## Create webhook - Azure CLI
-To create a webhook using the Azure CLI, use the [az acr webhook create](/cli/azure/acr/webhook#az_acr_webhook_create) command. The following command creates a webhook for all image delete events in the registry *mycontainerregistry*:
+To create a webhook using the Azure CLI, use the [az acr webhook create](/cli/azure/acr/webhook#az-acr-webhook-create) command. The following command creates a webhook for all image delete events in the registry *mycontainerregistry*:
```azurecli-interactive az acr webhook create --registry mycontainerregistry --name myacrwebhook01 --actions delete --uri http://webhookuri.com
Prior to using the webhook, you can test it with the **Ping** button. Ping sends
### Azure CLI
-To test an ACR webhook with the Azure CLI, use the [az acr webhook ping](/cli/azure/acr/webhook#az_acr_webhook_ping) command.
+To test an ACR webhook with the Azure CLI, use the [az acr webhook ping](/cli/azure/acr/webhook#az-acr-webhook-ping) command.
```azurecli-interactive az acr webhook ping --registry mycontainerregistry --name myacrwebhook01
container-registry Data Loss Prevention https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/data-loss-prevention.md
Include the following JSON to update the `exportPolicy` status and set the `publ
### Azure CLI
-Run [az resource update](/cli/azure/resource/#az_resource_update) to set the `exportPolicy` status in an existing registry to `disabled`. Substitute the names of your registry and resource group.
+Run [az resource update](/cli/azure/resource/#az-resource-update) to set the `exportPolicy` status in an existing registry to `disabled`. Substitute the names of your registry and resource group.
As shown in this example, when disabling the `exportPolicy` property, also set the `publicNetworkAccess` property to `disabled`.
Include the following JSON to update the `exportPolicy` status to `enabled`. Lea
### Azure CLI
-Run [az resource update](/cli/azure/resource/#az_resource_update) to set the `exportPolicy` status to `enabled`. Substitute the names of your registry and resource group.
+Run [az resource update](/cli/azure/resource/#az-resource-update) to set the `exportPolicy` status to `enabled`. Substitute the names of your registry and resource group.
```azurecli az resource update --resource-group myResourceGroup \
container-registry Manual Regional Move https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/manual-regional-move.md
For more information, see [Use exported template from the Azure portal](../azure
### Create resource group
-Create a resource group for the target registry using the [az group create](/cli/azure/group#az_group_create). The following example creates a resource group named *myResourceGroup* in the *eastus* location.
+Create a resource group for the target registry using the [az group create](/cli/azure/group#az-group-create). The following example creates a resource group named *myResourceGroup* in the *eastus* location.
```azurecli az group create --name myResourceGroup --location eastus
az group create --name myResourceGroup --location eastus
### Deploy target registry in new region
-Use the [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create) command to deploy the target registry, using the template:
+Use the [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create) command to deploy the target registry, using the template:
```azurecli az deployment group create --resource-group myResourceGroup \
az deployment group create --resource-group myResourceGroup \
## Import registry content in target registry
-After creating the registry in the target region, use the [az acr import](/cli/azure/acr#az_acr_import) command, or the equivalent PowerShell command `Import-AzContainerImage`, to import images and other artifacts you want to preserve from the source registry to the target registry. For command examples, see [Import container images to a container registry](container-registry-import-images.md).
+After creating the registry in the target region, use the [az acr import](/cli/azure/acr#az-acr-import) command, or the equivalent PowerShell command `Import-AzContainerImage`, to import images and other artifacts you want to preserve from the source registry to the target registry. For command examples, see [Import container images to a container registry](container-registry-import-images.md).
-* Use the Azure CLI commands [az acr repository list](/cli/azure/acr/repository#az_acr_repository_list) and [az acr repository show-tags](/cli/azure/acr/repository#az_acr_repository_show_tags), or Azure PowerShell equivalents, to help enumerate the contents of your source registry.
+* Use the Azure CLI commands [az acr repository list](/cli/azure/acr/repository#az-acr-repository-list) and [az acr repository show-tags](/cli/azure/acr/repository#az-acr-repository-show-tags), or Azure PowerShell equivalents, to help enumerate the contents of your source registry.
* Run the import command for individual artifacts, or script it to run over a list of artifacts. The following sample Azure CLI script enumerates the source repositories and tags and then imports the artifacts to a target registry in the same Azure subscription. Modify as needed to import specific repositories or tags. To import from a registry in a different subscription or tenant, see examples in [Import container images to a container registry](container-registry-import-images.md).
container-registry Monitor Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/monitor-service.md
For reference, you can see a list of [all resource metrics supported in Azure Mo
The following Azure CLI commands can be used to get information about the Azure Container Registry metrics.
-* [az monitor metrics list-definitions](/cli/azure/monitor/metrics#az_monitor_metrics_list_definitions) - List metric definitions and dimensions
-* [az monitor metrics list](/cli/azure/monitor/metrics#az_monitor_metrics_list) - Retrieve metric values
+* [az monitor metrics list-definitions](/cli/azure/monitor/metrics#az-monitor-metrics-list-definitions) - List metric definitions and dimensions
+* [az monitor metrics list](/cli/azure/monitor/metrics#az-monitor-metrics-list) - Retrieve metric values
### REST API
container-registry Overview Connected Registry Access https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/overview-connected-registry-access.md
To access and manage a [connected registry](intro-connected-registry.md), curren
## Client tokens
-To manage client access to a connected registry, you create tokens scoped for actions on one or more repositories. After creating a token, configure the connected registry to accept the token by using the [az acr connected-registry update](/cli/azure/acr/connected-registry#az_acr_connected_registry_update) command. A client can then use the token credentials to access a connected registry endpoint - for example, to use Docker CLI commands to pull or push images to the connected registry.
+To manage client access to a connected registry, you create tokens scoped for actions on one or more repositories. After creating a token, configure the connected registry to accept the token by using the [az acr connected-registry update](/cli/azure/acr/connected-registry#az-acr-connected-registry-update) command. A client can then use the token credentials to access a connected registry endpoint - for example, to use Docker CLI commands to pull or push images to the connected registry.
Your options for configuring client token actions depend on whether the connected registry allows both push and pull operations or functions as a pull-only mirror. * A connected registry in the default [ReadWrite mode](intro-connected-registry.md#modes) allows both pull and push operations, so you can create a token that allows actions to both *read* and *write* repository content in that registry.
Your options for configuring client token actions depend on whether the connecte
### Manage client tokens
-Update client tokens, passwords, or scope maps as needed by using [az acr token](/cli/azure/acr#az_acr_token) and [az acr scope-map](/cli/azure/acr#az_acr_scope-map) commands. Client token updates are propagated automatically to the connected registries that accept the token.
+Update client tokens, passwords, or scope maps as needed by using [az acr token](/cli/azure/acr#az-acr-token) and [az acr scope-map](/cli/azure/acr#az-acr-scope-map) commands. Client token updates are propagated automatically to the connected registries that accept the token.
## Sync token
Each connected registry uses a sync token to authenticate with its immediate par
### Manage sync token
-Update sync tokens, passwords, or scope maps as needed by using [az acr token](/cli/azure/acr#az_acr_token) and [az acr scope-map](/cli/azure/acr#az_acr_scope-map) commands. Sync token updates are propagated automatically to the connected registry. Follow the standard practices of rotating passwords when updating the sync token.
+Update sync tokens, passwords, or scope maps as needed by using [az acr token](/cli/azure/acr#az-acr-token) and [az acr scope-map](/cli/azure/acr#az-acr-scope-map) commands. Sync token updates are propagated automatically to the connected registry. Follow the standard practices of rotating passwords when updating the sync token.
> [!NOTE] > The sync token cannot be deleted until the connected registry associated with the token is deleted. You can disable a connected registry by setting the status of the sync token to `disabled`.
container-registry Push Multi Architecture Images https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/push-multi-architecture-images.md
A basic manifest for a Linux `hello-world` image looks similar to the following:
} ```
-You can view a manifest in Azure Container Registry using the Azure portal or tools such as the [az acr repository show-manifests](/cli/azure/acr/repository#az_acr_repository_show_manifests) command in the Azure CLI.
+You can view a manifest in Azure Container Registry using the Azure portal or tools such as the [az acr repository show-manifests](/cli/azure/acr/repository#az-acr-repository-show-manifests) command in the Azure CLI.
### Manifest list
You can view a manifest list using the `docker manifest inspect` command. The fo
} ```
-When a multi-arch manifest list is stored in Azure Container Registry, you can also view the manifest list using the Azure portal or with tools such as the [az acr repository show-manifests](/cli/azure/acr/repository#az_acr_repository_how_manifests) command.
+When a multi-arch manifest list is stored in Azure Container Registry, you can also view the manifest list using the Azure portal or with tools such as the [az acr repository show-manifests](/cli/azure/acr/repository#az-acr-repository-how-manifests) command.
## Import a multi-arch image
-An existing multi-arch image can be imported to an Azure container registry using the [az acr import](/cli/azure/acr#az_acr_import) command. The image import syntax is the same as with a single-architecture image. Like import of a single-architecture image, import of a multi-arch image doesn't use Docker commands.
+An existing multi-arch image can be imported to an Azure container registry using the [az acr import](/cli/azure/acr#az-acr-import) command. The image import syntax is the same as with a single-architecture image. Like import of a single-architecture image, import of a multi-arch image doesn't use Docker commands.
For details, see [Import container images to a container registry](container-registry-import-images.md).
When you have build workflows to create container images for different architect
1. Use the `docker manifest inspect` command to view the manifest list. An example of command output is shown in a preceding section.
-After you push the multi-arch manifest to your registry, work with the multi-arch image the same way that you do with a single-architecture image. For example, pull the image using `docker pull`, and use [az acr repository](/cli/azure/acr/repository#az_acr_repository) commands to view tags, manifests, and other properties of the image.
+After you push the multi-arch manifest to your registry, work with the multi-arch image the same way that you do with a single-architecture image. For example, pull the image using `docker pull`, and use [az acr repository](/cli/azure/acr/repository#az-acr-repository) commands to view tags, manifests, and other properties of the image.
## Build and push a multi-arch image
container-registry Zone Redundancy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-registry/zone-redundancy.md
To use the Azure CLI to enable zone redundancy, you need Azure CLI version 2.17.
### Create a resource group
-If needed, run the [az group create](/cli/azure/group#az_group_create) command to create a resource group for the registry.
+If needed, run the [az group create](/cli/azure/group#az-group-create) command to create a resource group for the registry.
```azurecli az group create --name <resource-group-name> --location <location>
az group create --name <resource-group-name> --location <location>
### Create zone-enabled registry
-Run the [az acr create](/cli/azure/acr#az_acr_create) command to create a zone-redundant registry in the Premium service tier. Choose a region that [supports availability zones](../availability-zones/az-region.md) for Azure Container Registry. In the following example, zone redundancy is enabled in the *eastus* region. See the `az acr create` command help for more registry options.
+Run the [az acr create](/cli/azure/acr#az-acr-create) command to create a zone-redundant registry in the Premium service tier. Choose a region that [supports availability zones](../availability-zones/az-region.md) for Azure Container Registry. In the following example, zone redundancy is enabled in the *eastus* region. See the `az acr create` command help for more registry options.
```azurecli az acr create \
In the command output, note the `zoneRedundancy` property for the registry. When
### Create zone-redundant replication
-Run the [az acr replication create](/cli/azure/acr/replication#az_acr_replication_create) command to create a zone-redundant registry replica in a region that [supports availability zones](../availability-zones/az-region.md) for Azure Container Registry, such as *westus2*.
+Run the [az acr replication create](/cli/azure/acr/replication#az-acr-replication-create) command to create a zone-redundant registry replica in a region that [supports availability zones](../availability-zones/az-region.md) for Azure Container Registry, such as *westus2*.
```azurecli az acr replication create \
To create a zone-redundant replication:
### Create a resource group
-If needed, run the [az group create](/cli/azure/group#az_group_create) command to create a resource group for the registry in a region that [supports availability zones](../availability-zones/az-region.md) for Azure Container Registry, such as *eastus*. This region is used by the template to set the registry location.
+If needed, run the [az group create](/cli/azure/group#az-group-create) command to create a resource group for the registry in a region that [supports availability zones](../availability-zones/az-region.md) for Azure Container Registry, such as *eastus*. This region is used by the template to set the registry location.
```azurecli az group create --name <resource-group-name> --location eastus
Copy the following contents to a new file and save it using a filename such as `
} ```
-Run the following [az deployment group create](/cli/azure/group/deployment#az_group_deployment_create) command to create the registry using the preceding template file. Where indicated, provide:
+Run the following [az deployment group create](/cli/azure/group/deployment#az-group-deployment-create) command to create the registry using the preceding template file. Where indicated, provide:
* a unique registry name, or deploy the template without parameters and it will create a unique name for you * a location for the replica that supports availability zones, such as *westus2*
cosmos-db Configure Synapse Link https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/configure-synapse-link.md
Enable Synapse Link in your Cosmos DB SQL API or MongoDB API account using Azure
Use `--enable-analytical-storage true` for both **create** or **update** operations. You also need to choose the representation schema type. For SQL API accounts you can use `--analytical-storage-schema-type` with the values `FullFidelity` or `WellDefined`. For MongoDB API accounts, always use `--analytical-storage-schema-type FullFidelity`.
-* [Create a new Azure Cosmos DB account with Synapse Link enabled](/cli/azure/cosmosdb#az_cosmosdb_create-optional-parameters)
-* [Update an existing Azure Cosmos DB account to enable Synapse Link](/cli/azure/cosmosdb#az_cosmosdb_update-optional-parameters)
+* [Create a new Azure Cosmos DB account with Synapse Link enabled](/cli/azure/cosmosdb#az-cosmosdb-create-optional-parameters)
+* [Update an existing Azure Cosmos DB account to enable Synapse Link](/cli/azure/cosmosdb#az-cosmosdb-update-optional-parameters)
#### PowerShell
Set the `analytical TTL` property to the required value to create an analytical
The following options create a container with analytical store by using Azure CLI. Set the `--analytical-storage-ttl` property to the required value in seconds or use `-1` for infinite retention. This setting can be changed later.
-* [Create an Azure Cosmos DB MongoDB collection](/cli/azure/cosmosdb/mongodb/collection#az_cosmosdb_mongodb_collection_create-examples)
-* [Create an Azure Cosmos DB SQL API container](/cli/azure/cosmosdb/sql/container#az_cosmosdb_sql_container_create)
+* [Create an Azure Cosmos DB MongoDB collection](/cli/azure/cosmosdb/mongodb/collection#az-cosmosdb-mongodb-collection-create-examples)
+* [Create an Azure Cosmos DB SQL API container](/cli/azure/cosmosdb/sql/container#az-cosmosdb-sql-container-create)
#### PowerShell
Use the following steps to enable analytical store on an existing container by u
* [Register for approval](/cli/azure/feature/registration) by using `az feature registration create --namespace Microsoft.DocumentDB --name AnalyticalStoreMigration`. * [Check the request status](/cli/azure/feature/registration) by using `az feature registration show --namespace Microsoft.DocumentDB --name AnalyticalStoreMigration`.
-* [Update Analytical ttl](/cli/azure/cosmosdb/sql/container#az_cosmosdb_sql_container_update) to `-1` after the request approval.
+* [Update Analytical ttl](/cli/azure/cosmosdb/sql/container#az-cosmosdb-sql-container-update) to `-1` after the request approval.
* Check the migration status in the Azure portal. ### PowerShell
Currently not supported.
The following links show how to update containers analytical TTL by using Azure CLI:
-* [Azure Cosmos DB API for Mongo DB](/cli/azure/cosmosdb/mongodb/collection#az_cosmosdb_mongodb_collection_update)
-* [Azure Cosmos DB SQL API](/cli/azure/cosmosdb/sql/container#az_cosmosdb_sql_container_update)
+* [Azure Cosmos DB API for Mongo DB](/cli/azure/cosmosdb/mongodb/collection#az-cosmosdb-mongodb-collection-update)
+* [Azure Cosmos DB SQL API](/cli/azure/cosmosdb/sql/container#az-cosmosdb-sql-container-update)
### PowerShell
cosmos-db Cosmosdb Monitor Resource Logs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/cosmosdb-monitor-resource-logs.md
Use the [Azure Monitor REST API](/rest/api/monitor/diagnosticsettings/createorup
``` ## Create diagnostic setting via Azure CLI
-Use the [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create) command to create a diagnostic setting with the Azure CLI. See the documentation for this command for descriptions of its parameters.
+Use the [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create) command to create a diagnostic setting with the Azure CLI. See the documentation for this command for descriptions of its parameters.
> [!Note] > If you are using SQL API, we recommend setting the **export-to-resource-specific** property to **true**.
cosmos-db Dedicated Gateway https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/dedicated-gateway.md
There are many different ways to provision a dedicated gateway:
- [Provision a dedicated gateway using the Azure Portal](how-to-configure-integrated-cache.md#provision-a-dedicated-gateway-cluster) - [Use Azure Cosmos DB's REAT API](/rest/api/cosmos-db-resource-provider/2021-04-01-preview/service/create)-- [Azure CLI](/cli/azure/cosmosdb/service?view=azure-cli-latest#az_cosmosdb_service_create)
+- [Azure CLI](/cli/azure/cosmosdb/service?view=azure-cli-latest#az-cosmosdb-service-create)
- [ARM template](/azure/templates/microsoft.documentdb/databaseaccounts/services?tabs=bicep) - Note: You cannot deprovision a dedicated gateway using ARM templates
cosmos-db Create Mongodb Go https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/mongodb/create-mongodb-go.md
To confirm that the application was built properly.
If you choose to install and use the CLI locally, this topic requires that you are running the Azure CLI version 2.0 or later. Run `az --version` to find the version. If you need to install or upgrade, see [Install Azure CLI].
-If you are using an installed Azure CLI, sign in to your Azure subscription with the [az login](/cli/azure/reference-index#az_login) command and follow the on-screen directions. You can skip this step if you're using the Azure Cloud Shell.
+If you are using an installed Azure CLI, sign in to your Azure subscription with the [az login](/cli/azure/reference-index#az-login) command and follow the on-screen directions. You can skip this step if you're using the Azure Cloud Shell.
```azurecli az login
If `cosmosdb` is not in the list of base commands, reinstall [Azure CLI](/cli/az
### Create a resource group
-Create a [resource group](../../azure-resource-manager/management/overview.md) with the [az group create](/cli/azure/group#az_group_create). An Azure resource group is a logical container into which Azure resources like web apps, databases and storage accounts are deployed and managed.
+Create a [resource group](../../azure-resource-manager/management/overview.md) with the [az group create](/cli/azure/group#az-group-create). An Azure resource group is a logical container into which Azure resources like web apps, databases and storage accounts are deployed and managed.
The following example creates a resource group in the West Europe region. Choose a unique name for the resource group.
az group create --name myResourceGroup --location "West Europe"
### Create an Azure Cosmos DB account
-Create a Cosmos account with the [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) command.
+Create a Cosmos account with the [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) command.
In the following command, please substitute your own unique Cosmos account name where you see the `<cosmosdb-name>` placeholder. This unique name will be used as part of your Cosmos DB endpoint (`https://<cosmosdb-name>.documents.azure.com/`), so the name needs to be unique across all Cosmos accounts in Azure.
DB/databaseAccounts/<cosmosdb-name>",
### Retrieve the database key
-In order to connect to a Cosmos database, you need the database key. Use the [az cosmosdb keys list](/cli/azure/cosmosdb/keys#az_cosmosdb_keys_list) command to retrieve the primary key.
+In order to connect to a Cosmos database, you need the database key. Use the [az cosmosdb keys list](/cli/azure/cosmosdb/keys#az-cosmosdb-keys-list) command to retrieve the primary key.
```azurecli-interactive az cosmosdb keys list --name <cosmosdb-name> --resource-group myResourceGroup --query "primaryMasterKey"
cosmos-db Create Mongodb Nodejs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/mongodb/create-mongodb-nodejs.md
The application will try to connect to a MongoDB source and fail, go ahead and e
## Sign in to Azure
-If you are using an installed Azure CLI, sign in to your Azure subscription with the [az login](/cli/azure/reference-index#az_login) command and follow the on-screen directions. You can skip this step if you're using the Azure Cloud Shell.
+If you are using an installed Azure CLI, sign in to your Azure subscription with the [az login](/cli/azure/reference-index#az-login) command and follow the on-screen directions. You can skip this step if you're using the Azure Cloud Shell.
```azurecli az login
If `cosmosdb` is not in the list of base commands, reinstall [Azure CLI](/cli/az
## Create a resource group
-Create a [resource group](../../azure-resource-manager/management/overview.md) with the [az group create](/cli/azure/group#az_group_create). An Azure resource group is a logical container into which Azure resources like web apps, databases and storage accounts are deployed and managed.
+Create a [resource group](../../azure-resource-manager/management/overview.md) with the [az group create](/cli/azure/group#az-group-create). An Azure resource group is a logical container into which Azure resources like web apps, databases and storage accounts are deployed and managed.
The following example creates a resource group in the West Europe region. Choose a unique name for the resource group.
az group create --name myResourceGroup --location "West Europe"
## Create an Azure Cosmos DB account
-Create a Cosmos account with the [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) command.
+Create a Cosmos account with the [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) command.
In the following command, please substitute your own unique Cosmos account name where you see the `<cosmosdb-name>` placeholder. This unique name will be used as part of your Cosmos DB endpoint (`https://<cosmosdb-name>.documents.azure.com/`), so the name needs to be unique across all Cosmos accounts in Azure.
module.exports = {
## Retrieve the key
-In order to connect to a Cosmos database, you need the database key. Use the [az cosmosdb keys list](/cli/azure/cosmosdb/keys#az_cosmosdb_keys_list) command to retrieve the primary key.
+In order to connect to a Cosmos database, you need the database key. Use the [az cosmosdb keys list](/cli/azure/cosmosdb/keys#az-cosmosdb-keys-list) command to retrieve the primary key.
```azurecli-interactive az cosmosdb keys list --name <cosmosdb-name> --resource-group myResourceGroup --query "primaryMasterKey"
cosmos-db Tutorial Develop Nodejs Part 4 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/mongodb/tutorial-develop-nodejs-part-4.md
In this tutorial section, you can either use the Azure Cloud Shell (in your inte
## Create an Azure Cosmos DB account
-Create an Azure Cosmos DB account with the [`az cosmosdb create`](/cli/azure/cosmosdb#az_cosmosdb_create) command.
+Create an Azure Cosmos DB account with the [`az cosmosdb create`](/cli/azure/cosmosdb#az-cosmosdb-create) command.
```azurecli-interactive az cosmosdb create --name <cosmosdb-name> --resource-group myResourceGroup --kind MongoDB
cosmos-db Autoscale https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/cassandra/autoscale.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb cassandra keyspace create](/cli/azure/cosmosdb/cassandra/keyspace#az_cosmosdb_cassandra_keyspace_create) | Creates an Azure Cosmos Cassandra keyspace. |
-| [az cosmosdb cassandra table create](/cli/azure/cosmosdb/cassandra/table#az_cosmosdb_cassandra_table_create) | Creates an Azure Cosmos Cassandra table. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb cassandra keyspace create](/cli/azure/cosmosdb/cassandra/keyspace#az-cosmosdb-cassandra-keyspace-create) | Creates an Azure Cosmos Cassandra keyspace. |
+| [az cosmosdb cassandra table create](/cli/azure/cosmosdb/cassandra/table#az-cosmosdb-cassandra-table-create) | Creates an Azure Cosmos Cassandra table. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/cassandra/create.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb cassandra keyspace create](/cli/azure/cosmosdb/cassandra/keyspace#az_cosmosdb_cassandra_keyspace_create) | Creates an Azure Cosmos Cassandra keyspace. |
-| [az cosmosdb cassandra table create](/cli/azure/cosmosdb/cassandra/table#az_cosmosdb_cassandra_table_create) | Creates an Azure Cosmos Cassandra table. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb cassandra keyspace create](/cli/azure/cosmosdb/cassandra/keyspace#az-cosmosdb-cassandra-keyspace-create) | Creates an Azure Cosmos Cassandra keyspace. |
+| [az cosmosdb cassandra table create](/cli/azure/cosmosdb/cassandra/table#az-cosmosdb-cassandra-table-create) | Creates an Azure Cosmos Cassandra table. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Lock https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/cassandra/lock.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az lock create](/cli/azure/lock#az_lock_create) | Creates a lock. |
-| [az lock list](/cli/azure/lock#az_lock_list) | List lock information. |
-| [az lock show](/cli/azure/lock#az_lock_show) | Show properties of a lock. |
-| [az lock delete](/cli/azure/lock#az_lock_delete) | Deletes a lock. |
+| [az lock create](/cli/azure/lock#az-lock-create) | Creates a lock. |
+| [az lock list](/cli/azure/lock#az-lock-list) | List lock information. |
+| [az lock show](/cli/azure/lock#az-lock-show) | Show properties of a lock. |
+| [az lock delete](/cli/azure/lock#az-lock-delete) | Deletes a lock. |
## Next steps
cosmos-db Serverless https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/cassandra/serverless.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb cassandra keyspace create](/cli/azure/cosmosdb/cassandra/keyspace#az_cosmosdb_cassandra_keyspace_create) | Creates an Azure Cosmos Cassandra keyspace. |
-| [az cosmosdb cassandra table create](/cli/azure/cosmosdb/cassandra/table#az_cosmosdb_cassandra_table_create) | Creates an Azure Cosmos Cassandra table. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb cassandra keyspace create](/cli/azure/cosmosdb/cassandra/keyspace#az-cosmosdb-cassandra-keyspace-create) | Creates an Azure Cosmos Cassandra keyspace. |
+| [az cosmosdb cassandra table create](/cli/azure/cosmosdb/cassandra/table#az-cosmosdb-cassandra-table-create) | Creates an Azure Cosmos Cassandra table. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Throughput https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/cassandra/throughput.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb cassandra keyspace create](/cli/azure/cosmosdb/cassandra/keyspace#az_cosmosdb_cassandra_keyspace_create) | Creates an Azure Cosmos Cassandra keyspace. |
-| [az cosmosdb cassandra table create](/cli/azure/cosmosdb/cassandra/table#az_cosmosdb_cassandra_table_create) | Creates an Azure Cosmos Cassandra table. |
-| [az cosmosdb cassandra keyspace throughput update](/cli/azure/cosmosdb/cassandra/keyspace/throughput#az_cosmosdb_cassandra_keyspace_throughput_update) | Update RU/s for an Azure Cosmos Cassandra keyspace. |
-| [az cosmosdb cassandra table throughput update](/cli/azure/cosmosdb/cassandra/table/throughput#az_cosmosdb_cassandra_table_throughput_update) | Update RU/s for an Azure Cosmos Cassandra table. |
-| [az cosmosdb cassandra keyspace throughput migrate](/cli/azure/cosmosdb/cassandra/keyspace/throughput#az_cosmosdb_cassandra_keyspace_throughput_migrate) | Migrate throughput for an Azure Cosmos Cassandra keyspace. |
-| [az cosmosdb cassandra table throughput migrate](/cli/azure/cosmosdb/cassandra/table/throughput#az_cosmosdb_cassandra_table_throughput_migrate) | Migrate throughput for an Azure Cosmos Cassandra table. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb cassandra keyspace create](/cli/azure/cosmosdb/cassandra/keyspace#az-cosmosdb-cassandra-keyspace-create) | Creates an Azure Cosmos Cassandra keyspace. |
+| [az cosmosdb cassandra table create](/cli/azure/cosmosdb/cassandra/table#az-cosmosdb-cassandra-table-create) | Creates an Azure Cosmos Cassandra table. |
+| [az cosmosdb cassandra keyspace throughput update](/cli/azure/cosmosdb/cassandra/keyspace/throughput#az-cosmosdb-cassandra-keyspace-throughput-update) | Update RU/s for an Azure Cosmos Cassandra keyspace. |
+| [az cosmosdb cassandra table throughput update](/cli/azure/cosmosdb/cassandra/table/throughput#az-cosmosdb-cassandra-table-throughput-update) | Update RU/s for an Azure Cosmos Cassandra table. |
+| [az cosmosdb cassandra keyspace throughput migrate](/cli/azure/cosmosdb/cassandra/keyspace/throughput#az-cosmosdb-cassandra-keyspace-throughput-migrate) | Migrate throughput for an Azure Cosmos Cassandra keyspace. |
+| [az cosmosdb cassandra table throughput migrate](/cli/azure/cosmosdb/cassandra/table/throughput#az-cosmosdb-cassandra-table-throughput-migrate) | Migrate throughput for an Azure Cosmos Cassandra table. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Ipfirewall https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/common/ipfirewall.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/common/keys.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb keys list](/cli/azure/cosmosdb/keys#az_cosmosdb_keys_list) | List the keys for an Azure Cosmos DB account. |
-| [az cosmosdb list-read-only-keys](/cli/azure/cosmosdb#az_cosmosdb_list_read_only_keys) | List the read only keys for an Azure Cosmos DB account. |
-| [az cosmosdb list-connection-strings](/cli/azure/cosmosdb#az_cosmosdb_list_connection_strings) | List the connection strings for an Azure Cosmos DB account. |
-| [az cosmosdb regenerate-key](/cli/azure/cosmosdb#az_cosmosdb_regenerate-key) | Regenerate keys for an Azure Cosmos DB account. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb keys list](/cli/azure/cosmosdb/keys#az-cosmosdb-keys-list) | List the keys for an Azure Cosmos DB account. |
+| [az cosmosdb list-read-only-keys](/cli/azure/cosmosdb#az-cosmosdb-list-read-only-keys) | List the read only keys for an Azure Cosmos DB account. |
+| [az cosmosdb list-connection-strings](/cli/azure/cosmosdb#az-cosmosdb-list-connection-strings) | List the connection strings for an Azure Cosmos DB account. |
+| [az cosmosdb regenerate-key](/cli/azure/cosmosdb#az-cosmosdb-regenerate-key) | Regenerate keys for an Azure Cosmos DB account. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Regions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/common/regions.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb update](/cli/azure/cosmosdb#az_cosmosdb_update) | Updates an Azure Cosmos DB account (add or remove region). |
-| [az cosmosdb failover-priority-change](/cli/azure/cosmosdb#az_cosmosdb_failover_priority_change) | Update failover priority or trigger failover on an Azure Cosmos DB account. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb update](/cli/azure/cosmosdb#az-cosmosdb-update) | Updates an Azure Cosmos DB account (add or remove region). |
+| [az cosmosdb failover-priority-change](/cli/azure/cosmosdb#az-cosmosdb-failover-priority-change) | Update failover priority or trigger failover on an Azure Cosmos DB account. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Service Endpoints Ignore Missing Vnet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/common/service-endpoints-ignore-missing-vnet.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) | Creates an Azure virtual network. |
-| [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) | Creates a subnet for an Azure virtual network. |
-| [az network vnet subnet show](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_show) | Returns a subnet for an Azure virtual network. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update) | Updates a subnet for an Azure virtual network. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates an Azure virtual network. |
+| [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) | Creates a subnet for an Azure virtual network. |
+| [az network vnet subnet show](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-show) | Returns a subnet for an Azure virtual network. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update) | Updates a subnet for an Azure virtual network. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Service Endpoints https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/common/service-endpoints.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) | Creates an Azure virtual network. |
-| [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) | Creates a subnet for an Azure virtual network. |
-| [az network vnet subnet show](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_show) | Returns a subnet for an Azure virtual network. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates an Azure virtual network. |
+| [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) | Creates a subnet for an Azure virtual network. |
+| [az network vnet subnet show](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-show) | Returns a subnet for an Azure virtual network. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Autoscale https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/gremlin/autoscale.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb gremlin database create](/cli/azure/cosmosdb/gremlin/database#az_cosmosdb_gremlin_database_create) | Creates an Azure Cosmos Gremlin database. |
-| [az cosmosdb gremlin graph create](/cli/azure/cosmosdb/gremlin/graph#az_cosmosdb_gremlin_graph_create) | Creates an Azure Cosmos Gremlin graph. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb gremlin database create](/cli/azure/cosmosdb/gremlin/database#az-cosmosdb-gremlin-database-create) | Creates an Azure Cosmos Gremlin database. |
+| [az cosmosdb gremlin graph create](/cli/azure/cosmosdb/gremlin/graph#az-cosmosdb-gremlin-graph-create) | Creates an Azure Cosmos Gremlin graph. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/gremlin/create.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb gremlin database create](/cli/azure/cosmosdb/gremlin/database#az_cosmosdb_gremlin_database_create) | Creates an Azure Cosmos Gremlin database. |
-| [az cosmosdb gremlin graph create](/cli/azure/cosmosdb/gremlin/graph#az_cosmosdb_gremlin_graph_create) | Creates an Azure Cosmos Gremlin graph. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb gremlin database create](/cli/azure/cosmosdb/gremlin/database#az-cosmosdb-gremlin-database-create) | Creates an Azure Cosmos Gremlin database. |
+| [az cosmosdb gremlin graph create](/cli/azure/cosmosdb/gremlin/graph#az-cosmosdb-gremlin-graph-create) | Creates an Azure Cosmos Gremlin graph. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Lock https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/gremlin/lock.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az lock create](/cli/azure/lock#az_lock_create) | Creates a lock. |
-| [az lock list](/cli/azure/lock#az_lock_list) | List lock information. |
-| [az lock show](/cli/azure/lock#az_lock_show) | Show properties of a lock. |
-| [az lock delete](/cli/azure/lock#az_lock_delete) | Deletes a lock. |
+| [az lock create](/cli/azure/lock#az-lock-create) | Creates a lock. |
+| [az lock list](/cli/azure/lock#az-lock-list) | List lock information. |
+| [az lock show](/cli/azure/lock#az-lock-show) | Show properties of a lock. |
+| [az lock delete](/cli/azure/lock#az-lock-delete) | Deletes a lock. |
## Next steps
cosmos-db Serverless https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/gremlin/serverless.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb gremlin database create](/cli/azure/cosmosdb/gremlin/database#az_cosmosdb_gremlin_database_create) | Creates an Azure Cosmos Gremlin database. |
-| [az cosmosdb gremlin graph create](/cli/azure/cosmosdb/gremlin/graph#az_cosmosdb_gremlin_graph_create) | Creates an Azure Cosmos Gremlin graph. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb gremlin database create](/cli/azure/cosmosdb/gremlin/database#az-cosmosdb-gremlin-database-create) | Creates an Azure Cosmos Gremlin database. |
+| [az cosmosdb gremlin graph create](/cli/azure/cosmosdb/gremlin/graph#az-cosmosdb-gremlin-graph-create) | Creates an Azure Cosmos Gremlin graph. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Throughput https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/gremlin/throughput.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb gremlin database create](/cli/azure/cosmosdb/gremlin/database#az_cosmosdb_gremlin_database_create) | Creates an Azure Cosmos Gremlin database. |
-| [az cosmosdb gremlin graph create](/cli/azure/cosmosdb/gremlin/graph#az_cosmosdb_gremlin_graph_create) | Creates an Azure Cosmos Gremlin graph. |
-| [az cosmosdb gremlin database throughput update](/cli/azure/cosmosdb/gremlin/database/throughput#az_cosmosdb_gremlin_database_throughput_update) | Update RU/s for an Azure Cosmos Gremlin database. |
-| [az cosmosdb gremlin graph throughput update](/cli/azure/cosmosdb/gremlin/graph/throughput#az_cosmosdb_gremlin_graph_throughput_update) | Update RU/s for an Azure Cosmos Gremlin graph. |
-| [az cosmosdb gremlin database throughput migrate](/cli/azure/cosmosdb/gremlin/database/throughput#az_cosmosdb_gremlin_database_throughput_migrate) | Migrate throughput for an Azure Cosmos Gremlin database. |
-| [az cosmosdb gremlin graph throughput migrate](/cli/azure/cosmosdb/gremlin/graph/throughput#az_cosmosdb_gremlin_graph_throughput_migrate) | Migrate throughput for an Azure Cosmos Gremlin graph. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb gremlin database create](/cli/azure/cosmosdb/gremlin/database#az-cosmosdb-gremlin-database-create) | Creates an Azure Cosmos Gremlin database. |
+| [az cosmosdb gremlin graph create](/cli/azure/cosmosdb/gremlin/graph#az-cosmosdb-gremlin-graph-create) | Creates an Azure Cosmos Gremlin graph. |
+| [az cosmosdb gremlin database throughput update](/cli/azure/cosmosdb/gremlin/database/throughput#az-cosmosdb-gremlin-database-throughput-update) | Update RU/s for an Azure Cosmos Gremlin database. |
+| [az cosmosdb gremlin graph throughput update](/cli/azure/cosmosdb/gremlin/graph/throughput#az-cosmosdb-gremlin-graph-throughput-update) | Update RU/s for an Azure Cosmos Gremlin graph. |
+| [az cosmosdb gremlin database throughput migrate](/cli/azure/cosmosdb/gremlin/database/throughput#az-cosmosdb-gremlin-database-throughput-migrate) | Migrate throughput for an Azure Cosmos Gremlin database. |
+| [az cosmosdb gremlin graph throughput migrate](/cli/azure/cosmosdb/gremlin/graph/throughput#az-cosmosdb-gremlin-graph-throughput-migrate) | Migrate throughput for an Azure Cosmos Gremlin graph. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Autoscale https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/mongodb/autoscale.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb mongodb database create](/cli/azure/cosmosdb/mongodb/database#az_cosmosdb_mongodb_database_create) | Creates an Azure Cosmos MongoDB API database. |
-| [az cosmosdb mongodb collection create](/cli/azure/cosmosdb/mongodb/collection#az_cosmosdb_mongodb_collection_create) | Creates an Azure Cosmos MongoDB API collection. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb mongodb database create](/cli/azure/cosmosdb/mongodb/database#az-cosmosdb-mongodb-database-create) | Creates an Azure Cosmos MongoDB API database. |
+| [az cosmosdb mongodb collection create](/cli/azure/cosmosdb/mongodb/collection#az-cosmosdb-mongodb-collection-create) | Creates an Azure Cosmos MongoDB API collection. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/mongodb/create.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb mongodb database create](/cli/azure/cosmosdb/mongodb/database#az_cosmosdb_mongodb_database_create) | Creates an Azure Cosmos MongoDB API database. |
-| [az cosmosdb mongodb collection create](/cli/azure/cosmosdb/mongodb/collection#az_cosmosdb_mongodb_collection_create) | Creates an Azure Cosmos MongoDB API collection. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb mongodb database create](/cli/azure/cosmosdb/mongodb/database#az-cosmosdb-mongodb-database-create) | Creates an Azure Cosmos MongoDB API database. |
+| [az cosmosdb mongodb collection create](/cli/azure/cosmosdb/mongodb/collection#az-cosmosdb-mongodb-collection-create) | Creates an Azure Cosmos MongoDB API collection. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Lock https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/mongodb/lock.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az lock create](/cli/azure/lock#az_lock_create) | Creates a lock. |
-| [az lock list](/cli/azure/lock#az_lock_list) | List lock information. |
-| [az lock show](/cli/azure/lock#az_lock_show) | Show properties of a lock. |
-| [az lock delete](/cli/azure/lock#az_lock_delete) | Deletes a lock. |
+| [az lock create](/cli/azure/lock#az-lock-create) | Creates a lock. |
+| [az lock list](/cli/azure/lock#az-lock-list) | List lock information. |
+| [az lock show](/cli/azure/lock#az-lock-show) | Show properties of a lock. |
+| [az lock delete](/cli/azure/lock#az-lock-delete) | Deletes a lock. |
## Next steps
cosmos-db Serverless https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/mongodb/serverless.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb mongodb database create](/cli/azure/cosmosdb/mongodb/database#az_cosmosdb_mongodb_database_create) | Creates an Azure Cosmos MongoDB API database. |
-| [az cosmosdb mongodb collection create](/cli/azure/cosmosdb/mongodb/collection#az_cosmosdb_mongodb_collection_create) | Creates an Azure Cosmos MongoDB API collection. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb mongodb database create](/cli/azure/cosmosdb/mongodb/database#az-cosmosdb-mongodb-database-create) | Creates an Azure Cosmos MongoDB API database. |
+| [az cosmosdb mongodb collection create](/cli/azure/cosmosdb/mongodb/collection#az-cosmosdb-mongodb-collection-create) | Creates an Azure Cosmos MongoDB API collection. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Throughput https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/mongodb/throughput.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb mongodb database create](/cli/azure/cosmosdb/mongodb/database#az_cosmosdb_mongodb_database_create) | Creates an Azure Cosmos MongoDB API database. |
-| [az cosmosdb mongodb collection create](/cli/azure/cosmosdb/mongodb/collection#az_cosmosdb_mongodb_collection_create) | Creates an Azure Cosmos MongoDB API collection. |
-| [az cosmosdb mongodb database throughput update](/cli/azure/cosmosdb/mongodb/database/throughput#az_cosmosdb_mongodb_database_throughput_update) | Update RUs for an Azure Cosmos MongoDB API database. |
-| [az cosmosdb mongodb collection throughput update](/cli/azure/cosmosdb/mongodb/collection/throughput#az_cosmosdb_mongodb_collection_throughput_update) | Update RUs for an Azure Cosmos MongoDB API collection. |
-| [az cosmosdb mongodb database throughput migrate](/cli/azure/cosmosdb/mongodb/database/throughput#az_cosmosdb_mongodb_database_throughput_migrate) | Migrate throughput for a database. |
-| [az cosmosdb mongodb collection throughput migrate](/cli/azure/cosmosdb/mongodb/collection/throughput#az_cosmosdb_mongodb_collection_throughput-migrate) | Migrate throughput for a collection. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb mongodb database create](/cli/azure/cosmosdb/mongodb/database#az-cosmosdb-mongodb-database-create) | Creates an Azure Cosmos MongoDB API database. |
+| [az cosmosdb mongodb collection create](/cli/azure/cosmosdb/mongodb/collection#az-cosmosdb-mongodb-collection-create) | Creates an Azure Cosmos MongoDB API collection. |
+| [az cosmosdb mongodb database throughput update](/cli/azure/cosmosdb/mongodb/database/throughput#az-cosmosdb-mongodb-database-throughput-update) | Update RUs for an Azure Cosmos MongoDB API database. |
+| [az cosmosdb mongodb collection throughput update](/cli/azure/cosmosdb/mongodb/collection/throughput#az-cosmosdb-mongodb-collection-throughput-update) | Update RUs for an Azure Cosmos MongoDB API collection. |
+| [az cosmosdb mongodb database throughput migrate](/cli/azure/cosmosdb/mongodb/database/throughput#az-cosmosdb-mongodb-database-throughput-migrate) | Migrate throughput for a database. |
+| [az cosmosdb mongodb collection throughput migrate](/cli/azure/cosmosdb/mongodb/collection/throughput#az-cosmosdb-mongodb-collection-throughput-migrate) | Migrate throughput for a collection. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Autoscale https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/sql/autoscale.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb sql database create](/cli/azure/cosmosdb/sql/database#az_cosmosdb_sql_database_create) | Creates an Azure Cosmos SQL (Core) database. |
-| [az cosmosdb sql container create](/cli/azure/cosmosdb/sql/container#az_cosmosdb_sql_container_create) | Creates an Azure Cosmos SQL (Core) container. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb sql database create](/cli/azure/cosmosdb/sql/database#az-cosmosdb-sql-database-create) | Creates an Azure Cosmos SQL (Core) database. |
+| [az cosmosdb sql container create](/cli/azure/cosmosdb/sql/container#az-cosmosdb-sql-container-create) | Creates an Azure Cosmos SQL (Core) container. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/sql/create.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb sql database create](/cli/azure/cosmosdb/sql/database#az_cosmosdb_sql_database_create) | Creates an Azure Cosmos SQL (Core) database. |
-| [az cosmosdb sql container create](/cli/azure/cosmosdb/sql/container#az_cosmosdb_sql_container_create) | Creates an Azure Cosmos SQL (Core) container. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb sql database create](/cli/azure/cosmosdb/sql/database#az-cosmosdb-sql-database-create) | Creates an Azure Cosmos SQL (Core) database. |
+| [az cosmosdb sql container create](/cli/azure/cosmosdb/sql/container#az-cosmosdb-sql-container-create) | Creates an Azure Cosmos SQL (Core) container. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Lock https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/sql/lock.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az lock create](/cli/azure/lock#az_lock_create) | Creates a lock. |
-| [az lock list](/cli/azure/lock#az_lock_list) | List lock information. |
-| [az lock show](/cli/azure/lock#az_lock_show) | Show properties of a lock. |
-| [az lock delete](/cli/azure/lock#az_lock_delete) | Deletes a lock. |
+| [az lock create](/cli/azure/lock#az-lock-create) | Creates a lock. |
+| [az lock list](/cli/azure/lock#az-lock-list) | List lock information. |
+| [az lock show](/cli/azure/lock#az-lock-show) | Show properties of a lock. |
+| [az lock delete](/cli/azure/lock#az-lock-delete) | Deletes a lock. |
## Next steps
cosmos-db Serverless https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/sql/serverless.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb sql database create](/cli/azure/cosmosdb/sql/database#az_cosmosdb_sql_database_create) | Creates an Azure Cosmos SQL (Core) database. |
-| [az cosmosdb sql container create](/cli/azure/cosmosdb/sql/container#az_cosmosdb_sql_container_create) | Creates an Azure Cosmos SQL (Core) container. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb sql database create](/cli/azure/cosmosdb/sql/database#az-cosmosdb-sql-database-create) | Creates an Azure Cosmos SQL (Core) database. |
+| [az cosmosdb sql container create](/cli/azure/cosmosdb/sql/container#az-cosmosdb-sql-container-create) | Creates an Azure Cosmos SQL (Core) container. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Throughput https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/sql/throughput.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb sql database create](/cli/azure/cosmosdb/sql/database#az_cosmosdb_sql_database_create) | Creates an Azure Cosmos Core (SQL) database. |
-| [az cosmosdb sql container create](/cli/azure/cosmosdb/sql/container#az_cosmosdb_sql_container_create) | Creates an Azure Cosmos Core (SQL) container. |
-| [az cosmosdb sql database throughput update](/cli/azure/cosmosdb/sql/database/throughput#az_cosmosdb_sql_database_throughput_update) | Update throughput for an Azure Cosmos Core (SQL) database. |
-| [az cosmosdb sql container throughput update](/cli/azure/cosmosdb/sql/container/throughput#az_cosmosdb_sql_container_throughput_update) | Update throughput for an Azure Cosmos Core (SQL) container. |
-| [az cosmosdb sql database throughput migrate](/cli/azure/cosmosdb/sql/database/throughput#az_cosmosdb_sql_database_throughput_migrate) | Migrate throughput for an Azure Cosmos Core (SQL) database. |
-| [az cosmosdb sql container throughput migrate](/cli/azure/cosmosdb/sql/container/throughput#az_cosmosdb_sql_container_throughput_migrate) | Migrate throughput for an Azure Cosmos Core (SQL) container. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb sql database create](/cli/azure/cosmosdb/sql/database#az-cosmosdb-sql-database-create) | Creates an Azure Cosmos Core (SQL) database. |
+| [az cosmosdb sql container create](/cli/azure/cosmosdb/sql/container#az-cosmosdb-sql-container-create) | Creates an Azure Cosmos Core (SQL) container. |
+| [az cosmosdb sql database throughput update](/cli/azure/cosmosdb/sql/database/throughput#az-cosmosdb-sql-database-throughput-update) | Update throughput for an Azure Cosmos Core (SQL) database. |
+| [az cosmosdb sql container throughput update](/cli/azure/cosmosdb/sql/container/throughput#az-cosmosdb-sql-container-throughput-update) | Update throughput for an Azure Cosmos Core (SQL) container. |
+| [az cosmosdb sql database throughput migrate](/cli/azure/cosmosdb/sql/database/throughput#az-cosmosdb-sql-database-throughput-migrate) | Migrate throughput for an Azure Cosmos Core (SQL) database. |
+| [az cosmosdb sql container throughput migrate](/cli/azure/cosmosdb/sql/container/throughput#az-cosmosdb-sql-container-throughput-migrate) | Migrate throughput for an Azure Cosmos Core (SQL) container. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Autoscale https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/table/autoscale.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb table create](/cli/azure/cosmosdb/table#az_cosmosdb_table_create) | Creates an Azure Cosmos Table API table. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb table create](/cli/azure/cosmosdb/table#az-cosmosdb-table-create) | Creates an Azure Cosmos Table API table. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/table/create.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb table create](/cli/azure/cosmosdb/table#az_cosmosdb_table_create) | Creates an Azure Cosmos Table API table. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb table create](/cli/azure/cosmosdb/table#az-cosmosdb-table-create) | Creates an Azure Cosmos Table API table. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Lock https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/table/lock.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az lock create](/cli/azure/lock#az_lock_create) | Creates a lock. |
-| [az lock list](/cli/azure/lock#az_lock_list) | List lock information. |
-| [az lock show](/cli/azure/lock#az_lock_show) | Show properties of a lock. |
-| [az lock delete](/cli/azure/lock#az_lock_delete) | Deletes a lock. |
+| [az lock create](/cli/azure/lock#az-lock-create) | Creates a lock. |
+| [az lock list](/cli/azure/lock#az-lock-list) | List lock information. |
+| [az lock show](/cli/azure/lock#az-lock-show) | Show properties of a lock. |
+| [az lock delete](/cli/azure/lock#az-lock-delete) | Deletes a lock. |
## Next steps
cosmos-db Serverless https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/table/serverless.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb table create](/cli/azure/cosmosdb/table#az_cosmosdb_table_create) | Creates an Azure Cosmos Table API table. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb table create](/cli/azure/cosmosdb/table#az-cosmosdb-table-create) | Creates an Azure Cosmos Table API table. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Throughput https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/scripts/cli/table/throughput.md
This script uses the following commands. Each command in the table links to comm
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) | Creates an Azure Cosmos DB account. |
-| [az cosmosdb table create](/cli/azure/cosmosdb/table#az_cosmosdb_table_create) | Creates an Azure Cosmos Table API table. |
-| [az cosmosdb table throughput update](/cli/azure/cosmosdb/table/throughput#az_cosmosdb_table_throughput_update) | Update throughput for an Azure Cosmos Table API table. |
-| [az cosmosdb table throughput migrate](/cli/azure/cosmosdb/table/throughput#az_cosmosdb_table_throughput_migrate) | Migrate throughput for an Azure Cosmos Table API table. |
-| [az group delete](/cli/azure/resource#az_resource_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) | Creates an Azure Cosmos DB account. |
+| [az cosmosdb table create](/cli/azure/cosmosdb/table#az-cosmosdb-table-create) | Creates an Azure Cosmos Table API table. |
+| [az cosmosdb table throughput update](/cli/azure/cosmosdb/table/throughput#az-cosmosdb-table-throughput-update) | Update throughput for an Azure Cosmos Table API table. |
+| [az cosmosdb table throughput migrate](/cli/azure/cosmosdb/table/throughput#az-cosmosdb-table-throughput-migrate) | Migrate throughput for an Azure Cosmos Table API table. |
+| [az group delete](/cli/azure/resource#az-resource-delete) | Deletes a resource group including all nested resources. |
## Next steps
cosmos-db Sql Api Java Application https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/sql/sql-api-java-application.md
Trying to do capacity planning for a migration to Azure Cosmos DB? You can use i
* If you know typical request rates for your current database workload, read about [estimating request units using Azure Cosmos DB capacity planner](estimate-ru-with-capacity-planner.md) > [!div class="nextstepaction"]
-> [Build a node.js application with Azure Cosmos DB](sql-api-nodejs-application.md)
+> [Build a Node.js application with Azure Cosmos DB](sql-api-nodejs-application.md)
cosmos-db Sql Api Nodejs Application https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/sql/sql-api-nodejs-application.md
Now that you have built the application, you can run it locally by using the fol
## <a name="deploy-app"></a>Deploy your application to App Service
-After your application succeeds locally, you can deploy it to Azure App Service. In the terminal, make sure you're in the *todo* app directory. Deploy the code in your local folder (todo) using the following [az webapp up](/cli/azure/webapp#az_webapp_up) command:
+After your application succeeds locally, you can deploy it to Azure App Service. In the terminal, make sure you're in the *todo* app directory. Deploy the code in your local folder (todo) using the following [az webapp up](/cli/azure/webapp#az-webapp-up) command:
```azurecli az webapp up --sku F1 --name <app-name>
cosmos-db Sql Api Sdk Node https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/sql/sql-api-sdk-node.md
Add DISTINCT and LIMIT/OFFSET queries (#306)
### Improved browser experience
-While it was possible to use the v2 SDK in the browser, it was not an ideal experience. You needed to Polyfill several node.js built-in libraries and use a bundler like webpack or Parcel. The v3 SDK makes the out of the box experience much better for browser users.
+While it was possible to use the v2 SDK in the browser, it was not an ideal experience. You needed to Polyfill several Node.js built-in libraries and use a bundler like webpack or Parcel. The v3 SDK makes the out of the box experience much better for browser users.
* Replace request internals with fetch (#245) * Remove usage of Buffer (#330)
cosmos-db Create Table Dotnet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/table/create-table-dotnet.md
Log in to the [Azure portal](https://portal.azure.com/) and follow these steps t
### [Azure CLI](#tab/azure-cli)
-Cosmos DB accounts are created using the [az cosmosdb create](/cli/azure/cosmosdb#az_cosmosdb_create) command. You must include the `--capabilities EnableTable` option to enable table storage within your Cosmos DB. As all Azure resource must be contained in a resource group, the following code snippet also creates a resource group for the Cosmos DB account.
+Cosmos DB accounts are created using the [az cosmosdb create](/cli/azure/cosmosdb#az-cosmosdb-create) command. You must include the `--capabilities EnableTable` option to enable table storage within your Cosmos DB. As all Azure resource must be contained in a resource group, the following code snippet also creates a resource group for the Cosmos DB account.
Cosmos DB account names must be between 3 and 44 characters in length and may contain only lowercase letters, numbers, and the hyphen (-) character. Cosmos DB account names must also be unique across Azure.
In the [Azure portal](https://portal.azure.com/), complete the following steps t
### [Azure CLI](#tab/azure-cli)
-Tables in Cosmos DB are created using the [az cosmosdb table create](/cli/azure/cosmosdb/table#az_cosmosdb_table_create) command.
+Tables in Cosmos DB are created using the [az cosmosdb table create](/cli/azure/cosmosdb/table#az-cosmosdb-table-create) command.
```azurecli COSMOS_TABLE_NAME='WeatherData'
To access your table(s) in Cosmos DB, your app will need the table connection st
### [Azure CLI](#tab/azure-cli)
-To get the primary table storage connection string using Azure CLI, use the [az cosmosdb keys list](/cli/azure/cosmosdb/keys#az_cosmosdb_keys_list) command with the option `--type connection-strings`. This command uses a [JMESPath query](https://jmespath.org/) to display only the primary table connection string.
+To get the primary table storage connection string using Azure CLI, use the [az cosmosdb keys list](/cli/azure/cosmosdb/keys#az-cosmosdb-keys-list) command with the option `--type connection-strings`. This command uses a [JMESPath query](https://jmespath.org/) to display only the primary table connection string.
```azurecli # This gets the primary Table connection string
A resource group can be deleted using the [Azure portal](https://portal.azure.co
### [Azure CLI](#tab/azure-cli)
-To delete a resource group using the Azure CLI, use the [az group delete](/cli/azure/group#az_group_delete) command with the name of the resource group to be deleted. Deleting a resource group will also remove all Azure resources contained in the resource group.
+To delete a resource group using the Azure CLI, use the [az group delete](/cli/azure/group#az-group-delete) command with the name of the resource group to be deleted. Deleting a resource group will also remove all Azure resources contained in the resource group.
```azurecli az group delete --name $RESOURCE_GROUP_NAME
cost-management-billing Tutorial Export Acm Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cost-management-billing/costs/tutorial-export-acm-data.md
Start by preparing your environment for the Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../../includes/azure-cli-prepare-your-environment-no-header.md)]
-1. After you sign in, to see your current exports, use the [az costmanagement export list](/cli/azure/costmanagement/export#az_costmanagement_export_list) command:
+1. After you sign in, to see your current exports, use the [az costmanagement export list](/cli/azure/costmanagement/export#az-costmanagement-export-list) command:
```azurecli az costmanagement export list --scope "subscriptions/00000000-0000-0000-0000-000000000000"
Start by preparing your environment for the Azure CLI:
>* Besides subscriptions, you can create exports for resource groups and management groups. For more information about scopes, see [Understand and work with scopes](understand-work-scopes.md). >* When you're signed in as a partner at the billing account scope or on a customer's tenant, you can export data to an Azure Storage account that's linked to your partner storage account. However, you must have an active subscription in your CSP tenant.
-1. Create a resource group or use an existing resource group. To create a resource group, use the [az group create](/cli/azure/group#az_group_create) command:
+1. Create a resource group or use an existing resource group. To create a resource group, use the [az group create](/cli/azure/group#az-group-create) command:
```azurecli az group create --name TreyNetwork --location "East US" ```
-1. Create a storage account to receive the exports or use an existing storage account. To create a storage account, use the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command:
+1. Create a storage account to receive the exports or use an existing storage account. To create a storage account, use the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command:
```azurecli az storage account create --resource-group TreyNetwork --name cmdemo ```
-1. Run the [az costmanagement export create](/cli/azure/costmanagement/export#az_costmanagement_export_create) command to create the export:
+1. Run the [az costmanagement export create](/cli/azure/costmanagement/export#az-costmanagement-export-create) command to create the export:
```azurecli az costmanagement export create --name DemoExport --type ActualCost \
Start by preparing your environment for the Azure CLI:
This example uses `MonthToDate`. The export creates an export file daily for your month-to-date costs. The latest data is aggregated from previous daily exports this month.
-1. To see the details of your export operation, use the [az costmanagement export show](/cli/azure/costmanagement/export#az_costmanagement_export_show) command:
+1. To see the details of your export operation, use the [az costmanagement export show](/cli/azure/costmanagement/export#az-costmanagement-export-show) command:
```azurecli az costmanagement export show --name DemoExport \ --scope "subscriptions/00000000-0000-0000-0000-000000000000" ```
-1. Update an export by using the [az costmanagement export update](/cli/azure/costmanagement/export#az_costmanagement_export_update) command:
+1. Update an export by using the [az costmanagement export update](/cli/azure/costmanagement/export#az-costmanagement-export-update) command:
```azurecli az costmanagement export update --name DemoExport
Start by preparing your environment for the Azure CLI:
>[!NOTE] >Initially, it can take 12-24 hours before the export runs. However, it can take longer before data is shown in exported files.
-You can delete an export by using the [az costmanagement export delete](/cli/azure/costmanagement/export#az_costmanagement_export_delete) command:
+You can delete an export by using the [az costmanagement export delete](/cli/azure/costmanagement/export#az-costmanagement-export-delete) command:
```azurecli az costmanagement export delete --name DemoExport --scope "subscriptions/00000000-0000-0000-0000-000000000000"
cost-management-billing Programmatically Create Subscription Enterprise Agreement https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cost-management-billing/manage/programmatically-create-subscription-enterprise-agreement.md
A user must have an Owner role on an Enrollment Account to create a subscription
* The Enterprise Administrator of your enrollment can [make you an Account Owner](https://ea.azure.com/helpdocs/addNewAccount) (sign in required) which makes you an Owner of the Enrollment Account. * An existing Owner of the Enrollment Account can [grant you access](/rest/api/billing/2019-10-01-preview/enrollmentaccountroleassignments/put).
-To use a service principal (SPN) to create an EA subscription, an Owner of the Enrollment Account must [grant that service principal the ability to create subscriptions](/rest/api/billing/2019-10-01-preview/enrollmentaccountroleassignments/put). When using an SPN to create subscriptions, use the ObjectId of the Azure AD Application Registration as the Service Principal ObjectId using [Azure Active Directory PowerShell](/powershell/module/azuread/get-azureadserviceprincipal?view=azureadps-2.0&preserve-view=true ) or [Azure CLI](/cli/azure/ad/sp#az_ad_sp_list). For more information about the EA role assignment API request, see [Assign roles to Azure Enterprise Agreement service principal names](assign-roles-azure-service-principals.md). The article includes a list of roles (and role definition IDs) that can be assigned to an SPN.
+To use a service principal (SPN) to create an EA subscription, an Owner of the Enrollment Account must [grant that service principal the ability to create subscriptions](/rest/api/billing/2019-10-01-preview/enrollmentaccountroleassignments/put). When using an SPN to create subscriptions, use the ObjectId of the Azure AD Application Registration as the Service Principal ObjectId using [Azure Active Directory PowerShell](/powershell/module/azuread/get-azureadserviceprincipal?view=azureadps-2.0&preserve-view=true ) or [Azure CLI](/cli/azure/ad/sp#az-ad-sp-list). For more information about the EA role assignment API request, see [Assign roles to Azure Enterprise Agreement service principal names](assign-roles-azure-service-principals.md). The article includes a list of roles (and role definition IDs) that can be assigned to an SPN.
> [!NOTE] > - Ensure that you use the correct API version to give the enrollment account owner permissions. For this article and for the APIs documented in it, use the [2019-10-01-preview](/rest/api/billing/2019-10-01-preview/enrollmentaccountroleassignments/put) API.
You get the subscriptionId as part of the response from the command.
First, install the extension by running `az extension add --name account` and `az extension add --name alias`.
-Run the following [az account alias create](/cli/azure/account/alias#az_account_alias_create) command and provide `billing-scope` and `id` from one of your `enrollmentAccounts`.
+Run the following [az account alias create](/cli/azure/account/alias#az-account-alias-create) command and provide `billing-scope` and `id` from one of your `enrollmentAccounts`.
```azurecli-interactive az account alias create --name "sampleAlias" --billing-scope "/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/654321" --display-name "Dev Team Subscription" --workload "Production"
cost-management-billing Programmatically Create Subscription Microsoft Customer Agreement https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cost-management-billing/manage/programmatically-create-subscription-microsoft-customer-agreement.md
When you create an Azure subscription programmatically, that subscription is gov
You must have an owner, contributor, or Azure subscription creator role on an invoice section or owner or contributor role on a billing profile or a billing account to create subscriptions. You can also give the same role to a service principal name (SPN). For more information about roles and assigning permission to them, see [Subscription billing roles and tasks](understand-mca-roles.md#subscription-billing-roles-and-tasks).
-If you're using an SPN to create subscriptions, use the ObjectId of the Azure AD Application Registration as the Service Principal ObjectId using [Azure Active Directory PowerShell](/powershell/module/azuread/get-azureadserviceprincipal?view=azureadps-2.0&preserve-view=true) or [Azure CLI](/cli/azure/ad/sp#az_ad_sp_list).
+If you're using an SPN to create subscriptions, use the ObjectId of the Azure AD Application Registration as the Service Principal ObjectId using [Azure Active Directory PowerShell](/powershell/module/azuread/get-azureadserviceprincipal?view=azureadps-2.0&preserve-view=true) or [Azure CLI](/cli/azure/ad/sp#az-ad-sp-list).
If you don't know whether you have access to a Microsoft Customer Agreement account, see [Check access to a Microsoft Customer Agreement](../understand/mca-overview.md#check-access-to-a-microsoft-customer-agreement).
You get the subscriptionId as part of the response from the command.
First, install the extension by running `az extension add --name account` and `az extension add --name alias`.
-Run the [az account alias create](/cli/azure/account/alias#az_account_alias_create) following command.
+Run the [az account alias create](/cli/azure/account/alias#az-account-alias-create) following command.
```azurecli az account alias create --name "sampleAlias" --billing-scope "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/AW4F-xxxx-xxx-xxx/invoiceSections/SH3V-xxxx-xxx-xxx" --display-name "Dev Team Subscription" --workload "Production"
cost-management-billing Programmatically Create Subscription Microsoft Partner Agreement https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cost-management-billing/manage/programmatically-create-subscription-microsoft-partner-agreement.md
Pass the optional *resellerId* copied from the second step in the `New-AzSubscri
First, install the extension by running `az extension add --name account` and `az extension add --name alias`.
-Run the following [az account alias create](/cli/azure/account/alias#az_account_alias_create) command.
+Run the following [az account alias create](/cli/azure/account/alias#az-account-alias-create) command.
```azurecli az account alias create --name "sampleAlias" --billing-scope "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx" --display-name "Dev Team Subscription" --workload "Production"
data-factory Concepts Data Flow Flowlet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/data-factory/concepts-data-flow-flowlet.md
Last updated 11/11/2021
With flowlets you can create logic to do things such as address cleaning or string trimming. You can then map the input and outputs to columns in the calling data flow for a dynamic code reuse experience.
-> [!NOTE]
-> The Flowlet feature in mapping data flow is currently in public preview
- > [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RWQK3m] ## Getting started
data-factory Connector Azure Cosmos Db https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/data-factory/connector-azure-cosmos-db.md
Previously updated : 02/17/2022 Last updated : 03/23/2022 # Copy and transform data in Azure Cosmos DB (SQL API) by using Azure Data Factory
Settings specific to Azure Cosmos DB are available in the **Source Options** tab
**Preferred regions:** Choose the preferred read regions for this process.
-**Change feed (Preview):** If true, you will get data from [Azure Cosmos DB change feed](../cosmos-db/change-feed.md) which is a persistent record of changes to a container in the order they occur from last run automatically. When you set it true, do not set both **Infer drifted column types** and **Allow schema drift** as true at the same time. For more details, see [Azure Cosmos DB change feed (preview)](#azure-cosmos-db-change-feed-preview).
+**Change feed:** If true, you will get data from [Azure Cosmos DB change feed](../cosmos-db/change-feed.md) which is a persistent record of changes to a container in the order they occur from last run automatically. When you set it true, do not set both **Infer drifted column types** and **Allow schema drift** as true at the same time. For more details, see [Azure Cosmos DB change feed)](#azure-cosmos-db-change-feed).
-**Start from beginning (Preview):** If true, you will get initial load of full snapshot data in the first run, followed by capturing changed data in next runs. If false, the initial load will be skipped in the first run, followed by capturing changed data in next runs. The setting is aligned with the same setting name in [Cosmos DB reference](https://github.com/Azure/azure-cosmosdb-spark/wiki/Configuration-references#reading-cosmosdb-collection-change-feed). For more details, see [Azure Cosmos DB change feed (preview)](#azure-cosmos-db-change-feed-preview).
+**Start from beginning:** If true, you will get initial load of full snapshot data in the first run, followed by capturing changed data in next runs. If false, the initial load will be skipped in the first run, followed by capturing changed data in next runs. The setting is aligned with the same setting name in [Cosmos DB reference](https://github.com/Azure/azure-cosmosdb-spark/wiki/Configuration-references#reading-cosmosdb-collection-change-feed). For more details, see [Azure Cosmos DB change feed](#azure-cosmos-db-change-feed).
### Sink transformation
To achieve schema-agnostic copy:
When migrating from a relational database e.g. SQL Server to Azure Cosmos DB, copy activity can easily map tabular data from source to flatten JSON documents in Cosmos DB. In some cases, you may want to redesign the data model to optimize it for the NoSQL use-cases according to [Data modeling in Azure Cosmos DB](../cosmos-db/modeling-data.md), for example, to de-normalize the data by embedding all of the related sub-items within one JSON document. For such case, refer to [this article](../cosmos-db/migrate-relational-to-cosmos-db-sql-api.md) with a walk-through on how to achieve it using the copy activity.
-## Azure Cosmos DB change feed (preview)
+## Azure Cosmos DB change feed
Azure Data Factory can get data from [Azure Cosmos DB change feed](../cosmos-db/change-feed.md) by enabling it in the mapping data flow source transformation. With this connector option, you can read change feeds and apply transformations before loading transformed data into destination datasets of your choice. You do not have to use Azure functions to read the change feed and then write custom transformations. You can use this option to move data from one container to another, prepare change feed driven material views for fit purpose or automate container backup or recovery based on change feed, and enable many more such use cases using visual drag and drop capability of Azure Data Factory.
In the monitoring section, you always have the chance to rerun a pipeline. When
## Next steps
-For a list of data stores that Copy Activity supports as sources and sinks, see [supported data stores](copy-activity-overview.md#supported-data-stores-and-formats).
+For a list of data stores that Copy Activity supports as sources and sinks, see [supported data stores](copy-activity-overview.md#supported-data-stores-and-formats).
data-factory Connector Azure Data Lake Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/data-factory/connector-azure-data-lake-storage.md
Previously updated : 02/17/2022 Last updated : 03/24/2022 # Copy and transform data in Azure Data Lake Storage Gen2 using Azure Data Factory or Azure Synapse Analytics
When you copy files from Azure Data Lake Storage Gen1/Gen2 to Gen2, you can choo
When you're transforming data in mapping data flows, you can read and write files from Azure Data Lake Storage Gen2 in the following formats: * [Avro](format-avro.md#mapping-data-flow-properties)
-* [Common Data Model (preview)](format-common-data-model.md#mapping-data-flow-properties)
+* [Common Data Model](format-common-data-model.md#mapping-data-flow-properties)
* [Delimited text](format-delimited-text.md#mapping-data-flow-properties) * [Delta](format-delta.md#mapping-data-flow-properties) * [Excel](format-excel.md#mapping-data-flow-properties)
In this case, all files that were sourced under /data/sales are moved to /backup
**Filter by last modified:** You can filter which files you process by specifying a date range of when they were last modified. All date-times are in UTC.
-**Enable change data capture (Preview):** If true, you will get new or changed files only from the last run. Initial load of full snapshot data will always be gotten in the first run, followed by capturing new or changed files only in next runs. For more details, see [Change data capture (preview)](#change-data-capture-preview).
+**Enable change data capture:** If true, you will get new or changed files only from the last run. Initial load of full snapshot data will always be gotten in the first run, followed by capturing new or changed files only in next runs. For more details, see [Change data capture](#change-data-capture).
### Sink properties
To learn details about the properties, check [Delete activity](delete-activity.m
} ] ```
-## Change data capture (preview)
+## Change data capture
-Azure Data Factory can get new or changed files only from Azure Data Lake Storage Gen2 by enabling **Enable change data capture (Preview)** in the mapping data flow source transformation. With this connector option, you can read new or updated files only and apply transformations before loading transformed data into destination datasets of your choice.
+Azure Data Factory can get new or changed files only from Azure Data Lake Storage Gen2 by enabling **Enable change data capture** in the mapping data flow source transformation. With this connector option, you can read new or updated files only and apply transformations before loading transformed data into destination datasets of your choice.
Make sure you keep the pipeline and activity name unchanged, so that the checkpoint can always be recorded from the last run to get changes from there. If you change your pipeline name or activity name, the checkpoint will be reset, and you will start from the beginning in the next run.
-When you debug the pipeline, the **Enable change data capture (Preview)** works as well. Be aware that the checkpoint will be reset when you refresh your browser during the debug run. After you are satisfied with the result from debug run, you can publish and trigger the pipeline. It will always start from the beginning regardless of the previous checkpoint recorded by debug run.
+When you debug the pipeline, the **Enable change data capture** works as well. Be aware that the checkpoint will be reset when you refresh your browser during the debug run. After you are satisfied with the result from debug run, you can publish and trigger the pipeline. It will always start from the beginning regardless of the previous checkpoint recorded by debug run.
In the monitoring section, you always have the chance to rerun a pipeline. When you are doing so, the changes are always gotten from the checkpoint record in your selected pipeline run.
data-factory Connector Sftp https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/data-factory/connector-sftp.md
Previously updated : 12/13/2021 Last updated : 03/22/2022 # Copy data from and to the SFTP server using Azure Data Factory or Azure Synapse Analytics
This article outlines how to copy data from and to the secure FTP (SFTP) server.
The SFTP connector is supported for the following activities: - [Copy activity](copy-activity-overview.md) with [supported source/sink matrix](copy-activity-overview.md)
+- [Mapping data flow](concepts-data-flow-overview.md)
- [Lookup activity](control-flow-lookup-activity.md) - [GetMetadata activity](control-flow-get-metadata-activity.md) - [Delete activity](delete-activity.md)
This table describes the behavior that results from using a file list path in th
| | | | | root<br/>&nbsp;&nbsp;&nbsp;&nbsp;FolderA<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**File1.csv**<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File2.json<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subfolder1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**File3.csv**<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File4.json<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**File5.csv**<br/>&nbsp;&nbsp;&nbsp;&nbsp;Metadata<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileListToCopy.txt | File1.csv<br>Subfolder1/File3.csv<br>Subfolder1/File5.csv | **In the dataset:**<br>- Folder path: `root/FolderA`<br><br>**In the Copy activity source:**<br>- File list path: `root/Metadata/FileListToCopy.txt` <br><br>The file list path points to a text file in the same data store that includes a list of files you want to copy (one file per line, with the relative path to the path configured in the dataset). |
+## Mapping data flow properties
+
+When you're transforming data in mapping data flows, you can read and write files from SFTP in the following formats:
+
+- [Avro](format-avro.md#mapping-data-flow-properties)
+- [Delimited text](format-delimited-text.md#mapping-data-flow-properties)
+- [Excel](format-excel.md#mapping-data-flow-properties)
+- [JSON](format-json.md#mapping-data-flow-properties)
+- [ORC](format-orc.md#mapping-data-flow-properties)
+- [Parquet](format-parquet.md#mapping-data-flow-properties)
+- [XML](format-xml.md#mapping-data-flow-properties)
+
+Format specific settings are located in the documentation for that format. For more information, see [Source transformation in mapping data flow](data-flow-source.md) and [Sink transformation in mapping data flow](data-flow-sink.md).
+
+> [!Note]
+> SSH host key validation is not supported in mapping data flow now.
+
+> [!Note]
+> To access on premise SFTP sever, you need to use Azure Data Factory or Synapse workspace [Managed Virtual Network](managed-virtual-network-private-endpoint.md) using a private endpoint. Refer to this [tutorial](tutorial-managed-virtual-network-on-premise-sql-server.md) for detailed steps.
+
+### Source transformation
+
+The below table lists the properties supported by SFTP source. You can edit these properties in the **Source options** tab. When using inline dataset, you will see additional settings, which are the same as the properties described in [dataset properties](#dataset-properties) section.
+
+| Name | Description | Required | Allowed values | Data flow script property |
+| - | -- | -- | -- | - |
+| Wildcard path | Using a wildcard pattern will instruct ADF to loop through each matching folder and file in a single source transformation. This is an effective way to process multiple files within a single flow. | No | String[] | wildcardPaths |
+| Partition Root Path | If you have partitioned folders in your file source with a ```key=value``` format (for example, `year=2019`), then you can assign the top level of that partition folder tree to a column name in your data flow data stream. | No | String | partitionRootPath |
+| Allow no files found |If true, an error is not thrown if no files are found. | No | `true` or `false` | ignoreNoFilesFound |
+| List of files |This is a file set. Create a text file that includes a list of relative path files to process. Point to this text file. | No | `true` or `false` | fileList |
+| Column to store file name | Store the name of the source file in a column in your data. Enter a new column name here to store the file name string. | No | String | rowUrlColumn |
+| After completion | Choose to do nothing with the source file after the data flow runs, delete the source file, or move the source file. The paths for the move are relative. | No | Delete: `true` or `false` <br> Move: `['<from>', '<to>']` | purgeFiles<br/>moveFiles |
+| Filter by last modified | You can filter which files you process by specifying a date range of when they were last modified. All date-times are in UTC. | No | Timestamp | modifiedAfter<br/> modifiedBefore |
+
+#### SFTP source script example
+
+When you use SFTP dataset as source type, the associated data flow script is:
+
+```
+source(allowSchemaDrift: true,
+ validateSchema: false,
+ ignoreNoFilesFound: true,
+ purgeFiles: true,
+ fileList: true,
+ modifiedAfter: (toTimestamp(1647388800000L)),
+ modifiedBefore: (toTimestamp(1647561600000L)),
+ partitionRootPath: 'partdata',
+ wildcardPaths:['partdata/**/*.csv']) ~> SFTPSource
+```
+
+### Sink transformation
+
+The below table lists the properties supported by SFTP sink. You can edit these properties in the **Settings** tab. When using inline dataset, you will see additional settings, which are the same as the properties described in [dataset properties](#dataset-properties) section.
+
+| Name | Description | Required | Allowed values | Data flow script property |
+| - | -- | -- | -- | - |
+| Clear the folder |Determines whether or not the destination folder gets cleared before the data is written. | No | `true` or `false` | truncate |
+| File name option | The naming format of the data written. By default, one file per partition in format `part-#####-tid-<guid>`. | No | Pattern: String <br> Per partition: String[] <br> Name file as column data: String <br> Name folder as column data: String <br>Output to single file: `['<fileName>']` | filePattern <br> partitionFileNames <br> rowUrlColumn <br> rowFolderUrlColumn<br> partitionFileNames |
+| Quote all | Determines whether to enclose all values in quotes. | No | `true` or `false` | quoteAll |
+
+#### SFTP sink script example
+
+When you use SFTP dataset as sink type, the associated data flow script is:
+
+```
+IncomingStream sink(allowSchemaDrift: true,
+ validateSchema: false,
+ filePattern:'loans[n].csv',
+ truncate: true,
+ skipDuplicateMapInputs: true,
+ skipDuplicateMapOutputs: true) ~> SFTPSink
+```
+ ## Lookup activity properties For information about Lookup activity properties, see [Lookup activity](control-flow-lookup-activity.md).
data-factory Introduction https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/data-factory/introduction.md
In the world of big data, raw, unorganized data is often stored in relational, n
Big data requires a service that can orchestrate and operationalize processes to refine these enormous stores of raw data into actionable business insights. Azure Data Factory is a managed cloud service that's built for these complex hybrid extract-transform-load (ETL), extract-load-transform (ELT), and data integration projects.
+## Usage scenarios
+ For example, imagine a gaming company that collects petabytes of game logs that are produced by games in the cloud. The company wants to analyze these logs to gain insights into customer preferences, demographics, and usage behavior. It also wants to identify up-sell and cross-sell opportunities, develop compelling new features, drive business growth, and provide a better experience to its customers. To analyze these logs, the company needs to use reference data such as customer information, game information, and marketing campaign information that is in an on-premises data store. The company wants to utilize this data from the on-premises data store, combining it with additional log data that it has in a cloud data store.
Azure Data Factory is the platform that solves such data scenarios. It is the *c
Additionally, you can publish your transformed data to data stores such as Azure Synapse Analytics for business intelligence (BI) applications to consume. Ultimately, through Azure Data Factory, raw data can be organized into meaningful data stores and data lakes for better business decisions. - ## How does it work? Data Factory contains a series of interconnected systems that provide a complete end-to-end platform for data engineers.
-This visual guide provides a high-level overview of the Data Factory architecture:
+
+This visual guide provides a detailed overview of the complete Data Factory architecture:
:::image type="content" source="media\introduction\data-factory-visual-guide-small.png" alt-text="A detailed visual guide to the complete system architecture for Azure Data Factory, presented in a single high resolution image." lightbox="media\introduction\data-factory-visual-guide.png":::
-To see more detail, click the preceding image to zoom in, or browse to the [high resolution image](/azure/data-factory/media/introduction/data-factory-visual-guide.png).
+To see more detail, select the preceding image to zoom in, or browse to the [high resolution image](/azure/data-factory/media/introduction/data-factory-visual-guide.png).
### Connect and collect
After data is present in a centralized data store in the cloud, process or trans
If you prefer to code transformations by hand, ADF supports external activities for executing your transformations on compute services such as HDInsight Hadoop, Spark, Data Lake Analytics, and Machine Learning. ### CI/CD and publish
-[Data Factory offers full support for CI/CD](continuous-integration-delivery.md) of your data pipelines using Azure DevOps and GitHub. This allows you to incrementally develop and deliver your ETL processes before publishing the finished product. After the raw data has been refined into a business-ready consumable form, load the data into Azure Data Warehouse, Azure SQL Database, Azure CosmosDB, or whichever analytics engine your business users can point to from their business intelligence tools.
+[Data Factory offers full support for CI/CD](continuous-integration-delivery.md) of your data pipelines using Azure DevOps and GitHub. This allows you to incrementally develop and deliver your ETL processes before publishing the finished product. After the raw data has been refined into a business-ready consumable form, load the data into Azure Data Warehouse, Azure SQL Database, Azure Cosmos DB, or whichever analytics engine your business users can point to from their business intelligence tools.
### Monitor After you have successfully built and deployed your data integration pipeline, providing business value from refined data, monitor the scheduled activities and pipelines for success and failure rates. Azure Data Factory has built-in support for pipeline monitoring via Azure Monitor, API, PowerShell, Azure Monitor logs, and health panels on the Azure portal.
data-factory Quickstart Create Data Factory Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/data-factory/quickstart-create-data-factory-azure-cli.md
If you don't have an Azure subscription, create a [free account](https://azure.m
This quickstart uses an Azure Storage account, which includes a container with a file.
-1. To create a resource group named `ADFQuickStartRG`, use the [az group create](/cli/azure/group#az_group_create) command:
+1. To create a resource group named `ADFQuickStartRG`, use the [az group create](/cli/azure/group#az-group-create) command:
```azurecli az group create --name ADFQuickStartRG --location eastus ```
-1. Create a storage account by using the [az storage account create](/cli/azure/storage/container#az_storage_container_create) command:
+1. Create a storage account by using the [az storage account create](/cli/azure/storage/container#az-storage-container-create) command:
```azurecli az storage account create --resource-group ADFQuickStartRG \ --name adfquickstartstorage --location eastus ```
-1. Create a container named `adftutorial` by using the [az storage container create](/cli/azure/storage/container#az_storage_container_create) command:
+1. Create a container named `adftutorial` by using the [az storage container create](/cli/azure/storage/container#az-storage-container-create) command:
```azurecli az storage container create --resource-group ADFQuickStartRG --name adftutorial \
This quickstart uses an Azure Storage account, which includes a container with a
Use **Ctrl+D** to save your new file.
-1. To upload the new file to your Azure storage container, use the [az storage blob upload](/cli/azure/storage/blob#az_storage_blob_upload) command:
+1. To upload the new file to your Azure storage container, use the [az storage blob upload](/cli/azure/storage/blob#az-storage-blob-upload) command:
```azurecli az storage blob upload --account-name adfquickstartstorage --name input/emp.txt \
This quickstart uses an Azure Storage account, which includes a container with a
## Create a data factory
-To create an Azure data factory, run the [az datafactory create](/cli/azure/datafactory#az_datafactory_create) command:
+To create an Azure data factory, run the [az datafactory create](/cli/azure/datafactory#az-datafactory-create) command:
```azurecli az datafactory create --resource-group ADFQuickStartRG \
az datafactory create --resource-group ADFQuickStartRG \
> [!IMPORTANT] > Replace `ADFTutorialFactory` with a globally unique data factory name, for example, ADFTutorialFactorySP1127.
-You can see the data factory that you created by using the [az datafactory show](/cli/azure/datafactory#az_datafactory_factory_show) command:
+You can see the data factory that you created by using the [az datafactory show](/cli/azure/datafactory#az-datafactory-factory-show) command:
```azurecli az datafactory show --resource-group ADFQuickStartRG \
az datafactory show --resource-group ADFQuickStartRG \
Next, create a linked service and two datasets.
-1. Get the connection string for your storage account by using the [az storage account show-connection-string](/cli/azure/datafactory#az_datafactory_factory_show) command:
+1. Get the connection string for your storage account by using the [az storage account show-connection-string](/cli/azure/datafactory#az-datafactory-factory-show) command:
```azurecli az storage account show-connection-string --resource-group ADFQuickStartRG \
Next, create a linked service and two datasets.
} ```
-1. Create a linked service, named `AzureStorageLinkedService`, by using the [az datafactory linked-service create](/cli/azure/datafactory/linked-service#az_datafactory_linked_service_create) command:
+1. Create a linked service, named `AzureStorageLinkedService`, by using the [az datafactory linked-service create](/cli/azure/datafactory/linked-service#az-datafactory-linked-service-create) command:
```azurecli az datafactory linked-service create --resource-group ADFQuickStartRG \
Next, create a linked service and two datasets.
} ```
-1. Create an input dataset named `InputDataset` by using the [az datafactory dataset create](/cli/azure/datafactory/dataset#az_datafactory_dataset_create) command:
+1. Create an input dataset named `InputDataset` by using the [az datafactory dataset create](/cli/azure/datafactory/dataset#az-datafactory-dataset-create) command:
```azurecli az datafactory dataset create --resource-group ADFQuickStartRG \
Next, create a linked service and two datasets.
} ```
-1. Create an output dataset named `OutputDataset` by using the [az datafactory dataset create](/cli/azure/datafactory/dataset#az_datafactory_dataset_create) command:
+1. Create an output dataset named `OutputDataset` by using the [az datafactory dataset create](/cli/azure/datafactory/dataset#az-datafactory-dataset-create) command:
```azurecli az datafactory dataset create --resource-group ADFQuickStartRG \
Finally, create and run the pipeline.
} ```
-1. Create a pipeline named `Adfv2QuickStartPipeline` by using the [az datafactory pipeline create](/cli/azure/datafactory/pipeline#az_datafactory_pipeline_create) command:
+1. Create a pipeline named `Adfv2QuickStartPipeline` by using the [az datafactory pipeline create](/cli/azure/datafactory/pipeline#az-datafactory-pipeline-create) command:
```azurecli az datafactory pipeline create --resource-group ADFQuickStartRG \
Finally, create and run the pipeline.
--pipeline @Adfv2QuickStartPipeline.json ```
-1. Run the pipeline by using the [az datafactory pipeline create-run](/cli/azure/datafactory/pipeline#az_datafactory_pipeline_create_run) command:
+1. Run the pipeline by using the [az datafactory pipeline create-run](/cli/azure/datafactory/pipeline#az-datafactory-pipeline-create-run) command:
```azurecli az datafactory pipeline create-run --resource-group ADFQuickStartRG \
Finally, create and run the pipeline.
This command returns a run ID. Copy it for use in the next command.
-1. Verify that the pipeline run succeeded by using the [az datafactory pipeline-run show](/cli/azure/datafactory/pipeline-run#az_datafactory_pipeline_run_show) command:
+1. Verify that the pipeline run succeeded by using the [az datafactory pipeline-run show](/cli/azure/datafactory/pipeline-run#az-datafactory-pipeline-run-show) command:
```azurecli az datafactory pipeline-run show --resource-group ADFQuickStartRG \
You can also verify that your pipeline ran as expected by using the [Azure porta
## Clean up resources
-All of the resources in this quickstart are part of the same resource group. To remove them all, use the [az group delete](/cli/azure/group#az_group_delete) command:
+All of the resources in this quickstart are part of the same resource group. To remove them all, use the [az group delete](/cli/azure/group#az-group-delete) command:
```azurecli az group delete --name ADFQuickStartRG ```
-If you're using this resource group for anything else, instead, delete individual resources. For instance, to remove the linked service, use the [az datafactory linked-service delete](/cli/azure/datafactory/linked-service#az_datafactory_linked_service_delete) command.
+If you're using this resource group for anything else, instead, delete individual resources. For instance, to remove the linked service, use the [az datafactory linked-service delete](/cli/azure/datafactory/linked-service#az-datafactory-linked-service-delete) command.
In this quickstart, you created the following JSON files:
data-factory Solution Template Bulk Copy With Control Table https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/data-factory/solution-template-bulk-copy-with-control-table.md
Last updated 12/09/2020
To copy data from a data warehouse in Oracle Server, Netezza, Teradata, or SQL Server to Azure Synapse Analytics, you have to load huge amounts of data from multiple tables. Usually, the data has to be partitioned in each table so that you can load rows with multiple threads in parallel from a single table. This article describes a template to use in these scenarios.
- >!NOTE
- > If you want to copy data from a small number of tables with relatively small data volume to Azure Synapse Analytics, it's more efficient to use the [Azure Data Factory Copy Data tool](copy-data-tool.md). The template that's described in this article is more than you need for that scenario.
+>[!NOTE]
+> If you want to copy data from a small number of tables with relatively small data volume to Azure Synapse Analytics, it's more efficient to use the [Azure Data Factory Copy Data tool](copy-data-tool.md). The template that's described in this article is more than you need for that scenario.
## About this solution template
data-share Share Your Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/data-share/share-your-data.md
Start by preparing your environment for the Azure CLI:
Use these commands to create the resource:
-1. Use the [az account set](/cli/azure/account#az_account_set) command to set your subscription to be the current default subscription:
+1. Use the [az account set](/cli/azure/account#az-account-set) command to set your subscription to be the current default subscription:
```azurecli az account set --subscription 00000000-0000-0000-0000-000000000000 ```
-1. Run the [az provider register](/cli/azure/provider#az_provider_register) command to register the resource provider:
+1. Run the [az provider register](/cli/azure/provider#az-provider-register) command to register the resource provider:
```azurecli az provider register --name "Microsoft.DataShare" ```
-1. Run the [az group create](/cli/azure/group#az_group_create) command to create a resource group or use an existing resource group:
+1. Run the [az group create](/cli/azure/group#az-group-create) command to create a resource group or use an existing resource group:
```azurecli az group create --name testresourcegroup --location "East US 2" ```
-1. Run the [az datashare account create](/cli/azure/datashare/account#az_datashare_account_create) command to create a Data Share account:
+1. Run the [az datashare account create](/cli/azure/datashare/account#az-datashare-account-create) command to create a Data Share account:
```azurecli az datashare account create --resource-group testresourcegroup --name datashareaccount --location "East US 2" ```
- Run the [az datashare account list](/cli/azure/datashare/account#az_datashare_account_list) command to see your Data Share accounts:
+ Run the [az datashare account list](/cli/azure/datashare/account#az-datashare-account-list) command to see your Data Share accounts:
```azurecli az datashare account list --resource-group testresourcegroup
Use these commands to create the resource:
### [Azure CLI](#tab/azure-cli)
-1. Run the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command to create a Storage account for this Data Share:
+1. Run the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command to create a Storage account for this Data Share:
```azurecli az storage account create --resource-group testresourcegroup --name ContosoMarketplaceAccount ```
-1. Use the [az storage container create](/cli/azure/storage/container#az_storage_container_create) command to create a container inside the storage account created in the previous command:
+1. Use the [az storage container create](/cli/azure/storage/container#az-storage-container-create) command to create a container inside the storage account created in the previous command:
```azurecli az storage container create --name ContosoMarketplaceContainer --account-name ContosoMarketplaceAccount ```
-1. Run the [az datashare create](/cli/azure/datashare#az_datashare_create) command to create your Data Share:
+1. Run the [az datashare create](/cli/azure/datashare#az-datashare-create) command to create your Data Share:
```azurecli az datashare create --resource-group testresourcegroup \
Use these commands to create the resource:
--description "Data Share" --share-kind "CopyBased" --terms "Confidential" ```
-1. Use the [az datashare invitation create](/cli/azure/datashare/invitation#az_datashare_invitation_create) command to create the invitation for the specified address:
+1. Use the [az datashare invitation create](/cli/azure/datashare/invitation#az-datashare-invitation-create) command to create the invitation for the specified address:
```azurecli az datashare invitation create --resource-group testresourcegroup \
data-share Subscribe To Data Share https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/data-share/subscribe-to-data-share.md
Start by preparing your environment for the Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../includes/azure-cli-prepare-your-environment-no-header.md)]
-Run the [az datashare consumer invitation list](/cli/azure/datashare/consumer/invitation#az_datashare_consumer_invitation_list) command to see your current invitations:
+Run the [az datashare consumer invitation list](/cli/azure/datashare/consumer/invitation#az-datashare-consumer-invitation-list) command to see your current invitations:
```azurecli az datashare consumer invitation list --subscription 11111111-1111-1111-1111-111111111111
Copy your invitation ID for use in the next section.
### [Azure CLI](#tab/azure-cli)
-Use the [az datashare consumer share-subscription create](/cli/azure/datashare/consumer/share-subscription#az_datashare_consumer_share_subscription_create) command to create the Data Share.
+Use the [az datashare consumer share-subscription create](/cli/azure/datashare/consumer/share-subscription#az-datashare-consumer-share-subscription-create) command to create the Data Share.
```azurecli az datashare consumer share-subscription create --resource-group share-rg \
Follow the steps below to configure where you want to receive data.
Use these commands to configure where you want to receive data.
-1. Run the [az datashare consumer share-subscription list-source-dataset](/cli/azure/datashare/consumer/share-subscription#az_datashare_consumer_share_subscription_list_source_dataset) command to get the data set ID:
+1. Run the [az datashare consumer share-subscription list-source-dataset](/cli/azure/datashare/consumer/share-subscription#az-datashare-consumer-share-subscription-list-source-dataset) command to get the data set ID:
```azurecli az datashare consumer share-subscription list-source-dataset \
Use these commands to configure where you want to receive data.
--subscription 11111111-1111-1111-1111-111111111111 --query "[0].dataSetId" ```
-1. Run the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command to create a storage account for this Data Share:
+1. Run the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command to create a storage account for this Data Share:
```azurecli az storage account create --resource-group "share-rg" --name "FabrikamDataShareAccount" \ --subscription 11111111-1111-1111-1111-111111111111 ```
-1. Use the [az storage account show](/cli/azure/storage/account#az_storage_account_show) command to get the storage account ID:
+1. Use the [az storage account show](/cli/azure/storage/account#az-storage-account-show) command to get the storage account ID:
```azurecli az storage account show --resource-group "share-rg" --name "FabrikamDataShareAccount" \
Use these commands to configure where you want to receive data.
--subscription 11111111-1111-1111-1111-111111111111 --query "identity.principalId" ```
-1. Use the [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) command to create a role assignment for the account principal:
+1. Use the [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command to create a role assignment for the account principal:
```azurecli az role assignment create --role "01234567-89ab-cdef-0123-456789abcdef" \
Use these commands to configure where you want to receive data.
\"storage_account_name\":\"datashareconsumersa\",\"kind\":\"BlobFolder\",\"prefix\":\"consumer\"}' ```
-1. Use the [az datashare consumer dataset-mapping create](/cli/azure/datashare/consumer/dataset-mapping#az_datashare_consumer_dataset_mapping_create) command to create the dataset mapping:
+1. Use the [az datashare consumer dataset-mapping create](/cli/azure/datashare/consumer/dataset-mapping#az-datashare-consumer-dataset-mapping-create) command to create the dataset mapping:
```azurecli az datashare consumer dataset-mapping create --resource-group "share-rg" \
Use these commands to configure where you want to receive data.
--subscription 11111111-1111-1111-1111-111111111111 ```
-1. Run the [az datashare consumer share-subscription synchronization start](/cli/azure/datashare/consumer/share-subscription/synchronization#az_datashare_consumer_share_subscription_synchronization_start) command to start dataset synchronization.
+1. Run the [az datashare consumer share-subscription synchronization start](/cli/azure/datashare/consumer/share-subscription/synchronization#az-datashare-consumer-share-subscription-synchronization-start) command to start dataset synchronization.
```azurecli az datashare consumer share-subscription synchronization start \
Use these commands to configure where you want to receive data.
--subscription 11111111-1111-1111-1111-111111111111 ```
- Run the [az datashare consumer share-subscription synchronization list](/cli/azure/datashare/consumer/share-subscription/synchronization#az_datashare_consumer_share_subscription_synchronization_list) command to see a list of your synchronizations:
+ Run the [az datashare consumer share-subscription synchronization list](/cli/azure/datashare/consumer/share-subscription/synchronization#az-datashare-consumer-share-subscription-synchronization-list) command to see a list of your synchronizations:
```azurecli az datashare consumer share-subscription synchronization list \
Use these commands to configure where you want to receive data.
--subscription 11111111-1111-1111-1111-111111111111 ```
- Use the [az datashare consumer share-subscription list-source-share-synchronization-setting](/cli/azure/datashare/consumer/share-subscription#az_datashare_consumer_share_subscription_list_source_share_synchronization_setting) command to see synchronization settings set on your share.
+ Use the [az datashare consumer share-subscription list-source-share-synchronization-setting](/cli/azure/datashare/consumer/share-subscription#az-datashare-consumer-share-subscription-list-source-share-synchronization-setting) command to see synchronization settings set on your share.
```azurecli az datashare consumer share-subscription list-source-share-synchronization-setting \
These steps only apply to snapshot-based sharing.
### [Azure CLI](#tab/azure-cli)
-Run the [az datashare consumer trigger create](/cli/azure/datashare/consumer/trigger#az_datashare_consumer_trigger_create) command to trigger a snapshot:
+Run the [az datashare consumer trigger create](/cli/azure/datashare/consumer/trigger#az-datashare-consumer-trigger-create) command to trigger a snapshot:
```azurecli az datashare consumer trigger create --resource-group "share-rg" \
databox-gateway Data Box Gateway System Requirements https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox-gateway/data-box-gateway-system-requirements.md
Previously updated : 04/26/2021 Last updated : 03/24/2022 # Azure Data Box Gateway system requirements
databox-online Azure Stack Edge Gpu 2203 Release Notes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox-online/azure-stack-edge-gpu-2203-release-notes.md
+
+ Title: Azure Stack Edge 2203 release notes
+description: Describes critical open issues and resolutions for the Azure Stack Edge running 2203 release.
++
+
+++ Last updated : 03/23/2022+++
+# Azure Stack Edge 2203 release notes
++
+The following release notes identify the critical open issues and the resolved issues for the 2203 release for your Azure Stack Edge devices. These release notes are applicable for Azure Stack Edge Pro GPU, Azure Stack Edge Pro R, and Azure Stack Edge Mini R devices. Features and issues that correspond to a specific model are called out wherever applicable.
+
+The release notes are continuously updated, and as critical issues requiring a workaround are discovered, they are added. Before you deploy your device, carefully review the information contained in the release notes.
+
+This article applies to the **Azure Stack Edge 2203** release, which maps to software version number **2.2.1902.4561**. This software can be applied to your device if you are running at least Azure Stack Edge 2106 (2.2.1636.3457) software.
+
+## What's new
+
+The 2203 release has the following features and enhancements:
+
+- **Kubernetes version update** - This release contains a Kubernetes version update from 1.20.9 to 1.21.7.
+- **VM improvements** - A new VM size F12_HPN was added in this release.
+++
+## Known issues in 2203 release
+
+The following table provides a summary of known issues in this release.
+
+| No. | Feature | Issue | Workaround/comments |
+| | | | |
+|**1.**|Preview features |For this release, the following features are available in preview: <br> - Clustering and Multi-Access Edge Computing (MEC) for Azure Stack Edge Pro GPU devices only. <br> - VPN for Azure Stack Edge Pro R and Azure Stack Edge Mini R only. <br> - Local Azure Resource Manager, VMs, Cloud management of VMs, Kubernetes cloud management, and Multi-process service (MPS) for Azure Stack Edge Pro GPU, Azure Stack Edge Pro R, and Azure Stack Edge Mini R. |These features will be generally available in later releases. |
++
+## Known issues from previous releases
+
+The following table provides a summary of known issues carried over from the previous releases.
+
+| No. | Feature | Issue | Workaround/comments |
+| | | | |
+| **1.** |Azure Stack Edge Pro + Azure SQL | Creating SQL database requires Administrator access. |Do the following steps instead of Steps 1-2 in [Create-the-sql-database](../iot-edge/tutorial-store-data-sql-server.md#create-the-sql-database). <br> - In the local UI of your device, enable compute interface. Select **Compute > Port # > Enable for compute > Apply.**<br> - Download `sqlcmd` on your client machine from [SQL command utility](/sql/tools/sqlcmd-utility). <br> - Connect to your compute interface IP address (the port that was enabled), adding a ",1401" to the end of the address.<br> - Final command will look like this: sqlcmd -S {Interface IP},1401 -U SA -P "Strong!Passw0rd". After this, steps 3-4 from the current documentation should be identical. |
+| **2.** |Refresh| Incremental changes to blobs restored via **Refresh** are NOT supported |For Blob endpoints, partial updates of blobs after a Refresh, may result in the updates not getting uploaded to the cloud. For example, sequence of actions such as:<br> 1. Create blob in cloud. Or delete a previously uploaded blob from the device.<br> 2. Refresh blob from the cloud into the appliance using the refresh functionality.<br> 3. Update only a portion of the blob using Azure SDK REST APIs. These actions can result in the updated sections of the blob to not get updated in the cloud. <br>**Workaround**: Use tools such as robocopy, or regular file copy through Explorer or command line, to replace entire blobs.|
+|**3.**|Throttling|During throttling, if new writes to the device aren't allowed, writes by the NFS client fail with a "Permission Denied" error.| The error will show as below:<br>`hcsuser@ubuntu-vm:~/nfstest$ mkdir test`<br>mkdir: cannot create directory 'test': Permission deniedΓÇï|
+|**4.**|Blob Storage ingestion|When using AzCopy version 10 for Blob storage ingestion, run AzCopy with the following argument: `Azcopy <other arguments> --cap-mbps 2000`| If these limits aren't provided for AzCopy, it could potentially send a large number of requests to the device, resulting in issues with the service.|
+|**5.**|Tiered storage accounts|The following apply when using tiered storage accounts:<br> - Only block blobs are supported. Page blobs are not supported.<br> - There is no snapshot or copy API support.<br> - Hadoop workload ingestion through `distcp` is not supported as it uses the copy operation heavily.||
+|**6.**|NFS share connection|If multiple processes are copying to the same share, and the `nolock` attribute isn't used, you may see errors during the copy.ΓÇï|The `nolock` attribute must be passed to the mount command to copy files to the NFS share. For example: `C:\Users\aseuser mount -o anon \\10.1.1.211\mnt\vms Z:`.|
+|**7.**|Kubernetes cluster|When applying an update on your device that is running a Kubernetes cluster, the Kubernetes virtual machines will restart and reboot. In this instance, only pods that are deployed with replicas specified are automatically restored after an update. |If you have created individual pods outside a replication controller without specifying a replica set, these pods won't be restored automatically after the device update. You will need to restore these pods.<br>A replica set replaces pods that are deleted or terminated for any reason, such as node failure or disruptive node upgrade. For this reason, we recommend that you use a replica set even if your application requires only a single pod.|
+|**8.**|Kubernetes cluster|Kubernetes on Azure Stack Edge Pro is supported only with Helm v3 or later. For more information, go to [Frequently asked questions: Removal of Tiller](https://v3.helm.sh/docs/faq/).|
+|**9.**|Kubernetes |Port 31000 is reserved for Kubernetes Dashboard. Port 31001 is reserved for Edge container registry. Similarly, in the default configuration, the IP addresses 172.28.0.1 and 172.28.0.10, are reserved for Kubernetes service and Core DNS service respectively.|Do not use reserved IPs.|
+|**10.**|Kubernetes |Kubernetes does not currently allow multi-protocol LoadBalancer services. For example, a DNS service that would have to listen on both TCP and UDP. |To work around this limitation of Kubernetes with MetalLB, two services (one for TCP, one for UDP) can be created on the same pod selector. These services use the same sharing key and spec.loadBalancerIP to share the same IP address. IPs can also be shared if you have more services than available IP addresses. <br> For more information, see [IP address sharing](https://metallb.universe.tf/usage/#ip-address-sharing).|
+|**11.**|Kubernetes cluster|Existing Azure IoT Edge marketplace modules may require modifications to run on IoT Edge on Azure Stack Edge device.|For more information, see [Run existing IoT Edge modules from Azure Stack Edge Pro FPGA devices on Azure Stack Edge Pro GPU device](azure-stack-edge-gpu-modify-fpga-modules-gpu.md).|
+|**12.**|Kubernetes |File-based bind mounts aren't supported with Azure IoT Edge on Kubernetes on Azure Stack Edge device.|IoT Edge uses a translation layer to translate `ContainerCreate` options to Kubernetes constructs. Creating `Binds` maps to `hostpath` directory and thus file-based bind mounts cannot be bound to paths in IoT Edge containers. If possible, map the parent directory.|
+|**13.**|Kubernetes |If you bring your own certificates for IoT Edge and add those certificates on your Azure Stack Edge device after the compute is configured on the device, the new certificates are not picked up.|To work around this problem, you should upload the certificates before you configure compute on the device. If the compute is already configured, [Connect to the PowerShell interface of the device and run IoT Edge commands](azure-stack-edge-gpu-connect-powershell-interface.md#use-iotedge-commands). Restart `iotedged` and `edgehub` pods.|
+|**14.**|Certificates |In certain instances, certificate state in the local UI may take several seconds to update. |The following scenarios in the local UI may be affected. <br> - **Status** column in **Certificates** page. <br> - **Security** tile in **Get started** page. <br> - **Configuration** tile in **Overview** page.</li></ul> |
+|**15.**|Certificates|Alerts related to signing chain certificates aren't removed from the portal even after uploading new signing chain certificates.| |
+|**16.**|Web proxy |NTLM authentication-based web proxy is not supported. ||
+|**17.**|Internet Explorer|If enhanced security features are enabled, you may not be able to access local web UI pages. | Disable enhanced security, and restart your browser.|
+|**18.**|Kubernetes |Kubernetes doesn't support ":" in environment variable names that are used by .NET applications. This is also required for Event Grid IoT Edge module to function on Azure Stack Edge device and other applications. For more information, see [ASP.NET core documentation](/aspnet/core/fundamentals/configuration/?tabs=basicconfiguration#environment-variables).|Replace ":" by double underscore. For more information,see [Kubernetes issue](https://github.com/kubernetes/kubernetes/issues/53201)|
+|**19.** |Azure Arc + Kubernetes cluster |By default, when resource `yamls` are deleted from the Git repository, the corresponding resources are not deleted from the Kubernetes cluster. |To allow the deletion of resources when they're deleted from the git repository, set `--sync-garbage-collection` in Arc OperatorParams. For more information, see [Delete a configuration](../azure-arc/kubernetes/tutorial-use-gitops-connected-cluster.md#additional-parameters). |
+|**20.**|NFS |Applications that use NFS share mounts on your device to write data should use Exclusive write. That ensures the writes are written to the disk.| |
+|**21.**|Compute configuration |Compute configuration fails in network configurations where gateways or switches or routers respond to Address Resolution Protocol (ARP) requests for systems that do not exist on the network.| |
+|**22.**|Compute and Kubernetes |If Kubernetes is set up first on your device, it claims all the available GPUs. Hence, it is not possible to create Azure Resource Manager VMs using GPUs after setting up the Kubernetes. |If your device has 2 GPUs, then you can create 1 VM that uses the GPU and then configure Kubernetes. In this case, Kubernetes will use the remaining available 1 GPU. |
+|**23.**|Custom script VM extension |There is a known issue in the Windows VMs that were created in an earlier release and the device was updated to 2103. <br> If you add a custom script extension on these VMs, the Windows VM Guest Agent (Version 2.7.41491.901 only) gets stuck in the update causing the extension deployment to time out. | To work around this issue: <br> - Connect to the Windows VM using remote desktop protocol (RDP). <br> - Make sure that the `waappagent.exe` is running on the machine: `Get-Process WaAppAgent`. <br> - If the `waappagent.exe` is not running, restart the `rdagent` service: `Get-Service RdAgent` \| `Restart-Service`. Wait for 5 minutes.<br> - While the `waappagent.exe` is running, kill the `WindowsAzureGuest.exe` process. <br> - After you kill the process, the process starts running again with the newer version. <br> - Verify that the Windows VM Guest Agent version is 2.7.41491.971 using this command: `Get-Process WindowsAzureGuestAgent` \| `fl ProductVersion`.<br> - [Set up custom script extension on Windows VM](azure-stack-edge-gpu-deploy-virtual-machine-custom-script-extension.md). |
+|**24.**|GPU VMs |Prior to this release, GPU VM lifecycle was not managed in the update flow. Hence, when updating to 2103 release, GPU VMs are not stopped automatically during the update. You will need to manually stop the GPU VMs using a `stop-stayProvisioned` flag before you update your device. For more information, see [Suspend or shut down the VM](azure-stack-edge-gpu-deploy-virtual-machine-powershell.md#suspend-or-shut-down-the-vm).<br> All the GPU VMs that are kept running before the update, are started after the update. In these instances, the workloads running on the VMs aren't terminated gracefully. And the VMs could potentially end up in an undesirable state after the update. <br>All the GPU VMs that are stopped via the `stop-stayProvisioned` before the update, are automatically started after the update. <br>If you stop the GPU VMs via the Azure portal, you'll need to manually start the VM after the device update.| If running GPU VMs with Kubernetes, stop the GPU VMs right before the update. <br>When the GPU VMs are stopped, Kubernetes will take over the GPUs that were used originally by VMs. <br>The longer the GPU VMs are in stopped state, higher the chances that Kubernetes will take over the GPUs. |
+|**25.**|Multi-Process Service (MPS) |When the device software and the Kubernetes cluster are updated, the MPS setting is not retained for the workloads. |[Re-enable MPS](azure-stack-edge-gpu-connect-powershell-interface.md#connect-to-the-powershell-interface) and redeploy the workloads that were using MPS. |
+|**26.**|Wi-Fi |Wi-Fi does not work on Azure Stack Edge Pro 2 in this release. | This functionality may be available in a future release. |
++
+## Next steps
+
+- [Update your device](azure-stack-edge-gpu-install-update.md)
databox-online Azure Stack Edge Gpu Deploy Virtual Machine Cli Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox-online/azure-stack-edge-gpu-deploy-virtual-machine-cli-python.md
Before you begin creating and managing a VM on your Azure Stack Edge Pro device
<!--1. Verify the API profile of the client and identify which version of the modules and libraries to include on your client. In this example, the client system will be running Azure Stack 1904 or later. For more information, see [Azure Resource Manager API profiles](/azure-stack/user/azure-stack-version-profiles?view=azs-1908&preserve-view=true#azure-resource-manager-api-profiles).-->
-1. Install Azure CLI on your client. In this example, Azure CLI 2.0.80 was installed. To verify the version of Azure CLI, run the [az --version](/cli/azure/reference-index#az_version) command.
+1. Install Azure CLI on your client. In this example, Azure CLI 2.0.80 was installed. To verify the version of Azure CLI, run the [az --version](/cli/azure/reference-index#az-version) command.
The following is sample output from the above command:
Before you begin creating and managing a VM on your Azure Stack Edge Pro device
### Connect to Azure Stack Edge Pro
-1. Register your Azure Stack Edge Pro environment by running the [az cloud register](/cli/azure/cloud#az_cloud_register) command.
+1. Register your Azure Stack Edge Pro environment by running the [az cloud register](/cli/azure/cloud#az-cloud-register) command.
In some scenarios, direct outbound internet connectivity is routed through a proxy or firewall, which enforces SSL interception. In these cases, the `az cloud register` command can fail with an error such as \"Unable to get endpoints from the cloud.\" To work around this error, set the following environment variables in Windows PowerShell:
Before you begin creating and managing a VM on your Azure Stack Edge Pro device
$ENV:PRIVATE_IP_ADDRESS = "5.5.174.126" ```
-3. Register your environment. Use the following parameters when running [az cloud register](/cli/azure/cloud#az_cloud_register):
+3. Register your environment. Use the following parameters when running [az cloud register](/cli/azure/cloud#az-cloud-register):
| Value | Description | Example | | | | |
Before you begin creating and managing a VM on your Azure Stack Edge Pro device
PS C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2> ```
-4. Sign in to your Azure Stack Edge Pro environment by using the [az login](/cli/azure/reference-index#az_login) command. You can sign in to the Azure Stack Edge Pro environment either as a user or as a [service principal](../active-directory/develop/app-objects-and-service-principals.md).
+4. Sign in to your Azure Stack Edge Pro environment by using the [az login](/cli/azure/reference-index#az-login) command. You can sign in to the Azure Stack Edge Pro environment either as a user or as a [service principal](../active-directory/develop/app-objects-and-service-principals.md).
Follow these steps to sign in as a *user*:
databox-online Azure Stack Edge Gpu Install Update https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox-online/azure-stack-edge-gpu-install-update.md
Previously updated : 02/15/2022 Last updated : 03/23/2022 # Update your Azure Stack Edge Pro GPU
The procedure described in this article was performed using a different version
## About latest update
-The current update is Update 2202. This update installs two updates, the device update followed by Kubernetes updates. The associated versions for this update are:
+The current update is Update 2203. This update installs two updates, the device update followed by Kubernetes updates. The associated versions for this update are:
-- Device software version - **2.2.1868.4470**-- Kubernetes server version - **v1.20.9**
+- Device software version - **2.2.1902.4561**
+- Kubernetes server version - **v1.21.7**
- IoT Edge version: **0.1.0-beta15** - Azure Arc version: **1.5.3** - GPU driver version: **470.57.02** - CUDA version: **11.4**
-For information on what's new in this update, go to [Release notes](azure-stack-edge-gpu-2202-release-notes.md).
+For information on what's new in this update, go to [Release notes](azure-stack-edge-gpu-2203-release-notes.md).
-**To apply 2202 update, your device must be running 2106 or later.**
+**To apply 2203 update, your device must be running 2106 or later.**
- If you are not running the minimal supported version, you'll see this error: *Update package cannot be installed as its dependencies are not met*. -- You can update to 2106 from an older version and then install 2202.
+- You can update to 2106 from an older version and then install 2203.
### Updates for a single-node vs two-node
Depending on the software version that you are running, install process may diff
![Software version after update 10](./media/azure-stack-edge-gpu-install-update/portal-update-9.png)
-6. As this is a 1-node device, the device restarts after the updates are installed. The critical alert during the restart indicates that the device heartbeat is lost.
+6. For a 1-node device, the device restarts after the updates are installed. The critical alert during the restart indicates that the device heartbeat is lost.
![Software version after update 11](./media/azure-stack-edge-gpu-install-update/portal-update-10.png)
Depending on the software version that you are running, install process may diff
Go to the local web UI and then go to **Software update** page. Verify that the Kubernetes update has successfully installed and the software version reflects that.
- ![Software version after update 17](./media/azure-stack-edge-gpu-install-update/portal-update-16-mod.png)
+ ![Software version after update 17](./media/azure-stack-edge-gpu-install-update/portal-update-16-m.png)
Once the device software and Kubernetes updates are successfully installed, the banner notification disappears.
Do the following steps to download the update from the Microsoft Update Catalog.
2. In the search box of the Microsoft Update Catalog, enter the Knowledge Base (KB) number of the hotfix or terms for the update you want to download. For example, enter **Azure Stack Edge**, and then click **Search**.
- The update listing appears as **Azure Stack Edge Update 2202**.
+ The update listing appears as **Azure Stack Edge Update 2203**.
<!--![Search catalog 2](./media/azure-stack-edge-gpu-install-update/download-update-2-b.png)-->
This procedure takes around 20 minutes to complete. Perform the following steps
5. The update starts. After the device is successfully updated, it restarts. The local UI is not accessible in this duration.
-6. After the restart is complete, you are taken to the **Sign in** page. To verify that the device software has been updated, in the local web UI, go to **Maintenance** > **Software update**. For the current release, the displayed software version should be **Azure Stack Edge 2202**.
+6. After the restart is complete, you are taken to the **Sign in** page. To verify that the device software has been updated, in the local web UI, go to **Maintenance** > **Software update**. For the current release, the displayed software version should be **Azure Stack Edge 2203**.
7. You will now update the Kubernetes software version. Select the remaining two Kubernetes files together (file with the *Kubernetes_Package.0.exe* and *Kubernetes_Package.1.exe* suffix) and repeat the above steps to apply update.
This procedure takes around 20 minutes to complete. Perform the following steps
10. After the Kubernetes update is successfully installed, there is no change to the displayed software in **Maintenance** > **Software update**.
- ![update device 6](./media/azure-stack-edge-gpu-install-update/portal-update-16-mod.png)
+ ![update device 6](./media/azure-stack-edge-gpu-install-update/portal-update-16-m.png)
## Next steps
databox-online Azure Stack Edge Gpu System Requirements https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox-online/azure-stack-edge-gpu-system-requirements.md
Previously updated : 09/08/2021 Last updated : 03/24/2022
databox-online Azure Stack Edge Mini R Deploy Prep https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox-online/azure-stack-edge-mini-r-deploy-prep.md
If necessary, prepare your environment for Azure CLI.
To create an Azure Stack Edge resource, run the following commands in Azure CLI.
-1. Create a resource group by using the [az group create](/cli/azure/group#az_group_create) command, or use an existing resource group:
+1. Create a resource group by using the [az group create](/cli/azure/group#az-group-create) command, or use an existing resource group:
```azurecli az group create --name myasepgpu1 --location eastus ```
-1. To create a device, use the [az databoxedge device create](/cli/azure/databoxedge/device#az_databoxedge_device_create) command:
+1. To create a device, use the [az databoxedge device create](/cli/azure/databoxedge/device#az-databoxedge-device-create) command:
```azurecli az databoxedge device create --resource-group myasepgpu1 \
To create an Azure Stack Edge resource, run the following commands in Azure CLI.
For a list of all the regions where the Azure Stack Edge resource is available, see [Azure products available by region](https://azure.microsoft.com/global-infrastructure/services/?products=databox&regions=all). If using Azure Government, all the government regions are available as shown in the [Azure regions](https://azure.microsoft.com/global-infrastructure/regions/).
-1. To create an order, run the [az databoxedge order create](/cli/azure/databoxedge/order#az_databoxedge_order_create) command:
+1. To create an order, run the [az databoxedge order create](/cli/azure/databoxedge/order#az-databoxedge-order-create) command:
```azurecli az databoxedge order create --resource-group myasepgpu1 \
To create an Azure Stack Edge resource, run the following commands in Azure CLI.
--contact-person "Gus Poland" --email-list gus@contoso.com --phone 4085555555 ```
-The resource creation takes a few minutes. Run the [az databoxedge order show](/cli/azure/databoxedge/order#az_databoxedge_order_show) command to see the order:
+The resource creation takes a few minutes. Run the [az databoxedge order show](/cli/azure/databoxedge/order#az-databoxedge-order-show) command to see the order:
```azurecli az databoxedge order show --resource-group myasepgpu1 --device-name myasegpu1
databox-online Azure Stack Edge Pro R Deploy Prep https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox-online/azure-stack-edge-pro-r-deploy-prep.md
If necessary, prepare your environment for Azure CLI.
To create an Azure Stack Edge resource, run the following commands in Azure CLI.
-1. Create a resource group by using the [az group create](/cli/azure/group#az_group_create) command, or use an existing resource group:
+1. Create a resource group by using the [az group create](/cli/azure/group#az-group-create) command, or use an existing resource group:
```azurecli az group create --name myasepgpu1 --location eastus ```
-1. To create a device, use the [az databoxedge device create](/cli/azure/databoxedge/device#az_databoxedge_device_create) command:
+1. To create a device, use the [az databoxedge device create](/cli/azure/databoxedge/device#az-databoxedge-device-create) command:
```azurecli az databoxedge device create --resource-group myasepgpu1 \
To create an Azure Stack Edge resource, run the following commands in Azure CLI.
For a list of all the regions where the Azure Stack Edge resource is available, see [Azure products available by region](https://azure.microsoft.com/global-infrastructure/services/?products=databox&regions=all). If using Azure Government, all the government regions are available as shown in the [Azure regions](https://azure.microsoft.com/global-infrastructure/regions/).
-1. To create an order, run the [az databoxedge order create](/cli/azure/databoxedge/order#az_databoxedge_order_create) command:
+1. To create an order, run the [az databoxedge order create](/cli/azure/databoxedge/order#az-databoxedge-order-create) command:
```azurecli az databoxedge order create --resource-group myasepgpu1 \
To create an Azure Stack Edge resource, run the following commands in Azure CLI.
--contact-person "Gus Poland" --email-list gus@contoso.com --phone 4085555555 ```
-The resource creation takes a few minutes. Run the [az databoxedge order show](/cli/azure/databoxedge/order#az_databoxedge_order_show) command to see the order:
+The resource creation takes a few minutes. Run the [az databoxedge order show](/cli/azure/databoxedge/order#az-databoxedge-order-show) command to see the order:
```azurecli az databoxedge order show --resource-group myasepgpu1 --device-name myasegpu1
databox Data Box Customer Managed Encryption Key Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox/data-box-customer-managed-encryption-key-portal.md
To enable a customer-managed key for your existing Data Box order in the Azure p
![Customer-managed key URL](./media/data-box-customer-managed-encryption-key-portal/customer-managed-key-11.png) > [!IMPORTANT]
-> You must enable the `Get`, `UnwrapKey`, and `WrapKey` permissions on the key. To set the permissions in Azure CLI, see [az keyvault set-policy](/cli/azure/keyvault#az_keyvault_set_policy).
+> You must enable the `Get`, `UnwrapKey`, and `WrapKey` permissions on the key. To set the permissions in Azure CLI, see [az keyvault set-policy](/cli/azure/keyvault#az-keyvault-set-policy).
## Change key
To change the key vault, key, and/or key version for the customer-managed key yo
![Save updated encryption settings - 1](./media/data-box-customer-managed-encryption-key-portal/customer-managed-key-17-a.png) > [!IMPORTANT]
-> You must enable the `Get`, `UnwrapKey`, and `WrapKey` permissions on the key. To set the permissions in Azure CLI, see [az keyvault set-policy](/cli/azure/keyvault#az_keyvault_set_policy).
+> You must enable the `Get`, `UnwrapKey`, and `WrapKey` permissions on the key. To set the permissions in Azure CLI, see [az keyvault set-policy](/cli/azure/keyvault#az-keyvault-set-policy).
## Change identity
databox Data Box Deploy Ordered https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox/data-box-deploy-ordered.md
Before you begin, make sure that:
**Sign in to Azure**
-Open up a Windows PowerShell command window and sign in to Azure with the [az login](/cli/azure/reference-index#az_login) command:
+Open up a Windows PowerShell command window and sign in to Azure with the [az login](/cli/azure/reference-index#az-login) command:
```azurecli PS C:\Windows> az login
Do the following steps using Azure CLI to order a device:
|query| The JMESPath query string. For more information, see [JMESPath](http://jmespath.org/). | --query &lt;string&gt;| |verbose| Include verbose logging. | --verbose |
-2. In your command-prompt of choice or terminal, run [az data box job create](/cli/azure/databox/job#az_databox_job_create) to create your Azure Data Box order.
+2. In your command-prompt of choice or terminal, run [az data box job create](/cli/azure/databox/job#az-databox-job-create) to create your Azure Data Box order.
```azurecli az databox job create --resource-group <resource-group> --name <order-name> --location <azure-location> --sku <databox-device-type> --contact-name <contact-name> --phone <phone-number> --email-list <email-list> --street-address1 <street-address-1> --street-address2 <street-address-2> --city "contact-city" --state-or-province <state-province> --country <country> --postal-code <postal-code> --company-name <company-name> --storage-account "storage-account"
Microsoft then prepares and dispatches your device via a regional carrier. You r
### Track a single order
-To get tracking information about a single, existing Azure Data Box order, run [`az databox job show`](/cli/azure/databox/job#az_databox_job_show). The command displays information about the order such as, but not limited to: name, resource group, tracking information, subscription ID, contact information, shipment type, and device sku.
+To get tracking information about a single, existing Azure Data Box order, run [`az databox job show`](/cli/azure/databox/job#az-databox-job-show). The command displays information about the order such as, but not limited to: name, resource group, tracking information, subscription ID, contact information, shipment type, and device sku.
```azurecli az databox job show --resource-group <resource-group> --name <order-name>
To get tracking information about a single, existing Azure Data Box order, run [
### List all orders
-If you have ordered multiple devices, you can run [`az databox job list`](/cli/azure/databox/job#az_databox_job_list) to view all your Azure Data Box orders. The command lists all orders that belong to a specific resource group. Also displayed in the output: order name, shipping status, Azure region, delivery type, order status. Canceled orders are also included in the list.
+If you have ordered multiple devices, you can run [`az databox job list`](/cli/azure/databox/job#az-databox-job-list) to view all your Azure Data Box orders. The command lists all orders that belong to a specific resource group. Also displayed in the output: order name, shipping status, Azure region, delivery type, order status. Canceled orders are also included in the list.
The command also displays time stamps of each order. ```azurecli
To delete a canceled order, go to **Overview** and select **Delete** from the co
### Cancel an order
-To cancel an Azure Data Box order, run [`az databox job cancel`](/cli/azure/databox/job#az_databox_job_cancel). You're required to specify your reason for canceling the order.
+To cancel an Azure Data Box order, run [`az databox job cancel`](/cli/azure/databox/job#az-databox-job-cancel). You're required to specify your reason for canceling the order.
```azurecli az databox job cancel --resource-group <resource-group> --name <order-name> --reason <cancel-description>
To cancel an Azure Data Box order, run [`az databox job cancel`](/cli/azure/data
### Delete an order
-After you cancel an Azure Data Box order, you can run [`az databox job delete`](/cli/azure/databox/job#az_databox_job_delete) to delete the order.
+After you cancel an Azure Data Box order, you can run [`az databox job delete`](/cli/azure/databox/job#az-databox-job-delete) to delete the order.
```azurecli az databox job delete --name [-n] <order-name> --resource-group <resource-group> [--yes] [--verbose]
databox Data Box Disk Quickstart Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox/data-box-disk-quickstart-portal.md
Use these Azure CLI commands to create a Data Box Disk job.
[!INCLUDE [azure-cli-prepare-your-environment-h3.md](../../includes/azure-cli-prepare-your-environment-h3.md)]
-1. Run the [az group create](/cli/azure/group#az_group_create) command to create a resource group or use an existing resource group:
+1. Run the [az group create](/cli/azure/group#az-group-create) command to create a resource group or use an existing resource group:
```azurecli az group create --name databox-rg --location westus ```
-1. Use the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command to create a storage account or use an existing storage account:
+1. Use the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command to create a storage account or use an existing storage account:
```azurecli az storage account create --resource-group databox-rg --name databoxtestsa ```
-1. Run the [az databox job create](/cli/azure/databox/job#az_databox_job_create) command to create a Data Box job with the SKU DataBoxDisk:
+1. Run the [az databox job create](/cli/azure/databox/job#az-databox-job-create) command to create a Data Box job with the SKU DataBoxDisk:
```azurecli az databox job create --resource-group databox-rg --name databoxdisk-job \
Use these Azure CLI commands to create a Data Box Disk job.
--storage-account databoxtestsa --expected-data-size 1 ```
-1. Run the [az databox job update](/cli/azure/databox/job#az_databox_job_update) to update a job, as in this example, where you change the contact name and email:
+1. Run the [az databox job update](/cli/azure/databox/job#az-databox-job-update) to update a job, as in this example, where you change the contact name and email:
```azurecli az databox job update -g databox-rg --name databox-job --contact-name "Robert Anic" --email-list RobertAnic@contoso.com ```
- Run the [az databox job show](/cli/azure/databox/job#az_databox_job_show) command to get information about the job:
+ Run the [az databox job show](/cli/azure/databox/job#az-databox-job-show) command to get information about the job:
```azurecli az databox job show --resource-group databox-rg --name databox-job ```
- Use the [az databox job list]( /cli/azure/databox/job#az_databox_job_list) command to see all the Data Box jobs for a resource group:
+ Use the [az databox job list]( /cli/azure/databox/job#az-databox-job-list) command to see all the Data Box jobs for a resource group:
```azurecli az databox job list --resource-group databox-rg ```
- Run the [az databox job cancel](/cli/azure/databox/job#az_databox_job_cancel) command to cancel a job:
+ Run the [az databox job cancel](/cli/azure/databox/job#az-databox-job-cancel) command to cancel a job:
```azurecli az databox job cancel ΓÇôresource-group databox-rg --name databox-job --reason "Cancel job." ```
- Run the [az databox job delete](/cli/azure/databox/job#az_databox_job_delete) command to delete a job:
+ Run the [az databox job delete](/cli/azure/databox/job#az-databox-job-delete) command to delete a job:
```azurecli az databox job delete ΓÇôresource-group databox-rg --name databox-job ```
-1. Use the [az databox job list-credentials]( /cli/azure/databox/job#az_databox_job_list_credentials) command to list credentials for a Data Box job:
+1. Use the [az databox job list-credentials]( /cli/azure/databox/job#az-databox-job-list-credentials) command to list credentials for a Data Box job:
```azurecli az databox job list-credentials --resource-group "databox-rg" --name "databoxdisk-job"
databox Data Box Heavy Quickstart Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/databox/data-box-heavy-quickstart-portal.md
Use these Azure CLI commands to create a Data Box Heavy job.
[!INCLUDE [azure-cli-prepare-your-environment-h3.md](../../includes/azure-cli-prepare-your-environment-h3.md)]
-1. Run the [az group create](/cli/azure/group#az_group_create) command to create a resource group or use an existing resource group:
+1. Run the [az group create](/cli/azure/group#az-group-create) command to create a resource group or use an existing resource group:
```azurecli az group create --name databox-rg --location westus ```
-1. Use the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command to create a storage account or use an existing storage account:
+1. Use the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command to create a storage account or use an existing storage account:
```azurecli az storage account create --resource-group databox-rg --name databoxtestsa ```
-1. Run the [az databox job create](/cli/azure/databox/job#az_databox_job_create) command to create a Data Box job with the **--sku** value of `DataBoxHeavy`:
+1. Run the [az databox job create](/cli/azure/databox/job#az-databox-job-create) command to create a Data Box job with the **--sku** value of `DataBoxHeavy`:
```azurecli az databox job create --resource-group databox-rg --name databoxheavy-job \
Use these Azure CLI commands to create a Data Box Heavy job.
> [!NOTE] > Make sure your subscription supports Data Box Heavy.
-1. Run the [az databox job update](/cli/azure/databox/job#az_databox_job_update) to update a job, as in this example, where you change the contact name and email:
+1. Run the [az databox job update](/cli/azure/databox/job#az-databox-job-update) to update a job, as in this example, where you change the contact name and email:
```azurecli az databox job update -g databox-rg --name databox-job --contact-name "Robert Anic" --email-list RobertAnic@contoso.com ```
- Run the [az databox job show](/cli/azure/databox/job#az_databox_job_show) command to get information about the job:
+ Run the [az databox job show](/cli/azure/databox/job#az-databox-job-show) command to get information about the job:
```azurecli az databox job show --resource-group databox-rg --name databox-job ```
- Use the [az databox job list]( /cli/azure/databox/job#az_databox_job_list) command to see all the Data Box jobs for a resource group:
+ Use the [az databox job list]( /cli/azure/databox/job#az-databox-job-list) command to see all the Data Box jobs for a resource group:
```azurecli az databox job list --resource-group databox-rg ```
- Run the [az databox job cancel](/cli/azure/databox/job#az_databox_job_cancel) command to cancel a job:
+ Run the [az databox job cancel](/cli/azure/databox/job#az-databox-job-cancel) command to cancel a job:
```azurecli az databox job cancel ΓÇôresource-group databox-rg --name databox-job --reason "Cancel job." ```
- Run the [az databox job delete](/cli/azure/databox/job#az_databox_job_delete) command to delete a job:
+ Run the [az databox job delete](/cli/azure/databox/job#az-databox-job-delete) command to delete a job:
```azurecli az databox job delete ΓÇôresource-group databox-rg --name databox-job ```
-1. Use the [az databox job list-credentials]( /cli/azure/databox/job#az_databox_job_list_credentials) command to list credentials for a Data Box job:
+1. Use the [az databox job list-credentials]( /cli/azure/databox/job#az-databox-job-list-credentials) command to list credentials for a Data Box job:
```azurecli az databox job list-credentials --resource-group "databox-rg" --name "databoxdisk-job"
ddos-protection Manage Ddos Protection Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/ddos-protection/manage-ddos-protection-cli.md
If you choose to install and use the CLI locally, this quickstart requires Azure
In Azure, you allocate related resources to a resource group. You can either use an existing resource group or create a new one.
-To create a resource group, use [az group create](/cli/azure/group#az_group_create). In this example, we'll name our resource group _MyResourceGroup_ and use the _East US_ location:
+To create a resource group, use [az group create](/cli/azure/group#az-group-create). In this example, we'll name our resource group _MyResourceGroup_ and use the _East US_ location:
```azurecli-interactive az group create \
Verify that the command returns the correct details of your DDoS protection plan
You can keep your resources for the next tutorial. If no longer needed, delete the _MyResourceGroup_ resource group. When you delete the resource group, you also delete the DDoS protection plan and all its related resources.
-To delete the resource group use [az group delete](/cli/azure/group#az_group_delete):
+To delete the resource group use [az group delete](/cli/azure/group#az-group-delete):
```azurecli-interactive az group delete \
dedicated-hsm Quickstart Hsm Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dedicated-hsm/quickstart-hsm-azure-cli.md
This article describes how to create and manage an Azure Dedicated HSM by using
- An Azure subscription. You can [create a free account](https://azure.microsoft.com/free/) if you don't have one.
- If you have more than one Azure subscription, set the subscription to use for billing with the Azure CLI [az account set](/cli/azure/account#az_account_set) command.
+ If you have more than one Azure subscription, set the subscription to use for billing with the Azure CLI [az account set](/cli/azure/account#az-account-set) command.
```azurecli-interactive az account set --subscription 00000000-0000-0000-0000-000000000000
This article describes how to create and manage an Azure Dedicated HSM by using
## Create a resource group
-An [Azure resource group](../azure-resource-manager/management/overview.md) is a logical container for deploying and managing Azure resources as a group. If you don't already have a resource group for the dedicated HSM, create one by using the [az group create](/cli/azure/group#az_group_create) command. The following example creates a resource group named `myRG` in the `westus` Azure region:
+An [Azure resource group](../azure-resource-manager/management/overview.md) is a logical container for deploying and managing Azure resources as a group. If you don't already have a resource group for the dedicated HSM, create one by using the [az group create](/cli/azure/group#az-group-create) command. The following example creates a resource group named `myRG` in the `westus` Azure region:
```azurecli-interactive az group create --name myRG --location westus
az group create --name myRG --location westus
## Create a dedicated HSM
-To create a dedicated HSM, use the [az dedicated-hsm create](/cli/azure/dedicated-hsm#az_dedicated_hsm_create) command. The following example provisions a dedicated HSM named `hsm1` in the `westus` region, `myRG` resource group, and specified subscription, virtual network, and subnet. The required parameters are `name`, `location`, and `resource group`.
+To create a dedicated HSM, use the [az dedicated-hsm create](/cli/azure/dedicated-hsm#az-dedicated-hsm-create) command. The following example provisions a dedicated HSM named `hsm1` in the `westus` region, `myRG` resource group, and specified subscription, virtual network, and subnet. The required parameters are `name`, `location`, and `resource group`.
```azurecli-interactive az dedicated-hsm create \
The deployment takes approximately 25 to 30 minutes to complete.
## Get a dedicated HSM
-To get a current dedicated HSM, run the [az dedicated-hsm show](/cli/azure/dedicated-hsm#az_dedicated_hsm_show) command. The following example gets the `hsm1` dedicated HSM in the `myRG` resource group.
+To get a current dedicated HSM, run the [az dedicated-hsm show](/cli/azure/dedicated-hsm#az-dedicated-hsm-show) command. The following example gets the `hsm1` dedicated HSM in the `myRG` resource group.
```azurecli-interactive az dedicated-hsm show --resource-group myRG --name hsm1
az dedicated-hsm show --resource-group myRG --name hsm1
## Update a dedicated HSM
-Use the [az dedicated-hsm update](/cli/azure/dedicated-hsm#az_dedicated_hsm_update) command to update a dedicated HSM. The following example updates the `hsm1` dedicated HSM in the `myRG` resource group, and its tags:
+Use the [az dedicated-hsm update](/cli/azure/dedicated-hsm#az-dedicated-hsm-update) command to update a dedicated HSM. The following example updates the `hsm1` dedicated HSM in the `myRG` resource group, and its tags:
```azurecli-interactive az dedicated-hsm update --resource-group myRG ΓÇô-name hsm1 --tags resourceType="hsm" Environment="prod" Slice="A"
az dedicated-hsm update --resource-group myRG ΓÇô-name hsm1 --tags resourceType=
## List dedicated HSMs
-Run the [az dedicated-hsm list](/cli/azure/dedicated-hsm#az_dedicated_hsm_list) command to get information about current dedicated HSMs. The following example lists the dedicated HSMs in the `myRG` resource group:
+Run the [az dedicated-hsm list](/cli/azure/dedicated-hsm#az-dedicated-hsm-list) command to get information about current dedicated HSMs. The following example lists the dedicated HSMs in the `myRG` resource group:
```azurecli-interactive az dedicated-hsm list --resource-group myRG
az dedicated-hsm list --resource-group myRG
## Remove a dedicated HSM
-To remove a dedicated HSM, use the [az dedicated-hsm delete](/cli/azure/dedicated-hsm#az_dedicated_hsm_delete) command. The following example deletes the `hsm1` dedicated HSM from the `myRG` resource group:
+To remove a dedicated HSM, use the [az dedicated-hsm delete](/cli/azure/dedicated-hsm#az-dedicated-hsm-delete) command. The following example deletes the `hsm1` dedicated HSM from the `myRG` resource group:
```azurecli-interactive az dedicated-hsm delete --resource-group myRG ΓÇô-name hsm1
az dedicated-hsm delete --resource-group myRG ΓÇô-name hsm1
## Delete the resource group
-If you no longer need the resource group you created for dedicated HSM, you can delete it by running the [az group delete](/cli/azure/group#az_group_delete) command. This command deletes the group and all resources in it, including any that are unrelated to dedicated HSM. The following example deletes the `myRG` resource group and everything in it:
+If you no longer need the resource group you created for dedicated HSM, you can delete it by running the [az group delete](/cli/azure/group#az-group-delete) command. This command deletes the group and all resources in it, including any that are unrelated to dedicated HSM. The following example deletes the `myRG` resource group and everything in it:
```azurecli-interactive az group delete --name myRG
dedicated-hsm Tutorial Deploy Hsm Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dedicated-hsm/tutorial-deploy-hsm-cli.md
az network vnet subnet create \
After you configure your network, use these Azure CLI commands to provision your HSMs.
-1. Use the [az dedicated-hsm create](/cli/azure/dedicated-hsm#az_dedicated_hsm_create) command to provision the first HSM. The HSM is named hsm1. Substitute your subscription:
+1. Use the [az dedicated-hsm create](/cli/azure/dedicated-hsm#az-dedicated-hsm-create) command to provision the first HSM. The HSM is named hsm1. Substitute your subscription:
```azurecli az dedicated-hsm create --location westus --name hsm1 --resource-group myRG --network-profile-network-interfaces \
After you configure your network, use these Azure CLI commands to provision your
This deployment should take approximately 25 to 30 minutes to complete with the bulk of that time being the HSM devices.
-1. To see a current HSM, run the [az dedicated-hsm show](/cli/azure/dedicated-hsm#az_dedicated_hsm_show) command:
+1. To see a current HSM, run the [az dedicated-hsm show](/cli/azure/dedicated-hsm#az-dedicated-hsm-show) command:
```azurecli az dedicated-hsm show --resource group myRG --name hsm1
After you configure your network, use these Azure CLI commands to provision your
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworks/MyHSM-vnet/subnets/MyHSM-vnet ```
-1. Run the [az dedicated-hsm list](/cli/azure/dedicated-hsm#az_dedicated_hsm_list) command to view details about your current HSMs:
+1. Run the [az dedicated-hsm list](/cli/azure/dedicated-hsm#az-dedicated-hsm-list) command to view details about your current HSMs:
```azurecli az dedicated-hsm list --resource-group myRG ```
-There are some other commands that might be useful. Use the [az dedicated-hsm update](/cli/azure/dedicated-hsm#az_dedicated_hsm_update) command to update an HSM:
+There are some other commands that might be useful. Use the [az dedicated-hsm update](/cli/azure/dedicated-hsm#az-dedicated-hsm-update) command to update an HSM:
```azurecli az dedicated-hsm update --resource-group myRG ΓÇôname hsm1 ```
-To delete an HSM, use the [az dedicated-hsm delete](/cli/azure/dedicated-hsm#az_dedicated_hsm_delete) command:
+To delete an HSM, use the [az dedicated-hsm delete](/cli/azure/dedicated-hsm#az-dedicated-hsm-delete) command:
```azurecli az dedicated-hsm delete --resource-group myRG ΓÇôname hsm1
defender-for-cloud Enable Data Collection https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/enable-data-collection.md
This table shows the availability details for the auto provisioning **feature**
| Release state: | Generally available (GA) | Generally available (GA) | | Relevant Defender plan: | [Microsoft Defender for servers](defender-for-servers-introduction.md) | [Microsoft Defender for servers](defender-for-servers-introduction.md) | | Required roles and permissions (subscription-level): | [Contributor](../role-based-access-control/built-in-roles.md#contributor) or [Security Admin](../role-based-access-control/built-in-roles.md#security-admin) | [Contributor](../role-based-access-control/built-in-roles.md#contributor) or [Security Admin](../role-based-access-control/built-in-roles.md#security-admin) |
-| Supported destinations: | :::image type="icon" source="./medi), [Windows 10 Enterprise multi-session](../virtual-desktop/windows-10-multisession-faq.yml) (formerly Enterprise for Virtual Desktops (EVD)<br>:::image type="icon" source="./media/icons/no-icon.png"::: Azure VMs running Windows 10 (other than EVD or WVD) |
+| Supported destinations: | :::image type="icon" source="./medi), [Windows 10 Enterprise multi-session](../virtual-desktop/windows-10-multisession-faq.yml)<br>:::image type="icon" source="./media/icons/no-icon.png"::: Azure VMs running Windows 10 |
| Policy-based: | :::image type="icon" source="./media/icons/no-icon.png"::: No | :::image type="icon" source="./media/icons/no-icon.png"::: No | | Clouds: | :::image type="icon" source="./media/icons/yes-icon.png"::: Commercial clouds<br>:::image type="icon" source="./media/icons/no-icon.png"::: Azure Government, Azure China 21Vianet | :::image type="icon" source="./media/icons/yes-icon.png"::: Commercial clouds<br>:::image type="icon" source="./media/icons/yes-icon.png"::: Azure Government, Azure China 21Vianet |
This table shows the availability details for the auto provisioning **feature**
| Aspect | Details | ||:--| | Release state: | Preview |
-| Relevant Defender plan: | [Microsoft Defender for servers](defender-for-servers-introduction.md) |
+| Relevant Defender plan: | No plan required |
| Required roles and permissions (subscription-level): | [Owner](../role-based-access-control/built-in-roles.md#owner) | | Supported destinations: | :::image type="icon" source="./media/icons/yes-icon.png"::: Azure virtual machines | | Clouds: | :::image type="icon" source="./media/icons/yes-icon.png"::: Commercial clouds<br>:::image type="icon" source="./media/icons/no-icon.png"::: Azure Government, Azure China 21Vianet |
defender-for-cloud Implement Security Recommendations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/implement-security-recommendations.md
To implement a **Fix**:
1. From the list of recommendations that have the **Fix** action icon, :::image type="icon" source="media/implement-security-recommendations/fix-icon.png" border="false":::, select a recommendation.
- :::image type="content" source="./media/implement-security-recommendations/security-center-recommendations-fix-action.png" alt-text="Recommendations list highlighting recommendations with Fix action" lightbox="./media/implement-security-recommendations/security-center-recommendations-fix-action.png":::
+ :::image type="content" source="./media/implement-security-recommendations/microsoft-defender-for-cloud-recommendations-fix-action.png" alt-text="Recommendations list highlighting recommendations with Fix action" lightbox="./media/implement-security-recommendations/microsoft-defender-for-cloud-recommendations-fix-action.png":::
1. From the **Unhealthy resources** tab, select the resources that you want to implement the recommendation on, and select **Remediate**.
To implement a **Fix**:
1. In the confirmation box, read the remediation details and implications.
- ![Quick fix.](./media/implement-security-recommendations/security-center-quick-fix-view.png)
+ ![Quick fix.](./media/implement-security-recommendations/microsoft-defender-for-cloud-quick-fix-view.png)
> [!NOTE] > The implications are listed in the grey box in the **Remediate resources** window that opens after clicking **Remediate**. They list what changes happen when proceeding with the **Fix**.
defender-for-cloud Integration Defender For Endpoint https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/integration-defender-for-endpoint.md
Microsoft Defender for Endpoint is a holistic, cloud-delivered, endpoint securit
|-|:--| | Release state: | General availability (GA) | | Pricing: | Requires [Microsoft Defender for servers](defender-for-servers-introduction.md) |
-| Supported environments: | :::image type="icon" source="./medi) (formerly Windows Virtual Desktop), [Windows 10 Enterprise multi-session](../virtual-desktop/windows-10-multisession-faq.yml) (formerly Enterprise for Virtual Desktops)<br>:::image type="icon" source="./media/icons/no-icon.png"::: Azure VMs running Windows 11 or Windows 10 (except if running Azure Virtual Desktop or Windows 10 Enterprise multi-session) |
+| Supported environments: | :::image type="icon" source="./medi), [Windows 10 Enterprise multi-session](../virtual-desktop/windows-10-multisession-faq.yml)<br>:::image type="icon" source="./media/icons/no-icon.png"::: Azure VMs running Windows 11 or Windows 10 (except if running Azure Virtual Desktop or Windows 10 Enterprise multi-session) |
| Required roles and permissions: | * To enable/disable the integration: **Security admin** or **Owner**<br>* To view Defender for Endpoint alerts in Defender for Cloud: **Security reader**, **Reader**, **Resource Group Contributor**, **Resource Group Owner**, **Security admin**, **Subscription owner**, or **Subscription Contributor** | | Clouds: | :::image type="icon" source="./media/icons/yes-icon.png"::: Commercial clouds<br>:::image type="icon" source="./media/icons/yes-icon.png"::: Azure Government<br>:::image type="icon" source="./media/icons/no-icon.png"::: Azure China 21Vianet <br>:::image type="icon" source="./media/icons/yes-icon.png"::: Connected AWS accounts |
To remove the Defender for Endpoint solution from your machines:
### What's this "MDE.Windows" / "MDE.Linux" extension running on my machine?
-In the past, Microsoft Defender for Endpoint was provisioned by the Log Analytics agent. When [we expanded support to include Windows Server 2019](release-notes-archive.md#microsoft-defender-for-endpoint-integration-with-azure-defender-now-supports-windows-server-2019-and-windows-10-virtual-desktop-wvd-released-for-general-availability-ga) and Linux, we also added an extension to perform the automatic onboarding.
+In the past, Microsoft Defender for Endpoint was provisioned by the Log Analytics agent. When [we expanded support to include Windows Server 2019](release-notes-archive.md#microsoft-defender-for-endpoint-integration-with-azure-defender-now-supports-windows-server-2019-and-windows-10-on-windows-virtual-desktop-released-for-general-availability-ga) and Linux, we also added an extension to perform the automatic onboarding.
Defender for Cloud automatically deploys the extension to machines running: -- Windows Server 2019 & 2022.-- Windows 10 Virtual Desktop (WVD).
+- Windows Server 2019 and Windows Server 2022.
+- Windows 10 on Azure Virtual Desktop.
- Other versions of Windows Server if Defender for Cloud doesn't recognize the OS version (for example, when a custom VM image is used). In this case, Microsoft Defender for Endpoint is still provisioned by the Log Analytics agent. - Linux.
defender-for-cloud Onboard Management Group https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/onboard-management-group.md
To onboard a management group and all its subscriptions:
1. As a user with **Security Admin** permissions, open Azure Policy and search for the definition **Enable Defender for Cloud on your subscription**.
- :::image type="content" source="./media/get-started/enable-security-center-policy.png" alt-text="The Azure Policy definition Enable Defender for Cloud on your subscription.":::
+ :::image type="content" source="./media/get-started/enable-microsoft-defender-for-cloud-policy.png" alt-text="The Azure Policy definition Enable Defender for Cloud on your subscription.":::
1. Select **Assign** and ensure you set the scope to the MG level.
defender-for-cloud Quickstart Enable Database Protections https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/quickstart-enable-database-protections.md
You can enable database protection on your subscription, or exclude specific dat
1. Select the relevant subscription.
-1. If you want to enable specific plans, set the plans toggle to **On**.
+1. To protect all database types toggle the Databases plan to **On**.
-1. (Optional) Use **Select types** to enable protections for specific resource types.
+1. (Optional) Use **Select types** to enable protections for specific database types.
:::image type="content" source="media/quickstart-enable-database-protections/select-type.png" alt-text="Screenshot showing the toggles to enable specific resource types.":::
You can enable database protection on your subscription, or exclude specific dat
1. Select **Continue**.
+1. Select :::image type="icon" source="media/quickstart-enable-database-protections/save-icon.png" border="false":::.
## Next steps In this article, you learned how to enable Microsoft Defender for Cloud for all database types on your subscription. Next, read more about each of the resource types.
defender-for-cloud Release Notes Archive https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/release-notes-archive.md
Updates in April include:
- [Refreshed resource health page (in preview)](#refreshed-resource-health-page-in-preview) - [Container registry images that have been recently pulled are now rescanned weekly (released for general availability (GA))](#container-registry-images-that-have-been-recently-pulled-are-now-rescanned-weekly-released-for-general-availability-ga) - [Use Azure Defender for Kubernetes to protect hybrid and multi-cloud Kubernetes deployments (in preview)](#use-azure-defender-for-kubernetes-to-protect-hybrid-and-multi-cloud-kubernetes-deployments-in-preview)-- [Microsoft Defender for Endpoint integration with Azure Defender now supports Windows Server 2019 and Windows 10 Virtual Desktop (WVD) released for general availability (GA)](#microsoft-defender-for-endpoint-integration-with-azure-defender-now-supports-windows-server-2019-and-windows-10-virtual-desktop-wvd-released-for-general-availability-ga)
+- [Microsoft Defender for Endpoint integration with Azure Defender now supports Windows Server 2019 and Windows 10 on Windows Virtual Desktop released for general availability (GA)](#microsoft-defender-for-endpoint-integration-with-azure-defender-now-supports-windows-server-2019-and-windows-10-on-windows-virtual-desktop-released-for-general-availability-ga)
- [Recommendations to enable Azure Defender for DNS and Resource Manager (in preview)](#recommendations-to-enable-azure-defender-for-dns-and-resource-manager-in-preview) - [Three regulatory compliance standards added: Azure CIS 1.3.0, CMMC Level 3, and New Zealand ISM Restricted](#three-regulatory-compliance-standards-added-azure-cis-130-cmmc-level-3-and-new-zealand-ism-restricted) - [Four new recommendations related to guest configuration (in preview)](#four-new-recommendations-related-to-guest-configuration-in-preview)
Learn more in [Use Azure Defender for Kubernetes with your on-premises and multi
:::image type="content" source="media/defender-for-kubernetes-azure-arc/extension-recommendation.png" alt-text="Azure Security Center's recommendation for deploying the Azure Defender extension for Azure Arc-enabled Kubernetes clusters." lightbox="media/defender-for-kubernetes-azure-arc/extension-recommendation.png":::
-### Microsoft Defender for Endpoint integration with Azure Defender now supports Windows Server 2019 and Windows 10 Virtual Desktop (WVD) released for general availability (GA)
+### Microsoft Defender for Endpoint integration with Azure Defender now supports Windows Server 2019 and Windows 10 on Windows Virtual Desktop released for general availability (GA)
Microsoft Defender for Endpoint is a holistic, cloud delivered endpoint security solution. It provides risk-based vulnerability management and assessment as well as endpoint detection and response (EDR). For a full list of the benefits of using Defender for Endpoint together with Azure Security Center, see [Protect your endpoints with Security Center's integrated EDR solution: Microsoft Defender for Endpoint](integration-defender-for-endpoint.md).
-When you enable Azure Defender for servers on a Windows server, a license for Defender for Endpoint is included with the plan. If you've already enabled Azure Defender for servers and you have Windows 2019 servers in your subscription, they'll automatically receive Defender for Endpoint with this update. No manual action is required.
+When you enable Azure Defender for servers running Windows Server, a license for Defender for Endpoint is included with the plan. If you've already enabled Azure Defender for servers and you have Windows Server 2019 servers in your subscription, they'll automatically receive Defender for Endpoint with this update. No manual action is required.
-Support has now been expanded to include Windows Server 2019 and [Windows Virtual Desktop (WVD)](../virtual-desktop/overview.md).
+Support has now been expanded to include Windows Server 2019 and Windows 10 on [Windows Virtual Desktop](../virtual-desktop/overview.md).
> [!NOTE]
-> If you're enabling Defender for Endpoint on a Windows Server 2019 machine, ensure it meets the prerequisites described in [Enable the Microsoft Defender for Endpoint integration](integration-defender-for-endpoint.md#enable-the-microsoft-defender-for-endpoint-integration).
+> If you're enabling Defender for Endpoint on a Windows Server 2019 server, ensure it meets the prerequisites described in [Enable the Microsoft Defender for Endpoint integration](integration-defender-for-endpoint.md#enable-the-microsoft-defender-for-endpoint-integration).
### Recommendations to enable Azure Defender for DNS and Resource Manager (in preview)
Updates in February include:
- [New security alerts page in the Azure portal released for general availability (GA)](#new-security-alerts-page-in-the-azure-portal-released-for-general-availability-ga) - [Kubernetes workload protection recommendations released for general availability (GA)](#kubernetes-workload-protection-recommendations-released-for-general-availability-ga)-- [Microsoft Defender for Endpoint integration with Azure Defender now supports Windows Server 2019 and Windows 10 Virtual Desktop (WVD) (in preview)](#microsoft-defender-for-endpoint-integration-with-azure-defender-now-supports-windows-server-2019-and-windows-10-virtual-desktop-wvd-in-preview)
+- [Microsoft Defender for Endpoint integration with Azure Defender now supports Windows Server 2019 and Windows 10 on Windows Virtual Desktop (in preview)](#microsoft-defender-for-endpoint-integration-with-azure-defender-now-supports-windows-server-2019-and-windows-10-on-windows-virtual-desktop-in-preview)
- [Direct link to policy from recommendation details page](#direct-link-to-policy-from-recommendation-details-page) - [SQL data classification recommendation no longer affects your secure score](#sql-data-classification-recommendation-no-longer-affects-your-secure-score) - [Workflow automations can be triggered by changes to regulatory compliance assessments (in preview)](#workflow-automations-can-be-triggered-by-changes-to-regulatory-compliance-assessments-in-preview)
Learn more in [Workload protection best-practices using Kubernetes admission con
> While the recommendations were in preview, they didn't render an AKS cluster resource unhealthy, and they weren't included in the calculations of your secure score. with this GA announcement these will be included in the score calculation. If you haven't remediated them already, this might result in a slight impact on your secure score. Remediate them wherever possible as described in [Remediate recommendations in Azure Security Center](implement-security-recommendations.md).
-### Microsoft Defender for Endpoint integration with Azure Defender now supports Windows Server 2019 and Windows 10 Virtual Desktop (WVD) (in preview)
+### Microsoft Defender for Endpoint integration with Azure Defender now supports Windows Server 2019 and Windows 10 on Windows Virtual Desktop (in preview)
Microsoft Defender for Endpoint is a holistic, cloud delivered endpoint security solution. It provides risk-based vulnerability management and assessment as well as endpoint detection and response (EDR). For a full list of the benefits of using Defender for Endpoint together with Azure Security Center, see [Protect your endpoints with Security Center's integrated EDR solution: Microsoft Defender for Endpoint](integration-defender-for-endpoint.md).
-When you enable Azure Defender for servers on a Windows server, a license for Defender for Endpoint is included with the plan. If you've already enabled Azure Defender for servers and you have Windows 2019 servers in your subscription, they'll automatically receive Defender for Endpoint with this update. No manual action is required.
+When you enable Azure Defender for servers running Windows Server, a license for Defender for Endpoint is included with the plan. If you've already enabled Azure Defender for servers and you have Windows Server 2019 servers in your subscription, they'll automatically receive Defender for Endpoint with this update. No manual action is required.
-Support has now been expanded to include Windows Server 2019 and [Windows Virtual Desktop (WVD)](../virtual-desktop/overview.md).
+Support has now been expanded to include Windows Server 2019 and Windows 10 on [Windows Virtual Desktop](../virtual-desktop/overview.md).
> [!NOTE]
-> If you're enabling Defender for Endpoint on a Windows Server 2019 machine, ensure it meets the prerequisites described in [Enable the Microsoft Defender for Endpoint integration](integration-defender-for-endpoint.md#enable-the-microsoft-defender-for-endpoint-integration).
+> If you're enabling Defender for Endpoint on a Windows Server 2019 server, ensure it meets the prerequisites described in [Enable the Microsoft Defender for Endpoint integration](integration-defender-for-endpoint.md#enable-the-microsoft-defender-for-endpoint-integration).
### Direct link to policy from recommendation details page
The Security Center experience within SQL provides access to the following Secur
- **Security alerts** ΓÇô a detection service that continuously monitors Azure SQL activities for threats such as SQL injection, brute-force attacks, and privilege abuse. This service triggers detailed and action-oriented security alerts in Security Center and provides options for continuing investigations with Azure Sentinel, MicrosoftΓÇÖs Azure-native SIEM solution. - **Findings** ΓÇô a vulnerability assessment service that continuously monitors Azure SQL configurations and helps remediate vulnerabilities. Assessment scans provide an overview of Azure SQL security states together with detailed security findings. ### Asset inventory tools and filters updated
defender-for-cloud Release Notes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/release-notes.md
Changes in our roadmap and priorities have removed the need for the network traf
|Recommendation |Description |Severity | ||||
-|[Network traffic data collection agent should be installed on Linux virtual machines](https://portal.azure.com/#blade/Microsoft_Azure_Security/RecommendationsBlade/assessmentKey/8c3e93d3-0276-4d06-b20a-9a9f3012742c) |Defender for Cloud uses the Microsoft Dependency agent to collect network traffic data from your Azure virtual machines to enable advanced network protection features such as traffic visualization on the network map, network hardening recommendations and specific network threats. |Medium |
-|[Network traffic data collection agent should be installed on Windows virtual machines](https://portal.azure.com/#blade/Microsoft_Azure_Security/RecommendationsBlade/assessmentKey/24d8af06-d441-40b4-a49c-311421aa9f58) |Defender for Cloud uses the Microsoft Dependency agent to collect network traffic data from your Azure virtual machines to enable advanced network protection features such as traffic visualization on the network map, network hardening recommendations, and specific network threats. |Medium |
+| Network traffic data collection agent should be installed on Linux virtual machines|Defender for Cloud uses the Microsoft Dependency agent to collect network traffic data from your Azure virtual machines to enable advanced network protection features such as traffic visualization on the network map, network hardening recommendations and specific network threats. |Medium |
+| Network traffic data collection agent should be installed on Windows virtual machines |Defender for Cloud uses the Microsoft Dependency agent to collect network traffic data from your Azure virtual machines to enable advanced network protection features such as traffic visualization on the network map, network hardening recommendations, and specific network threats. |Medium |
### Defender for Containers can now scan for vulnerabilities in Windows images (preview)
The following preview alert has been deprecated:
|-|| |**PREVIEW - Activity from a risky IP address**<br>(ARM.MCAS_ActivityFromAnonymousIPAddresses)|Users activity from an IP address that has been identified as an anonymous proxy IP address has been detected.<br>These proxies are used by people who want to hide their device's IP address, and can be used for malicious intent. This detection uses a machine learning algorithm that reduces false positives, such as mis-tagged IP addresses that are widely used by users in the organization.<br>Requires an active Microsoft Defender for Cloud Apps license.|
-A new alert has been created that provides this information and adds to it. In addition, the newer alerts (ARM_OperationFromSuspiciousIP, ARM_OperationFromSuspiciousProxyIP) doesn't require a license for Microsoft Defender for Cloud Apps (formerly known as Microsoft Cloud App Security).
+A new alert has been created that provides this information and adds to it. In addition, the newer alerts (ARM_OperationFromSuspiciousIP, ARM_OperationFromSuspiciousProxyIP) don't require a license for Microsoft Defender for Cloud Apps (formerly known as Microsoft Cloud App Security).
See more alerts for [Resource Manager](alerts-reference.md#alerts-resourcemanager).
As organizations move away from using management certificates to manage their su
|Recommendation |Description |Severity | ||||
-|[Service principals should be used to protect your subscriptions instead of Management Certificates](https://portal.azure.com/#blade/Microsoft_Azure_Security/RecommendationsBlade/assessmentKey/2acd365d-e8b5-4094-bce4-244b7c51d67c) |Management certificates allow anyone who authenticates with them to manage the subscription(s) they are associated with. To manage subscriptions more securely, using service principals with Resource Manager is recommended to limit the blast radius in the case of a certificate compromise. It also automates resource management. <br />(Related policy: [Service principals should be used to protect your subscriptions instead of management certificates](https://portal.azure.com/#blade/Microsoft_Azure_Policy/PolicyDetailBlade/definitionId/%2fproviders%2fMicrosoft.Authorization%2fpolicyDefinitions%2f6646a0bd-e110-40ca-bb97-84fcee63c414)) |Medium |
+| Service principals should be used to protect your subscriptions instead of Management Certificates | Management certificates allow anyone who authenticates with them to manage the subscription(s) they are associated with. To manage subscriptions more securely, using service principals with Resource Manager is recommended to limit the blast radius in the case of a certificate compromise. It also automates resource management. <br />(Related policy: [Service principals should be used to protect your subscriptions instead of management certificates](https://portal.azure.com/#blade/Microsoft_Azure_Policy/PolicyDetailBlade/definitionId/%2fproviders%2fMicrosoft.Authorization%2fpolicyDefinitions%2f6646a0bd-e110-40ca-bb97-84fcee63c414)) |Medium |
Learn more:
Defender for Cloud's auto provisioning settings have a toggle for each type of s
In a further expansion of our hybrid cloud features, we've added an option to auto provision the Log Analytics agent to machines connected to Azure Arc.
-As with the other other auto provisioning options, this is configured at the subscription level.
+As with the other auto provisioning options, this is configured at the subscription level.
When you enable this option, you'll be prompted for the workspace.
Advance notice of this change appeared for the last six months in the [Important
### Communication with suspicious domain alert expanded to included known Log4Shell-related domains
-The following alert was previously only available to organizations who would enabled the [Microsoft Defender for DNS](defender-for-dns-introduction.md) plan.
+The following alert was previously only available to organizations who had enabled the [Microsoft Defender for DNS](defender-for-dns-introduction.md) plan.
With this update, the alert will also show for subscriptions with the [Microsoft Defender for servers](defender-for-servers-introduction.md) or [Defender for App Service](defender-for-app-service-introduction.md) plan enabled.
defender-for-cloud Supported Machines Endpoint Solutions Clouds Containers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/supported-machines-endpoint-solutions-clouds-containers.md
Title: Microsoft Defender for Containers feature availability description: Learn about the availability of Microsoft Defender for Cloud containers features according to OS, machine type, and cloud deployment. Previously updated : 03/15/2022 Last updated : 03/24/2022
[!INCLUDE [Banner for top of topics](./includes/banner.md)]
-The **tabs** below show the features of Microsoft Defender for Cloud that are available for Windows and Linux machines.
+The **tabs** below show the features of Microsoft Defender for Cloud that are available by environment.
## Supported features by environment
defender-for-iot Concept Supported Protocols https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-iot/organizations/concept-supported-protocols.md
Defender for IoT can detect the following protocols when identifying assets and
|Brand |Protocols | |||
-|**ABB** | IEC61850 MMS (including ABB extension) |
+|**ABB** | ABB 800xA DCS (IEC61850 MMS including ABB extension) |
|**ASHRAE** | BACnet<br> BACnet BACapp<br> BACnet BVLC | |**Beckhoff** | AMS (ADS)<br> Twincat | |**Cisco** | CAPWAP Control<br> CAPWAP Data<br> CDP<br> LWAPP |
Defender for IoT can detect the following protocols when identifying assets and
|**Emerson** | DeltaV<br> Emerson OpenBSI/BSAP<br> Ovation DCS ADMD<br>Ovation DCS DPUSTAT<br> Ovation DCS SSRPC | |**Emerson Fischer** | ROC | |**Eurocontrol** | ASTERIX |
-|**GE** | Bentley Nevada (System 1)<br> EGD<br> GSM (GE MarkVI and MarkVIe)<br> SRTP (GE) |
+|**GE** | Bentley Nevada (System 1 / BN3500)<br> EGD<br> GSM (GE MarkVI and MarkVIe)<br> SRTP (GE) |
+|**Generic Applications** | Active Directory<br> RDP<br> Teamviewer<br> VNC<br> |
|**Honeywell** | ENAP<br> Experion DCS CDA<br> Experion DCS FDA | |**IEC** | Codesys V3<br> ICCP TASE.2/IEC-60870<br> IEC60870-5 (IEC104/101)<br> IEC60870-5-103 (encapsulated serial)<br> IEC61850 GOOSE<br> IEC61850 MMS<br> IEC61850 SMV (SAMPLED-VALUES)<br> LonTalk (LonWorks) | |**IEEE** | LLC<br> STP<br> VLAN |
-|**IETF** | ARP<br> DCE RPC<br> DNS<br> FTP (FTP_ADAT<br> FTP_DATA)<br> GSSAPI (RFC2743)<br> HTTP<br> ICMP<br> IPv4<br> IPv6<br> LLDP<br> MDNS<br> NBNS<br> NTLM (NTLMSSP Auth Protocol)<br> RPC<br> SMB / Browse / NBDGM<br> SMB / CIFS<br> SNMP<br> SPNEGO (RFC4178)<br> SSH<br> Syslog<br> Telnet<br> TFTP<br> TPKT<br> UDP |
+|**IETF** | ARP<br> DHCP<br> DCE RPC<br> DNS<br> FTP (FTP_ADAT<br> FTP_DATA)<br> GSSAPI (RFC2743)<br> HTTP<br> ICMP<br> IPv4<br> IPv6<br> LLDP<br> MDNS<br> NBNS<br> NTLM (NTLMSSP Auth Protocol)<br> RPC<br> SMB / Browse / NBDGM<br> SMB / CIFS<br> SNMP<br> SPNEGO (RFC4178)<br> SSH<br> Syslog<br> TCP<br> Telnet<br> TFTP<br> TPKT<br> UDP |
|**ISO** | CLNP (ISO 8473)<br> COTP (ISO 8073)<br> ISO Industrial Protocol<br> MQTT (IEC 20922) | |**Medical** |ASTM<br> HL7 | |**Microsoft** | Horizon community dissectors<br> Horizon proprietary dissectors (developed by customers) |
Defender for IoT can detect the following protocols when identifying assets and
|**Schneider Electric / Invensys** | Foxboro Evo<br> Foxboro I/A<br> Trident<br> TriGP<br> TriStation | |**Schneider Electric / Modicon** | Modbus RTU | |**Schneider Electric / Wonderware** | Wonderware Suitelink |
-|**Siemens** | CAMP<br> PCS7<br> PCS7 WinCC ΓÇô Historian<br> Profinet DCP<br> Profinet Realtime<br> Siemens PHD<br> Siemens S7<br> Siemens S7-Plus<br> Siemens S7-Plus<br> Siemens SICAM<br> Siemens WinCC |
+|**Siemens** | CAMP<br> PCS7<br> PCS7 WinCC ΓÇô Historian<br> Profinet DCP<br> Profinet Realtime<br> Siemens PHD<br> Siemens S7<br> Siemens S7-Plus<br> Siemens SICAM<br> Siemens WinCC |
|**Toshiba** |Toshiba Computer Link | |**Yokogawa** | Centum ODEQ (Centum / ProSafe DCS)<br> HIS Equalize<br> Vnet/IP |
defender-for-iot Connect Sensors https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-iot/organizations/connect-sensors.md
This procedure describes how to install and configure a connection between your
> [!IMPORTANT] > Some organizations must define firewall rules by IP addresses. If this is true for your organization, it's important to know that the Azure public IP ranges are updated weekly. >
-> Make sure to download the new JSON file each week and make the required changes on your site to correctly identify services running in Azure. You'll need the updated IP ranges for **AzureIoTHub**, **Storage**, and **EventHub**.
+> Make sure to download the new JSON file each week and make the required changes on your site to correctly identify services running in Azure. You'll need the updated IP ranges for **AzureIoTHub**, **Storage**, and **EventHub**. See the [latest IP ranges](https://www.microsoft.com/en-us/download/details.aspx?id=56519).
> ## Connect directly
This section describes what you need to configure a direct sensor connection to
- **Threat Intelligence**: `*.blob.core.windows.net` - **Eventhub**: `*.servicebus.windows.net`
-1. Azure public IP addresses are updated weekly. If you must define firewall rules based on IP addresses, make sure to download the new JSON file each week and make the required changes on your site to correctly identify services running in Azure. You'll need the updated IP ranges for **AzureIoTHub**, **Storage**, and **EventHub**.
+1. Azure public IP addresses are updated weekly. If you must define firewall rules based on IP addresses, make sure to download the new JSON file each week and make the required changes on your site to correctly identify services running in Azure. You'll need the updated IP ranges for **AzureIoTHub**, **Storage**, and **EventHub**. See the [latest IP ranges](https://www.microsoft.com/en-us/download/details.aspx?id=56519).
## Connect via multi-cloud vendors
defender-for-iot How To Identify Required Appliances https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-iot/organizations/how-to-identify-required-appliances.md
Title: Identify required appliances
-description: Learn about hardware and virtual appliances for certified Defender for IoT sensors and the on-premises management console.
Previously updated : 11/09/2021
+ Title: Identify required appliances
+description: Learn about hardware and virtual appliances for certified Defender for IoT sensors and the on-premises management console.
Last updated : 03/23/2022 ++ # Identify required appliances This article provides information on certified Defender for IoT sensor appliances. Defender for IoT can be deployed on physical and virtual appliances.
-This includes certified *pre-configured* appliances, on which software is already installed, and non-configured certified appliances on which you can download and install required software.
+This includes certified *pre-configured* appliances, on which software is already installed, and non-configured certified appliances, on which you can download and install required software.
The article also provides specifications for an on-premises management console appliance. The on-premises management console is not available as a pre-configured appliance.
Defender for IoT supports both physical and virtual deployments.
This section provides an overview of physical sensor models that are available. You can purchase sensors with pre-configured software or purchase sensors that are not pre-configured.
-| Deployment type | Corporate | Enterprise | SMB rack mount| SMB Ruggedized |
-|--|--|--|--|--|
-| Image | :::image type="content" source="media/how-to-prepare-your-network/corporate-hpe-proliant-dl360-v2.png" alt-text="The corporate-level model."::: | :::image type="content" source="media/how-to-prepare-your-network/enterprise-and-smb-hpe-proliant-dl20-v2.png" alt-text="The enterprise-level model."::: | :::image type="content" source="media/how-to-prepare-your-network/enterprise-and-smb-hpe-proliant-dl20-v2.png" alt-text="The SMB-level model."::: | :::image type="content" source="media/how-to-prepare-your-network/office-ruggedized.png" alt-text="The SMB-ruggedized level model."::: |
-| Model | HPE ProLiant DL360 | HPE ProLiant DL20 | HPE ProLiant DL20 | HPE EL300 |
-| Monitoring ports | Up to 15 RJ45 or 8 OPT | Up to 8 RJ45 or 6 OPT | Up to 4 RJ45 | Up to 5 RJ45 |
-| Maximum bandwidth [1](#anchortext) | 3 Gb/sec | 1 Gb/sec | 200 Mb/Sec | 100 Mb/sec |
-| Maximum protected devices | 12,000 | 10,000 | 1,000 | 800 |
+- **Pre-configured sensors**: Microsoft has partnered with Arrow to provide preconfigured sensors. To purchase a preconfigured sensor, contact Arrow at the following address: <hardware.sales@arrow.com>
-See [Appliance specifications](#appliance-specifications) for vendor details.
+- **About bringing your own appliance**: Review the supported models described below. After you've acquired your appliance, go to **Defender for IoT** > **Getting started** > **Sensor**. Under **Purchase an appliance and install software**, select **Download**.
-About preconfigured sensors: Microsoft has partnered with Arrow to provide preconfigured sensors. To purchase a preconfigured sensor, contact Arrow at the following address: <hardware.sales@arrow.com>
+ :::image type="content" source="media/how-to-prepare-your-network/azure-defender-for-iot-sensor-download-software-screen.png" alt-text="Network sensors ISO.":::
-About bringing your own appliance: Review the supported models described here. After you've acquired your appliance, go to **Defender for IoT** > **Network Sensors ISO** > **Installation** to download the software.
+ > [!NOTE]
+ > <a name="anchortext"></a>For each model, bandwidth capacity can vary, depending on the distribution of protocols.
+For more information about each model, see [Appliance specifications](#appliance-specifications).
+
+#### Corporate sensors
++
+|Element |Description |
+|||
+|**Model** | HPE ProLiant DL360 |
+|**Monitoring ports** | Up to 15 RJ45 or 8 OPT |
+|**Maximum bandwidth**<sup>[1](#anchortext)</sup> | 3 Gb/sec |
+|**Maximum protected devices** | 12,000 |
+
+#### Enterprise sensors
++
+|Element |Description |
+|||
+|**Model** | HPE ProLiant DL20 |
+|**Monitoring ports** | Up to 8 RJ45 or 6 OPT |
+|**Maximum bandwidth**<sup>[1](#anchortext)</sup> | 1 Gb/sec |
+|**Maximum protected devices** | 10,000 |
+
+#### SMB rack mount
++
+|Element |Description |
+|||
+|**Model** | HPE ProLiant DL20 |
+|**Monitoring ports** | Up to 4 RJ45 |
+|**Maximum bandwidth**<sup>[1](#anchortext)</sup> | 200 Mb/Sec |
+|**Maximum protected devices** | 1,000 |
+
+#### SMB ruggedized
+
-<a id="anchortext">1</a> Bandwidth capacity can vary, depending on the distribution of protocols.
+|Element |Description |
+|||
+|**Model** | HPE EL300 |
+|**Monitoring ports** | Up to 5 RJ45 |
+|**Maximum bandwidth**<sup>[1](#anchortext)</sup> | 100 Mb/sec |
+|**Maximum protected devices** | 800 |
+
+#### Office Ruggedized
++
+|Element |Description |
+|||
+|**Model** | YS-techsystems YS-FIT2 |
+|**Monitoring ports** | Up to 2 RJ45 |
+|**Maximum bandwidth**<sup>[1](#anchortext)</sup> | 10 Mb/sec |
+|**Maximum protected devices** | 100 |
### Virtual sensors
After you acquire an on-premises management console, go to **Defender for IoT**
## Appliance specifications
-This section describes hardware specifications for the following appliances:
--- Corporate deployment: HPE ProLiant DL360--- Enterprise deployment: HPE ProLiant DL20--- SMB deployment: HPE ProLiant DL20--- Virtual appliance specifications
+This section describes hardware specifications for supported models.
-## Corporate deployment: HPE ProLiant DL360
+### Corporate deployment: HPE ProLiant DL360
| Component | Technical specifications | |--|--|
This section describes hardware specifications for the following appliances:
| Power | 2 x HPE 500 W Flex Slot Platinum Hot Plug Low Halogen Power Supply Kit | | Rack support | HPE 1U Gen10 SFF Easy Install Rail Kit |
-### Appliance BOM
+#### Appliance BOM
| PN | Description | Quantity | |--|--|--|
This section describes hardware specifications for the following appliances:
| 512485-B21 | HPE iLO Adv 1-Server License 1 Year Support | 1 | | 874543-B21 | HPE 1U Gen10 SFF Easy Install Rail Kit | 1 |
-## Enterprise deployment: HPE ProLiant DL20
+### Enterprise deployment: HPE ProLiant DL20
| Component | Technical specifications | |--|--|
This section describes hardware specifications for the following appliances:
| Power | Dual Hot Plug Power Supplies 500 W | | Rack support | HPE 1U Short Friction Rail Kit |
-### Appliance BOM
+#### Appliance BOM
| PN | Description: high end | Quantity | |--|--|--|
This section describes hardware specifications for the following appliances:
| P06722-B21 | HPE DL20 Gen10 RPS Enablement FIO Kit | 1 | | 775612-B21 | HPE 1U Short Friction Rail Kit | 1 |
-## SMB deployment: HPE ProLiant DL20
+### SMB deployment: HPE ProLiant DL20
| Component | Technical specifications | |--|--|
This section describes hardware specifications for the following appliances:
| Power | Hot Plug Power Supply 290 W | | Rack support | HPE 1U Short Friction Rail Kit |
-### Appliance BOM
+#### Appliance BOM
| PN | Description | Quantity | |--|--|--|
This section describes hardware specifications for the following appliances:
| 512485-B21 | HPE iLO Adv 1-Server License 1 Year Support | 1 | | 775612-B21 | HPE 1U Short Friction Rail Kit | 1 |
-## SMB Rugged: HPE Edgeline EL300
+### SMB Rugged: HPE Edgeline EL300
| Component | Technical specifications | |--|--|
This section describes hardware specifications for the following appliances:
| Vibration | 0.3 gram 10 Hz to 300 Hz, 15 minutes per axis - Din rail | | Shock | 10G 10 ms, half-sine, three for each axis. (Both positive & negative pulse) ΓÇô Din Rail |
-### Appliance BOM
+#### Appliance BOM
| Product | Description | |--|--| | P25828-B21 | HPE Edgeline EL300 v2 Converged Edge System |
This section describes hardware specifications for the following appliances:
| P08020-B21 optional | HPE Edgeline EL300 Wall Mount Kit | | P03456-B21 optional | HPE Edgeline 1GbE 4-port TSN FIO Daughter Card |
+### Office Rugged: YS-techsystems YS-FIT2
+
+| Component | Technical specifications |
+|--|--|
+| Construction | Aluminum, zinc die cast parts, Fanless & Dust-proof Design |
+| Dimensions (height x width x depth) | 112mm (W) x 112mm (D) x 25mm (H) / 4.41in (W) x 4.41in (D) x 0.98 in (H) |
+| Weight | 0.35kg (0.77 lbs) |
+| CPU | Intel Atom® x7-E3950 Processor |
+| Chipset | Intel® Q170 Platform Controller Hub |
+| Memory | 8GB SODIMM 1 x 204-pin DDR3L non-ECC 1866 (1.35V) |
+| Storage | 128GB M.2 M-key 2260* or 2242 (SATA 3 6 Gbps) PLP |
+| Network controller | 2x 1GbE LAN Ports |
+| Device access | 2 x USB 2.0, 2 X USB 3.0 |
+| Power Adapter | 7V-20V (Optional 9V-36V) DC / 5W-15W Power Adapter / Vehicle DC cable for fitlet2 (Optional) / UPS fit-uptime Miniature 12V UPS for miniPCs (Optional) |
+| Mounting | VESA / wall or Din Rail mounting kit |
+| Operating Temperature | 0┬░C ~ 70┬░C |
+| Humidity | 5%~95%, non-condensing |
+| Vibration | IEC TR 60721-4-7:2001+A1:03, Class 7M1, test method IEC 60068-2-27 (15g , 6 directions) |
+| Shock | 10G 10 ms, half-sine, three for each axis. (Both positive & negative pulse) ΓÇô Din Rail |
+| EMC | CE/FCC Class B |
+ ## Virtual appliance specifications ### Sensors
defender-for-iot How To Set Up Snmp Mib Monitoring https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-iot/organizations/how-to-set-up-snmp-mib-monitoring.md
# Set up SNMP MIB monitoring
-You can perform sensor health monitoring by using Simple Network Management Protocol (SNMP). The sensor responds to SNMP queries sent from an authorized monitoring server. The SNMP monitor polls the sensor OIDs periodically (up to 50 times a second).
+Monitoring sensor health is possible through the Simple Network Management Protocol (SNMP). The sensor responds to SNMP requests sent by an authorized monitoring server. The SNMP monitor polls sensor OIDs periodically (up to 50 times a second).
-The SNMP supported versions are SNMP v2 or SNMP v3. SNMP uses UDP as its transport protocol with port 161 (SNMP).
+Supported SNMP versions are SNMP version 2 and version 3. The SNMP protocol utilizes UDP as its transport protocol with port 161.
## Sensor OIDs
Note that:
- Hardware-related MIBs (CPU usage, CPU temperature, memory usage, disk usage) should be tested on all architectures and physical sensors. CPU temperature on virtual machines is expected to be not applicable. - You can download the log that contains all the SNMP queries that the sensor receives, including the connection data and raw data.
+## Prerequisites for AES and 3-DES Encryption Support for SNMP Version 3
+- The network management station (NMS) must support Simple Network Management Protocol (SNMP) Version 3 to be able to use this feature.
+- It is important to understand the SNMP architecture and the terminology of the architecture to understand the security model used and how the security model interacts with the other subsystems in the architecture.
+- Before you begin configuring SNMP monitoring, you need to open the port UDP 161 in the firewall.
## Set up SNMP monitoring
-1. Before you begin configuring SNMP monitoring, you need to open the port UDP 161 in the firewall.
1. On the side menu, select **System Settings**. 2. Expand **Sensor Management**, and select **SNMP MIB Monitoring** : 3. Select **Add host** and enter the IP address of the server that performs the system health monitoring. You can add multiple servers.
Note that:
|--|--| | **Username** | The SNMP username can contain up to 32 characters and include any combination of alphanumeric characters (uppercase letters, lowercase letters, and numbers). Spaces are not allowed. <br /> <br />The username for the SNMP v3 authentication must be configured on the system and on the SNMP server. | | **Password** | Enter a case-sensitive authentication password. The authentication password can contain 8 to 12 characters and include any combination of alphanumeric characters (uppercase letters, lowercase letters, and numbers). <br /> <br/>The username for the SNMP v3 authentication must be configured on the system and on the SNMP server. |
- | **Auth Type** | Select MD5 or SHA. |
- | **Encryption** | Select DES or AES. |
+ | **Auth Type** | Select MD5 or SHA-1. |
+ | **Encryption** | Select DES (56 bit key size)[^1] or AES (AES 128 bits supported)[^2]. |
| **Secret Key** | The key must contain exactly eight characters and include any combination of alphanumeric characters (uppercase letters, lowercase letters, and numbers). |
+[^1] RFC3414 User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)
+
+[^2] RFC3826 The Advanced Encryption Standard (AES) Cipher Algorithm in the SNMP User-based Security Model
+ 5. Select **Save**. ## Next steps
devtest-labs Deliver Proof Concept https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/devtest-labs/deliver-proof-concept.md
Title: Deliver a proof of concept
-description: Learn how to deliver a proof of concept so Azure DevTest Labs can be successfully incorporated into an enterprise environment.
+description: Use a proof of concept or pilot deployment to investigate incorporating Azure DevTest Labs into an enterprise environment.
Previously updated : 03/12/2022 Last updated : 03/22/2022
-# Deliver a proof of concept
+# Deliver a proof of concept for Azure DevTest Labs enterprise deployment
-One of the key scenarios for Azure DevTest Labs is enabling development and testing environments in the cloud. Examples include:
+This article describes how an enterprise can deliver a successful proof of concept or pilot for an Azure DevTest Labs deployment. Proof of concept uses a concentrated effort from a single team to establish organizational value.
-* Creating developer desktops in the cloud.
-* Configuring environments for testing.
-* Enabling access to virtual machines and other Azure resources.
-* Setting up a sandbox area for developers to learn and experiment.
+Every enterprise has different requirements for incorporating Azure DevTest Labs into their organization. Proof of concept is a first step toward a successful end-to-end deployment.
-DevTest Labs policy guardrails and cost controls help enterprises provide developers with "self-serve Azure" that adheres to corporate security, regulatory, and compliance policies.
+For a successful proof of concept:
-Every enterprise has different requirements for how Azure DevTest Labs can be successfully incorporated into their environment. This article describes the most common steps that enterprises need to complete to ensure a successful proof of concept. A proof of concept is the first step toward a successful end-to-end deployment.
+1. Pick one or two teams.
+1. Identify the teams' scenarios, such as developer virtual machines (VMs) or test environments.
+1. Document current use cases.
+1. Deploy DevTest Labs to fulfill the teams' scenarios and use cases.
+1. Evaluate success and lessons learned.
-## Getting started
+Key [DevTest Labs scenarios](devtest-lab-guidance-get-started.md) include cloud development, testing, and training environments. Use cases include:
-To get started on delivering a proof of concept. ItΓÇÖs important to spend some time to learn about Azure and DevTest Labs. Here are some starting resources:
-
-* [Understanding the Azure portal](https://azure.microsoft.com/features/azure-portal/)
-* [Basics of DevTest Labs](devtest-lab-overview.md)
-* [DevTest Labs supported scenarios](devtest-lab-guidance-get-started.md)
-* [DevTest Labs enterprise documentation](devtest-lab-guidance-prescriptive-adoption.md)
-* [Intro to Azure networking](../virtual-network/virtual-networks-overview.md)
+- Creating developer desktops.
+- Configuring test environments.
+- Enabling VM and Azure resource access.
+- Setting up sandboxes for learning and experimentation.
+- Configuring lab policies and cost controls that comply with corporate regulations.
## Prerequisites
-To successfully complete a pilot or proof of concept with DevTest Labs, there are a few prerequisites:
+To successfully complete a DevTest Labs proof of concept, fulfill the following prerequisites:
+
+### Learn the basics
+
+Learn about Azure and DevTest Labs by using the following resources:
+
+- [Understand the Azure portal](https://azure.microsoft.com/features/azure-portal)
+- [DevTest Labs overview](devtest-lab-overview.md)
+- [DevTest Labs scenarios](devtest-lab-guidance-get-started.md)
+- [DevTest Labs in the enterprise](devtest-lab-guidance-prescriptive-adoption.md)
+- [DevTest Labs enterprise reference architecture](devtest-lab-reference-architecture.md)
+
+### Get an Azure subscription
+
+- Enterprises with an existing [Enterprise Agreement](https://azure.microsoft.com/pricing/purchase-options/enterprise-agreement) that enables access to Azure can use an existing or new subscription for DevTest Labs. If there's an Enterprise Agreement in place, an [Enterprise Dev/Test subscription](https://azure.microsoft.com/offers/ms-azr-0148p/) gives you access to Windows 10/Windows 8.1 client operating systems, and discounted rates for development and testing workloads.
+
+- Alternatively, you can use a [Visual Studio subscription](https://azure.microsoft.com/pricing/member-offers/visual-studio-subscriptions) for the pilot deployment, and take advantage of free Azure credits.
+
+- You can also create and use a [free Azure account](https://azure.microsoft.com/free/search/?&OCID=AID719825_SEM_g4lyBqgB&lnkd=Bing_Azure_Brand&msclkid=ecc4275a31b61375749e7a5322c20de8&dclid=CMGW5-m78-ICFaLt4QodmUwGtQ) for the pilot.
+
+### Enroll all users in Azure AD
+
+For management, such as adding users or adding lab owners, all lab users must belong to the [Azure Active Directory (Azure AD)](https://azure.microsoft.com/services/active-directory) tenant for the Azure subscription the pilot uses. Many enterprises set up [hybrid identity](/azure/active-directory/hybrid/whatis-hybrid-identity) to enable users to use their on-premises identities in the cloud. You don't need a hybrid identity for a DevTest Labs proof of concept.
+
+## Scope the proof of concept
+
+The focus of the pilot is to use the minimum necessary workloads and dependencies to decide whether Azure DevTest Labs is right for your enterprise. Choose the simplest workload with the fewest dependencies to help ensure quick and clean success. Or, pick the most representative workload that exposes potential complexities, so you can replicate pilot success in the [scale-out phase](devtest-lab-guidance-scale.md).
+
+Plan the proof of concept carefully before you start the implementation. Be sure to set appropriate expectations with users that the pilot resources won't stay around indefinitely.
+
+Do these tasks to scope the pilot:
+
+- Define goals and success criteria.
+- List a small set of workloads or scenarios for the pilot to cover.
+- Determine what resources the lab must make available, such as custom images or Marketplace images.
+- Decide on network topology and lab policies.
+- Choose the users and teams to be involved in the pilot and to verify the results.
+- Decide on the pilot duration, such as two weeks or a month.
+- Decide how to dispose of the pilot resources when the pilot ends.
+
+There's a tendency to try to make the pilot perfect, so it will mirror the final state after DevTest Labs rollout. However, trying to make the proof of concept perfect means too much effort before you can start the pilot. The purpose of the pilot is to determine the right decisions for scaling up and rolling out the final service.
+
+## Make other planning and design decisions
+
+A full DevTest Labs solution includes some important planning and design decisions. The proof of concept can help you make these decisions. Further considerations include:
+
+### Subscription topology
+
+The enterprise-level requirements for resources in Azure can extend beyond the [available quotas within a single subscription](/azure/azure-resource-manager/management/azure-subscription-service-limits). You might need several Azure subscriptions, or you might need to make service requests to increase initial subscription limits. For more information, see [Scalability considerations](devtest-lab-reference-architecture.md#scalability-considerations).
+
+It's important to decide how to distribute resources across subscriptions before final, full-scale rollout, because it's difficult to move resources to another subscription later. For example, you can't move a lab to another subscription after it's created. The [Subscription decision guide](/azure/architecture/cloud-adoption/decision-guides/subscriptions) is a valuable planning resource.
+
+### Network topology
-* **Azure subscription**: Enterprises often have an existing [Enterprise Agreement](https://azure.microsoft.com/pricing/purchase-options/enterprise-agreement/) in place that enables access to Azure, and they can use an existing or new subscription for DevTest Labs. Alternatively, enterprises can use a [Visual Studio subscription](https://azure.microsoft.com/pricing/member-offers/visual-studio-subscriptions/) during the pilot (taking advantage of the free Azure credits). If neither of those options is available, an enterprise can create and use a [free Azure account](https://azure.microsoft.com/free/search/?&OCID=AID719825_SEM_g4lyBqgB&lnkd=Bing_Azure_Brand&msclkid=ecc4275a31b61375749e7a5322c20de8&dclid=CMGW5-m78-ICFaLt4QodmUwGtQ). If there's an Enterprise Agreement in place, an [Enterprise Dev/Test subscription](https://azure.microsoft.com/offers/ms-azr-0148p/) is a great option. You get access to Windows 10/Windows 8.1 client operating systems and discounted rates for development and testing workloads.
-* **Azure Active Directory tenant**: For management, such as adding users or adding lab owners, users must be part of the [Azure Active Directory tenant](https://azure.microsoft.com/services/active-directory/) for the Azure subscription the pilot uses. Often enterprises will set up [hybrid identity](../active-directory/hybrid/whatis-hybrid-identity.md) to enable users to use their on-premises identity in the cloud. You don't need a hybrid identity for the DevTest Labs pilot.
+The [default network infrastructure](/azure/app-service/networking-features) that DevTest Labs automatically creates might not meet requirements and constraints for enterprise users. For example, enterprises often use:
-## Scoping of the pilot
+- [Azure ExpressRoute-connected virtual networks](/azure/architecture/reference-architectures/hybrid-networking) for connecting on-premises networks to Azure.
+- [Peered virtual networks](/azure/virtual-network/virtual-network-peering-overview) in a [hub-spoke configuration](/azure/architecture/reference-architectures/hybrid-networking/hub-spoke) for connecting virtual networks across subscriptions.
+- [Forced tunneling](/azure/vpn-gateway/vpn-gateway-forced-tunneling-rm) to limit traffic to on-premises networks.
-It's important to plan a pilot before you start the implementation. Knowing in advance that the resources wonΓÇÖt stay around indefinitely sets appropriate expectations for users of the pilot.
+For more information, see [Networking components](devtest-lab-reference-architecture.md#networking-components).
-> [!IMPORTANT]
-> We can't emphasize enough the importance of crisply scoping the pilot and setting expectations up front.
+DevTest Labs also supports adding existing virtual networks to the lab to use for creating new VMs. For more information, see [Add a virtual network in Azure DevTest Labs](devtest-lab-configure-vnet.md).
-Answer these key questions before you kick off the pilot:
+### Virtual machine remote access
-* What do you want to learn, and what does success look like for the pilot?
-* What workloads or scenarios will be covered in the pilot? ItΓÇÖs important to define only a small set to ensure that the pilot can be scoped and completed quickly.
-* What resources must be available in the lab? For example: custom images, marketplace images, policies, network topology.
-* Who are the users and teams that will be involved in the pilot to verify the experience?
-* What is the duration of the pilot? Choose a timeframe that aligns well to planned scope, like two weeks or one month.
-* After the pilot is complete, what will happen with the allocated resources that were used during the pilot? Do you plan to discard the pilot resources? You might think:
-
- "If we plan on throwing away the virtual machines and labs at the end of the pilot, we can set up a single subscription for the pilot and do all our work there. We can resolve questions about the scale rollout in parallel."
+There are several options for enterprise users to remotely access DevTest Labs VMs:
-There's a tendency to try to make the pilot "perfect," so it's identical to the final state after rolling out the service at the company. This assumption is false. The closer you get to "perfect," the more you have to complete *before* getting started on the pilot. The purpose of the pilot is to be able to make the right decisions on scaling up and rolling out the final service.
+- The easiest and most secure method is to use browser connectivity through Azure Bastion. The VMs don't need to use public IP addresses. For more information, see [Enable browser connection to DevTest Labs VMs with Azure Bastion](enable-browser-connection-lab-virtual-machines.md).
-The focus of the pilot should be to pick the minimum necessary workloads and dependencies to decide whether Azure DevTest Labs is right for your enterprise. We recommend you choose the simplest workload with the least dependencies to help ensure a quick and clean success. If that isn't possible, pick a most representative workload that exposes potential complexities, so you can replicate pilot success in the scale-out phase.
+- Another option is to use public IPs or [shared public IPs](devtest-lab-shared-ip.md), and connect through Remote Desktop Protocol (RDP) or secure shell (SSH).
-The following example demonstrates a well-scoped proof of concept.
+- If the preceding options aren't sufficient, you can connect through a remote access gateway, as shown in the [DevTest Labs enterprise reference architecture](devtest-lab-reference-architecture.md). For more information, see [Configure a lab to use Remote Desktop Gateway](configure-lab-remote-desktop-gateway.md).
-## Example: proof-of-concept plan
+- Enterprises can also connect their labs to their on-premises networks through ExpressRoute or a site-to-site VPN. This option enables direct RDP or SSH connections to the VMs based on their private IP addresses, with no exposure to the internet.
-This section shows a sample to use for scoping a proof of concept of the pilot for DevTest Labs.
+### Lab access and permissions
-> [!TIP]
-> To minimize the possibility of setting up your project for failure, we highly recommend that you don't skip the example described in this section.
+Before final DevTest Labs rollout, it's important to decide broadly who to give each level of lab access. The two key DevTest Labs [permission levels](devtest-lab-add-devtest-user.md) are Owner and DevTest Labs User. A common model is for the budget owner, such as the team lead, to be the lab owner, with the team members as lab users. The person responsible for the budget can then adjust lab policy settings and keep the team within budget.
-### Overview
+## Complete the proof of concept
-Our enterprise plans to develop a new Azure environment based on DevTest Labs. This environment will be isolated from the corporate network. To determine if the solution will meet the requirements, we'll develop a proof of concept to validate the end-to-end solution. We've included several vendors to try out and verify the experience.
+After you cover the defined scenarios, complete the pilot. Gather feedback from the users, determine if the pilot was successful, and decide if the organization will move ahead on an enterprise-scale DevTest Labs rollout. Start to consider automating deployment of DevTest Labs and associated resources to ensure consistency throughout the scaled rollout.
-### Outcomes
+## Example proof-of-concept plan
-When building a proof of concept, we focus first on the outcomes (what are we trying to achieve). By the end of the proof of concept, we expect:
+This following example shows a plan for scoping a DevTest Labs proof of concept deployment.
-* A working end-to-end solution for vendors to use guest accounts in Azure Active Directory (Azure AD) to access an isolated environment in Azure. The environment has the resources required for them to be productive.
-* Any potential blocking issues that affect broader scale use and adoption are enumerated and understood.
-* The individuals involved in developing the proof of concept have a good understanding of all code. They also understand collateral involved and are confident in broader adoption.
+### Overview
-### Open questions and prerequisites
+An enterprise plans to develop a new Azure DevTest Labs environment for vendors to use, which is isolated from the corporate network. To determine if the solution will meet the requirements, the organization develops a proof of concept to validate the end-to-end scenario.
-* Do we have a subscription created that we can use for this project?
-* Do we have an Azure AD tenant and an Azure AD global admin identified who can provide help and guidance for Azure AD-related questions?
-* Do we have a place to collaborate for the individuals working on the project?
+### Goals
- * Source code and scripts (like Azure Repos)
- * Documents (like Microsoft Teams or SharePoint)
- * Conversations (like Microsoft Teams)
- * Work items (like Azure Boards)
-* What are the required resources for vendors? Resources include applications available on the network, both locally on the virtual machines and on other required servers.
-* Will the virtual machines be joined to a domain in Azure? If so, will this be Azure Active Directory Domain Services (Azure AD DS) or something else?
-* Have we identified the team or vendors that will be the target of the proof of concept? Who will be the customers for the environment?
-* Which Azure region will we use for the proof of concept?
-* Do we have a list of services the vendors are allowed to use via DevTest Labs besides IaaS (VMs)?
-* How do we plan to train vendors/users on using the lab?
+The proof of concept has the following goals:
-### Components of the proof-of-concept solution
+- A working end-to-end solution for vendors using Azure AD guest accounts to access an isolated Azure environment.
+- A DevTest Labs environment with all the necessary resources for vendors to be productive.
+- Identification and understanding of any potential blocking issues that affect broader use and adoption.
+- Good understanding of all code and collateral by the individuals developing the solution.
+- Confidence in the broader adoption by all participants.
-We are expecting the solution to have the following components:
+### Requirements
-* Various vendor teams will use a set of labs in Azure.
-* The labs are connected to a network infrastructure that supports the requirements.
-* The vendors have access to the labs via Azure AD and role assignments.
-* Vendors have a way to successfully connect to their resources. Specifically, a site-to-site VPN enables accessing virtual machines directly without public IP addresses.
-* A set of artifacts covers the required software that the vendors need on the virtual machines.
+The solution has the following requirements:
-## Other planning and design decisions
+- Vendor teams can use a set of labs in Azure DevTest Labs.
+- The vendors have access to the labs via Azure AD and role assignments.
+- Vendors have a way to successfully connect to their resources, such as a site-to-site VPN that enables accessing VMs without using public IP addresses.
+- The labs connect to a network infrastructure that supports the requirements.
+- DevTest Labs installs the set of software artifacts that vendors need on the VMs.
-Before you release a full DevTest Labs solution, you have to make some important planning and design decisions. The experience of working on a proof of concept can help you make these decisions. Further consideration includes:
+### Prerequisites
-* **Subscription topology**: The enterprise-level requirements for resources in Azure can extend beyond the [available quotas within a single subscription](../azure-resource-manager/management/azure-subscription-service-limits.md). You might need multiple Azure subscriptions, or service requests to increase initial subscription limits. It's important to decide up front how to distribute resources across subscriptions, because it's difficult to move resources to another subscription later. For example, you can't move a lab to another subscription after it's created. One valuable resource is the [subscription decision guide](/azure/architecture/cloud-adoption/decision-guides/subscriptions/).
-* **Network topology**: The [default network infrastructure](../app-service/networking-features.md) that DevTest Labs automatically creates might not be sufficient to meet the requirements and constraints for the enterprise users. ItΓÇÖs common to see [Azure ExpressRoute connected virtual networks](/azure/architecture/reference-architectures/hybrid-networking/), [hub-and-spoke](/azure/architecture/reference-architectures/hybrid-networking/hub-spoke) for connectivity across subscriptions, and even [forced routing](../vpn-gateway/vpn-gateway-forced-tunneling-rm.md) to ensure on-premises connectivity only. DevTest Labs allows for existing virtual networks to be connected to the lab to enable their use when you're creating new virtual machines in the lab.
-* **Remote access of virtual machines**: There are many options to remotely access the virtual machines located in DevTest Labs. The easiest is to use public IPs or shared public IPs. [These settings](devtest-lab-shared-ip.md) are available in the lab. If these options aren't sufficient, using a remote access gateway is also an option. The [DevTest Labs enterprise reference architecture](devtest-lab-reference-architecture.md) shows this option. For more information, see [Configure a lab to use Remote Desktop Gateway](configure-lab-remote-desktop-gateway.md). Enterprises can also use ExpressRoute or a site-to-site VPN to connect their labs to their on-premises network. This option enables direct remote desktop or SSH connections to the virtual machines based on their private IP addresses. There's no exposure to the internet.
-* **Handling permissions**: The two key permissions commonly used in DevTest Labs are [Owner and Lab User](devtest-lab-add-devtest-user.md). It's important to decide before rolling out DevTest Labs broadly who will be entrusted with each level of access in the lab. A common model is the budget owner (team lead, for example) as the lab owner and the team members as lab users. This model enables the person (team lead) responsible for the budget to adjust the policy settings and keep the team within budget.
+- A subscription to use for the project
+- An Azure AD tenant, and an Azure AD global administrator who can provide Azure AD help and guidance
+- Ways for project members to collaborate, such as:
+ - Azure Repos for source code and scripts
+ - Microsoft Teams or SharePoint for documents
+ - Microsoft Teams for conversations
+ - Azure Boards for work items
-## Completing the proof of concept
+### Setup tasks
-After the expected learnings have been covered, it's time to complete the pilot. Gather feedback from the users, determine if the pilot was successful, and decide if the organization will move ahead on an enterprise-scale rollout of DevTest Labs. It's also a great time to consider automating deployment of DevTest Labs and associated resources to ensure consistency throughout the scale rollout.
+- Decide what Azure region to use for the proof of concept.
+- Decide whether to join lab VMs to the Azure AD domain, and whether to use Azure Active Directory Domain Services (Azure AD DS) or another method.
+- Identify the vendors who will use the proof of concept environment.
+- Determine the required resources for the vendors, such as software available on the VMs.
+- Decide on the Azure services, other than VMs, that the vendors can use in DevTest Labs.
+- Plan how to train vendors to use the lab.
## Next steps
-* [DevTest Labs enterprise documentation](devtest-lab-guidance-prescriptive-adoption.md)
-* [Reference architecture for an enterprise](devtest-lab-reference-architecture.md)
-* [Scaling up your DevTest Labs deployment](devtest-lab-guidance-orchestrate-implementation.md)
-* [Orchestrate the implementation of Azure DevTest Labs](devtest-lab-guidance-orchestrate-implementation.md)
+- [Scale up a DevTest Labs deployment](devtest-lab-guidance-orchestrate-implementation.md)
+- [Orchestrate DevTest Labs implementation](devtest-lab-guidance-orchestrate-implementation.md)
devtest-labs Devtest Lab Create Environment From Arm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/devtest-labs/devtest-lab-create-environment-from-arm.md
By default, lab users have **Reader** role in environments, so they can't change
If you need to create multiple environments for development or testing scenarios, you can automate environment deployment with Azure PowerShell or Azure CLI.
-You can use the Azure CLI command [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create) to create environments. For more information, see [Deploy resources with Resource Manager templates and Azure CLI](../azure-resource-manager/templates/deploy-cli.md).
+You can use the Azure CLI command [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create) to create environments. For more information, see [Deploy resources with Resource Manager templates and Azure CLI](../azure-resource-manager/templates/deploy-cli.md).
Lab owners and administrators can use Azure PowerShell to create VMs and environments from ARM templates.
devtest-labs Devtest Lab Use Arm And Powershell For Lab Resources https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/devtest-labs/devtest-lab-use-arm-and-powershell-for-lab-resources.md
Or to access DevTest Labs quickstart template from the Azure portal:
Lab administrators can deploy ARM templates with Azure CLI or Azure PowerShell to automate VM creation and management.
-In Azure CLI, use the commands [az lab vm create](/cli/azure/lab/vm#az_lab_vm_create) and [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create) to automate VM creation with ARM templates. For more information and instructions, see [Deploy resources with Resource Manager templates and Azure CLI](../azure-resource-manager/templates/deploy-cli.md).
+In Azure CLI, use the commands [az lab vm create](/cli/azure/lab/vm#az-lab-vm-create) and [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create) to automate VM creation with ARM templates. For more information and instructions, see [Deploy resources with Resource Manager templates and Azure CLI](../azure-resource-manager/templates/deploy-cli.md).
In Azure PowerShell, use [New-AzResource](/powershell/module/az.resources/new-azresource) and [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) to provision VMs with ARM templates.
devtest-labs Devtest Lab Vmcli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/devtest-labs/devtest-lab-vmcli.md
The following command creates a VM from a marketplace image with ssh authenticat
az lab vm create --lab-name sampleLabName --resource-group sampleLabResourceGroup --name sampleVMName --image "Ubuntu Server 16.04 LTS" --image-type gallery --size Standard_DS1_v2 --authentication-type ssh --generate-ssh-keys --ip-configuration public ```
-You can also create virtual machines based on formulas by setting the **image-type** parameter to **formula**. If you need to choose a specific virtual network for your virtual machine, use the **vnet-name** and **subnet** parameters. For more information, see [az lab vm create](/cli/azure/lab/vm#az_lab_vm_create).
+You can also create virtual machines based on formulas by setting the **image-type** parameter to **formula**. If you need to choose a specific virtual network for your virtual machine, use the **vnet-name** and **subnet** parameters. For more information, see [az lab vm create](/cli/azure/lab/vm#az-lab-vm-create).
## Verify that the VM is available. Use the `az lab vm show` command to verify that the VM is available before you start and connect to it.
devtest-labs Samples Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/devtest-labs/samples-cli.md
This script uses the following commands:
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az lab vm create](/cli/azure/lab/vm#az_lab_vm_create) | Creates a VM in a lab. |
-| [az lab vm show](/cli/azure/lab/vm#az_lab_vm_show) | Displays the status of the VM in a lab. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az lab vm create](/cli/azure/lab/vm#az-lab-vm-create) | Creates a VM in a lab. |
+| [az lab vm show](/cli/azure/lab/vm#az-lab-vm-show) | Displays the status of the VM in a lab. |
## Start a VM
This script uses the following commands:
| Command | Notes | |||
-| [az lab vm start](/cli/azure/lab/vm#az_lab_vm_start) | Starts a VM in a lab. This operation can take a while to complete. |
+| [az lab vm start](/cli/azure/lab/vm#az-lab-vm-start) | Starts a VM in a lab. This operation can take a while to complete. |
## Stop and delete a VM
This script uses the following commands:
| Command | Notes | |||
-| [az lab vm stop](/cli/azure/lab/vm#az_lab_vm_stop) | Stops a VM in a lab. This operation can take a while to complete. |
-| [az lab vm delete](/cli/azure/lab/vm#az_lab_vm_delete) | Deletes a VM in a lab. This operation can take a while to complete. |
+| [az lab vm stop](/cli/azure/lab/vm#az-lab-vm-stop) | Stops a VM in a lab. This operation can take a while to complete. |
+| [az lab vm delete](/cli/azure/lab/vm#az-lab-vm-delete) | Deletes a VM in a lab. This operation can take a while to complete. |
## Clean up deployment
devtest-labs Use Paas Services https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/devtest-labs/use-paas-services.md
Title: Use Platform-as-a-Service (PaaS) services
-description: Learn how to use Platform-as-a-Service (Pass) services in Azure DevTest Labs.
+ Title: Use platform-as-a-service (PaaS) environments in labs
+description: Learn about platform-as-a-service (PaaS) environments in Azure DevTest Labs.
Previously updated : 06/26/2020 Last updated : 03/22/2022
-# Use Platform-as-a-Service (PaaS) services in Azure DevTest Labs
-PaaS is supported in DevTest Labs via the environments feature. Environments in DevTest Labs are supported by pre-configured Azure Resource Manager templates in a Git repository. Environments can contain both PaaS and IaaS resources. They allow you to create complex systems that can include Azure resources such as virtual machines, databases, virtual networks, and Web apps, which are customized to work together. These templates allow consistent deployment and improved management of environments using source code control.
+# Use PaaS services in Azure DevTest Labs
-A properly set up system allows the following scenarios:
+This article describes platform-as-a-service (PaaS) support in Azure DevTest Labs. DevTest Labs supports PaaS through *environments*, which can include both PaaS and infrastructure-as-a-service (IaaS) resources. Environments contain services and software like virtual machines (VMs), databases, virtual networks, and web apps that are customized to work together.
-- Developers to have independent and multiple environments-- Testing on different configurations asynchronously-- Integration into staging and production pipelines without any template changes-- Having both development machines and environments within the same lab improves ease of management and cost reporting.
+DevTest Labs creates environments by using preconfigured Azure Resource Manager (ARM) templates from Git repositories. Keeping the ARM templates under source control promotes consistent environment deployment and management.
-The DevTest Labs resource provider creates resources on the lab userΓÇÖs behalf, so no extra permissions need to be given to the lab user to enable use of the PaaS resources. The following image shows a Service Fabric cluster as an environment in the lab.
+The following image shows a SharePoint farm created as an environment in a lab.
-![Service Fabric cluster as an environment](./media/create-environment-service-fabric-cluster/cluster-created.png)
+![Screenshot of a SharePoint environment in a lab.](media/use-paas-services/environments.png)
-For for more information on setting up environments, see [Create multi-VM environments and PaaS resources with Azure Resource Manager templates](devtest-lab-create-environment-from-arm.md). DevTest Labs has a public repository of Azure Resource Manager templates that you can use to create environments without having to connect to an external GitHub source by yourself. For more information on public environments, see [Configure and use public environments in Azure DevTest Labs](devtest-lab-configure-use-public-environments.md).
+## PaaS scenarios
-In large organizations, development teams typically provide environments such as customized/isolated testing environments. There may be environments that are to be used by all teams within a business unit or a division. The IT group may want to provide their environments that can be used by all the teams in the organization.
+DevTest Labs PaaS environments support the following scenarios:
-## Customizations
+- Developers can create multiple, independent environments.
+- Testers can test different configurations asynchronously and automatically.
+- Staging and production pipeline integration can happen without any template changes.
+- Lab owners can configure policies and track costs for the environment as a whole.
-#### Sandbox
-The lab owner can customize lab environments to change the userΓÇÖs role from **reader** to **contributor** within the resource group. This capability is in the **Lab Settings** page under the **Configuration and Policies** of the lab. This change in role allows the user to add or remove resources within that environment. If you want to restrict the access further, use Azure policies. This functionality allows you to customize the resources or configuration without the access at the subscription level.
+### Developer scenarios
-#### Custom tokens
-There's some custom lab information that is outside of the resource group and is specific to environments that the template can access. Here are some of them:
+To create an environment, a developer selects an environment template rather than a machine image, and enters any required information. Individual developer environments allow faster change deployment and improved inner loop debugging. Developers can destroy their environments anytime, and recreate them by using the latest templates. This capability helps reduce downtime from creating systems manually or recovering from faults.
-- Lab network identification-- Location-- Storage account in which the Resource Manager templates files are stored.
-
-#### Lab virtual network
-The [Connecting environments to the lab's virtual network](connect-environment-lab-virtual-network.md) article describes how to modify your Resource Manager template to use the `$(LabSubnetId)` token. When an environment is created, the `$(LabSubnetId)` token is replaced by the first subnet mark where the **use in virtual machine creation** option is set to **true**. It allows our environment to use previously created networks. If you want to use the same Resource Manager templates in environments in test as staging and production, use `$(LabSubnetId)` as a default value in a Resource Manager template parameter.
+### Test scenarios
+
+DevTest Labs environments allow independent, asynchronous testing of specific code and configurations. Testers can use continuous integration and continuous deployment (CI/CD) pipelines to set up environments, apply code from individual pull requests, and do automated and manual testing. Automation can manage and track multiple environments across subscriptions and labs.
+
+### Cost tracking
+
+The overall cost trend for a lab includes Azure resources within environments. The cost by resources doesn't break out the different resources within an environment, but displays the environment as a single cost. For more information, see [Track costs associated with a lab in Azure DevTest Labs](devtest-lab-configure-cost-management.md).
-#### Environment Storage Account
-DevTest Labs supports the use of [nested Resource Manager templates](../azure-resource-manager/templates/linked-templates.md). The [[Deploy nested Azure Resource Manager templates for testing environments](deploy-nested-template-environments.md) article explains how to use `_artifactsLocation` and `_artifactsLocationSasToken` tokens to create a URI to a Resource Manager template in the same folder as or in a nested folder of the main template. For more information about these two tokens, see the **Deployment artifacts** section of [Azure Resource Manager ΓÇô Best Practices Guide](https://github.com/Azure/azure-quickstart-templates/blob/master/1-CONTRIBUTION-GUIDE/best-practices.md).
+### Access and roles
-## User Experience
+Lab owners can grant lab access and assign user roles. For more information, see [Add lab owners, contributors, and users in Azure DevTest Labs](devtest-lab-add-devtest-user.md).
-## Developer
-Developers use the same workflow for creating a VM to create a specific environment. They select the environment vs. the machine image and enter the necessary information required by the template. Each developer having an environment allows for deployment of changes and improved inner loop debugging. The environment can be created at any time using the latest template. This feature allows the environments to be destroyed and recreated to help reduce the downtime from having to manually creating the system or recovering from fault testing.
+The DevTest Labs resource provider creates resources on the lab user's behalf, so lab users don't need any extra permissions to create and use environments. However, lab owners can extend Contributor permissions to lab users so they can configure and manage their own PaaS resources, such as adding or removing resources. For more information, see [Configure environment user rights](devtest-lab-create-environment-from-arm.md#configure-environment-user-rights).
-### Testing
-DevTest Labs environments allow for independent testing of specific code and configurations asynchronously. The common practice is to set up the environment with the code from the individual pull request and start any automated testing. Once the automated testing has run to completion, any manual testing can be executed against the specific environment. Usually this process is done as part of the CI/CD pipeline.
+Lab owners can customize resource access or permissions without granting subscription-level access. The lab user can add or remove Azure resources only within the managed resource group. To further customize lab user roles and access, see [Grant user permissions to specific lab policies](devtest-lab-grant-user-permissions-to-specific-lab-policies.md).
-## Management Experience
+## Environment templates
-### Cost Tracking
-The cost tracking feature includes Azure resources within the different environments as part of the overall cost trend. The cost by resources doesn't break out the different resources within the environment but displays the environment as a single cost.
+In large organizations, development teams typically provide customized or isolated testing environments. The IT group provides environments that all teams within a business unit or a division can use.
-### Security
-A properly configured Azure subscription with DevTest Labs can [limit access to Azure resources only through the lab](devtest-lab-add-devtest-user.md). With environments, a lab owner can allow users to access PaaS resources with approved configurations without allowing access to any other Azure resources. In the scenario where lab users customize environments, the lab owner can allow contributor access. The contributor access allows the lab user to add or remove Azure resource only within the managed resource group. It allows for easier tracking and management versus allow the user contributor access to the subscription.
+To enable and configure environment creation for labs, see [Use ARM templates to create DevTest Labs environments](devtest-lab-create-environment-from-arm.md). DevTest Labs has a public repository of preconfigured ARM templates for creating certain environments. For more information about the public environments, see [Enable and configure public environments](devtest-lab-create-environment-from-arm.md#enable-and-configure-public-environments).
-### Automation
-Automation is a key component for a large scale, effective ecosystem. Automation is necessary to handle managing or tracking multiple environments across subscriptions and labs.
+You can also create or configure your own ARM environment templates, store them in private Git repositories, and connect those repositories to labs. For more information, see [Use Azure Resource Manager (ARM) templates in Azure DevTest Labs](devtest-lab-use-arm-and-powershell-for-lab-resources.md).
-### CI/CD Pipeline
-PaaS services in DevTest Labs can help improve the CI/CD pipeline by having focused deployments where access is controlled by the lab.
+## Template customization
+
+You can provide certain custom lab information in ARM templates when creating environments, including:
+
+- Lab virtual network identification
+- Lab location
+- Lab storage account where the ARM templates files are copied
+
+### Existing virtual network
+
+When you create an environment, DevTest Labs can replace the `$(LabSubnetId)` token with the first lab subnet where **Use in virtual machine creation** is set to **true**. This modification allows the environment to use previously created virtual networks.
+
+[Connect environments to the lab's virtual network](connect-environment-lab-virtual-network.md) describes how to modify an ARM template to use the `$(LabSubnetId)` token. To use the same ARM template in test, staging, and production environments, use `$(LabSubnetId)` as a value in an ARM template parameter.
+
+### Nested templates
+
+DevTest Labs supports [nested ARM templates](/azure/azure-resource-manager/templates/linked-templates). To use `_artifactsLocation` and `_artifactsLocationSasToken` tokens to create a URI to a nested ARM template, see [Deploy DevTest Labs environments by using nested templates](deploy-nested-template-environments.md). For more information, see the **Deployment artifacts** section of the [Azure Resource Manager Best Practices Guide](https://github.com/Azure/azure-quickstart-templates/blob/master/1-CONTRIBUTION-GUIDE/best-practices.md#deployment-artifacts-nested-templates-scripts).
## Next steps
-See the following articles for details about environments:
-- -- [Create multi-VM environments and PaaS resources with Azure Resource Manager templates](devtest-lab-create-environment-from-arm.md)-- [Configure and use public environments in Azure DevTest Labs](devtest-lab-configure-use-public-environments.md)-- [Create an environment with self-contained Service Fabric cluster in Azure DevTest Labs](create-environment-service-fabric-cluster.md)
+- [Use ARM templates to create DevTest Labs environments](devtest-lab-create-environment-from-arm.md)
+- [Create an environment with a self-contained Service Fabric cluster in Azure DevTest Labs](create-environment-service-fabric-cluster.md)
- [Connect an environment to your lab's virtual network in Azure DevTest Labs](connect-environment-lab-virtual-network.md) - [Integrate environments into your Azure DevOps CI/CD pipelines](integrate-environments-devops-pipeline.md)
-
+
devtest How To Sign Into Azure With Github https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/devtest/offer/how-to-sign-into-azure-with-github.md
After signing into GitHub and authorizing the Microsoft application, you'll get
[Azure Credit Subscription for Visual Studio Subscribers](https://azure.microsoft.com/pricing/member-offers/credit-for-visual-studio-subscribers) offers a suite of services to create, deploy, and manage applications on your preferred platforms and devices. Use your credits in Azure for learning, development, and test services, plus collaboration tools and access to Azure DevOps Services.
-Support for GitHub authentication makes it easier to experiment with Azure services. Choose from Virtual Machines, Websites, SQL Databases, and Mobile Services. Use Windows Virtual Desktop to deploy and manage hundreds of VMs for development and testing purposes.
+Support for GitHub authentication makes it easier to experiment with Azure services. Choose from Virtual Machines, Websites, SQL Databases, and Mobile Services. Use [Azure Virtual Desktop](../../virtual-desktop/overview.md) to deploy and manage hundreds of VMs for development and testing purposes.
To get started with the Azure Monthly Credit Subscription using your GitHub account, select ΓÇ£Sign in using GitHubΓÇ¥ on any [Microsoft sign in page](https://login.microsoftonline.com)
digital-twins How To Create App Registration Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/how-to-create-app-registration-cli.md
To create a client secret for your app registration, you'll need your app regist
az ad app credential reset --id <client-ID> --append ```
-You can also add optional parameters to this command to specify a credential description, end date, and other details. For more information about the command and its parameters, see [az ad app credential reset documentation](/cli/azure/ad/app/credential#az_ad_app_credential_reset).
+You can also add optional parameters to this command to specify a credential description, end date, and other details. For more information about the command and its parameters, see [az ad app credential reset documentation](/cli/azure/ad/app/credential#az-ad-app-credential-reset).
The output of this command is information about the client secret that you've created. Copy the value for `password` to use when you need the client secret for authentication.
digital-twins How To Enable Private Link https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/how-to-enable-private-link.md
When the endpoint is finished deploying, it should show up in the private endpoi
# [CLI](#tab/cli)
-To create a private endpoint and link it to an Azure Digital Twins instance using the Azure CLI, use the [az network private-endpoint create](/cli/azure/network/private-endpoint#az_network_private_endpoint_create) command. Identify the Azure Digital Twins instance by using its fully qualified ID in the `--private-connection-resource-id` parameter.
+To create a private endpoint and link it to an Azure Digital Twins instance using the Azure CLI, use the [az network private-endpoint create](/cli/azure/network/private-endpoint#az-network-private-endpoint-create) command. Identify the Azure Digital Twins instance by using its fully qualified ID in the `--private-connection-resource-id` parameter.
Here's an example that uses the command to create a private endpoint, with only the required parameters.
Here's an example that uses the command to create a private endpoint, with only
az network private-endpoint create --connection-name <private-link-service-connection> --name <name-for-private-endpoint> --resource-group <resource-group> --subnet <subnet-ID> --private-connection-resource-id "/subscriptions/<subscription-ID>/resourceGroups/<resource-group>/providers/Microsoft.DigitalTwins/digitalTwinsInstances/<Azure-Digital-Twins-instance-name>" ```
-For a full list of required and optional parameters, as well as more private endpoint creation examples, see the [az network private-endpoint create reference documentation](/cli/azure/network/private-endpoint#az_network_private_endpoint_create).
+For a full list of required and optional parameters, as well as more private endpoint creation examples, see the [az network private-endpoint create reference documentation](/cli/azure/network/private-endpoint#az-network-private-endpoint-create).
To disable or enable public network access in the [Azure portal](https://portal.
# [CLI](#tab/cli-2)
-In the Azure CLI, you can disable or enable public network access by adding a `--public-network-access` parameter to the `az dt create` command. While this command can also be used to create a new instance, you can use it to edit the properties of an existing instance by providing it the name of an instance that already exists. (For more information about this command, see its [reference documentation](/cli/azure/dt#az_dt_create) or the [general instructions for setting up an Azure Digital Twins instance](how-to-set-up-instance-cli.md#create-the-azure-digital-twins-instance)).
+In the Azure CLI, you can disable or enable public network access by adding a `--public-network-access` parameter to the `az dt create` command. While this command can also be used to create a new instance, you can use it to edit the properties of an existing instance by providing it the name of an instance that already exists. (For more information about this command, see its [reference documentation](/cli/azure/dt#az-dt-create) or the [general instructions for setting up an Azure Digital Twins instance](how-to-set-up-instance-cli.md#create-the-azure-digital-twins-instance)).
To disable public network access for an Azure Digital Twins instance, use the `--public-network-access` parameter like this:
digital-twins How To Integrate Azure Signalr https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/how-to-integrate-azure-signalr.md
Running this command will open a browser window running the sample app, which di
If you no longer need the resources created in this article, follow these steps to delete them.
-Using the Azure Cloud Shell or local Azure CLI, you can delete all Azure resources in a resource group with the [az group delete](/cli/azure/group#az_group_delete) command. Removing the resource group will also remove:
+Using the Azure Cloud Shell or local Azure CLI, you can delete all Azure resources in a resource group with the [az group delete](/cli/azure/group#az-group-delete) command. Removing the resource group will also remove:
* The Azure Digital Twins instance (from the end-to-end tutorial) * The IoT hub and the hub device registration (from the end-to-end tutorial) * The Event Grid topic and associated subscriptions
digital-twins How To Integrate Time Series Insights https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/how-to-integrate-time-series-insights.md
az eventhubs eventhub create --name <name-for-your-twins-hub> --resource-group <
### Create twins hub authorization rule
-Create an [authorization rule](/cli/azure/eventhubs/eventhub/authorization-rule#az_eventhubs_eventhub_authorization_rule_create) with send and receive permissions. Specify a name for the rule.
+Create an [authorization rule](/cli/azure/eventhubs/eventhub/authorization-rule#az-eventhubs-eventhub-authorization-rule-create) with send and receive permissions. Specify a name for the rule.
```azurecli-interactive az eventhubs eventhub authorization-rule create --rights Listen Send --name <name-for-your-twins-hub-auth-rule> --resource-group <your-resource-group> --namespace-name <your-Event-Hubs-namespace-from-earlier> --eventhub-name <your-twins-hub-from-earlier>
Create the time series hub using the following command. Specify a name for the t
### Create time series hub authorization rule
-Create an [authorization rule](/cli/azure/eventhubs/eventhub/authorization-rule#az_eventhubs_eventhub_authorization_rule_create) with send and receive permissions. Specify a name for the time series hub auth rule.
+Create an [authorization rule](/cli/azure/eventhubs/eventhub/authorization-rule#az-eventhubs-eventhub-authorization-rule-create) with send and receive permissions. Specify a name for the time series hub auth rule.
```azurecli-interactive az eventhubs eventhub authorization-rule create --rights Listen Send --name <name-for-your-time-series-hub-auth-rule> --resource-group <your-resource-group> --namespace-name <your-Event-Hub-namespace-from-earlier> --eventhub-name <your-time-series-hub-name-from-earlier>
In this section, you'll set up Time Series Insights instance to receive data fro
To begin sending data to Time Series Insights, you'll need to start updating the digital twin properties in Azure Digital Twins with changing data values.
-Use the [az dt twin update](/cli/azure/dt/twin#az_dt_twin_update) CLI command to update a property on the twin you added in the [Prerequisites](#prerequisites) section. If you used the twin creation instructions from [Ingest telemetry from IoT Hub](how-to-ingest-iot-hub-data.md)), you can use the following command in the local CLI or the Cloud Shell bash terminal to update the temperature property on the thermostat67 twin.
+Use the [az dt twin update](/cli/azure/dt/twin#az-dt-twin-update) CLI command to update a property on the twin you added in the [Prerequisites](#prerequisites) section. If you used the twin creation instructions from [Ingest telemetry from IoT Hub](how-to-ingest-iot-hub-data.md)), you can use the following command in the local CLI or the Cloud Shell bash terminal to update the temperature property on the thermostat67 twin.
```azurecli-interactive az dt twin update --dt-name <your-Azure-Digital-Twins-instance-name> --twin-id thermostat67 --json-patch '{"op":"replace", "path":"/Temperature", "value": 20.5}'
digital-twins How To Manage Routes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/how-to-manage-routes.md
Next, create a SAS token for your storage account that the endpoint can use to a
> [!NOTE] > This command includes "**b**lob", "**f**ile", "**q**ueue", and "**t**able" *services*; an "**o**bject" *resource type*; and allows "**w**rite" *permissions*. >
- > For more information about the `az storage account generate-sas` command and its parameters, see the [Azure CLI reference](/cli/azure/storage/account#az_storage_account_generate_sas).
+ > For more information about the `az storage account generate-sas` command and its parameters, see the [Azure CLI reference](/cli/azure/storage/account#az-storage-account-generate-sas).
digital-twins How To Manage Twin https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/how-to-manage-twin.md
You can read more about the serialization helper classes like `BasicDigitalTwin`
## View all digital twins
-To view all of the digital twins in your instance, use a [query](how-to-query-graph.md). You can run a query with the [Query APIs](/rest/api/digital-twins/dataplane/query) or the [CLI commands](/cli/azure/dt/twin#az_dt_twin_query).
+To view all of the digital twins in your instance, use a [query](how-to-query-graph.md). You can run a query with the [Query APIs](/rest/api/digital-twins/dataplane/query) or the [CLI commands](/cli/azure/dt/twin#az-dt-twin-query).
Here is the body of the basic query that will return a list of all digital twins in the instance:
digital-twins How To Provision Using Device Provisioning Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/how-to-provision-using-device-provisioning-service.md
You should see the device being registered and connected to IoT Hub, and then st
### Validate
-The flow you've set up in this article will result in the device automatically being registered in Azure Digital Twins. Use the following [Azure Digital Twins CLI](/cli/azure/dt/twin#az_dt_twin_show) command to find the twin of the device in the Azure Digital Twins instance you created.
+The flow you've set up in this article will result in the device automatically being registered in Azure Digital Twins. Use the following [Azure Digital Twins CLI](/cli/azure/dt/twin#az-dt-twin-show) command to find the twin of the device in the Azure Digital Twins instance you created.
```azurecli-interactive az dt twin show --dt-name <Digital-Twins-instance-name> --twin-id "<Device-Registration-ID>"
Once you've gone through this flow, everything is set to retire devices end-to-e
To trigger the process of retirement, you need to manually delete the device from IoT Hub.
-You can manually delete the device from IoT Hub with an [Azure CLI command](/cli/azure/iot/hub/module-identity#az_iot_hub_module_identity_delete) or in the Azure portal.
+You can manually delete the device from IoT Hub with an [Azure CLI command](/cli/azure/iot/hub/module-identity#az-iot-hub-module-identity-delete) or in the Azure portal.
Follow the steps below to delete the device in the Azure portal: 1. Navigate to your IoT hub, and choose **IoT devices** in the menu options on the left.
Follow the steps below to delete the device in the Azure portal:
It might take a few minutes to see the changes reflected in Azure Digital Twins.
-Use the following [Azure Digital Twins CLI](/cli/azure/dt/twin#az_dt_twin_show) command to verify the twin of the device in the Azure Digital Twins instance was deleted.
+Use the following [Azure Digital Twins CLI](/cli/azure/dt/twin#az-dt-twin-show) command to verify the twin of the device in the Azure Digital Twins instance was deleted.
```azurecli-interactive az dt twin show --dt-name <Digital-Twins-instance-name> --twin-id "<Device-Registration-ID>"
You should see that the twin of the device cannot be found in the Azure Digital
If you no longer need the resources created in this article, follow these steps to delete them.
-Using the Azure Cloud Shell or local Azure CLI, you can delete all Azure resources in a resource group with the [az group delete](/cli/azure/group#az_group_delete) command. This command removes the resource group; the Azure Digital Twins instance; the IoT hub and the hub device registration; the Event Grid topic and associated subscriptions; the Event Hubs namespace and both Azure Functions apps, including associated resources like storage.
+Using the Azure Cloud Shell or local Azure CLI, you can delete all Azure resources in a resource group with the [az group delete](/cli/azure/group#az-group-delete) command. This command removes the resource group; the Azure Digital Twins instance; the IoT hub and the hub device registration; the Event Grid topic and associated subscriptions; the Event Hubs namespace and both Azure Functions apps, including associated resources like storage.
> [!IMPORTANT] > Deleting a resource group is irreversible. The resource group and all the resources contained in it are permanently deleted. Make sure that you do not accidentally delete the wrong resource group or resources.
digital-twins How To Route With Managed Identity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/how-to-route-with-managed-identity.md
You can then use the bottom navigation buttons to continue with the rest of inst
# [CLI](#tab/cli)
-In the CLI, you can add an `--assign-identity` parameter to the `az dt create` command that's used to create the instance. (For more information about this command, see its [reference documentation](/cli/azure/dt#az_dt_create) or the [general instructions for setting up an Azure Digital Twins instance](how-to-set-up-instance-cli.md#create-the-azure-digital-twins-instance)).
+In the CLI, you can add an `--assign-identity` parameter to the `az dt create` command that's used to create the instance. (For more information about this command, see its [reference documentation](/cli/azure/dt#az-dt-create) or the [general instructions for setting up an Azure Digital Twins instance](how-to-set-up-instance-cli.md#create-the-azure-digital-twins-instance)).
To create an instance with a system managed identity, add the `--assign-identity` parameter like this:
Here's an example that creates an instance with a system managed identity, and a
az dt create --dt-name <instance-name> --resource-group <resource-group> --assign-identity --scopes "/subscriptions/<subscription ID>/resourceGroups/<resource-group>/providers/Microsoft.EventHub/namespaces/<Event-Hubs-namespace>/eventhubs/<event-hub-name>" --role MyCustomRole ```
-For more examples of role assignments with this command, see the [az dt create reference documentation](/cli/azure/dt#az_dt_create).
+For more examples of role assignments with this command, see the [az dt create reference documentation](/cli/azure/dt#az-dt-create).
You can also use the [az role assignment](/cli/azure/role/assignment) command group to create and manage roles. This command can be used to support other scenarios where you don't want to group role assignment with the create command.
digital-twins How To Send Twin To Twin Events https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/how-to-send-twin-to-twin-events.md
Now, your function can receive events through your Event Grid topic. The data fl
The last step is to verify that the flow is working, by updating a twin and checking that related twins are updated according to the logic in your Azure function.
-To kick off the process, update the twin that's the source of the event flow. You can use the [Azure CLI](/cli/azure/dt/twin#az_dt_twin_update), [Azure Digital Twins SDK](how-to-manage-twin.md#update-a-digital-twin), or [Azure Digital Twins REST APIs](how-to-use-postman.md?tabs=data-plane) to make the update.
+To kick off the process, update the twin that's the source of the event flow. You can use the [Azure CLI](/cli/azure/dt/twin#az-dt-twin-update), [Azure Digital Twins SDK](how-to-manage-twin.md#update-a-digital-twin), or [Azure Digital Twins REST APIs](how-to-use-postman.md?tabs=data-plane) to make the update.
-Next, query your Azure Digital Twins instance for the related twin. You can use the [Azure CLI](/cli/azure/dt/twin#az_dt_twin_query), or the [Azure Digital Twins REST APIs and SDK](how-to-query-graph.md#run-queries-with-the-api). Verify that the twin received the data and updated as expected.
+Next, query your Azure Digital Twins instance for the related twin. You can use the [Azure CLI](/cli/azure/dt/twin#az-dt-twin-query), or the [Azure Digital Twins REST APIs and SDK](how-to-query-graph.md#run-queries-with-the-api). Verify that the twin received the data and updated as expected.
## Next steps
digital-twins How To Use Postman https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/how-to-use-postman.md
Otherwise, you can open an [Azure Cloud Shell](https://shell.azure.com) window i
az login ```
-2. Next, use the [az account get-access-token](/cli/azure/account#az_account_get_access_token) command to get a bearer token with access to the Azure Digital Twins service. In this command, you'll pass in the resource ID for the Azure Digital Twins service endpoint, in order to get an access token that can access Azure Digital Twins resources.
+2. Next, use the [az account get-access-token](/cli/azure/account#az-account-get-access-token) command to get a bearer token with access to the Azure Digital Twins service. In this command, you'll pass in the resource ID for the Azure Digital Twins service endpoint, in order to get an access token that can access Azure Digital Twins resources.
The required context for the token depends on which set of APIs you're using, so use the tabs below to select between [data plane](concepts-apis-sdks.md#overview-data-plane-apis) and [control plane](concepts-apis-sdks.md#overview-control-plane-apis) APIs.
digital-twins Tutorial Command Line Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/digital-twins/tutorial-command-line-cli.md
After designing models, you need to upload them to your Azure Digital Twins inst
Navigate to the *Room.json* file on your machine and select "Open." Then, repeat this step for *Floor.json*.
-1. Next, use the [az dt model create](/cli/azure/dt/model#az_dt_model_create) command as shown below to upload your updated Room model to your Azure Digital Twins instance. The second command uploads another model, Floor, which you'll also use in the next section to create different types of twins. If you're using Cloud Shell, *Room.json* and *Floor.json* are in the main storage directory, so you can just use the file names directly in the command below where a path is required.
+1. Next, use the [az dt model create](/cli/azure/dt/model#az-dt-model-create) command as shown below to upload your updated Room model to your Azure Digital Twins instance. The second command uploads another model, Floor, which you'll also use in the next section to create different types of twins. If you're using Cloud Shell, *Room.json* and *Floor.json* are in the main storage directory, so you can just use the file names directly in the command below where a path is required.
```azurecli-interactive az dt model create --dt-name <Azure-Digital-Twins-instance-name> --models <path-to-Room.json>
After designing models, you need to upload them to your Azure Digital Twins inst
The output from each command will show information about the successfully uploaded model. >[!TIP]
- >You can also upload all models within a directory at the same time, by using the `--from-directory` option for the model create command. For more information, see [Optional parameters for az dt model create](/cli/azure/dt/model#az_dt_model_create-optional-parameters).
+ >You can also upload all models within a directory at the same time, by using the `--from-directory` option for the model create command. For more information, see [Optional parameters for az dt model create](/cli/azure/dt/model#az-dt-model-create-optional-parameters).
-1. Verify the models were created with the [az dt model list](/cli/azure/dt/model#az_dt_model_list) command as shown below. Doing so will print a list of all models that have been uploaded to the Azure Digital Twins instance with their full information.
+1. Verify the models were created with the [az dt model list](/cli/azure/dt/model#az-dt-model-list) command as shown below. Doing so will print a list of all models that have been uploaded to the Azure Digital Twins instance with their full information.
```azurecli-interactive az dt model list --dt-name <Azure-Digital-Twins-instance-name> --definition
As models cannot be overwritten, running this command on the same model will now
Now that some models have been uploaded to your Azure Digital Twins instance, you can create [digital twins](concepts-twins-graph.md) based on the model definitions. Digital twins represent the entities within your business environmentΓÇöthings like sensors on a farm, rooms in a building, or lights in a car.
-To create a digital twin, you use the [az dt twin create](/cli/azure/dt/twin#az_dt_twin_create) command. You must reference the model that the twin is based on, and can optionally define initial values for any properties in the model. You don't have to pass any relationship information at this stage.
+To create a digital twin, you use the [az dt twin create](/cli/azure/dt/twin#az-dt-twin-create) command. You must reference the model that the twin is based on, and can optionally define initial values for any properties in the model. You don't have to pass any relationship information at this stage.
1. Run this code in the CLI to create several twins, based on the Room model you updated earlier and another model, Floor. Recall that Room has three properties, so you can provide arguments with the initial values for these properties. (Initializing property values is optional in general, but they're needed for this tutorial.)
To create a digital twin, you use the [az dt twin create](/cli/azure/dt/twin#az_
The output from each command will show information about the successfully created twin (including properties for the room twins that were initialized with them).
-1. You can verify that the twins were created with the [az dt twin query](/cli/azure/dt/twin#az_dt_twin_query) command as shown below. The query shown finds all the digital twins in your Azure Digital Twins instance.
+1. You can verify that the twins were created with the [az dt twin query](/cli/azure/dt/twin#az-dt-twin-query) command as shown below. The query shown finds all the digital twins in your Azure Digital Twins instance.
```azurecli-interactive az dt twin query --dt-name <Azure-Digital-Twins-instance-name> --query-command "SELECT * FROM DIGITALTWINS"
To create a digital twin, you use the [az dt twin create](/cli/azure/dt/twin#az_
You can also modify the properties of a twin you've created.
-1. Run this [az dt twin update](/cli/azure/dt/twin#az_dt_twin_update) command to change room0's RoomName from Room0 to PresidentialSuite:
+1. Run this [az dt twin update](/cli/azure/dt/twin#az-dt-twin-update) command to change room0's RoomName from Room0 to PresidentialSuite:
```azurecli-interactive az dt twin update --dt-name <Azure-Digital-Twins-instance-name> --twin-id room0 --json-patch '{"op":"add", "path":"/RoomName", "value": "PresidentialSuite"}'
You can also modify the properties of a twin you've created.
:::image type="content" source="media/tutorial-command-line/cli/output-update-twin.png" alt-text="Screenshot of Cloud Shell showing result of the update command, which includes a RoomName of PresidentialSuite." lightbox="media/tutorial-command-line/cli/output-update-twin.png":::
-1. You can verify the update succeeded by running the [az dt twin show](/cli/azure/dt/twin#az_dt_twin_show) command to see room0's information:
+1. You can verify the update succeeded by running the [az dt twin show](/cli/azure/dt/twin#az-dt-twin-show) command to see room0's information:
```azurecli-interactive az dt twin show --dt-name <Azure-Digital-Twins-instance-name> --twin-id room0
Next, you can create some relationships between these twins, to connect them int
The types of relationships that you can create from one twin to another are defined within the [models](#model-a-physical-environment-with-dtdl) that you uploaded earlier. The [model definition for Floor](https://github.com/azure-Samples/digital-twins-samples/blob/master/AdtSampleApp/SampleClientApp/Models/Floor.json) specifies that floors can have a type of relationship called `contains`. Since the model definition specifies this relationship, it's possible to create a `contains`-type relationship from each Floor twin to the corresponding room that it contains.
-To add a relationship, use the [az dt twin relationship create](/cli/azure/dt/twin/relationship#az_dt_twin_relationship_create) command. Specify the twin that the relationship is coming from, the type of relationship, and the twin that the relationship is connecting to. Lastly, give the relationship a unique ID. If a relationship was defined to have properties, you can initialize the relationship properties in this command as well.
+To add a relationship, use the [az dt twin relationship create](/cli/azure/dt/twin/relationship#az-dt-twin-relationship-create) command. Specify the twin that the relationship is coming from, the type of relationship, and the twin that the relationship is connecting to. Lastly, give the relationship a unique ID. If a relationship was defined to have properties, you can initialize the relationship properties in this command as well.
1. Run the following code to add a `contains`-type relationship from each of the Floor twins you created earlier to the corresponding Room twin. The relationships are named relationship0 and relationship1.
The twins and relationships you have set up in this tutorial form the following
## Query the twin graph to answer environment questions
-A main feature of Azure Digital Twins is the ability to [query](concepts-query-language.md) your twin graph easily and efficiently to answer questions about your environment. In the Azure CLI, querying is done with the [az dt twin query](/cli/azure/dt/twin#az_dt_twin_query) command.
+A main feature of Azure Digital Twins is the ability to [query](concepts-query-language.md) your twin graph easily and efficiently to answer questions about your environment. In the Azure CLI, querying is done with the [az dt twin query](/cli/azure/dt/twin#az-dt-twin-query) command.
[!INCLUDE [digital-twins-query-latency-note.md](../../includes/digital-twins-query-latency-note.md)]
After completing this tutorial, you can choose which resources you want to remov
* If you plan to continue to the next tutorial, you can keep the resources you set up here and reuse the Azure Digital Twins instance without clearing anything in between.
-* If you want to continue using the Azure Digital Twins instance, but clear out all of its models, twins, and relationships, you can use the [az dt twin relationship delete](/cli/azure/dt/twin/relationship#az_dt_twin_relationship_delete), [az dt twin delete](/cli/azure/dt/twin#az_dt_twin_delete), and [az dt model delete](/cli/azure/dt/model#az_dt_model_delete) commands to clear the relationships, twins, and models in your instance, respectively.
+* If you want to continue using the Azure Digital Twins instance, but clear out all of its models, twins, and relationships, you can use the [az dt twin relationship delete](/cli/azure/dt/twin/relationship#az-dt-twin-relationship-delete), [az dt twin delete](/cli/azure/dt/twin#az-dt-twin-delete), and [az dt model delete](/cli/azure/dt/model#az-dt-model-delete) commands to clear the relationships, twins, and models in your instance, respectively.
[!INCLUDE [digital-twins-cleanup-basic.md](../../includes/digital-twins-cleanup-basic.md)]
dns Dns Protect Private Zones Recordsets https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dns/dns-protect-private-zones-recordsets.md
$rsg = "<resource group name>"
New-AzResourceLock -LockLevel $lvl -LockName $lnm -ResourceName $rsc -ResourceType $rty -ResourceGroupName $rsg ```
-The equivalent command is also [available via the Azure CLI](/cli/azure/lock#az_lock_create):
+The equivalent command is also [available via the Azure CLI](/cli/azure/lock#az-lock-create):
```azurecli-interactive # Lock a DNS zone
dns Dns Protect Zones Recordsets https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dns/dns-protect-zones-recordsets.md
$rsg = "<resource group name>"
New-AzResourceLock -LockLevel $lvl -LockName $lnm -ResourceName $rsc -ResourceType $rty -ResourceGroupName $rsg ```
-The equivalent command is also [available via the Azure CLI](/cli/azure/lock#az_lock_create):
+The equivalent command is also [available via the Azure CLI](/cli/azure/lock#az-lock-create):
```azurecli-interactive # Lock a DNS zone
dns Dns Cli Create Dns Zone Record https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dns/scripts/dns-cli-create-dns-zone-record.md
This script uses the following commands to create a resource group, virtual mach
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az network dns zone create](/cli/azure/network/dns/zone#az_network_dns_zone_create) | Creates an Azure DNS zone. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az network dns zone create](/cli/azure/network/dns/zone#az-network-dns-zone-create) | Creates an Azure DNS zone. |
| [az network dns record-set a add-record](/cli/azure/network/dns/record-set) | Adds an *A* record to a DNS zone. | | [az network dns record-set list](/cli/azure/network/dns/record-set) | List all *A* record sets in a DNS zone. |
-| [az group delete](/cli/azure/vm/extension#az_vm_extension_set) | Deletes a resource group including all nested resources. |
+| [az group delete](/cli/azure/vm/extension#az-vm-extension-set) | Deletes a resource group including all nested resources. |
## Next steps
event-grid Configure Private Endpoints https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/configure-private-endpoints.md
You can reject a private endpoint that's in the pending state or approved state.
## Use Azure CLI
-To create a private endpoint, use the [az network private-endpoint create](/cli/azure/network/private-endpoint?#az_network_private_endpoint_create) method as shown in the following example:
+To create a private endpoint, use the [az network private-endpoint create](/cli/azure/network/private-endpoint?#az-network-private-endpoint-create) method as shown in the following example:
```azurecli-interactive az network private-endpoint create \
az network private-endpoint create \
--group-ids topic ```
-For descriptions of the parameters used in the example, see documentation for [az network private-endpoint create](/cli/azure/network/private-endpoint?#az_network_private_endpoint_create). A few points to note in this example are:
+For descriptions of the parameters used in the example, see documentation for [az network private-endpoint create](/cli/azure/network/private-endpoint?#az-network-private-endpoint-create). A few points to note in this example are:
- For `private-connection-resource-id`, specify the resource ID of the **topic** or **domain**. The preceding example uses the type: topic. - for `group-ids`, specify `topic` or `domain`. In the preceding example, `topic` is used.
-To delete a private endpoint, use the [az network private-endpoint delete](/cli/azure/network/private-endpoint?#az_network_private_endpoint_delete) method as shown in the following example:
+To delete a private endpoint, use the [az network private-endpoint delete](/cli/azure/network/private-endpoint?#az-network-private-endpoint-delete) method as shown in the following example:
```azurecli-interactive az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
az extension add -n eventgrid
``` ### Create a private endpoint
-To create a private endpoint, use the [az network private-endpoint create](/cli/azure/network/private-endpoint?#az_network_private_endpoint_create) method as shown in the following example:
+To create a private endpoint, use the [az network private-endpoint create](/cli/azure/network/private-endpoint?#az-network-private-endpoint-create) method as shown in the following example:
```azurecli-interactive az network private-endpoint create \
az network private-endpoint create \
--group-ids topic ```
-For descriptions of the parameters used in the example, see documentation for [az network private-endpoint create](/cli/azure/network/private-endpoint?#az_network_private_endpoint_create). A few points to note in this example are:
+For descriptions of the parameters used in the example, see documentation for [az network private-endpoint create](/cli/azure/network/private-endpoint?#az-network-private-endpoint-create). A few points to note in this example are:
- For `private-connection-resource-id`, specify the resource ID of the **topic** or **domain**. The preceding example uses the type: topic. - for `group-ids`, specify `topic` or `domain`. In the preceding example, `topic` is used.
-To delete a private endpoint, use the [az network private-endpoint delete](/cli/azure/network/private-endpoint?#az_network_private_endpoint_delete) method as shown in the following example:
+To delete a private endpoint, use the [az network private-endpoint delete](/cli/azure/network/private-endpoint?#az-network-private-endpoint-delete) method as shown in the following example:
```azurecli-interactive az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
event-grid Create View Manage System Topics Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/create-view-manage-system-topics-cli.md
For a local installation:
## Create a system topic - To create a system topic on an Azure source first and then create an event subscription for that topic, see the following reference topics:
- - [az eventgrid system-topic create](/cli/azure/eventgrid/system-topic#az_eventgrid_system_topic_create)
+ - [az eventgrid system-topic create](/cli/azure/eventgrid/system-topic#az-eventgrid-system-topic-create)
```azurecli-interactive # Get the ID of the Azure source (for example: Azure Storage account)
For a local installation:
```azurecli-interactive az eventgrid topic-type list --output json | grep -w id ```
- - [az eventgrid system-topic event-subscription create](/cli/azure/eventgrid/system-topic/event-subscription#az_eventgrid_system_topic_event-subscription-create)
+ - [az eventgrid system-topic event-subscription create](/cli/azure/eventgrid/system-topic/event-subscription#az-eventgrid-system-topic-event-subscription-create)
```azurecli-interactive az eventgrid system-topic event-subscription create --name <SPECIFY EVENT SUBSCRIPTION NAME> \ -g rg1 --system-topic-name <SYSTEM TOPIC NAME> \ --endpoint <ENDPOINT URL> ```-- To create a system topic (implicitly) when creating an event subscription for an Azure source, use the [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) method. Here's an example:
+- To create a system topic (implicitly) when creating an event subscription for an Azure source, use the [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) method. Here's an example:
```azurecli-interactive storageid=$(az storage account show --name <AZURE STORAGE ACCOUNT NAME> --resource-group <AZURE RESOURCE GROUP NAME> --query id --output tsv)
For a local installation:
## View all system topics To view all system topics and details of a selected system topic, use the following commands: -- [az eventgrid system-topic list](/cli/azure/eventgrid/system-topic#az_eventgrid_system_topic_list)
+- [az eventgrid system-topic list](/cli/azure/eventgrid/system-topic#az-eventgrid-system-topic-list)
```azurecli-interactive az eventgrid system-topic list ```-- [az eventgrid system-topic show](/cli/azure/eventgrid/system-topic#az_eventgrid_system_topic_show)
+- [az eventgrid system-topic show](/cli/azure/eventgrid/system-topic#az-eventgrid-system-topic-show)
```azurecli-interactive az eventgrid system-topic show -g <AZURE RESOURCE GROUP NAME> -n <SYSTEM TOPIC NAME>
To view all system topics and details of a selected system topic, use the follow
## Delete a system topic To delete a system topic, use the following command: -- [az eventgrid system-topic delete](/cli/azure/eventgrid/system-topic#az_eventgrid_system_topic_delete)
+- [az eventgrid system-topic delete](/cli/azure/eventgrid/system-topic#az-eventgrid-system-topic-delete)
```azurecli-interactive az eventgrid system-topic delete -g <AZURE RESOURCE GROUP NAME> --name <SYSTEM TOPIC NAME>
event-grid Custom Event Quickstart https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/custom-event-quickstart.md
When you're finished, you see that the event data has been sent to the web app.
Event Grid topics are Azure resources, and must be placed in an Azure resource group. The resource group is a logical collection into which Azure resources are deployed and managed.
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command.
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command.
The following example creates a resource group named *gridResourceGroup* in the *westus2* location.
event-grid Custom Event To Eventhub https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/custom-event-to-eventhub.md
Azure Event Grid is an eventing service for the cloud. Azure Event Hubs is one o
Event Grid topics are Azure resources, and must be placed in an Azure resource group. The resource group is a logical collection into which Azure resources are deployed and managed.
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command.
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command.
The following example creates a resource group named *gridResourceGroup* in the *westus2* location.
event-grid Custom Event To Hybrid Connection https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/custom-event-to-hybrid-connection.md
Azure Event Grid is an eventing service for the cloud. Azure Relay Hybrid Connec
Event Grid topics are Azure resources, and must be placed in an Azure resource group. The resource group is a logical collection into which Azure resources are deployed and managed.
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command.
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command.
The following example creates a resource group named *gridResourceGroup* in the *westus2* location.
event-grid Custom Event To Queue Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/custom-event-to-queue-storage.md
This article gives you commands for using Azure CLI.
Event Grid topics are Azure resources, and must be placed in an Azure resource group. The resource group is a logical collection into which Azure resources are deployed and managed.
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command.
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command.
The following example creates a resource group named *gridResourceGroup* in the *westus2* location.
event-grid Geo Disaster Recovery https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/geo-disaster-recovery.md
Title: Geo disaster recovery in Azure Event Grid | Microsoft Docs description: Describes how Azure Event Grid supports geo disaster recovery (GeoDR) automatically. Previously updated : 08/24/2021 Last updated : 03/24/2022 # Server-side geo disaster recovery in Azure Event Grid
Event GridΓÇÖs automatic failover has different RPOs and RTOs for your metadata
> [!IMPORTANT] > - There is no service level agreement (SLA) for server-side disaster recovery. If the paired region has no extra capacity to take on the additional traffic, Event Grid cannot initiate failover. Service level objectives are best-effort only. > - The cost for metadata GeoDR on Event Grid is: $0.
+> - Geo-disaster recovery isn't supported for partner topics.
## Next steps
event-grid Get Access Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/get-access-keys.md
Get-AzEventGridDomainKey -ResourceGroup <RESOURCE GROUP NAME> -Name <DOMAIN NAME
``` ## Azure CLI
-Use the [az eventgrid topic key list](/cli/azure/eventgrid/topic/key#az_eventgrid_topic_key_list) to get access keys for topics.
+Use the [az eventgrid topic key list](/cli/azure/eventgrid/topic/key#az-eventgrid-topic-key-list) to get access keys for topics.
```azurecli-interactive az eventgrid topic key list --resource-group <RESOURCE GROUP NAME> --name <TOPIC NAME> ```
-Use [az eventgrid domain key list](/cli/azure/eventgrid/domain/key#az_eventgrid_domain_key_list) to get access keys for domains.
+Use [az eventgrid domain key list](/cli/azure/eventgrid/domain/key#az-eventgrid-domain-key-list) to get access keys for domains.
```azurecli-interactive az eventgrid domain key list --resource-group <RESOURCE GROUP NAME> --name <DOMAIN NAME>
event-grid Handler Functions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/handler-functions.md
You can update these values for an existing subscription on the **Features** tab
You can set **maxEventsPerBatch** and **preferredBatchSizeInKilobytes** in an Azure Resource Manager template. For more information, see [Microsoft.EventGrid eventSubscriptions template reference](/azure/templates/microsoft.eventgrid/eventsubscriptions). ### Azure CLI
-You can use the [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create&preserve-view=true) or [az eventgrid event-subscription update](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_update&preserve-view=true) command to configure batch-related settings using the following parameters: `--max-events-per-batch` or `--preferred-batch-size-in-kilobytes`.
+You can use the [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create&preserve-view=true) or [az eventgrid event-subscription update](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-update&preserve-view=true) command to configure batch-related settings using the following parameters: `--max-events-per-batch` or `--preferred-batch-size-in-kilobytes`.
### Azure PowerShell You can use the [New-AzEventGridSubscription](/powershell/module/az.eventgrid/new-azeventgridsubscription) or [Update-AzEventGridSubscription](/powershell/module/az.eventgrid/update-azeventgridsubscription) cmdlet to configure batch-related settings using the following parameters: `-MaxEventsPerBatch` or `-PreferredBatchSizeInKiloBytes`.
event-grid How To Event Domains https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/how-to-event-domains.md
For example, the following command lists all the topics with name containing `my
az eventgrid topic list --odata-query "contains(name, 'mytopic')" ```
-For more information about this command, see [`az eventgrid topic list`](/cli/azure/eventgrid/topic?#az_eventgrid_topic_list).
+For more information about this command, see [`az eventgrid topic list`](/cli/azure/eventgrid/topic?#az-eventgrid-topic-list).
## Next steps
event-grid Create Topic Subscription https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/kubernetes/create-topic-subscription.md
In this section, you'll create a topic in the custom location you created in the
az eventgrid topic create -g $resourcegroupname --name $topicname --kind azurearc --extended-location-name $customlocationid --extended-location-type customlocation --input-schema CloudEventSchemaV1_0 --location $region ```
- For more information about the CLI command, see [`az eventgrid topic create`](/cli/azure/eventgrid/topic#az_eventgrid_topic_create).
+ For more information about the CLI command, see [`az eventgrid topic create`](/cli/azure/eventgrid/topic#az-eventgrid-topic-create).
## Create a message endpoint
az eventgrid event-subscription create --name <EVENT SUBSCRIPTION NAME> --source
```
-For more information about the CLI command, see [`az eventgrid event-subscription create`](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create).
+For more information about the CLI command, see [`az eventgrid event-subscription create`](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create).
## Send events to the topic 1. Run the following command to get the **endpoint** for the topic: After you copy and paste the command, update the **topic name** and **resource group name** before you run the command. You'll publish sample events to this topic endpoint.
event-grid Event Handlers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/kubernetes/event-handlers.md
# Event handlers destinations in Event Grid on Kubernetes An event handler is any system that exposes an endpoint and is the destination for events sent by Event Grid. An event handler receiving an event acts upon it and uses the event payload to execute some logic, which might lead to the occurrence of new events.
-The way to configure Event Grid to send events to a destination is through the creation of an event subscription. It can be done through [Azure CLI](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create), [management SDK](../sdk-overview.md#management-sdks), or using direct HTTPs calls using the [2020-10-15-preview API](/rest/api/eventgrid/controlplane-version2021-06-01-preview/event-subscriptions/create-or-update) version.
+The way to configure Event Grid to send events to a destination is through the creation of an event subscription. It can be done through [Azure CLI](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create), [management SDK](../sdk-overview.md#management-sdks), or using direct HTTPs calls using the [2020-10-15-preview API](/rest/api/eventgrid/controlplane-version2021-06-01-preview/event-subscriptions/create-or-update) version.
In general, Event Grid on Kubernetes can send events to any destination via **Webhooks**. Webhooks are HTTP(s) endpoints exposed by a service or workload to which Event Grid has access. The webhook can be a workload hosted in the same cluster, in the same network space, on the cloud, on-prem or anywhere that Event Grid can reach.
event-grid Install K8s Extension https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/kubernetes/install-k8s-extension.md
description: This article provides steps to install Event Grid on Azure Arc enab
Previously updated : 05/26/2021 Last updated : 03/24/2022
If you run into an issue, see the [Troubleshooting](#troubleshooting) section fo
The Event Grid broker (server) serves two kinds of clients. Server authentication is done using Certificates. Client authentication is done using either certificates or SAS keys based on the client type. - Event Grid operators that make control plane requests to the Event Grid broker are authenticated using certificates.-- Event Grid publishers that publisher events to an event grid topic are authenticated with the topic's SAS keys.
+- Event Grid publishers that publisher events to an Event Grid topic are authenticated with the topic's SAS keys.
To establish a secure HTTPS communication with the Event Grid broker and Event Grid operator, we use PKI Certificates during the installation of Event Grid extension. Here are the general requirements for these PKI certificates:
To establish a secure HTTPS communication with the Event Grid broker and Event G
1. For **Release namespace**, you may want to provide the name of a Kubernetes namespace where Event Grid components will be deployed into. For example, you might want to have a single namespace for all Azure Arc-enabled services deployed to your cluster. The default is **eventgrid-system**. If the namespace provided doesn't exist, it's created for you. 1. On the **Event Grid broker** details section, the service type is shown. The Event Grid broker, which is the component that exposes the topic endpoints to which events are sent, is exposed as a Kubernetes service type **ClusterIP**. Hence, the IPs assigned to all topics use the private IP space configured for the cluster. 1. Provide the **storage class name** that you want to use for the broker and that's supported by your Kubernetes distribution. For example, if you're using AKS, you could use `azurefile`, which uses Azure Standard storage. For more information on predefined storage classes supported by AKS, see [Storage Classes in AKS](../../aks/concepts-storage.md#storage-classes). If you're using other Kubernetes distributions, see your Kubernetes distribution documentation for predefined storage classes supported or the way you can provide your own.
- 1. **Storage size**. Default is 1 GiB. Consider the ingestion rate when determining the size of your storage. Ingestion rate in MiB/second measured as the size of your events times the publishing rate (events per second) across all topics on the Event Grid broker is a key factor when allocating storage. Events are transient in nature and once they're delivered, there is no storage consumption for those events. While ingestion rate is a main driver for storage use, it isn't the only one. Metadata holding topic and event subscription configuration also consumes storage space, but that normally requires a lower amount of storage space than the events ingested and being delivered by Event Grid.
+ 1. **Storage size**. Default is 1 GiB. Consider the ingestion rate when determining the size of your storage. Ingestion rate in MiB/second measured as the size of your events times the publishing rate (events per second) across all topics on the Event Grid broker is a key factor when allocating storage. Events are transient in nature and once they're delivered, there's no storage consumption for those events. While ingestion rate is a main driver for storage use, it isn't the only one. Metadata holding topic and event subscription configuration also consumes storage space, but that normally requires a lower amount of storage space than the events ingested and being delivered by Event Grid.
1. **Memory limit**. Default is 1 GiB. 1. **Memory request**. Default is 200 MiB. This field isn't editable.
To establish a secure HTTPS communication with the Event Grid broker and Event G
> During the preview version, ``cluster`` is the only scope supported when creating or updating an Event Grid extension. That means the service only supports a single instance of the Event Grid extension on a Kubernetes cluster.There is no support for namespace-scoped deployments yet. For more information on extension scopes, see [Create extension instance](../../azure-arc/kubernetes/extensions.md#create-extensions-instance) and search for ``scope``. ```azurecli-interactive
- az k8s-extension create --cluster-type connectedClusters --cluster-name <connected_cluster_name> --resource-group <resource_group_of_connected_cluster> --name <event_grid_extension_name> --extension-type Microsoft.EventGrid --scope cluster --auto-upgrade-minor-version true --release-train Stable --release-namespace <namespace_name> --configuration-protected-settings-file protected-settings-extension.json --configuration-settings-file settings-extension.json
+ az k8s-extension create \
+ --cluster-type connectedClusters \
+ --cluster-name <connected_cluster_name> \
+ --resource-group <resource_group_of_connected_cluster> \
+ --name <event_grid_extension_name> \
+ --extension-type Microsoft.EventGrid \
+ --scope cluster \
+ --auto-upgrade-minor-version true \
+ --release-train Stable \
+ --release-namespace <namespace_name> \
+ --configuration-protected-settings-file protected-settings-extension.json \
+ --configuration-settings-file settings-extension.json
+ ```
+
+ For more information on the CLI command, see [az k8s-extension create](/cli/azure/k8s-extension#az-k8s-extension-create). Notice that you can use the `--config-file` parameter to pass the name of a json file that contains configuration information related to Event Grid. In order to support HTTP, include the following setting.
+
+ ```json
+ "eventgridbroker.service.supportedProtocols[0]": "http"
+ ```
+
+ Here's a sample settings-extension.json with the above setting.
+
+ ```json
+ {
+ "Microsoft.CustomLocation.ServiceAccount": "eventgrid-operator",
+ "eventgridbroker.service.serviceType": "ClusterIP",
+ "eventgridbroker.service.supportedProtocols[0]": "http",
+ "eventgridbroker.dataStorage.storageClassName": "default",
+ "eventgridbroker.diagnostics.metrics.reporterType": "prometheus"
+ }
``` 1. Validate that the event grid extension has successfully installed.
event-grid Event Grid Cli Azure Subscription https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/scripts/event-grid-cli-azure-subscription.md
This script uses the following command to create the event subscription. Each co
| Command | Notes | |||
-| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) | Create an Event Grid subscription. |
-| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) - extension version | Create an Event Grid subscription. |
+| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) | Create an Event Grid subscription. |
+| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) - extension version | Create an Event Grid subscription. |
## Next steps
event-grid Event Grid Cli Blob https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/scripts/event-grid-cli-blob.md
This script uses the following command to create the event subscription. Each co
| Command | Notes | |||
-| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) | Create an Event Grid subscription. |
-| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) - extension version | Create an Event Grid subscription. |
+| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) | Create an Event Grid subscription. |
+| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) - extension version | Create an Event Grid subscription. |
## Next steps
event-grid Event Grid Cli Create Custom Topic https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/scripts/event-grid-cli-create-custom-topic.md
This script uses the following command to create the custom topic. Each command
| Command | Notes | |||
-| [az eventgrid topic create](/cli/azure/eventgrid/topic#az_eventgrid_topic_create) | Create an Event Grid custom topic. |
+| [az eventgrid topic create](/cli/azure/eventgrid/topic#az-eventgrid-topic-create) | Create an Event Grid custom topic. |
## Next steps
event-grid Event Grid Cli Resource Group Filter https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/scripts/event-grid-cli-resource-group-filter.md
This script uses the following command to create the event subscription. Each co
| Command | Notes | |||
-| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) | Create an Event Grid subscription. |
-| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) - extension version | Create an Event Grid subscription. |
+| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) | Create an Event Grid subscription. |
+| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) - extension version | Create an Event Grid subscription. |
## Next steps
event-grid Event Grid Cli Resource Group https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/scripts/event-grid-cli-resource-group.md
This script uses the following command to create the event subscription. Each co
| Command | Notes | |||
-| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) | Create an Event Grid subscription. |
-| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) - extension version | Create an Event Grid subscription. |
+| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) | Create an Event Grid subscription. |
+| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) - extension version | Create an Event Grid subscription. |
## Next steps
event-grid Event Grid Cli Subscribe Custom Topic https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/scripts/event-grid-cli-subscribe-custom-topic.md
This script uses the following command to create the event subscription. Each co
| Command | Notes | |||
-| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) | Create an Event Grid subscription. |
-| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az_eventgrid_event_subscription_create) - extension version | Create an Event Grid subscription. |
+| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) | Create an Event Grid subscription. |
+| [az eventgrid event-subscription create](/cli/azure/eventgrid/event-subscription#az-eventgrid-event-subscription-create) - extension version | Create an Event Grid subscription. |
## Next steps
event-hubs Configure Customer Managed Key https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/configure-customer-managed-key.md
After you enable customer-managed keys, you need to associate the customer manag
> [!IMPORTANT] > Using customer-managed keys with Azure Event Hubs requires that the key vault have two required properties configured. They are: **Soft Delete** and **Do Not Purge**. These properties are enabled by default when you create a new key vault in the Azure portal. However, if you need to enable these properties on an existing key vault, you must use either PowerShell or Azure CLI.
-1. To turn on both soft delete and purge protection when creating a vault, use the [az keyvault create](/cli/azure/keyvault#az_keyvault_create) command.
+1. To turn on both soft delete and purge protection when creating a vault, use the [az keyvault create](/cli/azure/keyvault#az-keyvault-create) command.
```azurecli-interactive az keyvault create --name ContosoVault --resource-group ContosoRG --location westus --enable-soft-delete true --enable-purge-protection true ```
-1. To add purge protection to an existing vault (that already has soft delete enabled), use the [az keyvault update](/cli/azure/keyvault#az_keyvault_update) command.
+1. To add purge protection to an existing vault (that already has soft delete enabled), use the [az keyvault update](/cli/azure/keyvault#az-keyvault-update) command.
```azurecli-interactive az keyvault update --name ContosoVault --resource-group ContosoRG --enable-purge-protection true
event-hubs Dynamically Add Partitions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/dynamically-add-partitions.md
Set-AzureRmEventHub -ResourceGroupName MyResourceGroupName -Namespace MyNamespac
``` ### CLI
-Use the [`az eventhubs eventhub update`](/cli/azure/eventhubs/eventhub#az_eventhubs_eventhub_update) CLI command to update partitions in an event hub.
+Use the [`az eventhubs eventhub update`](/cli/azure/eventhubs/eventhub#az-eventhubs-eventhub-update) CLI command to update partitions in an event hub.
```azurecli-interactive az eventhubs eventhub update --resource-group MyResourceGroupName --namespace-name MyNamespaceName --name MyEventHubName --partition-count 12
event-hubs Event Hubs Bicep Namespace Event Hub https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/event-hubs-bicep-namespace-event-hub.md
+
+ Title: 'Quickstart: Create an event hub with consumer group using Bicep - Azure Event Hubs'
+description: 'Quickstart: Create an Event Hubs namespace with an event hub and a consumer group using Bicep'
++++ Last updated : 03/22/2022++
+# Quickstart: Create an event hub by using Bicep
+
+Azure Event Hubs is a Big Data streaming platform and event ingestion service, capable of receiving and processing millions of events per second. Event Hubs can process and store events, data, or telemetry produced by distributed software and devices. Data sent to an event hub can be transformed and stored using any real-time analytics provider or batching/storage adapters. For detailed overview of Event Hubs, see [Event Hubs overview](event-hubs-about.md) and [Event Hubs features](event-hubs-features.md). In this quickstart, you create an event hub by using [Bicep](../azure-resource-manager/bicep/overview.md). You deploy a Bicep file to create a namespace of type [Event Hubs](./event-hubs-about.md), with one event hub.
++
+## Prerequisites
+
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+
+## Review the Bicep file
+
+The Bicep file used in this quickstart is from [Azure Quickstart Templates](https://azure.microsoft.com/resources/templates/eventhubs-create-namespace-and-eventhub/).
++
+The resources defined in the Bicep file include:
+
+- [**Microsoft.EventHub/namespaces**](/azure/templates/microsoft.eventhub/namespaces)
+- [**Microsoft.EventHub/namespaces/eventhubs**](/azure/templates/microsoft.eventhub/namespaces/eventhubs)
+
+## Deploy the Bicep file
+
+1. Save the Bicep file as **main.bicep** to your local computer.
+1. Deploy the Bicep file using either Azure CLI or Azure PowerShell.
+
+ # [CLI](#tab/CLI)
+
+ ```azurecli
+ az group create --name exampleRG --location eastus
+ az deployment group create --resource-group exampleRG --template-file main.bicep --parameters projectName=<project-name>
+ ```
+
+ # [PowerShell](#tab/PowerShell)
+
+ ```azurepowershell
+ New-AzResourceGroup -Name exampleRG -Location eastus
+ New-AzResourceGroupDeployment -ResourceGroupName exampleRG -TemplateFile ./main.bicep -projectName "<project-name>"
+ ```
+
+
+
+ > [!NOTE]
+ > Replace **\<project-name\>** with a project name. It will be used to generate the Event Hubs name and the Namespace name.
+
+ When the deployment finishes, you should see a message indicating the deployment succeeded.
+
+## Validate the deployment
+
+Use the Azure portal, Azure CLI, or Azure PowerShell to list the deployed resources in the resource group.
+
+# [CLI](#tab/CLI)
+
+```azurecli-interactive
+az resource list --resource-group exampleRG
+```
+
+# [PowerShell](#tab/PowerShell)
+
+```azurepowershell-interactive
+Get-AzResource -ResourceGroupName exampleRG
+```
+++
+## Clean up resources
+
+When no longer needed, use the Azure portal, Azure CLI, or Azure PowerShell to delete the VM and all of the resources in the resource group.
+
+# [CLI](#tab/CLI)
+
+```azurecli-interactive
+az group delete --name exampleRG
+```
+
+# [PowerShell](#tab/PowerShell)
+
+```azurepowershell-interactive
+Remove-AzResourceGroup -Name exampleRG
+```
+++
+## Next steps
+
+In this article, you created an Event Hubs namespace and an event hub in the namespace using Bicep. For step-by-step instructions to send events to (or) receive events from an event hub, see the **Send and receive events** tutorials:
+
+- [.NET Core](event-hubs-dotnet-standard-getstarted-send.md)
+- [Java](event-hubs-java-get-started-send.md)
+- [Python](event-hubs-python-get-started-send.md)
+- [JavaScript](event-hubs-node-get-started-send.md)
+- [Go](event-hubs-go-get-started-send.md)
+- [C (send only)](event-hubs-c-getstarted-send.md)
+- [Apache Storm (receive only)](event-hubs-storm-getstarted-receive.md)
+
+[3]: ./media/event-hubs-quickstart-powershell/sender1.png
+[4]: ./media/event-hubs-quickstart-powershell/receiver1.png
+[5]: ./media/event-hubs-quickstart-powershell/metrics.png
+
+[Understand the structure and syntax of Bicep files]: ../azure-resource-manager/bicep/file.md
+[Deploy resources with Bicep and Azure PowerShell]: ../azure-resource-manager/bicep/deploy-powershell.md
+[Deploy resource with Bicep and Azure CLI]: ../azure-resource-manager/bicep/deploy-cli.md
event-hubs Event Hubs Geo Dr https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/event-hubs-geo-dr.md
This section shows how to manually fail over using Azure portal, CLI, PowerShell
> Failing over will activate the secondary namespace and remove the primary namespace from the Geo-Disaster Recovery pairing. Create another namespace to have a new geo-disaster recovery pair. # [Azure CLI](#tab/cli)
-Use the [az eventhubs georecovery-alias fail-over](/cli/azure/eventhubs/georecovery-alias#az_eventhubs_georecovery_alias_fail_over) command.
+Use the [az eventhubs georecovery-alias fail-over](/cli/azure/eventhubs/georecovery-alias#az-eventhubs-georecovery-alias-fail-over) command.
# [Azure PowerShell](#tab/powershell) Use the [Set-AzEventHubGeoDRConfigurationFailOver](/powershell/module/az.eventhub/set-azeventhubgeodrconfigurationfailover) cmdlet.
firewall Fqdn Tags https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/firewall/fqdn-tags.md
The following table shows the current FQDN tags you can use. Microsoft maintains
|App Service Environment (ASE)|Allows outbound access to ASE platform traffic. This tag doesnΓÇÖt cover customer-specific Storage and SQL endpoints created by ASE. These should be enabled via [Service Endpoints](../virtual-network/tutorial-restrict-network-access-to-resources.md) or added manually.<br><br>For more information about integrating Azure Firewall with ASE, see [Locking down an App Service Environment](../app-service/environment/firewall-integration.md#configuring-azure-firewall-with-your-ase).| |Azure Backup|Allows outbound access to the Azure Backup services.| |Azure HDInsight|Allows outbound access for HDInsight platform traffic. This tag doesnΓÇÖt cover customer-specific Storage or SQL traffic from HDInsight. Enable these using [Service Endpoints](../virtual-network/tutorial-restrict-network-access-to-resources.md) or add them manually.|
-|WindowsVirtualDesktop (WVD)|Allows outbound Windows Virtual Desktop platform traffic. This tag doesnΓÇÖt cover deployment-specific Storage and Service Bus endpoints created by WVD. Additionally, DNS and KMS network rules are required. For more information about integrating Azure Firewall with WVD, see [Use Azure Firewall to protect Window Virtual Desktop deployments](protect-azure-virtual-desktop.md).|
+|WindowsVirtualDesktop|Allows outbound Azure Virtual Desktop (formerly Windows Virtual Desktop) platform traffic. This tag doesnΓÇÖt cover deployment-specific Storage and Service Bus endpoints created by Azure Virtual Desktop. Additionally, DNS and KMS network rules are required. For more information about integrating Azure Firewall with Azure Virtual Desktop, see [Use Azure Firewall to protect Azure Virtual Desktop deployments](protect-azure-virtual-desktop.md).|
|Azure Kubernetes Service (AKS)|Allows outbound access to AKS. For more information, see [Use Azure Firewall to protect Azure Kubernetes Service (AKS) Deployments](protect-azure-kubernetes-service.md).| > [!NOTE]
firewall Ftp Support https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/firewall/ftp-support.md
To deploy using Azure PowerShell, use the `AllowActiveFTP` parameter. For more i
## Deploy using Azure CLI
-To deploy using the Azure CLI, use the `--allow-active-ftp` parameter. For more information, see [az network firewall create](/cli/azure/network/firewall#az_network_firewall_create-optional-parameters).
+To deploy using the Azure CLI, use the `--allow-active-ftp` parameter. For more information, see [az network firewall create](/cli/azure/network/firewall#az-network-firewall-create-optional-parameters).
## Deploy Azure Resource Manager (ARM) template
firewall Integrate With Nat Gateway https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/firewall/integrate-with-nat-gateway.md
# Scale SNAT ports with Azure Virtual Network NAT
-Azure Firewall provides 2496 SNAT ports per public IP address configured per backend virtual machine scale set instance (Minimum of 2 instances), and you can associate up to [250 public IP addresses](./deploy-multi-public-ip-powershell.md). Depending on your architecture and traffic patterns, you might need more than the 512,000 available SNAT ports with this configuration. For example, when you use it to protect large [Windows Virtual Desktop deployments](./protect-azure-virtual-desktop.md) that integrate with Microsoft 365 Apps.
+Azure Firewall provides 2496 SNAT ports per public IP address configured per backend virtual machine scale set instance (Minimum of 2 instances), and you can associate up to [250 public IP addresses](./deploy-multi-public-ip-powershell.md). Depending on your architecture and traffic patterns, you might need more than the 512,000 available SNAT ports with this configuration. For example, when you use it to protect large [Azure Virtual Desktop deployments](./protect-azure-virtual-desktop.md) that integrate with Microsoft 365 Apps.
Another challenge with using a large number of public IP addresses is when there are downstream IP address filtering requirements. Azure Firewall randomly selects the source public IP address to use for a connection, so you need to allow all public IP addresses associated with it. Even if you use [Public IP address prefixes](../virtual-network/ip-services/public-ip-address-prefix.md) and you need to associate 250 public IP addresses to meet your outbound SNAT port requirements, you still need to create and allow 16 public IP address prefixes.
firewall Remote Work Support https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/firewall/remote-work-support.md
Work from home policies requires many IT organizations to address fundamental ch
## Azure Virtual Desktop support
-Azure Virtual Desktop is a comprehensive desktop and app virtualization service running in Azure. ItΓÇÖs the only virtual desktop infrastructure (VDI) that delivers simplified management, multi-session Windows 10/11, optimizations for Microsoft 365 apps for enterprise, and support for Remote Desktop Services (RDS) environments. You can deploy and scale your Windows desktops and apps on Azure in minutes, and get built-in security and compliance features. Azure Virtual Desktop doesn't require you to open any inbound access to your virtual network. However, you must allow a set of outbound network connections for the Windows Virtual Desktop virtual machines that run in your virtual network. For more information, see [Use Azure Firewall to protect Window Virtual Desktop deployments](protect-azure-virtual-desktop.md).
+Azure Virtual Desktop is a comprehensive desktop and app virtualization service running in Azure. ItΓÇÖs the only virtual desktop infrastructure (VDI) that delivers simplified management, multi-session Windows 10/11, optimizations for Microsoft 365 apps for enterprise, and support for Remote Desktop Services (RDS) environments. You can deploy and scale your Windows desktops and apps on Azure in minutes, and get built-in security and compliance features. Azure Virtual Desktop doesn't require you to open any inbound access to your virtual network. However, you must allow a set of outbound network connections for the Azure Virtual Desktop virtual machines that run in your virtual network. For more information, see [Use Azure Firewall to protect Azure Virtual Desktop deployments](protect-azure-virtual-desktop.md).
## Next steps
-Learn more about [Azure Virtual Desktop](../virtual-desktop/index.yml).
+Learn more about [Azure Virtual Desktop](../virtual-desktop/overview.md).
frontdoor Front Door Caching https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/frontdoor/front-door-caching.md
The following request headers won't be forwarded to a backend when using caching
## Cache behavior and duration + Cache behavior and duration can be configured in Rules Engine. Rules Engine caching configuration will always override the route configuration. * When *caching* is **disabled**, Azure Front Door doesnΓÇÖt cache the response contents, irrespective of origin response directives.
Cache behavior and duration can be configured in Rules Engine. Rules Engine cach
> * Azure Front Door makes no guarantees about the amount of time that the content is stored in the cache. Cached content may be removed from the edge cache before the content expiration if the content is not frequently used. Front Door might be able to serve data from the cache even if the cached data has expired. This behavior can help your site to remain partially available when your backends are offline. > * Origins may specify not to cache specific responses using the Cache-Control header with a value of no-cache, private, or no-store. In these circumstances, Front Door will never cache the content and this action will have no effect. ++
+Cache behavior and duration can be configured in both the Front Door designer routing rule and in Rules Engine. Rules Engine caching configuration will always override the Front Door designer routing rule configuration.
+
+* When *caching* is **disabled**, Azure Front Door (classic) doesnΓÇÖt cache the response contents, irrespective of origin response directives.
+
+* When *caching* is **enabled**, the cache behavior is different for different values of *Use cache default duration*.
+ * When *Use cache default duration* is set to **Yes**, Azure Front Door (classic) will always honor origin response header directive. If the origin directive is missing, Front Door will cache contents anywhere from 1 to 3 days.
+ * When *Use cache default duration* is set to **No**, Azure Front Door (classic) will always override with the *cache duration* (required fields), meaning that it will cache the contents for the cache duration ignoring the values from origin response directives.
+
+> [!NOTE]
+> * The *cache duration* set in the Front Door designer routing rule is the **minimum cache duration**. This override won't work if the cache control header from the backend has a greater TTL than the override value.
+> * Azure Front Door (classic) makes no guarantees about the amount of time that the content is stored in the cache. Cached content may be removed from the edge cache before the content expiration if the content is not frequently used. Azure Front Door (classic) might be able to serve data from the cache even if the cached data has expired. This behavior can help your site to remain partially available when your backends are offline.
+>
++ ## Next steps ::: zone pivot="front-door-classic"
frontdoor Front Door Tutorial Geo Filtering https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/frontdoor/front-door-tutorial-geo-filtering.md
- Title: Tutorial - Configure geo-filtering WAF policy - Azure Front Door
-description: In this tutorial, you learn how to create a geo-filtering WAF policy and associate the policy with your existing Front Door frontend host.
----- Previously updated : 09/14/2020----
-# Tutorial: How to set up a geo-filtering WAF policy for your Front Door
-This tutorial shows how to use Azure PowerShell to create a sample geo-filtering policy and associate the policy with your existing Front Door frontend host. This sample geo-filtering policy will block requests from all other countries/regions except United States.
-
-In this tutorial, you learn how to:
-> [!div class="checklist"]
-> - Define geo-filtering match condition.
-> - Add geo-filtering match condition to a rule.
-> - Add rules to a policy.
-> - Link WAF policy to FrontDoor frontend host.
--
-## Prerequisites
-* Before you begin to set up a geo-filter policy, set up your PowerShell environment and create a Front Door profile.
-* Create a Front Door by following the instructions described in [Quickstart: Create a Front Door profile](quickstart-create-front-door.md).
-
-## Define geo-filtering match condition
-
-Create a sample match condition that selects requests not coming from "US" using [New-AzFrontDoorWafMatchConditionObject](/powershell/module/az.frontdoor/new-azfrontdoorwafmatchconditionobject) on parameters when creating a match condition.
-Two letter country/region codes to country/region mapping are provided [here](front-door-geo-filtering.md).
-
-```azurepowershell-interactive
-$nonUSGeoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
--MatchVariable RemoteAddr `--OperatorProperty GeoMatch `--NegateCondition $true `--MatchValue "US"
-```
-## Add geo-filtering match condition to a rule with Action and Priority
-
-Create a CustomRule object `nonUSBlockRule` based on the match condition, an Action, and a Priority using [New-AzFrontDoorWafCustomRuleObject](/powershell/module/az.frontdoor/new-azfrontdoorwafcustomruleobject). A CustomRule can have multiple MatchCondition. In this example, Action is set to Block and Priority to 1, the highest priority.
-
-```
-$nonUSBlockRule = New-AzFrontDoorWafCustomRuleObject `
--Name "geoFilterRule" `--RuleType MatchRule `--MatchCondition $nonUSGeoMatchCondition `--Action Block `--Priority 1
-```
-## Add rules to a policy
-Find the name of the resource group that contains the Front Door profile using `Get-AzResourceGroup`. Next, create a `geoPolicy` policy object containing `nonUSBlockRule` using [New-AzFrontDoorWafPolicy](/powershell/module/az.frontdoor/new-azfrontdoorwafpolicy) in the specified resource group that contains the Front Door profile. You must provide a unique name for the geo-filtering policy.
-
-The below example uses the Resource Group name *FrontDoorQS_rg0* with the assumption that you have created the Front Door profile using instructions provided in the [Quickstart: Create a Front Door](quickstart-create-front-door.md) article. In the below example, replace the policy name *geoPolicyAllowUSOnly* with a unique policy name.
-
-```
-$geoPolicy = New-AzFrontDoorWafPolicy `
--Name "geoPolicyAllowUSOnly" `--resourceGroupName FrontDoorQS_rg0 `--Customrule $nonUSBlockRule `--Mode Prevention `--EnabledState Enabled
-```
-## Link WAF policy to a Front Door frontend host
-Link the WAF policy object to the existing Front Door frontend host and update Front Door properties.
-
-To do so, first retrieve your Front Door object using [Get-AzFrontDoor](/powershell/module/az.frontdoor/get-azfrontdoor).
-
-```
-$geoFrontDoorObjectExample = Get-AzFrontDoor -ResourceGroupName FrontDoorQS_rg0
-$geoFrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $geoPolicy.Id
-```
-Next, set the frontend WebApplicationFirewallPolicyLink property to the resourceId of the `geoPolicy`using [Set-AzFrontDoor](/powershell/module/az.frontdoor/set-azfrontdoor).
-
-```
-Set-AzFrontDoor -InputObject $geoFrontDoorObjectExample[0]
-```
-
-> [!NOTE]
-> You only need to set WebApplicationFirewallPolicyLink property once to link a WAF policy to a Front Door frontend host. Subsequent policy updates are automatically applied to the frontend host.
-
-## Clean up resources
-
-In the preceding steps, you configured a geo-filtering rule that is associated to a WAF policy. You then linked the policy to a frontend host of your Front Door. If you no longer need the geo-filtering rule or WAF policy, you must first disassociate the policy from the frontend host before the WAF policy can be deleted.
--
-## Next steps
-
-To learn how to configure a Web Application Firewall for your Front Door, continue to the next tutorial.
-
-> [!div class="nextstepaction"]
-> [Web Application Firewall and Front Door](front-door-waf.md)
frontdoor Front Door Waf https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/frontdoor/front-door-waf.md
We recommend you ensure only Azure Front Door edges can communicate with your we
## Clean up resources
-When you no longer need the resources used in this tutorial, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, Front Door, and WAF policy:
+When you no longer need the resources used in this tutorial, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, Front Door, and WAF policy:
```azurecli-interactive az group delete \
frontdoor Quickstart Create Front Door Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/frontdoor/quickstart-create-front-door-cli.md
In Azure, you allocate related resources to a resource group. You can either use
For this quickstart, you need two resource groups. One in *Central US* and the second in *South Central US*.
-Create a resource group with [az group create](/cli/azure/group#az_group_create):
+Create a resource group with [az group create](/cli/azure/group#az-group-create):
```azurecli-interactive az group create \
If you don't already have a web app, use the following script to set up two exam
Before you can create the web apps you will need two app service plans, one in *Central US* and the second in *East US*.
-Create app service plans with [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create&preserve-view=true):
+Create app service plans with [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create&preserve-view=true):
```azurecli-interactive az appservice plan create \
az appservice plan create \
Running the following commands will create a web app in each of the app service plans in the previous step. Web app names have to be globally unique.
-Create web app with [az webapp create](/cli/azure/webapp#az_webapp_create&preserve-view=true):
+Create web app with [az webapp create](/cli/azure/webapp#az-webapp-create&preserve-view=true):
```azurecli-interactive az webapp create \
Make note of the default host name of each web app so you can define the backend
Create a basic Front Door with default load balancing settings, health probe, and routing rules by running to follow:
-Create Front Door with [az network front-door create](/cli/azure/network/front-door#az_network_front_door_create&preserve-view=true):
+Create Front Door with [az network front-door create](/cli/azure/network/front-door#az-network-front-door-create&preserve-view=true):
```azurecli-interactive az network front-door create \
Open a web browser and enter the hostname obtain from the commands. The Front Do
When you no longer need the resources that you created with the Front Door, delete both resource groups. When you delete the resource group, you also delete the Front Door and all its related resources.
-To delete the resource group use [az group delete](/cli/azure/group#az_group_delete&preserve-view=true):
+To delete the resource group use [az group delete](/cli/azure/group#az-group-delete&preserve-view=true):
```azurecli-interactive az group delete \
frontdoor Create Front Door Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/frontdoor/standard-premium/create-front-door-cli.md
In this quickstart, you'll learn how to create an Azure Front Door Standard/Prem
For this quickstart, you'll need two resource groups. One in *Central US* and the second in *East US*.
-Run [az group create](/cli/azure/group#az_group_create) to create resource groups.
+Run [az group create](/cli/azure/group#az-group-create) to create resource groups.
```azurecli az group create \
az group create \
## Create an Azure Front Door profile
-Run [az afd profile create](/cli/azure/afd/profile#az_afd_profile_create) to create an Azure Front Door profile.
+Run [az afd profile create](/cli/azure/afd/profile#az-afd-profile-create) to create an Azure Front Door profile.
```azurecli az afd profile create \
If you don't already have a web app, use the following script to set up two exam
Before you can create the web apps you'll need two app service plans, one in *Central US* and the second in *East US*.
-Run [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create&preserve-view=true) to create your app service plans.
+Run [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create&preserve-view=true) to create your app service plans.
```azurecli az appservice plan create \
az appservice plan create \
### Create web apps
-Run [az webapp create](/cli/azure/webapp#az_webapp_create&preserve-view=true) to create a web app in each of the app service plans in the previous step. Web app names have to be globally unique.
+Run [az webapp create](/cli/azure/webapp#az-webapp-create&preserve-view=true) to create a web app in each of the app service plans in the previous step. Web app names have to be globally unique.
-Run [az webapp list-runtimes](/cli/azure/webapp#az_webapp_create&preserve-view=true) to see a list of built-in stacks for web apps.
+Run [az webapp list-runtimes](/cli/azure/webapp#az-webapp-create&preserve-view=true) to see a list of built-in stacks for web apps.
```azurecli az webapp create \
Make note of the default host name of each web app so you can define the backend
## Add an endpoint
-Run [az afd endpoint create](/cli/azure/afd/endpoint#az_afd_endpoint_create) to create an endpoint in your profile. You can create multiple endpoints in your profile after finishing the create experience.
+Run [az afd endpoint create](/cli/azure/afd/endpoint#az-afd-endpoint-create) to create an endpoint in your profile. You can create multiple endpoints in your profile after finishing the create experience.
```azurecli az afd endpoint create \
az afd endpoint create \
## Create an origin group
-Run [az afd origin-group create](/cli/azure/afd/origin-group#az_afd_origin_group_create) to create an origin group that contains your two web apps.
+Run [az afd origin-group create](/cli/azure/afd/origin-group#az-afd-origin-group-create) to create an origin group that contains your two web apps.
```azurecli az afd origin-group create \
az afd origin-group create \
## Add an origin to the group
-Run [az afd origin create](/cli/azure/afd/origin#az_afd_origin_create) to add an origin to your origin group.
+Run [az afd origin create](/cli/azure/afd/origin#az-afd-origin-create) to add an origin to your origin group.
```azurecli az afd origin create \
az afd origin create \
## Add a route
-Run [az afd route create](/cli/azure/afd/route#az_afd_route_create) to map your frontend endpoint to the origin group. This route forwards requests from the endpoint to *og1*.
+Run [az afd route create](/cli/azure/afd/route#az-afd-route-create) to map your frontend endpoint to the origin group. This route forwards requests from the endpoint to *og1*.
```azurecli az afd route create \
az afd route create \
### Create a WAF policy
-Run [az network front-door waf-policy create](/cli/azure/network/front-door/waf-policy#az_network_front_door_waf_policy_create) to create a WAF policy for one of your resource groups.
+Run [az network front-door waf-policy create](/cli/azure/network/front-door/waf-policy#az-network-front-door-waf-policy-create) to create a WAF policy for one of your resource groups.
Create a new WAF policy for your Front Door. This example creates a policy that's enabled and in prevention mode.
az network front-door waf-policy create
### Create the security policy
-Run [az afd security-policy create](/cli/azure/afd/security-policy#az_afd_security_policy_create) to apply your WAF policy to the endpoint's default domain.
+Run [az afd security-policy create](/cli/azure/afd/security-policy#az-afd-security-policy-create) to apply your WAF policy to the endpoint's default domain.
```azurecli az afd security-policy create \
To test instant global failover, we'll use the following steps:
When you don't need the resources for the Front Door, delete both resource groups. Deleting the resource groups also deletes the Front Door and all its related resources.
-Run [az group delete](/cli/azure/group#az_group_delete&preserve-view=true):
+Run [az group delete](/cli/azure/group#az-group-delete&preserve-view=true):
```azurecli az group delete \
frontdoor Front Door Add Rules Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/frontdoor/standard-premium/front-door-add-rules-cli.md
In this tutorial, you'll learn how to:
For this quickstart, you'll need two resource groups. One in *Central US* and the second in *East US*.
-Run [az group create](/cli/azure/group#az_group_create) to create resource groups.
+Run [az group create](/cli/azure/group#az-group-create) to create resource groups.
```azurecli az group create \
az group create \
### Create an Azure Front Door profile
-Run [az afd profile create](/cli/azure/afd/profile#az_afd_profile_create) to create an Azure Front Door profile.
+Run [az afd profile create](/cli/azure/afd/profile#az-afd-profile-create) to create an Azure Front Door profile.
```azurecli az afd profile create \
If you don't already have a web app, use the following script to set up two exam
Before you can create the web apps you'll need two app service plans, one in *Central US* and the second in *East US*.
-Run [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create&preserve-view=true) to create your app service plans.
+Run [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create&preserve-view=true) to create your app service plans.
```azurecli az appservice plan create \
az appservice plan create \
#### Create web apps
-Run [az webapp create](/cli/azure/webapp#az_webapp_create&preserve-view=true) to create a web app in each of the app service plans in the previous step. Web app names have to be globally unique.
+Run [az webapp create](/cli/azure/webapp#az-webapp-create&preserve-view=true) to create a web app in each of the app service plans in the previous step. Web app names have to be globally unique.
-Run [az webapp list-runtimes](/cli/azure/webapp#az_webapp_create&preserve-view=true) to see a list of built-in stacks for web apps.
+Run [az webapp list-runtimes](/cli/azure/webapp#az-webapp-create&preserve-view=true) to see a list of built-in stacks for web apps.
```azurecli az webapp create \
Make note of the default host name of each web app so you can define the backend
### Add an endpoint
-Run [az afd endpoint create](/cli/azure/afd/endpoint#az_afd_endpoint_create) to create an endpoint in your profile. You can create multiple endpoints in your profile after finishing the create experience.
+Run [az afd endpoint create](/cli/azure/afd/endpoint#az-afd-endpoint-create) to create an endpoint in your profile. You can create multiple endpoints in your profile after finishing the create experience.
```azurecli az afd endpoint create \
az afd endpoint create \
### Create an origin group
-Run [az afd origin-group create](/cli/azure/afd/origin-group#az_afd_origin_group_create) to create an origin group that contains your two web apps.
+Run [az afd origin-group create](/cli/azure/afd/origin-group#az-afd-origin-group-create) to create an origin group that contains your two web apps.
```azurecli az afd origin-group create \
az afd origin-group create \
#### Add origins to the group
-Run [az afd origin create](/cli/azure/afd/origin#az_afd_origin_create) to add an origin to your origin group.
+Run [az afd origin create](/cli/azure/afd/origin#az-afd-origin-create) to add an origin to your origin group.
```azurecli az afd origin create \
az afd origin create \
### Add a route
-Run [az afd route create](/cli/azure/afd/route#az_afd_route_create) to map your frontend endpoint to the origin group. This route forwards requests from the endpoint to *og1*.
+Run [az afd route create](/cli/azure/afd/route#az-afd-route-create) to map your frontend endpoint to the origin group. This route forwards requests from the endpoint to *og1*.
```azurecli az afd route create \
az afd route create \
### Create a WAF policy
-Run [az network front-door waf-policy create](/cli/azure/network/front-door/waf-policy#az_network_front_door_waf_policy_create) to create a WAF policy for one of your resource groups.
+Run [az network front-door waf-policy create](/cli/azure/network/front-door/waf-policy#az-network-front-door-waf-policy-create) to create a WAF policy for one of your resource groups.
Create a new WAF policy for your Front Door. This example creates a policy that's enabled and in prevention mode.
az network front-door waf-policy create
### Create the security policy
-Run [az afd security-policy create](/cli/azure/afd/security-policy#az_afd_security_policy_create) to apply your WAF policy to the endpoint's default domain.
+Run [az afd security-policy create](/cli/azure/afd/security-policy#az-afd-security-policy-create) to apply your WAF policy to the endpoint's default domain.
```azurecli az afd security-policy create \
To test instant global failover, we'll use the following steps:
## Create a rule set
-Create a rule set to customize how HTTP requests are handled at the edge. Delivery rules added to the rule set provide more control over your web application behaviors. Run [az afd rule-set create](/cli/azure/afd/rule-set#az_afd_rule_set_create) to create a rule set in your Azure Front Door profile.
+Create a rule set to customize how HTTP requests are handled at the edge. Delivery rules added to the rule set provide more control over your web application behaviors. Run [az afd rule-set create](/cli/azure/afd/rule-set#az-afd-rule-set-create) to create a rule set in your Azure Front Door profile.
```azurecli az afd rule-set create \
az afd rule-set create \
## Create a delivery rule and add it to your rule set
-Create a new delivery rule within your rule set. Run [az afd rule create](/cli/azure/afd/rule#az_afd_rule_create) to create a delivery rule in your rule set. For this example, we'll create a rule for an http to https redirect.
+Create a new delivery rule within your rule set. Run [az afd rule create](/cli/azure/afd/rule#az-afd-rule-create) to create a delivery rule in your rule set. For this example, we'll create a rule for an http to https redirect.
```azurecli az afd rule create \
az afd rule create \
## Add an action or condition to your delivery rule
-You might find that you need to further customize your new delivery rule. You can add actions or conditions as needed after creation. Run [az afd rule action add](/cli/azure/afd/rule/action#az_afd_rule_action_add) or [az afd rule condition add](/cli/azure/afd/rule/condition#az_afd_rule_condition_add) to update your rule.
+You might find that you need to further customize your new delivery rule. You can add actions or conditions as needed after creation. Run [az afd rule action add](/cli/azure/afd/rule/action#az-afd-rule-action-add) or [az afd rule condition add](/cli/azure/afd/rule/condition#az-afd-rule-condition-add) to update your rule.
### Add an action
az afd rule condition add \
When you don't need the resources for the Front Door, delete both resource groups. Deleting the resource groups also deletes the Front Door and all its related resources.
-Run [az group delete](/cli/azure/group#az_group_delete&preserve-view=true):
+Run [az group delete](/cli/azure/group#az-group-delete&preserve-view=true):
```azurecli az group delete \
governance Create Blueprint Azurecli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/governance/blueprints/create-blueprint-azurecli.md
assignment on the resource group.
``` > [!NOTE]
- > Use the filename _blueprint.json_ when you import your blueprint definitions. This file name is used when you call [az blueprint import](/cli/azure/blueprint#az_blueprint_import).
+ > Use the filename _blueprint.json_ when you import your blueprint definitions. This file name is used when you call [az blueprint import](/cli/azure/blueprint#az-blueprint-import).
The blueprint object is created in the default subscription by default. To specify the management group, use the parameter `managementgroup`. To specify the subscription, use the parameter `subscription`.
governance Create Management Group Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/governance/management-groups/create-management-group-azure-cli.md
directory. You receive a notification when the process is complete. For more inf
### Create in the Azure CLI For Azure CLI, use the
-[az account management-group create](/cli/azure/account/management-group#az_account_management_group_create)
+[az account management-group create](/cli/azure/account/management-group#az-account-management-group-create)
command to create a new management group. In this example, the management group **name** is _Contoso_.
az account management-group create --name 'ContosoSubGroup' --parent 'Contoso'
## Clean up resources To remove the management group created above, use the
-[az account management-group delete](/cli/azure/account/management-group#az_account_management_group_delete)
+[az account management-group delete](/cli/azure/account/management-group#az-account-management-group-delete)
command: ```azurecli-interactive
governance Assign Policy Bicep https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/governance/policy/assign-policy-bicep.md
Title: "Quickstart: New policy assignment with Bicep (Preview) file"
-description: In this quickstart, you use a Bicep (Preview) file to create a policy assignment to identify non-compliant resources.
Previously updated : 08/17/2021
+ Title: "Quickstart: New policy assignment with Bicep file"
+description: In this quickstart, you use a Bicep file to create a policy assignment to identify non-compliant resources.
Last updated : 03/24/2022
The first step in understanding compliance in Azure is to identify the status of your resources. This quickstart steps you through the process of using a
-[Bicep (Preview)](https://github.com/Azure/bicep) file compiled to an Azure Resource
-Manager template (ARM template) to create a policy assignment to identify virtual machines that
+[Bicep](https://github.com/Azure/bicep) file compiled to an Azure Resource
+Manager (ARM) deployment template to create a policy assignment to identify virtual machines that
aren't using managed disks. At the end of this process, you'll successfully identify virtual machines that aren't using managed disks. They're _non-compliant_ with the policy assignment.
If your environment meets the prerequisites and you're familiar with using ARM t
- If you don't have an Azure subscription, create a [free](https://azure.microsoft.com/free/) account before you begin. - Bicep version `0.3` or higher installed. If you don't yet have Bicep CLI or need to update, see
- [Install Bicep (Preview)](../../azure-resource-manager/bicep/install.md).
+ [Install Bicep](../../azure-resource-manager/bicep/install.md).
## Review the Bicep file
-In this quickstart, you create a policy assignment and assign a built-in policy definition called
-_Audit VMs that do not use managed disks_ (`06a78e20-9358-41c9-923c-fb736d382a4d`). For a partial
+In this quickstart, you create a policy assignment and assign a built-in policy definition called [_Audit VMs that do not use managed disks_](https://github.com/Azure/azure-policy/blob/master/built-in-policies/policyDefinitions/Compute/VMRequireManagedDisk_Audit.json). For a partial
list of available built-in policies, see [Azure Policy samples](./samples/index.md). Create the following Bicep file as `assignment.bicep`:
governance Author Policies For Arrays https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/governance/policy/how-to/author-policies-for-arrays.md
API. The values are passed through a JSON string that also includes the name of
To use this string with each SDK, use the following commands: - Azure CLI: Command
- [az policy assignment create](/cli/azure/policy/assignment#az_policy_assignment_create) with
+ [az policy assignment create](/cli/azure/policy/assignment#az-policy-assignment-create) with
parameter **params** - Azure PowerShell: Cmdlet [New-AzPolicyAssignment](/powershell/module/az.resources/New-Azpolicyassignment) with parameter **PolicyParameter**
governance Export Resources https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/governance/policy/how-to/export-resources.md
Azure Policy definitions, initiatives, and assignments can each be exported as J
specify which object to get the JSON for. The **name** property is often a _GUID_ and isn't the **displayName** of the object. -- Definition - [az policy definition show](/cli/azure/policy/definition#az_policy_definition_show)-- Initiative - [az policy set-definition show](/cli/azure/policy/set-definition#az_policy_set_definition_show)-- Assignment - [az policy assignment show](/cli/azure/policy/assignment#az_policy_assignment_show)
+- Definition - [az policy definition show](/cli/azure/policy/definition#az-policy-definition-show)
+- Initiative - [az policy set-definition show](/cli/azure/policy/set-definition#az-policy-set-definition-show)
+- Assignment - [az policy assignment show](/cli/azure/policy/assignment#az-policy-assignment-show)
Here is an example of getting the JSON for a policy definition with **name** of _VirtualMachineStorage_:
governance Get Compliance Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/governance/policy/how-to/get-compliance-data.md
For more information and workflow samples, see the
#### On-demand evaluation scan - Azure CLI The compliance scan is started with the
-[az policy state trigger-scan](/cli/azure/policy/state#az_policy_state_trigger_scan) command.
+[az policy state trigger-scan](/cli/azure/policy/state#az-policy-state-trigger-scan) command.
By default, `az policy state trigger-scan` starts an evaluation for all resources in the current subscription. To start an evaluation on a specific resource group, use the **resource-group**
governance Programmatically Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/governance/policy/how-to/programmatically-create.md
To create a policy definition, use the following procedure:
The command creates a policy definition named _Audit Storage Accounts Open to Public Networks_. For more information about other parameters that you can use, see
- [az policy definition create](/cli/azure/policy/definition#az_policy_definition_create).
+ [az policy definition create](/cli/azure/policy/definition#az-policy-definition-create).
When called without location parameters, `az policy definition creation` defaults to saving the policy definition in the selected subscription of the sessions context. To save the definition to
governance Shared Query Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/governance/resource-graph/shared-query-azure-cli.md
Docker image](https://hub.docker.com/_/microsoft-azure-cli), or locally installe
follow [these instructions](/cli/azure/install-azure-cli-windows). 1. In your Azure CLI environment of choice, use
- [az extension add](/cli/azure/extension#az_extension_add) to import the Resource Graph extension
+ [az extension add](/cli/azure/extension#az-extension-add) to import the Resource Graph extension
with the following command: ```azurecli
Docker image](https://hub.docker.com/_/microsoft-azure-cli), or locally installe
``` 1. Validate that the extension has been installed and is the expected version (at least **1.1.0**)
- with [az extension list](/cli/azure/extension#az_extension_list):
+ with [az extension list](/cli/azure/extension#az-extension-list):
```azurecli # Check the extension list (note that you may have other extensions installed)
shared query. The shared query is an Azure Resource Manager object that you can
or run in Azure Resource Graph Explorer. The query summarizes the count of all resources grouped by _location_.
-1. Create a resource group with [az group create](/cli/azure/group#az_group_create) to store the
+1. Create a resource group with [az group create](/cli/azure/group#az-group-create) to store the
Azure Resource Graph shared query. This resource group is named `resource-graph-queries` and the location is `westus2`.
_location_.
``` 1. Create the Azure Resource Graph shared query using the `graph` extension and
- [az graph shared-query create](/cli/azure/graph/shared-query#az_graph_shared_query_create)
+ [az graph shared-query create](/cli/azure/graph/shared-query#az-graph-shared-query-create)
command: ```azurecli
_location_.
``` 1. List the shared queries in the new resource group. The
- [az graph shared-query list](/cli/azure/graph/shared-query#az_graph_shared_query_list)
+ [az graph shared-query list](/cli/azure/graph/shared-query#az-graph-shared-query-list)
command returns an array of values. ```azurecli
_location_.
``` 1. To get just a single shared query result, use the
- [az graph shared-query show](/cli/azure/graph/shared-query#az_graph_shared_query_show)
+ [az graph shared-query show](/cli/azure/graph/shared-query#az-graph-shared-query-show)
command. ```azurecli
_location_.
``` 1. Run the shared query in Azure CLI with the `{{shared-query-uri}}` syntax in an
- [az graph query](/cli/azure/graph#az_graph_query) command.
+ [az graph query](/cli/azure/graph#az-graph-query) command.
First, copy the `id` field from the result of the previous `show` command. Replace `shared-query-uri` text in the example with the value from the `id` field, but leave the surrounding `{{` and `}}` characters.
page, the **Query** tab displays the saved query. The **Edit** button opens it i
If you wish to remove the Resource Graph shared query, resource group, and extension from your Azure CLI environment, you can do so by using the following commands: -- [az graph shared-query delete](/cli/azure/graph/shared-query#az_graph_shared_query_delete)-- [az group delete](/cli/azure/group#az_group_delete)-- [az extension remove](/cli/azure/extension#az_extension_remove)
+- [az graph shared-query delete](/cli/azure/graph/shared-query#az-graph-shared-query-delete)
+- [az group delete](/cli/azure/group#az-group-delete)
+- [az extension remove](/cli/azure/extension#az-extension-remove)
```azurecli # Delete the Azure Resource Graph shared query
hdinsight Azure Cli Samples https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/azure-cli-samples.md
This article provides sample scripts for common tasks. For each example, update
## az login
-[Log in to Azure](/cli/azure/reference-index#az_login).
+[Log in to Azure](/cli/azure/reference-index#az-login).
```azurecli az login
az login
## az hdinsight create
-[Creates a new cluster](/cli/azure/hdinsight#az_hdinsight_create).
+[Creates a new cluster](/cli/azure/hdinsight#az-hdinsight-create).
### Create a cluster with an existing storage account
az hdinsight create \
## az hdinsight application create
-[Create an application for a HDInsight cluster](/cli/azure/hdinsight/application#az_hdinsight_application_create).
+[Create an application for a HDInsight cluster](/cli/azure/hdinsight/application#az-hdinsight-application-create).
### Create an application with a script URI
az hdinsight application create \
## az hdinsight script-action execute
-[Execute script actions on the specified HDInsight cluster](/cli/azure/hdinsight/script-action#az_hdinsight_script_action_execute).
+[Execute script actions on the specified HDInsight cluster](/cli/azure/hdinsight/script-action#az-hdinsight-script-action-execute).
### Execute a script action and persist on success
hdinsight Disk Encryption https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/disk-encryption.md
You also need to assign the managed identity to the cluster.
#### Using Azure CLI
-The following example shows how to use Azure CLI to create a new Apache Spark cluster with disk encryption enabled. For more information, see [Azure CLI az hdinsight create](/cli/azure/hdinsight#az_hdinsight_create). The parameter `encryption-key-version` is optional.
+The following example shows how to use Azure CLI to create a new Apache Spark cluster with disk encryption enabled. For more information, see [Azure CLI az hdinsight create](/cli/azure/hdinsight#az-hdinsight-create). The parameter `encryption-key-version` is optional.
```azurecli az hdinsight create -t spark -g MyResourceGroup -n MyCluster \
To rotate the key, you need the base key vault URI. Once you've done that, go to
#### Using Azure CLI
-The following example shows how to rotate the disk encryption key for an existing HDInsight cluster. For more information, see [Azure CLI az hdinsight rotate-disk-encryption-key](/cli/azure/hdinsight#az_hdinsight_rotate_disk_encryption_key).
+The following example shows how to rotate the disk encryption key for an existing HDInsight cluster. For more information, see [Azure CLI az hdinsight rotate-disk-encryption-key](/cli/azure/hdinsight#az-hdinsight-rotate-disk-encryption-key).
```azurecli az hdinsight rotate-disk-encryption-key \
If the cluster loses access to the key, warnings will be shown in the Apache Amb
**How can I recover the cluster if the keys are deleted?**
-Since only "Soft Delete" enabled keys are supported, if the keys are recovered in the key vault, the cluster should regain access to the keys. To recover an Azure Key Vault key, see [Undo-AzKeyVaultKeyRemoval](/powershell/module/az.keyvault/Undo-AzKeyVaultKeyRemoval) or [az-keyvault-key-recover](/cli/azure/keyvault/key#az_keyvault_key_recover).
+Since only "Soft Delete" enabled keys are supported, if the keys are recovered in the key vault, the cluster should regain access to the keys. To recover an Azure Key Vault key, see [Undo-AzKeyVaultKeyRemoval](/powershell/module/az.keyvault/Undo-AzKeyVaultKeyRemoval) or [az-keyvault-key-recover](/cli/azure/keyvault/key#az-keyvault-key-recover).
**If a cluster is scaled up, will the new nodes support customer-managed keys seamlessly?**
hdinsight Hdinsight 40 Component Versioning https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-40-component-versioning.md
The OSS component versions associated with HDInsight 4.0 are listed in the follo
| Apache Oozie | 4.3.1 | | Apache Zookeeper | 3.4.6 | | Apache Phoenix | 5 |
-| Apache Spark | 2.4.4, 3.0.0(Preview)|
+| Apache Spark | 2.4.4, 3.1|
| Apache Livy | 0.5 | | Apache Kafka | 2.1.1, 2.4.1(Preview) | | Apache Ambari | 2.7.0 |
hdinsight Hdinsight Administer Use Command Line https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-administer-use-command-line.md
az login
## List clusters
-Use [az hdinsight list](/cli/azure/hdinsight#az_hdinsight_list) to list clusters. Edit the commands below by replacing `RESOURCE_GROUP_NAME` with the name of your resource group, then enter the commands:
+Use [az hdinsight list](/cli/azure/hdinsight#az-hdinsight-list) to list clusters. Edit the commands below by replacing `RESOURCE_GROUP_NAME` with the name of your resource group, then enter the commands:
```azurecli-interactive # List all clusters in the current subscription
az hdinsight list --resource-group RESOURCE_GROUP_NAME --query "[].{clusterName:
## Show cluster
-Use [az hdinsight show](/cli/azure/hdinsight#az_hdinsight_show) to show information for a specified cluster. Edit the command below by replacing `RESOURCE_GROUP_NAME`, and `CLUSTER_NAME` with the relevant information, then enter the command:
+Use [az hdinsight show](/cli/azure/hdinsight#az-hdinsight-show) to show information for a specified cluster. Edit the command below by replacing `RESOURCE_GROUP_NAME`, and `CLUSTER_NAME` with the relevant information, then enter the command:
```azurecli-interactive az hdinsight show --resource-group RESOURCE_GROUP_NAME --name CLUSTER_NAME
az hdinsight show --resource-group RESOURCE_GROUP_NAME --name CLUSTER_NAME
## Delete clusters
-Use [az hdinsight delete](/cli/azure/hdinsight#az_hdinsight_delete) to delete a specified cluster. Edit the command below by replacing `RESOURCE_GROUP_NAME`, and `CLUSTER_NAME` with the relevant information, then enter the command:
+Use [az hdinsight delete](/cli/azure/hdinsight#az-hdinsight-delete) to delete a specified cluster. Edit the command below by replacing `RESOURCE_GROUP_NAME`, and `CLUSTER_NAME` with the relevant information, then enter the command:
```azurecli-interactive az hdinsight delete --resource-group RESOURCE_GROUP_NAME --name CLUSTER_NAME
az group delete --name RESOURCE_GROUP_NAME
## Scale clusters
-Use [az hdinsight resize](/cli/azure/hdinsight#az_hdinsight_resize) to resize the specified HDInsight cluster to the specified size. Edit the command below by replacing `RESOURCE_GROUP_NAME`, and `CLUSTER_NAME` with the relevant information. Replace `WORKERNODE_COUNT` with the desired number of worker nodes for your cluster. For more information about scaling clusters, see [Scale HDInsight clusters](./hdinsight-scaling-best-practices.md). Enter the command:
+Use [az hdinsight resize](/cli/azure/hdinsight#az-hdinsight-resize) to resize the specified HDInsight cluster to the specified size. Edit the command below by replacing `RESOURCE_GROUP_NAME`, and `CLUSTER_NAME` with the relevant information. Replace `WORKERNODE_COUNT` with the desired number of worker nodes for your cluster. For more information about scaling clusters, see [Scale HDInsight clusters](./hdinsight-scaling-best-practices.md). Enter the command:
```azurecli-interactive az hdinsight resize --resource-group RESOURCE_GROUP_NAME --name CLUSTER_NAME --workernode-count WORKERNODE_COUNT
hdinsight Hdinsight Hadoop Create Linux Clusters Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-hadoop-create-linux-clusters-azure-cli.md
The steps in this document walk-through creating a HDInsight 3.6 cluster using t
# az account set --subscription "SUBSCRIPTIONID" ```
-2. Set environment variables. The use of variables in this article is based on Bash. Slight variations will be needed for other environments. See [az-hdinsight-create](/cli/azure/hdinsight#az_hdinsight_create) for a complete list of possible parameters for cluster creation.
+2. Set environment variables. The use of variables in this article is based on Bash. Slight variations will be needed for other environments. See [az-hdinsight-create](/cli/azure/hdinsight#az-hdinsight-create) for a complete list of possible parameters for cluster creation.
|Parameter | Description | |||
The steps in this document walk-through creating a HDInsight 3.6 cluster using t
export componentVersion=Hadoop=2.7 ```
-3. [Create the resource group](/cli/azure/group#az_group_create) by entering the command below:
+3. [Create the resource group](/cli/azure/group#az-group-create) by entering the command below:
```azurecli-interactive az group create \
The steps in this document walk-through creating a HDInsight 3.6 cluster using t
For a list of valid locations, use the `az account list-locations` command, and then use one of the locations from the `name` value.
-4. [Create an Azure Storage account](/cli/azure/storage/account#az_storage_account_create) by entering the command below:
+4. [Create an Azure Storage account](/cli/azure/storage/account#az-storage-account-create) by entering the command below:
```azurecli-interactive # Note: kind BlobStorage is not available as the default storage account.
The steps in this document walk-through creating a HDInsight 3.6 cluster using t
--sku Standard_LRS ```
-5. [Extract the primary key from the Azure Storage account](/cli/azure/storage/account/keys#az_storage_account_keys_list) and store it in a variable by entering the command below:
+5. [Extract the primary key from the Azure Storage account](/cli/azure/storage/account/keys#az-storage-account-keys-list) and store it in a variable by entering the command below:
```azurecli-interactive export AZURE_STORAGE_KEY=$(az storage account keys list \
The steps in this document walk-through creating a HDInsight 3.6 cluster using t
--query [0].value -o tsv) ```
-6. [Create an Azure Storage container](/cli/azure/storage/container#az_storage_container_create) by entering the command below:
+6. [Create an Azure Storage container](/cli/azure/storage/container#az-storage-container-create) by entering the command below:
```azurecli-interactive az storage container create \
The steps in this document walk-through creating a HDInsight 3.6 cluster using t
--account-name $AZURE_STORAGE_ACCOUNT ```
-7. [Create the HDInsight cluster](/cli/azure/hdinsight#az_hdinsight_create) by entering the following command:
+7. [Create the HDInsight cluster](/cli/azure/hdinsight#az-hdinsight-create) by entering the following command:
```azurecli-interactive az hdinsight create \
hdinsight Hdinsight Hadoop Create Linux Clusters With Secure Transfer Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-hadoop-create-linux-clusters-with-secure-transfer-storage.md
To update an existing storage account with PowerShell, see [Require secure trans
### Azure CLI
-For the Azure CLI command [az storage account create](/cli/azure/storage/account#az_storage_account_create), ensure parameter `--https-only` is set to `true`.
+For the Azure CLI command [az storage account create](/cli/azure/storage/account#az-storage-account-create), ensure parameter `--https-only` is set to `true`.
To update an existing storage account with Azure CLI, see [Require secure transfer with Azure CLI](../storage/common/storage-require-secure-transfer.md#require-secure-transfer-with-azure-cli).
hdinsight Hdinsight Hadoop Customize Cluster Linux https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-hadoop-customize-cluster-linux.md
The following example script demonstrates using the cmdlets to promote and then
| Command | Description | | | |
-| [`az hdinsight script-action delete`](/cli/azure/hdinsight/script-action#az_hdinsight_script_action_delete) |Deletes a specified persisted script action of the cluster. This command doesn't undo the actions done by a script, it only removes the persisted flag.|
-|[`az hdinsight script-action execute`](/cli/azure/hdinsight/script-action#az_hdinsight_script_action_execute)|Execute script actions on the specified HDInsight cluster.|
-| [`az hdinsight script-action list`](/cli/azure/hdinsight/script-action#az_hdinsight_script_action_list) |Lists all the persisted script actions for the specified cluster. |
-|[`az hdinsight script-action list-execution-history`](/cli/azure/hdinsight/script-action#az_hdinsight_script_action_list_execution_history)|Lists all scripts' execution history for the specified cluster.|
-|[`az hdinsight script-action promote`](/cli/azure/hdinsight/script-action#az_hdinsight_script_action_promote)|Promotes the specified ad hoc script execution to a persisted script.|
-|[`az hdinsight script-action show-execution-details`](/cli/azure/hdinsight/script-action#az_hdinsight_script_action_show_execution_details)|Gets the script execution detail for the given script execution ID.|
+| [`az hdinsight script-action delete`](/cli/azure/hdinsight/script-action#az-hdinsight-script-action-delete) |Deletes a specified persisted script action of the cluster. This command doesn't undo the actions done by a script, it only removes the persisted flag.|
+|[`az hdinsight script-action execute`](/cli/azure/hdinsight/script-action#az-hdinsight-script-action-execute)|Execute script actions on the specified HDInsight cluster.|
+| [`az hdinsight script-action list`](/cli/azure/hdinsight/script-action#az-hdinsight-script-action-list) |Lists all the persisted script actions for the specified cluster. |
+|[`az hdinsight script-action list-execution-history`](/cli/azure/hdinsight/script-action#az-hdinsight-script-action-list-execution-history)|Lists all scripts' execution history for the specified cluster.|
+|[`az hdinsight script-action promote`](/cli/azure/hdinsight/script-action#az-hdinsight-script-action-promote)|Promotes the specified ad hoc script execution to a persisted script.|
+|[`az hdinsight script-action show-execution-details`](/cli/azure/hdinsight/script-action#az-hdinsight-script-action-show-execution-details)|Gets the script execution detail for the given script execution ID.|
### HDInsight .NET SDK
hdinsight Hdinsight Hadoop Linux Use Ssh Unix https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-hadoop-linux-use-ssh-unix.md
You're prompted for information during the key creation process. For example, wh
| - | - | | Azure portal | Uncheck __Use cluster login password for SSH__, and then select __Public Key__ as the SSH authentication type. Finally, select the public key file or paste the text contents of the file in the __SSH public key__ field.</br>:::image type="content" source="./media/hdinsight-hadoop-linux-use-ssh-unix/create-hdinsight-ssh-public-key.png" alt-text="SSH public key dialog in HDInsight cluster creation"::: | | Azure PowerShell | Use the `-SshPublicKey` parameter of the [New-AzHdinsightCluster](/powershell/module/az.hdinsight/new-azhdinsightcluster) cmdlet and pass the contents of the public key as a string.|
-| Azure CLI | Use the `--sshPublicKey` parameter of the [`az hdinsight create`](/cli/azure/hdinsight#az_hdinsight_create) command and pass the contents of the public key as a string. |
+| Azure CLI | Use the `--sshPublicKey` parameter of the [`az hdinsight create`](/cli/azure/hdinsight#az-hdinsight-create) command and pass the contents of the public key as a string. |
| Resource Manager Template | For an example of using SSH keys with a template, see [Deploy HDInsight on Linux with SSH key](https://azure.microsoft.com/resources/templates/hdinsight-linux-ssh-publickey/). The `publicKeys` element in the [azuredeploy.json](https://github.com/Azure/azure-quickstart-templates/blob/master/quickstarts/microsoft.hdinsight/hdinsight-linux-ssh-publickey/azuredeploy.json) file is used to pass the keys to Azure when creating the cluster. | ## Authentication: Password
SSH accounts can be secured using a password. When you connect to HDInsight usin
| | - | | Azure portal | By default, the SSH user account has the same password as the cluster login account. To use a different password, uncheck __Use cluster login password for SSH__, and then enter the password in the __SSH password__ field.</br>:::image type="content" source="./media/hdinsight-hadoop-linux-use-ssh-unix/create-hdinsight-ssh-password.png" alt-text="SSH password dialog in HDInsight cluster creation":::| | Azure PowerShell | Use the `--SshCredential` parameter of the [New-AzHdinsightCluster](/powershell/module/az.hdinsight/new-azhdinsightcluster) cmdlet and pass a `PSCredential` object that contains the SSH user account name and password. |
-| Azure CLI | Use the `--ssh-password` parameter of the [`az hdinsight create`](/cli/azure/hdinsight#az_hdinsight_create) command and provide the password value. |
+| Azure CLI | Use the `--ssh-password` parameter of the [`az hdinsight create`](/cli/azure/hdinsight#az-hdinsight-create) command and provide the password value. |
| Resource Manager Template | For an example of using a password with a template, see [Deploy HDInsight on Linux with SSH password](https://azure.microsoft.com/resources/templates/hdinsight-linux-ssh-password/). The `linuxOperatingSystemProfile` element in the [azuredeploy.json](https://github.com/Azure/azure-quickstart-templates/blob/master/quickstarts/microsoft.hdinsight/hdinsight-linux-ssh-password/azuredeploy.json) file is used to pass the SSH account name and password to Azure when creating the cluster.| ### Change the SSH password
hdinsight Hdinsight Hadoop Oms Log Analytics Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-hadoop-oms-log-analytics-tutorial.md
az hdinsight azure-monitor enable --name $cluster --resource-group $resourceGrou
az hdinsight azure-monitor show --name $cluster --resource-group $resourceGroup ```
-To disable, the use the [`az hdinsight monitor disable`](/cli/azure/hdinsight/monitor#az_hdinsight_monitor_disable) command.
+To disable, the use the [`az hdinsight monitor disable`](/cli/azure/hdinsight/monitor#az-hdinsight-monitor-disable) command.
```azurecli az hdinsight azure-monitor disable --name $cluster --resource-group $resourceGroup
Disable-AzHDInsightMonitoring -Name "<your-cluster>"
## Enable Azure Monitor using Azure CLI
-You can enable Azure Monitor logs using the Azure CLI `[az hdinsight monitor enable`](/cli/azure/hdinsight/monitor#az_hdinsight_monitor_enable) command.
+You can enable Azure Monitor logs using the Azure CLI `[az hdinsight monitor enable`](/cli/azure/hdinsight/monitor#az-hdinsight-monitor-enable) command.
```azurecli # set variables
az hdinsight monitor enable --name $cluster --resource-group $resourceGroup --wo
az hdinsight monitor show --name $cluster --resource-group $resourceGroup ```
-To disable, the use the [`az hdinsight monitor disable`](/cli/azure/hdinsight/monitor#az_hdinsight_monitor_disable) command.
+To disable, the use the [`az hdinsight monitor disable`](/cli/azure/hdinsight/monitor#az-hdinsight-monitor-disable) command.
```azurecli az hdinsight monitor disable --name $cluster --resource-group $resourceGroup
hdinsight Hdinsight Migrate Granular Access Cluster Configurations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-migrate-granular-access-cluster-configurations.md
Cluster configurations are now behind granular role-based access control and req
### Why do I see "Insufficient privileges to complete the operation" when running the Azure CLI command to assign the HDInsight Cluster Operator role to another user or service principal?
-In addition to having the Owner role, the user or service principal executing the command needs to have sufficient Azure AD permissions to look up the object IDs of the assignee. This message indicates insufficient Azure AD permissions. Try replacing the `-ΓÇôassignee` argument with `ΓÇôassignee-object-id` and provide the object ID of the assignee as the parameter instead of the name (or the principal ID in the case of a managed identity). See the optional parameters section of the [az role assignment create documentation](/cli/azure/role/assignment#az_role_assignment_create) for more info.
+In addition to having the Owner role, the user or service principal executing the command needs to have sufficient Azure AD permissions to look up the object IDs of the assignee. This message indicates insufficient Azure AD permissions. Try replacing the `-ΓÇôassignee` argument with `ΓÇôassignee-object-id` and provide the object ID of the assignee as the parameter instead of the name (or the principal ID in the case of a managed identity). See the optional parameters section of the [az role assignment create documentation](/cli/azure/role/assignment#az-role-assignment-create) for more info.
If this still doesn't work, contact your Azure AD admin to acquire the correct permissions.
hdinsight Hdinsight Private Link https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-private-link.md
For a complete template with many of the HDInsight enterprise security features,
To create a cluster by using PowerShell, see the [example](/powershell/module/az.hdinsight/new-azhdinsightcluster#example-4--create-an-azure-hdinsight-cluster-with-relay-outbound-and-private-link-feature).
-To create a cluster by using the Azure CLI, see the [example](/cli/azure/hdinsight#az_hdinsight_create-examples).
+To create a cluster by using the Azure CLI, see the [example](/cli/azure/hdinsight#az-hdinsight-create-examples).
## <a name="PrivateEndpoints"></a>Step 5: Create Private Endpoints
hdinsight Hdinsight Restrict Public Connectivity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-restrict-public-connectivity.md
For a complete template with many of the HDInsight enterprise security features,
To create a cluster by using PowerShell, see the [example](/powershell/module/az.hdinsight/new-azhdinsightcluster#example-4--create-an-azure-hdinsight-cluster-with-relay-outbound-and-private-link-feature).
-To create a cluster by using the Azure CLI, see the [example](/cli/azure/hdinsight#az_hdinsight_create-examples).
+To create a cluster by using the Azure CLI, see the [example](/cli/azure/hdinsight#az-hdinsight-create-examples).
## Next steps
hdinsight Hdinsight Sales Insights Etl https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-sales-insights-etl.md
If you don't have an Azure subscription, create a [free account](https://azure.m
./scripts/resources.sh $resourceGroup LOCATION ```
- If you're not sure which region to specify, you can retrieve a list of supported regions for your subscription with the [az account list-locations](/cli/azure/account#az_account_list_locations) command.
+ If you're not sure which region to specify, you can retrieve a list of supported regions for your subscription with the [az account list-locations](/cli/azure/account#az-account-list-locations) command.
The command will deploy the following resources:
hdinsight Hdinsight Scaling Best Practices https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/hdinsight-scaling-best-practices.md
Microsoft provides the following utilities to scale clusters:
||| |[PowerShell Az](/powershell/azure)|[`Set-AzHDInsightClusterSize`](/powershell/module/az.hdinsight/set-azhdinsightclustersize) `-ClusterName CLUSTERNAME -TargetInstanceCount NEWSIZE`| |[PowerShell AzureRM](/powershell/azure/azurerm) |[`Set-AzureRmHDInsightClusterSize`](/powershell/module/azurerm.hdinsight/set-azurermhdinsightclustersize) `-ClusterName CLUSTERNAME -TargetInstanceCount NEWSIZE`|
-|[Azure CLI](/cli/azure/) | [`az hdinsight resize`](/cli/azure/hdinsight#az_hdinsight_resize) `--resource-group RESOURCEGROUP --name CLUSTERNAME --workernode-count NEWSIZE`|
+|[Azure CLI](/cli/azure/) | [`az hdinsight resize`](/cli/azure/hdinsight#az-hdinsight-resize) `--resource-group RESOURCEGROUP --name CLUSTERNAME --workernode-count NEWSIZE`|
|[Azure Classic CLI](hdinsight-administer-use-command-line.md)|`azure hdinsight cluster resize CLUSTERNAME NEWSIZE` | |[Azure portal](https://portal.azure.com)|Open your HDInsight cluster pane, select **Cluster size** on the left-hand menu, then on the Cluster size pane, type in the number of worker nodes, and select Save.|
hdinsight Tutorial Cli Rest Proxy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hdinsight/kafka/tutorial-cli-rest-proxy.md
If you don't have an Azure subscription, create a [free account](https://azure.m
export componentVersion=kafka=2.1 ```
-1. [Create the resource group](/cli/azure/group#az_group_create) by entering the command below:
+1. [Create the resource group](/cli/azure/group#az-group-create) by entering the command below:
```azurecli az group create \
If you don't have an Azure subscription, create a [free account](https://azure.m
--name $resourceGroupName ```
-1. [Create an Azure Storage account](/cli/azure/storage/account#az_storage_account_create) by entering the command below:
+1. [Create an Azure Storage account](/cli/azure/storage/account#az-storage-account-create) by entering the command below:
```azurecli # Note: kind BlobStorage is not available as the default storage account.
If you don't have an Azure subscription, create a [free account](https://azure.m
--sku Standard_LRS ```
-1. [Extract the primary key](/cli/azure/storage/account/keys#az_storage_account_keys_list) from the Azure Storage account and store it in a variable by entering the command below:
+1. [Extract the primary key](/cli/azure/storage/account/keys#az-storage-account-keys-list) from the Azure Storage account and store it in a variable by entering the command below:
```azurecli export storageAccountKey=$(az storage account keys list \
If you don't have an Azure subscription, create a [free account](https://azure.m
--query [0].value -o tsv) ```
-1. [Create an Azure Storage container](/cli/azure/storage/container#az_storage_container_create) by entering the command below:
+1. [Create an Azure Storage container](/cli/azure/storage/container#az-storage-container-create) by entering the command below:
```azurecli az storage container create \
If you don't have an Azure subscription, create a [free account](https://azure.m
--account-name $storageAccount ```
-1. [Create the HDInsight cluster](/cli/azure/hdinsight#az_hdinsight_create). Before entering the command, note the following parameters:
+1. [Create the HDInsight cluster](/cli/azure/hdinsight#az-hdinsight-create). Before entering the command, note the following parameters:
1. Required parameters for Kafka clusters:
healthcare-apis Access Healthcare Apis https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/access-healthcare-apis.md
Previously updated : 02/11/2022 Last updated : 03/22/2022 # Access Azure Health Data Services
-In this article, you'll learn about the different ways to access Azure Health Data Services in your applications. After you've provisioned a FHIR service, DICOM service, or IoT connector, you can then access them in your applications using tools like Postman, cURL, REST Client in Visual Studio Code, and with programming languages such as Python and C#.
+In this article, you'll learn about the different ways to access Azure Health Data Services in your applications. After you've provisioned a FHIR service, DICOM service, or MedTech service, you can then access them in your applications using tools like Postman, cURL, REST Client in Visual Studio Code, and with programming languages such as Python and C#.
## Access the FHIR service
In this article, you'll learn about the different ways to access Azure Health Da
## Access the DICOM service -- [Access the DICVOM service using Python](dicom/dicomweb-standard-apis-python.md)
+- [Access the DICOM service using Python](dicom/dicomweb-standard-apis-python.md)
- [Access the DICOM service using cURL](dicom/dicomweb-standard-apis-curl.md) - [Access the DICOM service using C#](dicom/dicomweb-standard-apis-c-sharp.md)
-## Access IoT connector
+## Access MedTech service
-The IoT connector works with the IoT Hub and Event Hubs in your subscription to receive message data, and the FHIR service to persist the data.
+The MedTech service works with the IoT Hub and Event Hubs in your subscription to receive message data, and the FHIR service to persist the data.
- [Receive device data through Azure IoT Hub](iot/device-data-through-iot-hub.md) - [Access the FHIR service using Postman](fhir/use-postman.md)
healthcare-apis Authentication Authorization https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/authentication-authorization.md
Title: Azure Health Data Services Authentication and Authorization
-description: This article provides an overview of the authentication and authorization of the Azure Health Data Services.
+description: This article provides an overview of the authentication and authorization of Azure Health Data Services.
Previously updated : 03/14/2022 Last updated : 03/22/2022
For the Azure Health Data Services to access Azure resources, such as storage accounts and event hubs, you must **enable the system managed identity**, and **grant proper permissions** to the managed identity. For more information, see [Azure managed identities](../active-directory/managed-identities-azure-resources/overview.md).
-Azure Health Data Services doesn't support other identity providers. However, customers can use their own identity provider to secure applications, and enable them to interact with the Healthcare APIs by managing client applications and user data access controls.
+Azure Health Data Services doesn't support other identity providers. However, customers can use their own identity provider to secure applications, and enable them to interact with the Health Data Services by managing client applications and user data access controls.
-The client applications are registered in the Azure AD and can be used to access the Healthcare APIs. User data access controls are done in the applications or services that implement business logic.
+The client applications are registered in the Azure AD and can be used to access the Azure Health Data Services. User data access controls are done in the applications or services that implement business logic.
### Application roles
-Authenticated users and client applications of the Healthcare APIs must be granted with proper application roles.
+Authenticated users and client applications of the Azure Health Data Services must be granted with proper application roles.
FHIR service of Azure Health Data Services provides the following roles:
For obtaining an access token for the Azure Health Data Services, these are the
2. **The client application exchanges the authorization code for an access token at the Azure AD token endpoint.** When requesting a token, the client application may have to provide a client secret (which you can add during application registration).
-3. **The client makes a request to the Healthcare APIs**, for example, a `GET` request to search all patients in the FHIR service. When making the request, it **includes the access token in an `HTTP` request header**, for example, **`Authorization: Bearer xxx`**.
+3. **The client makes a request to the Azure Health Data Services**, for example, a `GET` request to search all patients in the FHIR service. When making the request, it **includes the access token in an `HTTP` request header**, for example, **`Authorization: Bearer xxx`**.
-4. **The Healthcare APIs service validates that the token contains appropriate claims (properties in the token).** If itΓÇÖs valid, it completes the request and returns data to the client.
+4. **Azure Health Data Services validates that the token contains appropriate claims (properties in the token).** If itΓÇÖs valid, it completes the request and returns data to the client.
In the **client credentials flow**, permissions are granted directly to the application itself. When the application presents a token to a resource, the resource enforces that the application itself has authorization to perform an action since thereΓÇÖs no user involved in the authentication. Therefore, itΓÇÖs different from the **authorization code flow** in the following ways:
In the **client credentials flow**, permissions are granted directly to the appl
The access token is a signed, [Base64](https://en.wikipedia.org/wiki/Base64) encoded collection of properties (claims) that convey information about the client's identity, roles, and privileges granted to the user or client.
-The Healthcare APIs typically expect a [JSON Web Token](https://en.wikipedia.org/wiki/JSON_Web_Token). It consists of three parts:
+Azure Health Data Services typically expect a [JSON Web Token](https://en.wikipedia.org/wiki/JSON_Web_Token). It consists of three parts:
+ * Header * Payload (the claims) * Signature, as shown in the image below. For more information, see [Azure access tokens](../active-directory/develop/active-directory-configurable-token-lifetimes.md).
When you create a new service of Azure Health Data Services, your data is encryp
* FHIR service provides encryption of data at rest when data is persisted in the data store. * DICOM service provides encryption of data at rest when imaging data including embedded metadata is persisted in the data store. When metadata is extracted and persisted in the FHIR service, itΓÇÖs encrypted automatically.
-* IoT Connector, after data mapping and normalization, persists device messages to the FHIR service, which is encrypted automatically. In cases where device messages are sent to Azure Event Hubs, which use Azure Storage to store the data, data is automatically encrypted with Azure Storage Service Encryption (Azure SSE).
+* MedTech service, after data mapping and normalization, persists device messages to the FHIR service, which is encrypted automatically. In cases where device messages are sent to Azure Event Hubs, which use Azure Storage to store the data, data is automatically encrypted with Azure Storage Service Encryption (Azure SSE).
## Next steps
healthcare-apis Convert Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/convert-data.md
Previously updated : 03/02/2022 Last updated : 03/21/2022
Browse to the **Artifacts** blade under **Data transformation** in your Azure AP
#### Registering the ACR server using CLI You can register up to 20 ACR servers in the Azure API for FHIR.
-Install the Healthcare APIs CLI from Azure PowerShell if needed:
+Install Azure Health Data Services CLI from Azure PowerShell if needed:
```powershell az extension add -n healthcareapis
healthcare-apis Device Data Through Iot Hub https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/device-data-through-iot-hub.md
Here's the list of parameters to use with the command to create an endpoint:
|ConnectionString|connection-string|Connection string to your Azure IoT Connector for FHIR. Use the value you obtained in the previous step.| ### Add a message route
-This step defines a message route using the endpoint created above. Create a route using either [Add-AzIotHubRoute](/powershell/module/az.iothub/Add-AzIoTHubRoute) PowerShell command or [az iot hub route create](/cli/azure/iot/hub/route#az_iot_hub_route_create) CLI command, based on your preference.
+This step defines a message route using the endpoint created above. Create a route using either [Add-AzIotHubRoute](/powershell/module/az.iothub/Add-AzIoTHubRoute) PowerShell command or [az iot hub route create](/cli/azure/iot/hub/route#az-iot-hub-route-create) CLI command, based on your preference.
Here's the list of parameters to use with the command to add a message route:
healthcare-apis Fhir Features Supported https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/fhir-features-supported.md
Previously updated : 02/15/2022 Last updated : 03/21/2022
Previous versions also currently supported include: `3.0.2`
Below is a summary of the supported RESTful capabilities. For more information on the implementation of these capabilities, see [FHIR REST API capabilities](fhir-rest-api-capabilities.md).
-| API | Azure API for FHIR | FHIR service in Healthcare APIs | Comment |
+| API | Azure API for FHIR | FHIR service in Azure Health Data Services | Comment |
|--|--||| | read | Yes | Yes | | | vread | Yes | Yes | |
Below is a summary of the supported RESTful capabilities. For more information o
All the operations that are supported that extend the REST API.
-| Search parameter type | Azure API for FHIR | FHIR service in Healthcare APIs| Comment |
+| Search parameter type | Azure API for FHIR | FHIR service in Azure Health Data Services| Comment |
||--|--|| | [$export](../../healthcare-apis/data-transformation/export-data.md) | Yes | Yes | Supports system, group, and patient. | | [$convert-data](convert-data.md) | Yes | Yes | |
Currently, the allowed actions for a given role are applied *globally* on the AP
* **Data size** - Data/Documents must each be slightly less than 2 MB.
-* **Subscription Limit** - By default, each subscription is limited to a maximum of 10 FHIR server instances. If you need more instances per subscription, open a support ticket and provide details about your needs.
+* **Subscription limit** - By default, each subscription is limited to a maximum of 10 FHIR server instances. If you need more instances per subscription, open a support ticket and provide details about your needs.
## Next steps
healthcare-apis Fhir Paas Cli Quickstart https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/fhir-paas-cli-quickstart.md
Previously updated : 02/15/2022 Last updated : 03/21/2022
In this quickstart, you'll learn how to deploy Azure API for FHIR in Azure using
[!INCLUDE [azure-cli-prepare-your-environment.md](../../../includes/azure-cli-prepare-your-environment.md)]
-## Add HealthcareAPIs extension
+## Add Azure Health Data Services (for example, HealthcareAPIs) extension
```azurecli-interactive az extension add --name healthcareapis
healthcare-apis Fhir Paas Portal Quickstart https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/fhir-paas-portal-quickstart.md
Previously updated : 02/15/2022 Last updated : 03/21/2022
Open the [Azure portal](https://portal.azure.com) and select **Create a resource
You can find Azure API for FHIR by typing "FHIR" into the search box: ## Create Azure API for FHIR account
healthcare-apis Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/overview.md
Previously updated : 03/01/2022 Last updated : 03/21/2022
The following video presents an overview of Azure API for FHIR:
## Leveraging the power of your data with FHIR
-The healthcare industry is rapidly transforming health data to the emerging standard of [FHIR&reg;](https://hl7.org/fhir) (Fast Healthcare Interoperability Resources). FHIR enables a robust, extensible data model with standardized semantics and data exchange that enables all systems using FHIR to work together. Transforming your data to FHIR allows you to quickly connect existing data sources such as the electronic health record systems or research databases. FHIR also enables the rapid exchange of data in modern implementations of mobile and web development. Most importantly, FHIR can simplify data ingestion and accelerate development with analytics and machine learning tools.
+The healthcare industry is rapidly transforming health data to the emerging standard of [FHIR&reg;](https://hl7.org/fhir). FHIR enables a robust, extensible data model with standardized semantics and data exchange that enables all systems using FHIR to work together. Transforming your data to FHIR allows you to quickly connect existing data sources such as the electronic health record systems or research databases. FHIR also enables the rapid exchange of data in modern implementations of mobile and web development. Most importantly, FHIR can simplify data ingestion and accelerate development with analytics and machine learning tools.
### Securely manage health data in the cloud
You could invest resources building and running your own FHIR service, but with
### Enable interoperability with FHIR
-Using the Azure API for FHIR enables to you connect with any system that leverages FHIR APIs for read, write, search, and other functions. It can be used as a powerful tool to consolidate, normalize, and apply machine learning with clinical data from electronic health records, clinician and patient dashboards, remote monitoring programs, or with databases outside of your system that have FHIR APIs.
+Using the Azure API for FHIR enables to you connect with any system that leverages FHIR APIs for read, write, search, and other functions. It can be used as a powerful tool to consolidate, normalize, and apply machine learning with clinical data from electronic health records, clinician and patient dashboards, remote monitoring programs, or with databases outside of your system that have FHIR APIs.
### Control Data Access at Scale
Protect your PHI with unparalleled security intelligence. Your data is isolated
## Applications for a FHIR Service
-FHIR servers are key tools for interoperability of health data. The Azure API for FHIR is designed as an API and service that you can create, deploy, and begin using quickly. As the FHIR standard expands in healthcare, use cases will continue to grow, but some initial customer applications where Azure API for FHIR is useful are below:
+FHIR servers are key tools for interoperability of health data. The Azure API for FHIR is designed as an API and service that you can create, deploy, and begin using quickly. As the FHIR standard expands in healthcare, use cases will continue to grow, but some initial customer applications where Azure API for FHIR is useful are below:
- **Startup/IoT and App Development:** Customers developing a patient or provider centric app (mobile or web) can leverage Azure API for FHIR as a fully managed backend service. The Azure API for FHIR provides a valuable resource in that customers can manage data and exchange data in a secure cloud environment designed for health data, leverage SMART on FHIR implementation guidelines, and enable their technology to be utilized by all provider systems (for example, most EHRs have enabled FHIR read APIs). -- **Healthcare Ecosystems:** While EHRs exist as the primary ΓÇÿsource of truthΓÇÖ in many clinical settings, it isn't uncommon for providers to have multiple databases that arenΓÇÖt connected to one another or store data in different formats. Utilizing the Azure API for FHIR as a service that sits on top of those systems allows you to standardize data in the FHIR format. This helps to enable data exchange across multiple systems with a consistent data format.
+- **Healthcare Ecosystems:** While EHRs exist as the primary ΓÇÿsource of truthΓÇÖ in many clinical settings, it isn't uncommon for providers to have multiple databases that arenΓÇÖt connected to one another or store data in different formats. Utilizing the Azure API for FHIR as a service that sits on top of those systems allows you to standardize data in the FHIR format. This helps to enable data exchange across multiple systems with a consistent data format.
- **Research:** Healthcare researchers will find the FHIR standard in general and the Azure API for FHIR useful as it normalizes data around a common FHIR data model and reduces the workload for machine learning and data sharing. Exchange of data via the Azure API for FHIR provides audit logs and access controls that help control the flow of data and who has access to what data types.
For use cases that require extending or customizing the FHIR server, or requires
## Azure IoT Connector for FHIR (preview)
-Azure IoT Connector for Fast Healthcare Interoperability Resources (FHIR&#174;)* is an optional feature of Azure API for FHIR that provides the capability to ingest data from Internet of Medical Things (IoMT) devices. Internet of Medical Things is a category of IoT devices that capture and exchange health & wellness data with other healthcare IT systems over network. Some examples of IoMT devices include fitness and clinical wearables, monitoring sensors, activity trackers, point of care kiosks, or even a smart pill. The Azure IoT Connector for FHIR feature enables you to quickly set up a service to ingest IoMT data into Azure API for FHIR in a scalable, secure, and compliant manner.
+Azure IoT Connector for (FHIR&#174;)* is an optional feature of Azure API for FHIR that provides the capability to ingest data from Internet of Medical Things (IoMT) devices. Internet of Medical Things is a category of IoT devices that capture and exchange health & wellness data with other healthcare IT systems over network. Some examples of IoMT devices include fitness and clinical wearables, monitoring sensors, activity trackers, point of care kiosks, or even a smart pill. The Azure IoT Connector for FHIR feature enables you to quickly set up a service to ingest IoMT data into Azure API for FHIR in a scalable, secure, and compliant manner.
Azure IoT Connector for FHIR can accept any JSON-based messages sent out by an IoMT device. This data is first transformed into appropriate FHIR-based [Observation](https://www.hl7.org/fhir/observation.html) resources and then persisted into Azure API for FHIR. The data transformation logic is defined through a pair of mapping templates that you configure based on your message schema and FHIR requirements. Device data can be pushed directly to Azure IoT Connector for FHIR or seamlessly used in concert with other Azure IoT solutions ([Azure IoT Hub](../../iot-hub/index.yml) and [Azure IoT Central](../../iot-central/index.yml)). Azure IoT Connector for FHIR provides a secure data pipeline while allowing the Azure IoT solutions manage provisioning and maintenance of the physical devices.
healthcare-apis Register Confidential Azure Ad Client App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/register-confidential-azure-ad-client-app.md
Permissions for Azure API for FHIR are managed through RBAC. For more details, v
## Next steps
-In this article, you were guided through the steps of how to register a confidential client application in the Azure AD. You were also guided through the steps of how to add API permissions to the Azure Healthcare API. Lastly, you were shown how to create an application secret. Furthermore, you can learn how to access your FHIR server using Postman.
+In this article, you were guided through the steps of how to register a confidential client application in the Azure AD. You were also guided through the steps of how to add API permissions in Azure AD for Azure API for FHIR. Lastly, you were shown how to create an application secret. Furthermore, you can learn how to access your FHIR server using Postman.
>[!div class="nextstepaction"] >[Access the FHIR service using Postman](./../fhir/use-postman.md)
healthcare-apis Register Public Azure Ad Client App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/register-public-azure-ad-client-app.md
Previously updated : 02/15/2022 Last updated : 03/21/2022 # Register a public client application in Azure Active Directory for Azure API for FHIR
-In this article, you'll learn how to register a public application in Azure Active Directory.
+In this article, you'll learn how to register a public application in Azure Active Directory (Azure AD).
-Client application registrations are Azure Active Directory representations of applications that can authenticate and ask for API permissions on behalf of a user. Public clients are applications such as mobile applications and single page JavaScript applications that can't keep secrets confidential. The procedure is similar to [registering a confidential client](register-confidential-azure-ad-client-app.md), but since public clients can't be trusted to hold an application secret, there's no need to add one.
+Client application registrations are Azure AD representations of applications that can authenticate and ask for API permissions on behalf of a user. Public clients are applications such as mobile applications and single page JavaScript applications that can't keep secrets confidential. The procedure is similar to [registering a confidential client](register-confidential-azure-ad-client-app.md), but since public clients can't be trusted to hold an application secret, there's no need to add one.
The quickstart provides general information about how to [register an application with the Microsoft identity platform](../../active-directory/develop/quickstart-register-app.md).
healthcare-apis Register Service Azure Ad Client App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/register-service-azure-ad-client-app.md
Previously updated : 03/01/2022 Last updated : 03/21/2022 # Register a service client application in Azure Active Directory for Azure API for FHIR
-In this article, you'll learn how to register a service client application in Azure Active Directory. Client application registrations are Azure Active Directory representations of applications that can be used to authenticate and obtain tokens. A service client is intended to be used by an application to obtain an access token without interactive authentication of a user. It will have certain application permissions and use an application secret (password) when obtaining access tokens.
+In this article, you'll learn how to register a service client application in Azure Active Directory (Azure AD). Client application registrations are Azure AD representations of applications that can be used to authenticate and obtain tokens. A service client is intended to be used by an application to obtain an access token without interactive authentication of a user. It will have certain application permissions and use an application secret (password) when obtaining access tokens.
Follow these steps to create a new service client.
The service client needs a secret (password) to obtain a token.
## Next steps
-In this article, you've learned how to register a service client application in Azure Active Directory. Next, test access to your FHIR server using Postman.
+In this article, you've learned how to register a service client application in Azure AD. Next, test access to your FHIR server using Postman.
>[!div class="nextstepaction"] >[Access the FHIR service using Postman](./../fhir/use-postman.md)
healthcare-apis Release Notes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/release-notes.md
Previously updated : 03/17/2022 Last updated : 03/21/2022
Azure API for FHIR provides a fully managed deployment of the Microsoft FHIR Ser
|Enhancements &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |Related information | | :- | : | |Process Patient-everything links |We've expanded the Patient-everything capabilities to process patient links [#2305](https://github.com/microsoft/fhir-server/pull/2305). For more information, see [Patient-everything in FHIR](../../healthcare-apis/fhir/patient-everything.md#processing-patient-links) documentation. |
-|Added software name and version to capability statement |In the capability statement, the software name now distinguishes if you're using Azure API for FHIR or Azure Healthcare APIs. The software version will now specify which open-source [release package](https://github.com/microsoft/fhir-server/releases) is live in the managed service [#2294](https://github.com/microsoft/fhir-server/pull/2294). Addresses: [#1778](https://github.com/microsoft/fhir-server/issues/1778) and [#2241](https://github.com/microsoft/fhir-server/issues/2241) |
+|Added software name and version to capability statement |In the capability statement, the software name now distinguishes if you're using Azure API for FHIR or Azure Health Data Services. The software version will now specify which open-source [release package](https://github.com/microsoft/fhir-server/releases) is live in the managed service [#2294](https://github.com/microsoft/fhir-server/pull/2294). Addresses: [#1778](https://github.com/microsoft/fhir-server/issues/1778) and [#2241](https://github.com/microsoft/fhir-server/issues/2241) |
|Log 500's to `RequestMetric` |Previously, 500s or any unknown/unhandled errors were not getting logged in `RequestMetric`. They're now getting logged [#2240](https://github.com/microsoft/fhir-server/pull/2240). For more information, see [Enable diagnostic settings in Azure API for FHIR](../../healthcare-apis/azure-api-for-fhir/enable-diagnostic-logging.md) | |Compress continuation tokens |In certain instances, the continuation token was too long to be able to follow the [next link](../../healthcare-apis/azure-api-for-fhir/overview-of-search.md#pagination) in searches and would result in a 404. To resolve this, we compressed the continuation token to ensure it stays below the size limit [#2279](https://github.com/microsoft/fhir-server/pull/2279). Addresses issue [#2250](https://github.com/microsoft/fhir-server/issues/2250). |
Azure API for FHIR provides a fully managed deployment of the Microsoft FHIR Ser
## Next steps
-For information about the features and bug fixes in Azure Healthcare APIs (FHIR service, DICOM service, and IoT connector), see
+For information about the features and bug fixes in Azure Health Data Services (FHIR service, DICOM service, and MedTech service), see
>[!div class="nextstepaction"] >[Release notes: Azure Health Data Services](../release-notes.md)
healthcare-apis Tutorial Web App Public App Reg https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/azure-api-for-fhir/tutorial-web-app-public-app-reg.md
Previously updated : 02/15/2022 Last updated : 03/22/2022 # Client application registration for Azure API for FHIR
If youΓÇÖve [written your web app](tutorial-web-app-write-web-app.md) to connect
Now that you have set up the correct authentication, set the API permissions: 1. Select **API permissions** and select **Add a permission**.
-1. Under **APIs my organization uses**, search for Azure Healthcare APIs.
+1. Under **APIs my organization uses**, search for Azure Health Data Services.
1. Select **user_impersonation** and select **add permissions**. :::image type="content" source="media/tutorial-web-app/api-permissions.png" alt-text="Screenshot of the Add API permissions blade, with the steps to add API permissions highlighted.":::
healthcare-apis Configure Azure Rbac Using Scripts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/configure-azure-rbac-using-scripts.md
Previously updated : 02/15/2022 Last updated : 03/21/2022
-# Configure Azure RBAC role Using Azure CLI and REST API
+# Configure Azure RBAC role using Azure CLI and REST API
In this article, you'll learn how to grant permissions to client applications (and users) to access Azure Health Data Services using Azure Command-Line Interface (CLI) and REST API. This step is referred to as "role assignment" or Azure [role-based access control (Azure RBAC role)](./../role-based-access-control/role-assignments-cli.md). To further your understanding about the application roles defined for Azure Health Data Services, see [Configure Azure RBAC role](configure-azure-rbac.md).
-You can view and download the [CLI scripts](https://github.com/microsoft/healthcare-apis-samples/blob/main/src/scripts/role-assignment-using-cli.http) and [REST API scripts](https://github.com/microsoft/healthcare-apis-samples/blob/main/src/scripts/role-assignment-using-rest-api.http) from [Healthcare APIs Samples](https://github.com/microsoft/healthcare-apis-samples).
+You can view and download the [CLI scripts](https://github.com/microsoft/healthcare-apis-samples/blob/main/src/scripts/role-assignment-using-cli.http) and [REST API scripts](https://github.com/microsoft/healthcare-apis-samples/blob/main/src/scripts/role-assignment-using-rest-api.http) from [Azure Health Data Services samples](https://github.com/microsoft/healthcare-apis-samples).
> [!Note] > To perform the role assignment operation, the user (or the client application) must be granted with RBAC permissions. Contact your Azure subscription administrators for assistance.
The role assignments for Azure Health Data Services require the following values
- Scope for the role assignment, that is, the Azure Health Data Services service instance. It includes subscription, resource group, workspace name, and FHIR or DICOM service name. You can use the absolute or relative URL for the scope. Note that "/" isnΓÇÖt added at the beginning of the relative URL. ```
-#healthcare apis role assignment
+#Azure Health Data Services role assignment
fhirrole="FHIR Data Contributor" dicomrole="DICOM Data Owner" clientid=xxx
The API requires the following values:
- Scope for Azure Health Data Services to which you grant access permissions. It includes subscription ID, resource group name, and the FHIR or DICOM service instance name. - Role definition ID for roles such as "FHIR Data Contributor" or "DICOM Data Owner". Use `az role definition list --name "<role name>"` to list the role definition IDs. - Service principal ID for the user or the client application.-- Azure AD access token to the [management resource](https://management.azure.com/), not the Healthcare APIs. You can get the access token using an existing tool or using Azure CLI command, `az account get-access-token --resource "https://management.azure.com/"`-- For Healthcare APIs, the scope includes workspace name and FHIR/DICOM service instance name.
+- Azure AD access token to the [management resource](https://management.azure.com/), not Azure Health Data Services. You can get the access token using an existing tool or using Azure CLI command, `az account get-access-token --resource "https://management.azure.com/"`
+- For Azure Health Data Services, the scope includes workspace name and FHIR/DICOM service instance name.
```
-### Create a role assignment - Healthcare APIs (DICOM)
+### Create a role assignment - Azure Health Data Services (DICOM)
@roleassignmentid=xxx @roleapiversion=2021-04-01 @roledefinitionid=58a3b984-7adf-4c20-983a-32417c86fbc8
Optionally, you can get a list of Azure Health Data Services services, or Azure
For Azure Health Data Services, specify the subscription ID, resource group name, workspace name, FHIR or DICOM services, and the API version. ```
-### Get Healthcare APIs DICOM services
+### Get Azure Health Data Services DICOM services
@apiversion=2021-06-01 @subscriptionid=xxx @resourcegroupname=xxx
healthcare-apis Deploy Healthcare Apis Using Bicep https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/deploy-healthcare-apis-using-bicep.md
Title: How to create Azure Health Data Services, workspaces, FHIR and DICOM service, and IoT connectors using Azure Bicep
+ Title: How to create Azure Health Data Services, workspaces, FHIR and DICOM service, and MedTech service using Azure Bicep
description: This document describes how to deploy Azure Health Data Services using Azure Bicep. Previously updated : 02/15/2022 Last updated : 03/22/2022
-# Deploy Azure Health Data Services Using Azure Bicep
+# Deploy Azure Health Data Services using Azure Bicep
-In this article, you'll learn how to create Azure Health Data Services, including workspaces, FHIR services, DICOM services, and IoT connectors using Azure Bicep. You can view and download the Bicep scripts used in this article in [HealthcareAPIs samples](https://github.com/microsoft/healthcare-apis-samples/blob/main/src/templates/healthcareapis.bicep).
+In this article, you'll learn how to create Azure Health Data Services, including workspaces, FHIR services, DICOM services, and MedTech service using Azure Bicep. You can view and download the Bicep scripts used in this article in [Azure Health Data Services samples](https://github.com/microsoft/healthcare-apis-samples/blob/main/src/templates/healthcareapis.bicep).
## What is Azure Bicep
-Bicep is built on top of Azure Resource Manager (ARM) template. Bicep immediately supports all preview and generally available (GA) versions for Azure services, including Healthcare APIs. During development, you can generate a JSON ARM template file using the `az bicep build` command. Conversely, you can decompile the JSON files to Bicep using the `az bicep decompile` command. During deployment, the Bicep CLI converts a Bicep file into an ARM template JSON.
+Bicep is built on top of Azure Resource Manager (ARM) template. Bicep immediately supports all preview and generally available (GA) versions for Azure services, including Azure Health Data Services. During development, you can generate a JSON ARM template file using the `az bicep build` command. Conversely, you can decompile the JSON files to Bicep using the `az bicep decompile` command. During deployment, the Bicep CLI converts a Bicep file into an ARM template JSON.
You can continue to work with JSON ARM templates, or use Bicep to develop your ARM templates. For more information on Bicep, see [What is Bicep](../azure-resource-manager/bicep/overview.md).
You can continue to work with JSON ARM templates, or use Bicep to develop your A
Using Bicep parameters and variables instead of hard coding names and other values allows you to debug and reuse your Bicep templates.
-We first define parameters with the keyword *param* for workspace, FHIR service, DICOM service, IoT connector. Also, we define parameters for Azure subscription and Azure Active Directory (Azure AD) tenant. TheyΓÇÖre used in the CLI command line with the "--parameters" option.
+We first define parameters with the keyword *param* for workspace, FHIR service, DICOM service, MedTech service. Also, we define parameters for Azure subscription and Azure Active Directory (Azure AD) tenant. TheyΓÇÖre used in the CLI command line with the "--parameters" option.
We then define variables for resources with the keyword *var*. Also, we define variables for properties such as the authority and the audience for the FHIR service. TheyΓÇÖre specified and used internally in the Bicep template, and can be used in combination of parameters, Bicep functions, and other variables. Unlike parameters, they arenΓÇÖt used in the CLI command line.
You're now ready to deploy the workspace resource using the `az deployment group
For the FHIR service resource, the required properties include service instance name, location, kind, and managed identity. Also, it has a dependency on the workspace resource. For the FHIR service itself, the required properties include authority and audience, which are specified in the properties element. ```
-resource exampleFHIR 'Microsoft.HealthcareApis/workspaces/fhirservices@2021-06-01-preview' = {
+resource exampleFHIR 'Microsoft.HealthcareApis/workspaces/fhirservices@2021-11-01' = {
name: fhirservicename location: resourceGroup().location kind: 'fhir-R4'
Similarly, you can use or reference an existing FHIR service using the keyword *
``` //Use an existing FHIR service
-resource exampleExistingFHIR 'Microsoft.HealthcareApis/workspaces/fhirservices@2021-06-01-preview' existing = {
+resource exampleExistingFHIR 'Microsoft.HealthcareApis/workspaces/fhirservices@2021-11-01' existing = {
name: fhirservicename } ```
For the DICOM service resource, the required properties include service instance
``` //Create DICOM service
-resource exampleDICOM 'Microsoft.HealthcareApis/workspaces/dicomservices@2021-06-01-preview' = {
+resource exampleDICOM 'Microsoft.HealthcareApis/workspaces/dicomservices@2021-11-01' = {
name: dicomservicename location: resourceGroup().location dependsOn: [
Similarly, you can use or reference an existing DICOM service using the keyword
``` //Use an existing DICOM service
- resource exampleExistingDICOM 'Microsoft.HealthcareApis/workspaces/dicomservices@2021-06-01-preview' existing = {
+ resource exampleExistingDICOM 'Microsoft.HealthcareApis/workspaces/dicomservices@2021-11-01' existing = {
name: dicomservicename } ```
-## Create an IoT connector template
+## Create a MedTech service template
-For the IoT connector resource, the required properties include IoT connector name, location, managed identity, and the dependency on the workspace. For the IoT connector itself, required properties include Azure Event Hubs namespace, Event Hubs, Event Hubs consumer group, and the device mapping. As an example, the heart rate device mapping is used in the template.
+For the MedTech service resource, the required properties include the MedTech service name, location, managed identity, and the dependency on the workspace. For the MedTech service itself, required properties include Azure Event Hubs namespace, Event Hubs, Event Hubs consumer group, and the device mapping. As an example, the heart rate device mapping is used in the template.
``` //Create IoT connector
-resource exampleIoT 'Microsoft.HealthcareApis/workspaces/iotconnectors@2021-06-01-preview' = {
+resource exampleIoT 'Microsoft.HealthcareApis/workspaces/iotconnectors@2021-11-01' = {
name: iotconnectorname location: resourceGroup().location identity: {
resource exampleIoT 'Microsoft.HealthcareApis/workspaces/iotconnectors@2021-06-0
} ```
-Similarly, you can use, or reference an existing IoT connector using the keyword *existing*.
+Similarly, you can use, or reference an existing MedTech service using the keyword *existing*.
``` //Use an existing IoT
-resource exampleExistingIoT 'Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations@2021-06-01-preview' existing = {
+resource exampleExistingIoT 'Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations@2021-11-01' existing = {
name: iotconnectorname } ```
-The IoT connector requires a child resource, destination, and it currently supports the FHIR service destination only. For the IoT connector destination resource, the required properties include a name, location, and the dependency on the IoT connector. For the FHIR service destination, required properties include the resolution type, which it takes a value of *Create* or *Lookup*, the FHIR service resource ID, and a FHIR resource type. As an example, the heart rate mapping for the FHIR Observation resource is used in the template.
+The MedTech service requires a child resource, destination, and it currently supports the FHIR service destination only. For the MedTech service destination resource, the required properties include a name, location, and the dependency on the MedTech service. For the FHIR service destination, required properties include the resolution type, which it takes a value of *Create* or *Lookup*, the FHIR service resource ID, and a FHIR resource type. As an example, the heart rate mapping for the FHIR Observation resource is used in the template.
``` //Create IoT destination
-resource exampleIoTDestination 'Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations@2021-06-01-preview' = {
+resource exampleIoTDestination 'Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations@2021-11-01' = {
name: iotdestinationname location: resourceGroup().location dependsOn: [
resource exampleIoTDestination 'Microsoft.HealthcareApis/workspaces/iotconnector
} ```
-## Deploy Healthcare APIs
+## Deploy Azure Health Data Services
You can use the `az deployment group create` command to deploy individual Bicep template or combined templates, similar to the way you deploy Azure resources with JSON templates. Specify the resource group name, and include the parameters in the command line. With the "--parameters" option, specify the parameter and value pair as "parameter = value", and separate the parameter and value pairs by a space if more than one parameter is defined.
output stringOutput2 string = audience
## Next steps
-In this article, you learned how to create Azure Health Data Services, including workspaces, FHIR services, DICOM services, and IoT connectors using Bicep. You also learned how to create and debug Bicep templates. For more information about Azure Health Data Services, see
+In this article, you learned how to create Azure Health Data Services, including workspaces, FHIR services, DICOM services, and MedTech services using Bicep. You also learned how to create and debug Bicep templates. For more information about Azure Health Data Services, see
>[!div class="nextstepaction"] >[What is Azure Health Data Services](healthcare-apis-overview.md)
healthcare-apis Deploy Dicom Services In Azure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/dicom/deploy-dicom-services-in-azure.md
Previously updated : 03/02/2022 Last updated : 03/22/2022
Once deployment is complete, you can use the Azure portal to navigate to the new
## Prerequisite
-To deploy DICOM service, you must have a workspace created in the Azure portal. For more information about creating a workspace, see **Deploy Workspace in the Azure portal**.
+To deploy DICOM service, you must have a workspace created in the Azure portal. For more information about creating a workspace, see **Deploy workspace in the Azure portal**.
## Deploying DICOM service
-1. On the **Resource group** page of the Azure portal, select the name of your **Azure Health Data Services Workspace**.
+1. On the **Resource group** page of the Azure portal, select the name of your **Azure Health Data Services workspace**.
[ ![Screenshot of select workspace resource group.](media/select-workspace-resource-group.png) ](media/select-workspace-resource-group.png#lightbox)
healthcare-apis Dicom Cast Access Request https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/dicom/dicom-cast-access-request.md
Title: DICOM access request reference guide - Azure Health Data Services
-description: This reference guide provides information about to create an Azure support ticket to request DICOM cast access.
+description: This reference guide provides information about to create an Azure support ticket to request DICOMcast access.
Previously updated : 03/14/2022 Last updated : 03/22/2022
-# DICOM cast access request
+# DICOMcast access request
-This article describes how to request DICOM cast access.
+This article describes how to request DICOMcast access.
## Create Azure support ticket
-To enable DICOM cast for your Azure subscription, please request access for DICOM cast by opening an [Azure support ticket](https://azure.microsoft.com/support/create-ticket/).
+To enable DICOMcast for your Azure subscription, please request access for DICOMcast by opening an [Azure support ticket](https://azure.microsoft.com/support/create-ticket/).
> [!IMPORTANT] > Ensure that you include the **resource IDs** of your DICOM service and FHIR service when you submit a support ticket. ### Basics tab
-1. In the **Summary** field, enter "Access request for DICOM cast".
+1. In the **Summary** field, enter "Access request for DICOMcast".
[ ![Screenshot of basic tab in new support request.](media/new-support-request-basic-tab.png) ](media/new-support-request-basic-tab.png#lightbox)
To enable DICOM cast for your Azure subscription, please request access for DICO
## Next steps
-This article described the steps for creating an Azure support ticket to request DICOM cast access. For more information about using the DICOM service, see
+This article described the steps for creating an Azure support ticket to request DICOMcast access. For more information about using the DICOM service, see
>[!div class="nextstepaction"] >[Deploy DICOM service to Azure](deploy-dicom-services-in-azure.md)
-For more information about DICOM cast, see
+For more information about DICOMcast, see
>[!div class="nextstepaction"]
->[DICOM cast overview](dicom-cast-overview.md)
+>[DICOMcast overview](dicom-cast-overview.md)
healthcare-apis Dicom Cast Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/dicom/dicom-cast-overview.md
Title: DICOM cast overview - Azure Health Data Services
-description: In this article, you'll learn the concepts of DICOM cast.
+ Title: DICOMcast overview - Azure Health Data Services
+description: In this article, you'll learn the concepts of DICOMcast.
Previously updated : 03/02/2022 Last updated : 03/22/2022
-# DICOM cast overview
+# DICOMcast overview
-DICOM cast offers customers the ability to synchronize the data from a DICOM service to a [FHIR service](../../healthcare-apis/fhir/overview.md), which allows healthcare organizations to integrate clinical and imaging data. DICOM cast expands the use cases for health data by supporting both a streamlined view of longitudinal patient data and the ability to effectively create cohorts for medical studies, analytics, and machine learning.
+DICOMcast offers customers the ability to synchronize the data from a DICOM service to a [FHIR service](../../healthcare-apis/fhir/overview.md), which allows healthcare organizations to integrate clinical and imaging data. DICOMcast expands the use cases for health data by supporting both a streamlined view of longitudinal patient data and the ability to effectively create cohorts for medical studies, analytics, and machine learning.
## Architecture
-[ ![Architecture diagram of DICOM cast](media/dicom-cast-architecture.png) ](media/dicom-cast-architecture.png#lightbox)
+[ ![Architecture diagram of DICOMcast](media/dicom-cast-architecture.png) ](media/dicom-cast-architecture.png#lightbox)
-1. **Poll for batch of changes**: DICOM cast polls for any changes via the [Change Feed](dicom-change-feed-overview.md), which captures any changes that occur in your Medical Imaging Server for DICOM.
-1. **Fetch corresponding FHIR resources, if any**: If any DICOM service changes and correspond to FHIR resources, DICOM cast will fetch the related FHIR resources. DICOM cast synchronizes DICOM tags to the FHIR resource types *Patient* and *ImagingStudy*.
-1. **Merge FHIR resources and 'PUT' as a bundle in a transaction**: The FHIR resources corresponding to the DICOM cast captured changes will be merged. The FHIR resources will be 'PUT' as a bundle in a transaction into your FHIR service.
-1. **Persist state and process next batch**: DICOM cast will then persist the current state to prepare for next batch of changes.
+1. **Poll for batch of changes**: DICOMcast polls for any changes via the [Change Feed](dicom-change-feed-overview.md), which captures any changes that occur in your Medical Imaging Server for DICOM.
+1. **Fetch corresponding FHIR resources, if any**: If any DICOM service changes and correspond to FHIR resources, DICOMcast will fetch the related FHIR resources. DICOMcast synchronizes DICOM tags to the FHIR resource types *Patient* and *ImagingStudy*.
+1. **Merge FHIR resources and 'PUT' as a bundle in a transaction**: The FHIR resources corresponding to the DICOMcast captured changes will be merged. The FHIR resources will be 'PUT' as a bundle in a transaction into your FHIR service.
+1. **Persist state and process next batch**: DICOMcast will then persist the current state to prepare for next batch of changes.
-The current implementation of DICOM cast:
+The current implementation of DICOMcast:
- Supports a single-threaded process that reads from the DICOM change feed and writes to a FHIR service. - Is hosted by Azure Container Instance in our sample template, but can be run elsewhere.
The current implementation of DICOM cast:
## Mappings
-The current implementation of DICOM cast has the following mappings:
+The current implementation of DICOMcast has the following mappings:
### Patient
DICOM has different date time VR types. Some tags (like Study and Series) have t
## Summary
-In this concept, we reviewed the architecture and mappings of DICOM cast. This feature is available on demand. To enable DICOM cast for your Azure subscription, please request access for DICOM cast by opening an [Azure support ticket](https://azure.microsoft.com/support/create-ticket/). For more information about requesting access to DICOM cast, see [DICOM cast request access](dicom-cast-access-request.md).
+In this concept, we reviewed the architecture and mappings of DICOMcast. This feature is available on demand. To enable DICOMcast for your Azure subscription, please request access for DICOMcast by opening an [Azure support ticket](https://azure.microsoft.com/support/create-ticket/). For more information about requesting access to DICOMcast, see [DICOMcast request access](dicom-cast-access-request.md).
> [!IMPORTANT] > Ensure that you include the **resource IDs** of your DICOM service and FHIR service when you submit a support ticket.
healthcare-apis Dicom Extended Query Tags Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/dicom/dicom-extended-query-tags-overview.md
Title: DICOM extended query tags overview - Azure Healthcare APIs
+ Title: DICOM extended query tags overview - Azure Health Data Services
description: In this article, you'll learn the concepts of Extended Query Tags. Previously updated : 03/14/2022 Last updated : 03/21/2022
healthcare-apis Dicom Get Access Token Azure Cli Old https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/dicom/dicom-get-access-token-azure-cli-old.md
Use the Bash environment in Azure Cloud Shell.
If you prefer, [install](/cli/azure/install-azure-cli) the Azure CLI to run CLI reference commands.
-* If you're using a local installation, sign in to the Azure CLI by using the [az login](/cli/azure/reference-index#az_login) command. To finish the authentication process, follow the steps displayed in your terminal. For additional sign-in options, see [Sign in with the Azure CLI](/cli/azure/authenticate-azure-cli).
+* If you're using a local installation, sign in to the Azure CLI by using the [az login](/cli/azure/reference-index#az-login) command. To finish the authentication process, follow the steps displayed in your terminal. For additional sign-in options, see [Sign in with the Azure CLI](/cli/azure/authenticate-azure-cli).
* When you're prompted, install Azure CLI extensions on first use. For more information about extensions, see [Use extensions with the Azure CLI](/cli/azure/azure-cli-extensions-overview).
-* Run [az version](/cli/azure/reference-index#az_version) to find the version and dependent libraries that are installed. To upgrade to the latest version, run [az upgrade](/cli/azure/reference-index#az_upgrade).
+* Run [az version](/cli/azure/reference-index#az-version) to find the version and dependent libraries that are installed. To upgrade to the latest version, run [az upgrade](/cli/azure/reference-index#az-upgrade).
## Obtain a token
healthcare-apis Dicom Services Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/dicom/dicom-services-overview.md
Previously updated : 03/01/2022 Last updated : 03/22/2022
The DICOM service is a managed service within [Azure Health Data Services](../he
- **PHI Compliant**: Protect your PHI with unparalleled security intelligence. Your data is isolated to a unique database per API instance and protected with multi-region failover. The DICOM service implements a layered, in-depth defense and advanced threat protection for your data. - **Extended Query Tags**: Additionally index DICOM studies, series, and instances on both standard and private DICOM tags by expanding list of tags that are already specified within [DICOM Conformance Statement](dicom-services-conformance-statement.md). - **Change Feed**: Access ordered, guaranteed, immutable, read-only logs of all the changes that occur in DICOM service. Client applications can read these logs at any time independently, in parallel and at their own pace.-- **DICOM cast**: Via DICOM cast, DICOM service can inject DICOM metadata into a FHIR service, or FHIR server, as an imaging study resource allowing a single source of truth for both clinical data and imaging metadata. This feature is available on demand. To enable DICOM cast for your Azure subscription, please request access for DICOM cast via opening an [Azure Technical Support](https://azure.microsoft.com/support/create-ticket/) ticket.
+- **DICOMcast**: Via DICOMcast, DICOM service can inject DICOM metadata into a FHIR service, or FHIR server, as an imaging study resource allowing a single source of truth for both clinical data and imaging metadata. This feature is available on demand. To enable DICOMcast for your Azure subscription, please request access for DICOMcast via opening an [Azure Technical Support](https://azure.microsoft.com/support/create-ticket/) ticket.
- **Region availability**: DICOM service has wide-range of [availability across many regions](https://azure.microsoft.com/global-infrastructure/services/?products=azure-api-for-fhir&regions=all) with multi-region failover protection and continuously expanding. - **Scalability**: DICOM service is designed out-of-the-box to support different workload levels at a hospital, region, country and global scale without sacrificing any performance spec by using autoscaling features. - **Role-based access**: You control your data. Role-based access control (RBAC) enables you to manage how your data is stored and accessed. Providing increased security and reducing administrative workload, you determine who has access to the datasets you create, based on role definitions you create for your environment.
healthcare-apis Dicomweb Standard Apis With Dicom Services https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/dicom/dicomweb-standard-apis-with-dicom-services.md
Previously updated : 03/01/2022 Last updated : 03/22/2022
This tutorial provided an overview of the APIs supported by DICOM service. Get s
- [Using DICOMwebΓäó Standard APIs with C#](dicomweb-standard-apis-c-sharp.md) - [Using DICOMWebΓäó Standard APIs with cURL](dicomweb-standard-apis-curl.md) - [Using DICOMWebΓäó Standard APIs with Python](dicomweb-standard-apis-python.md)-- [Use DICOM Web Standard APIs with Postman Example Collection](https://github.com/microsoft/dicom-server/blob/main/docs/resources/Conformance-as-Postman.postman_collection.json)
+- [Use DICOMWebΓäó Standard APIs with Postman Example Collection](https://github.com/microsoft/dicom-server/blob/main/docs/resources/Conformance-as-Postman.postman_collection.json)
### Next Steps
healthcare-apis Get Started With Dicom https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/dicom/get-started-with-dicom.md
Previously updated : 03/02/2022 Last updated : 03/22/2022
This article outlines the basic steps to get started with the DICOM service in [Azure Health Data Services](../healthcare-apis-overview.md).
-As a prerequisite, you'll need an Azure subscription and have been granted proper permissions to create Azure resource groups and to deploy Azure resources. You can follow all the steps, or skip some if you have an existing environment. Also, you can combine all the steps and complete them in PowerShell, Azure CLI, and REST API scripts. You'll need a workspace to provision a DICOM service. A FHIR service is optional and is needed only if you connect imaging data with electronic health records of the patient via DICOM cast.
+As a prerequisite, you'll need an Azure subscription and have been granted proper permissions to create Azure resource groups and to deploy Azure resources. You can follow all the steps, or skip some if you have an existing environment. Also, you can combine all the steps and complete them in PowerShell, Azure CLI, and REST API scripts. You'll need a workspace to provision a DICOM service. A FHIR service is optional and is needed only if you connect imaging data with electronic health records of the patient via DICOMcast.
[![Screenshot of Get Started with DICOM diagram.](media/get-started-with-dicom.png)](media/get-started-with-dicom.png#lightbox)
You can obtain an Azure AD access token using PowerShell, Azure CLI, REST CLI, o
You can find more details on DICOMweb standard APIs and change feed in the [DICOM service](dicom-services-overview.md) documentation.
-#### DICOM cast
+#### DICOMcast
-DICOM cast is currently available as an [open source](https://github.com/microsoft/dicom-server/blob/main/docs/concepts/dicom-cast.md) project, and it's under private preview as a managed service. To enable DICOM cast as a managed service for your Azure subscription, request access by creating an [Azure support ticket](https://azure.microsoft.com/support/create-ticket/following) by following the guidance in the article [DICOM cast access request](dicom-cast-access-request.md).
+DICOMcast is currently available as an [open source](https://github.com/microsoft/dicom-server/blob/main/docs/concepts/dicom-cast.md) project, and it's under private preview as a managed service. To enable DICOMcast as a managed service for your Azure subscription, request access by creating an [Azure support ticket](https://azure.microsoft.com/support/create-ticket/following) by following the guidance in the article [DICOMcast access request](dicom-cast-access-request.md).
## Next steps
healthcare-apis References For Dicom Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/dicom/references-for-dicom-service.md
Previously updated : 03/02/2022 Last updated : 03/21/2022
This article describes our open-source projects on GitHub that provide source co
### DICOM server
-* [Medical imaging server for DICOM](https://github.com/microsoft/dicom-server): Open-source version of the Azure Healthcare APIs DICOM service managed service.
+* [Medical imaging server for DICOM](https://github.com/microsoft/dicom-server): Open-source version of the Azure Health Data Services DICOM service managed service.
### DICOM cast
healthcare-apis Events Disable Delete Workspace https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/events/events-disable-delete-workspace.md
Title: Disable Events and delete Workspaces - Azure Health Data Services
-description: This article provides resources on how to disable Events and delete Workspaces.
+ Title: Disable Events and delete workspaces - Azure Health Data Services
+description: This article provides resources on how to disable Events and delete workspaces.
Previously updated : 03/01/2022 Last updated : 03/22/2022
-# Disable Events and delete Workspaces
+# Disable Events and delete workspaces
-In this article, you'll learn how to disable Events and delete Workspaces in Azure Health Data Services.
+In this article, you'll learn how to disable Events and delete workspaces in Azure Health Data Services.
## Disable Events
To disable Events from sending event messages for a single Event Subscription, t
> > The Fast Healthcare Interoperability Resources (FHIR&#174;) service will automatically go into an **Updating** status to disable the Events extension when a full delete of Event Subscriptions is executed. The FHIR service will remain online while the operation is completing.
-## Delete Workspaces
+## Delete workspaces
-To successfully delete a Workspace, delete all associated child resources first (for example: DICOM services, FHIR services and MedTech services), delete all Event Subscriptions, and then delete the Workspace. Not deleting the child resources and Event Subscriptions first will cause an error when attempting to delete a Workspace with child resources.
+To successfully delete a workspace, delete all associated child resources first (for example: DICOM services, FHIR services and MedTech services), delete all Event Subscriptions, and then delete the workspace. Not deleting the child resources and Event Subscriptions first will cause an error when attempting to delete a workspace with child resources.
As an example:
- 1. Delete all Workspace associated child resources - for example: DICOM service(s), FHIR service(s), and MedTech service(s).
- 2. Delete all Workspace associated Event Subscriptions.
- 3. Delete Workspace.
+ 1. Delete all workspaces associated child resources - for example: DICOM service(s), FHIR service(s), and MedTech service(s).
+ 2. Delete all workspaces associated Event Subscriptions.
+ 3. Delete workspace.
## Next steps
healthcare-apis Events Display Metrics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/events/events-display-metrics.md
Previously updated : 03/02/2022 Last updated : 03/22/2022
In this article, you'll learn how to display Events metrics in the Azure portal.
## Display metrics
-1. Within your Azure Health Data Services Workspace, select the **Events** button.
+1. Within your Azure Health Data Services workspace, select the **Events** button.
- :::image type="content" source="media\events-display-metrics\events-metrics-workspace-select.png" alt-text="Screenshot of select the events button from the Workspace." lightbox="media\events-display-metrics\events-metrics-workspace-select.png":::
+ :::image type="content" source="media\events-display-metrics\events-metrics-workspace-select.png" alt-text="Screenshot of select the events button from the workspace." lightbox="media\events-display-metrics\events-metrics-workspace-select.png":::
2. The Events page displays the combined metrics for all Events Subscriptions. For example, we have one subscription named **fhir-events** and one processed message. Select the subscription in the lower left-hand corner to view the metrics for that subscription.
healthcare-apis Events Export Logs Metrics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/events/events-export-logs-metrics.md
Title: Configure Events Diagnostic settings for diagnostic logs and metrics export - Azure Health Data Services
+ Title: Configure Events diagnostic settings for diagnostic logs and metrics export - Azure Health Data Services
description: This article provides resources on how to configure Events Diagnostic settings for diagnostic logs and metrics exporting. Previously updated : 03/02/2022 Last updated : 03/22/2022
-# Configure Diagnostic settings for Events diagnostics logs and metrics exporting
+# Configure Events diagnostic settings
-In this article, you'll be provided resources to configure the Events Diagnostic settings for Azure Event Grid system topics.
+In this article, you'll be provided resources to configure the Events diagnostic settings for Azure Event Grid system topics.
After they're configured, Event Grid system topics diagnostic logs and metrics will be exported for audit, analysis, troubleshooting, or backup.
healthcare-apis Events Message Structure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/events/events-message-structure.md
Previously updated : 03/02/2022 Last updated : 03/22/2022
In this article, you'll learn about the Events message structure, required and n
|Name|Type|Required|Description| |-|-|--|--|
-|topic|string|Yes|The topic is the Azure Resource ID of your Healthcare APIs Workspace.|
+|topic|string|Yes|The topic is the Azure Resource ID of your Azure Health Data Services workspace.|
|subject|string|Yes|The Uniform Resource Identifier (URI) of the FHIR resource that was changed. Customer can access the resource with the subject with https:// scheme. Customer should use the dataVersion or data.resourceVersionId to visit specific data version regarding this event.| |eventType|string(enum)|Yes|The type of change on the FHIR resource.| |eventTime|string(datetime)|Yes|The UTC time when the FHIR resource change committed.| |id|string|Yes|Unique identifier for the event.| |data|object|Yes|FHIR resource change event details.| |data.resourceType|string(enum)|Yes|The FHIR Resource Type.|
-|data.resourceFhirAccount|string|Yes|The service name of FHIR account in the Healthcare APIs Workspace.|
-|data.resourceFhirId|string|Yes|The resource ID of the FHIR account. Note that this ID is randomly generated by the FHIR service of the Healthcare APIs when a customer creates the Resource. Customer can also use customized ID in FHIR resource creation; however the ID should **not** include or infer any PHI/PII information. It should be a system metadata, not specific to any personal data content.|
+|data.resourceFhirAccount|string|Yes|The service name of FHIR account in the Azure Health Data Services workspace.|
+|data.resourceFhirId|string|Yes|The resource ID of the FHIR account. Note that this ID is randomly generated by the FHIR service of the Azure Health Data Services when a customer creates the Resource. Customer can also use customized ID in FHIR resource creation; however the ID should **not** include or infer any PHI/PII information. It should be a system metadata, not specific to any personal data content.|
|data.resourceVersionId|string(number)|Yes|The data version of the FHIR resource.| |dataVersion|string|No|Same as ΓÇ£data.resourceVersionIdΓÇ¥.| |metadataVersion|string|No|The schema version of the event metadata. This is defined by Azure Event Grid and should be constant most of the time.|
In this article, you'll learn about the Events message structure, required and n
## Next steps
-For more information about deploying Events, see:
+For more information about deploying Events, see
>[!div class="nextstepaction"] >[Deploying Events in the Azure portal](./events-deploy-portal.md)
healthcare-apis Convert Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/fhir/convert-data.md
Previously updated : 03/01/2022 Last updated : 03/21/2022
Browse to the **Artifacts** blade under **Data transformation** in your FHIR ser
#### Registering the ACR server using CLI You can register up to 20 ACR servers in the FHIR service.
-Install the Healthcare APIs CLI from Azure PowerShell if needed:
+Install the Azure Health Data Services CLI from Azure PowerShell if needed:
```powershell az extension add -n healthcareapis
Make a call to the $convert-data API specifying your template reference in the t
## Next steps
-In this article, you've learned about the $convert-data endpoint and customize-converter templates to convert data in the Healthcare APIs. For more information about how to export FHIR data, see
+In this article, you've learned about the $convert-data endpoint and customize-converter templates to convert data in the Azure Health Data Services. For more information about how to export FHIR data, see
>[!div class="nextstepaction"] >[Export data](export-data.md)
healthcare-apis Get Started With Fhir https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/fhir/get-started-with-fhir.md
Previously updated : 03/01/2022 Last updated : 03/22/2022
As a prerequisite, you'll need an Azure subscription and have been granted prope
## Create a workspace in your Azure subscription
-You can create a workspace from the [Azure portal](../healthcare-apis-quickstart.md), or using PowerShell, Azure CLI, and REST API. You can find scripts from the [Healthcare APIs samples](https://github.com/microsoft/healthcare-apis-samples/tree/main/src/scripts).
+You can create a workspace from the [Azure portal](../healthcare-apis-quickstart.md), or using PowerShell, Azure CLI, and REST API. You can find scripts from the [Azure Health Data Services samples](https://github.com/microsoft/healthcare-apis-samples/tree/main/src/scripts).
> [!NOTE] > There are limits to the number of workspaces and the number of FHIR service instances you can create in each Azure subscription. ## Create a FHIR service in the workspace
-You can create a FHIR service instance from the [Azure portal](../fhir/fhir-portal-quickstart.md), or using PowerShell, Azure CLI, and REST API. You can find scripts from the [Healthcare APIs samples](https://github.com/microsoft/healthcare-apis-samples/tree/main/src/scripts).
+You can create a FHIR service instance from the [Azure portal](../fhir/fhir-portal-quickstart.md), or using PowerShell, Azure CLI, and REST API. You can find scripts from the [Azure Health Data Services samples](https://github.com/microsoft/healthcare-apis-samples/tree/main/src/scripts).
-Optionally, you can create a [DICOM service](../dicom/deploy-dicom-services-in-azure.md) and [IoT connector](../iot/deploy-iot-connector-in-azure.md) in the workspace.
+Optionally, you can create a [DICOM service](../dicom/deploy-dicom-services-in-azure.md) and [MedTech service](../iot/deploy-iot-connector-in-azure.md) in the workspace.
## Access the FHIR service
Optionally, you can convert [HL7 v2](../data-transformation/convert-data.md) and
Optionally, you can create Power BI dashboard reports with FHIR data. - [Power Query connector for FHIR](/power-query/connectors/fhir/fhir)-- [IoT connector and Microsoft Power BI](../iot/iot-connector-power-bi.md)
+- [MedTech service and Microsoft Power BI](../iot/iot-connector-power-bi.md)
## Next steps
healthcare-apis Using Curl https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/fhir/using-curl.md
Previously updated : 03/01/2022 Last updated : 03/22/2022
-# Access the Healthcare APIs with cURL
+# Access the Azure Health Data Services with cURL
In this article, you'll learn how to access Azure Health Data Services with cURL.
In this article, you'll learn how to access Azure Health Data Services with cURL
## Obtain Azure Access Token
-Before accessing the Healthcare APIs, you must grant the user or client app with proper permissions. For more information on how to grant permissions, see [Healthcare APIs authorization](../authentication-authorization.md).
+Before accessing the Azure Health Data Services, you must grant the user or client app with proper permissions. For more information on how to grant permissions, see [Azure Health Data Services authorization](../authentication-authorization.md).
-There are several different ways to obtain an Azure access token for the Healthcare APIs.
+There are several different ways to obtain an Azure access token for the Azure Health Data Services.
> [!NOTE] > Make sure that you have logged into Azure and that you are in the Azure subscription and tenant where you have deployed the Azure Health Data Services instance.
healthcare-apis Get Access Token https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/get-access-token.md
Previously updated : 02/15/2022 Last updated : 03/21/2022 ms.devlang: azurecli
ms.devlang: azurecli
# Get access token using Azure CLI or Azure PowerShell
-In this article, you'll learn how to obtain an access token for the FHIR service and the DICOM service using PowerShell and the Azure CLI. Keep in mind that in order to access the FHIR service or the DICOM service, users and applications must be granted permissions through [role assignments](configure-azure-rbac.md) from the Azure portal or using [scripts](configure-azure-rbac-using-scripts.md). For more information about how to get started with the Healthcare APIs, see [How to get started with FHIR](./../healthcare-apis/fhir/get-started-with-fhir.md) or [How to get started with DICOM](./../healthcare-apis/dicom/get-started-with-dicom.md).
+In this article, you'll learn how to obtain an access token for the FHIR service and the DICOM service using PowerShell and the Azure CLI. Keep in mind that in order to access the FHIR service or the DICOM service, users and applications must be granted permissions through [role assignments](configure-azure-rbac.md) from the Azure portal or using [scripts](configure-azure-rbac-using-scripts.md). For more information about how to get started with Azure Health Data Services, see [How to get started with FHIR](./../healthcare-apis/fhir/get-started-with-fhir.md) or [How to get started with DICOM](./../healthcare-apis/dicom/get-started-with-dicom.md).
## Obtain and use an access token for the FHIR service
healthcare-apis Github Projects https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/github-projects.md
Previously updated : 02/28/2022 Last updated : 03/22/2022 # GitHub Projects
The FHIR to CDM Pipeline Generator is a tool to generate an ADF pipeline for mov
This solution enables you to transform the data into tabular format as it gets written to CDM folder. You should consider this solution if you want to transform FHIR data into a custom schema as it is extracted from the FHIR server.
-## IoT connector
+## MedTech service
#### Integration with IoT Hub and IoT Central * [microsoft/iomt-fhir](https://github.com/microsoft/iomt-fhir): integration with IoT Hub or IoT Central to FHIR with data normalization and FHIR conversion of the normalized data * Normalization: device data information is extracted into a common format for further processing * FHIR Conversion: normalized and grouped data is mapped to FHIR. Observations are created or updated according to configured templates and linked to the device and patient.
-* [Tools to help build the conversation map](https://github.com/microsoft/iomt-fhir/tree/master/tools/data-mapper): visualize the mapping configuration for normalizing the device input data and transform it to the FHIR resources. Developers can use this tool to edit and test the Device and FHIR destination mappings and export them for uploading to the IoT connector in the Azure portal.
+* [Tools to help build the conversation map](https://github.com/microsoft/iomt-fhir/tree/master/tools/data-mapper): visualize the mapping configuration for normalizing the device input data and transform it to the FHIR resources. Developers can use this tool to edit and test the Device and FHIR destination mappings and export them for uploading to the MedTech service in the Azure portal.
#### HealthKit and FHIR Integration
healthcare-apis Healthcare Apis Faqs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/healthcare-apis-faqs.md
Previously updated : 03/15/2022 Last updated : 03/22/2022
Azure Health Data Services enables you to:
* Transform and ingest data into FHIR. For example, you can transform health data from legacy formats, such as HL7v2 or CDA, or from high frequency IoT data in device proprietary formats to FHIR.
-* Connect your data stored in Healthcare APIs with services across the Azure ecosystem, like Synapse, and products across Microsoft, like Teams, to derive new insights through analytics and machine learning and to enable new workflows as well as connection to SMART on FHIR applications.
+* Connect your data stored in Azure Health Data Services with services across the Azure ecosystem, like Synapse, and products across Microsoft, like Teams, to derive new insights through analytics and machine learning and to enable new workflows as well as connection to SMART on FHIR applications.
* Manage advanced workloads with enterprise features that offer reliability, scalability, and security to ensure that your data is protected, meets privacy and compliance certifications required for the healthcare industry.
Data for the managed service is automatically backed up every 12 hours, and the
[FAQs about Azure Health Data Services DICOM service](./dicom/dicom-services-faqs.yml)
-[FAQs about Azure Health Data Services IoT connector](./iot/iot-connector-faqs.md)
+[FAQs about Azure Health Data Services MedTech service](./iot/iot-connector-faqs.md)
(FHIR&#174;) is a registered trademark of [HL7](https://hl7.org/fhir/) and is used with the permission of HL7.
healthcare-apis Healthcare Apis Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/healthcare-apis-overview.md
Previously updated : 03/17/2022 Last updated : 03/22/2022
Azure Health Data Services provides the following benefits:
* Empower new workloads to leverage PHI by enabling the data to be collected and accessed in one place, in a consistent way. * Discover new insight by bringing disparate PHI together and connecting it end-to-end with tools for machine learning, analytics, and AI. * Build on a trusted cloud with confidence in how Protected Health Information is managed, stored, and made available.
-The new Microsoft Azure Health Data Services will, in addition to FHIR, support other healthcare industry data standards, like DICOM, extending healthcare data interoperability. The business model and infrastructure platform have been redesigned to accommodate the expansion and introduction of different and future Healthcare data standards. Customers can use health data of different types across healthcare standards under the same compliance umbrella. Tools have been built into the managed service that allow customers to transform data from legacy or device proprietary formats, to FHIR. Some of these tools have been previously developed and open-sourced; others will be net new.
+The new Microsoft Azure Health Data Services will, in addition to FHIR, support other healthcare industry data standards, like DICOM, extending healthcare data interoperability. The business model and infrastructure platform have been redesigned to accommodate the expansion and introduction of different and future healthcare data standards. Customers can use health data of different types across healthcare standards under the same compliance umbrella. Tools have been built into the managed service that allow customers to transform data from legacy or device proprietary formats, to FHIR. Some of these tools have been previously developed and open-sourced; others will be net new.
Azure Health Data Services enables you to: * Quickly connect disparate health data sources and formats such as structured, imaging, and device data and normalize it to be persisted in the cloud.
healthcare-apis Healthcare Apis Quickstart https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/healthcare-apis-quickstart.md
Previously updated : 02/15/2022 Last updated : 03/22/2022 # Deploy Azure Health Data Services workspace using Azure portal
-In this article, you’ll learn how to create a workspace by deploying Azure Health Data Services through the Azure portal. The workspace is a centralized logical container for all your healthcare APIs services such as FHIR services, DICOM® services, and IoT Connectors. It allows you to organize and manage certain configuration settings that are shared among all the underlying datasets and services where applicable.
+In this article, you’ll learn how to create a workspace by deploying Azure Health Data Services through the Azure portal. The workspace is a centralized logical container for all your Azure Health Data services such as FHIR services, DICOM® services, and MedTech services. It allows you to organize and manage certain configuration settings that are shared among all the underlying datasets and services where applicable.
## Prerequisite
Now that the workspace is created, you can:
* Deploy FHIR service * Deploy DICOM service
-* Deploy an IoT Connector and ingest data to your FHIR service
+* Deploy a MedTech service and ingest data to your FHIR service
* Transform your data into different formats and secondary use through our conversion and de-identification APIs
healthcare-apis Deploy Iot Connector In Azure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/iot/deploy-iot-connector-in-azure.md
Previously updated : 03/01/2022 Last updated : 03/21/2022
To ensure that your MedTech service works properly, it must have granted access
The Azure Event Hubs Data Receiver role allows the MedTech service that's being assigned this role to receive data from this Event Hub.
- For more information about application roles, see [Authentication & Authorization for the Healthcare APIs](.././authentication-authorization.md).
+ For more information about application roles, see [Authentication & Authorization for Azure Health Data Services](.././authentication-authorization.md).
5. Select **Assign access to**, and keep the default option selected **User, group, or service principal**.
For more information about authoring access to Event Hubs resources, see [Author
The FHIR Data Writer role provides read and write access that the MedTech service uses to function. Because the MedTech service is deployed as a separate resource, the FHIR service will receive requests from the MedTech service. If the FHIR service doesnΓÇÖt know who's making the request, or if it doesn't have the assigned role, it will deny the request as unauthorized.
- For more information about application roles, see [Authentication & Authorization for the Healthcare APIs](.././authentication-authorization.md).
+ For more information about application roles, see [Authentication & Authorization for Azure Health Data Services](.././authentication-authorization.md).
5. In the **Select** field, enter the security principal for your MedTech service.
healthcare-apis Get Started With Iot https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/iot/get-started-with-iot.md
Previously updated : 02/17/2022 Last updated : 03/21/2022
You can follow all the steps, or skip some if you have an existing environment.
## Create a workspace in your Azure subscription
-You can create a workspace from the [Azure portal](../healthcare-apis-quickstart.md) or using PowerShell, Azure CLI and REST API]. You can find scripts from the [Healthcare APIs samples](https://github.com/microsoft/healthcare-apis-samples/tree/main/src/scripts).
+You can create a workspace from the [Azure portal](../healthcare-apis-quickstart.md) or using PowerShell, Azure CLI and REST API]. You can find scripts from the [Azure Health Data Services samples](https://github.com/microsoft/healthcare-apis-samples/tree/main/src/scripts).
> [!NOTE] > There are limits to the number of workspaces and the number of MedTech service instances you can create in each Azure subscription.
The MedTech service works with the Azure Event Hub and the FHIR service. You can
## Create a MedTech service in the workspace
-You can create a MedTech service from the [Azure portal](deploy-iot-connector-in-azure.md) or using PowerShell, Azure CLI, or REST API. You can find scripts from the [Healthcare APIs samples](https://github.com/microsoft/healthcare-apis-samples/tree/main/src/scripts).
+You can create a MedTech service from the [Azure portal](deploy-iot-connector-in-azure.md) or using PowerShell, Azure CLI, or REST API. You can find scripts from the [Azure Health Data Services samples](https://github.com/microsoft/healthcare-apis-samples/tree/main/src/scripts).
Optionally, you can create a [FHIR service](../fhir/fhir-portal-quickstart.md) and [DICOM service](../dicom/deploy-dicom-services-in-azure.md) in the workspace.
healthcare-apis How To Create Mappings Copies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/iot/how-to-create-mappings-copies.md
Previously updated : 02/16/2022 Last updated : 03/21/2022
This article provides steps for creating copies of your MedTech service's Device
## Copy creation process
-1. Select **"MedTech service"** on the left side of the Healthcare APIs workspace.
+1. Select **"MedTech service"** on the left side of the Azure Health Data Services workspace.
:::image type="content" source="media/iot-troubleshoot/iot-connector-blade.png" alt-text="Select MedTech service." lightbox="media/iot-troubleshoot/iot-connector-blade.png":::
healthcare-apis How To Display Metrics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/iot/how-to-display-metrics.md
Previously updated : 02/16/2022 Last updated : 03/22/2022 # How to display MedTech service metrics
-> [!IMPORTANT]
-> Azure Health Data Services is currently in PREVIEW. The [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) include additional legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
- In this article, you'll learn how to display MedTech service metrics in the Azure portal. ## Display metrics
-1. Within your Azure Health Data Services Workspace, select **MedTech service**.
+1. Within your Azure Health Data Services workspace, select **MedTech service**.
:::image type="content" source="media\iot-metrics\iot-workspace-displayed-with-connectors-button.png" alt-text="Screenshot of select the MedTech service button." lightbox="media\iot-metrics\iot-connectors-button.png":::
In this article, you'll learn how to display MedTech service metrics in the Azur
## Next steps
-To learn how to export Iot connector metrics, see
+To learn how to export MedTech service metrics, see
>[!div class="nextstepaction"] >[Configure diagnostic setting for MedTech service metrics exporting](./iot-metrics-diagnostics-export.md)
healthcare-apis How To Use Collection Content Mappings https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/iot/how-to-use-collection-content-mappings.md
Title: CollectionContentTemplate mappings in IoT Connector Device mappings - Azure Health Data Services
+ Title: CollectionContentTemplate mappings in MedTech service Device mappings - Azure Health Data Services
description: This article describes how to use CollectionContentTemplate mappings with MedTech service Device mappings. Previously updated : 02/16/2022 Last updated : 03/22/2022
healthcare-apis How To Use Iot Jsonpath Content Mappings https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/iot/how-to-use-iot-jsonpath-content-mappings.md
Previously updated : 02/16/2022 Last updated : 03/22/2022
The assumption, when using this template, is the messages being evaluated were s
When you're using these SDKs, the device identity and the timestamp of the message are known. >[!IMPORTANT]
->Make sure that you're using a device identifier from Azure Iot Hub or Azure IoT Central that is registered as an identifer for a device resource on the destination FHIR service.
+>Make sure that you're using a device identifier from Azure Iot Hub or Azure IoT Central that is registered as an identifier for a device resource on the destination FHIR service.
If you're using Azure IoT Hub Device SDKs, you can still use the JsonPathContentTemplate, assuming that you're using custom properties in the message body for the device identity or measurement timestamp
healthcare-apis Iot Connector Faqs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/iot/iot-connector-faqs.md
Previously updated : 02/16/2022 Last updated : 03/22/2022
The MedTech service currently only supports the persistence of [HL7 FHIR&#174; R
### What are the subscription quota limits for MedTech service? * 25 MedTech services per Subscription (not adjustable)
-* 10 MedTech services per Workspace (not adjustable)
+* 10 MedTech services per workspace (not adjustable)
* One FHIR destination* per MedTech service (not adjustable) (* - FHIR Destination is a child resource of the MedTech service) ### Can I use the MedTech service with device messages from Apple&#174;, Google&#174;, or Fitbit&#174; devices?
-Yes. IoT connector supports device messages from all these platforms. For more information, see the [Open-source projects](iot-git-projects.md) section.
+Yes. MedTech service supports device messages from all these platforms. For more information, see the [Open-source projects](iot-git-projects.md) section.
## More frequently asked questions [FAQs about the Azure Health Data Services](../healthcare-apis-faqs.md)
healthcare-apis Iot Metrics Diagnostics Export https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/iot/iot-metrics-diagnostics-export.md
In this article, you'll learn how to configure the diagnostic setting for MedTech service to export metrics to different destinations for audit, analysis, or backup. ## Create diagnostic setting for the MedTech service
-1. To enable metrics export for the MedTech service, select **MedTech service** in your Workspace.
+1. To enable metrics export for the MedTech service, select **MedTech service** in your workspace.
- :::image type="content" source="media/iot-metrics-export/iot-connector-logging-workspace.png" alt-text="Screenshot of select the MedTech service within Workspace." lightbox="media/iot-metrics-export/iot-connector-logging-workspace.png":::
+ :::image type="content" source="media/iot-metrics-export/iot-connector-logging-workspace.png" alt-text="Screenshot of select the MedTech service within workspace." lightbox="media/iot-metrics-export/iot-connector-logging-workspace.png":::
2. Select the MedTech service that you want to configure metrics export for.
healthcare-apis Iot Troubleshoot Error Messages And Conditions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/iot/iot-troubleshoot-error-messages-and-conditions.md
Previously updated : 02/16/2022 Last updated : 03/21/2022
This article provides steps for troubleshooting and fixing MedTech service error messages and conditions. > [!IMPORTANT]
-> Having access to MedTech service Metrics is essential for monitoring and troubleshooting. MedTech service assists you to do these actions through [Metrics](./how-to-display-metrics.md).
+> Having access to MedTech service metrics is essential for monitoring and troubleshooting. MedTech service assists you to do these actions through [Metrics](./how-to-display-metrics.md).
> [!TIP] > Check out the [IoMT Connector Data Mapper](https://github.com/microsoft/iomt-fhir/tree/master/tools/data-mapper) tool for editing, testing, and troubleshooting MedTech service Device and FHIR destination mappings. Export mappings for uploading to MedTech service in the Azure portal or use with the [open-source version](https://github.com/microsoft/iomt-fhir) of the MedTech service.
This property provides the name for a specific error. Below is the list of all e
|Potential issues|Fixes| |-|--|
-|Data is still being processed.|Data is egressed to the FHIR service in batches (every ~5 minutes). ItΓÇÖs possible the data is still being processed and extra time is needed for the data to be persisted in the FHIR service.|
+|Data is still being processed.|Data is egressed to the FHIR service in batches (every ~5 minutes). ItΓÇÖs possible the data is still being processed and extra time is needed for the data to be persisted in the FHIR service.|
|Device mapping hasn't been configured.|Configure and save conforming Device mapping.| |FHIR destination mapping hasn't been configured.|Configure and save conforming FHIR destination mapping.| |The device message doesn't contain an expected expression defined in the Device mapping.|Verify `JsonPath` expressions defined in the Device mapping match tokens defined in the device message.|
healthcare-apis Logging https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/logging.md
Previously updated : 03/15/2022 Last updated : 03/22/2022
In this article, you learned how to enable diagnostic logging for Azure Health D
>[!div class="nextstepaction"] >[Supported metrics with Azure Monitor](../azure-monitor/essentials/metrics-supported.md).
-For more information about service logs and metrics for the DICOM service and IoT connector, see
+For more information about service logs and metrics for the DICOM service and MedTech service, see
>[!div class="nextstepaction"] >[Enable diagnostic logging in the DICOM service](./dicom/enable-diagnostic-logging.md) >[!div class="nextstepaction"]
->[How to display IoT connector metrics](./../healthcare-apis/iot/how-to-display-metrics.md)
+>[How to display MedTech service metrics](./../healthcare-apis/iot/how-to-display-metrics.md)
healthcare-apis Register Application Cli Rest https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/register-application-cli-rest.md
az extension add --name healthcareapis
az provider register --namespace 'Microsoft.HealthcareApis' az provider show --namespace Microsoft.HealthcareApis --query "resourceTypes[?resourceType=='services'].locations" ```
-You can sign in to Azure using the CLI login command, and list the Azure subscription and tenant you are in by default. For more information, see [change the default subscription](/cli/azure/account#az_account_set). For more information about how to sign in to a specific tenant, see [Azure login](/cli/azure/authenticate-azure-cli).
+You can sign in to Azure using the CLI login command, and list the Azure subscription and tenant you are in by default. For more information, see [change the default subscription](/cli/azure/account#az-account-set). For more information about how to sign in to a specific tenant, see [Azure login](/cli/azure/authenticate-azure-cli).
``` az login
healthcare-apis Register Application https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/register-application.md
Previously updated : 02/15/2022 Last updated : 03/21/2022
Optionally, you can upload a certificate (public key) and use the Certificate ID
## API permissions
-The following steps are required for the DICOM service, but optional for the FHIR service. In addition, user access permissions or role assignments for the Azure Health Data Services are managed through RBAC. For more details, visit [Configure Azure RBAC for the Healthcare APIs](configure-azure-rbac.md).
+The following steps are required for the DICOM service, but optional for the FHIR service. In addition, user access permissions or role assignments for the Azure Health Data Services are managed through RBAC. For more details, visit [Configure Azure RBAC for Azure Health Data Services](configure-azure-rbac.md).
1. Select the **API permissions** blade.
The following steps are required for the DICOM service, but optional for the FHI
[ ![Select permissions scopes.](dicom/media/dicom-select-scopes.png) ](dicom/media/dicom-select-scopes.png#lightbox) >[!NOTE]
->Use grant_type of client_credentials when trying to otain an access token for the FHIR service using tools such as Postman or Rest Client. For more details, visit [Access using Postman](./fhir/use-postman.md) and [Accessing the Healthcare APIs using the REST Client Extension in Visual Studio Code](./fhir/using-rest-client.md).
+>Use grant_type of client_credentials when trying to otain an access token for the FHIR service using tools such as Postman or Rest Client. For more details, visit [Access using Postman](./fhir/use-postman.md) and [Accessing Azure Health Data Services using the REST Client Extension in Visual Studio Code](./fhir/using-rest-client.md).
>>Use grant_type of client_credentials or authentication_doe when trying to obtain an access token for the DICOM service. For more details, visit [Using DICOM with cURL](dicom/dicomweb-standard-apis-curl.md). Your application registration is now complete.
healthcare-apis Release Notes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/release-notes.md
Previously updated : 03/17/2022 Last updated : 03/21/2022
> >For more information about Azure Health Data Services Service Level Agreements, see [SLA for Azure Health Data Services](https://azure.microsoft.com/support/legal/sla/health-data-services/v1_1/).
-Azure Health Data Services is a set of managed API services based on open standards and frameworks for the healthcare industry. They enable you to build scalable and secure healthcare solutions by bringing protected health information (PHI) datasets together and connecting them end-to-end with tools for machine learning, analytics, and AI. This document provides details about the features and enhancements made to Azure Health Data Services including the different service types (FHIR service, DICOM service, and IoT connector) that seamlessly work with one another.
+Azure Health Data Services is a set of managed API services based on open standards and frameworks for the healthcare industry. They enable you to build scalable and secure healthcare solutions by bringing protected health information (PHI) datasets together and connecting them end-to-end with tools for machine learning, analytics, and AI. This document provides details about the features and enhancements made to Azure Health Data Services including the different service types (FHIR service, DICOM service, and MedTech service) that seamlessly work with one another.
## January 2022
Azure Health Data Services is a set of managed API services based on open standa
|Enhancements &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |Related information | | :- | : | |Export FHIR data behind firewalls |This new feature enables exporting FHIR data to storage accounts behind firewalls. For more information, see [Configure export settings and set up a storage account](./././fhir/configure-export-data.md). |
-|Deploy Healthcare APIs with Azure Bicep |This new feature enables you to deploy Healthcare APIs using Azure Bicep. For more information, see [Deploy Healthcare APIs Using Azure Bicep](deploy-healthcare-apis-using-bicep.md). |
+|Deploy Azure Health Data Services with Azure Bicep |This new feature enables you to deploy Azure Health Data Services using Azure Bicep. For more information, see [Deploy Azure Health Data Services using Azure Bicep](deploy-healthcare-apis-using-bicep.md). |
### DICOM service
Azure Health Data Services is a set of managed API services based on open standa
### FHIR service
-#### **Feature Enhancements**
+#### **Feature enhancements**
| Enhancements &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Related information | | :- | --: |
Azure Health Data Services is a set of managed API services based on open standa
### Azure Health Data Services
-#### **Feature Enhancements**
+#### **Feature enhancements**
| Enhancements &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Related information | | :- | --: |
Azure Health Data Services is a set of managed API services based on open standa
|Implemented fix to resolve QIDO paging-ordering issues | [#989](https://github.com/microsoft/dicom-server/pull/989) | | :- | -: |
-### **IoT connector**
+### **MedTech service**
|Bug fixes | Related information | |:- | -: |
-| IoT connector normalized improvements with calculations to support and enhance health data standardization. | See: [Use Device mappings](./../healthcare-apis/iot/how-to-use-device-mappings.md) and [Calculated Functions](./../healthcare-apis/iot/how-to-use-calculated-functions-mappings.md) |
+| MedTech service normalized improvements with calculations to support and enhance health data standardization. | See: [Use Device mappings](./../healthcare-apis/iot/how-to-use-device-mappings.md) and [Calculated Functions](./../healthcare-apis/iot/how-to-use-calculated-functions-mappings.md) |
## Next steps
healthcare-apis Workspace Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/healthcare-apis/workspace-overview.md
Previously updated : 02/15/2022 Last updated : 03/22/2022 # What is Azure Health Data Services workspace?
-The Azure Health Data Services workspace is a logical container for all your healthcare service instances such as Fast Healthcare Interoperability Resources (FHIR®) services, Digital Imaging and Communications in Medicine (DICOM®) services, and Internet of things (IoT) Connectors. The workspace also creates a compliance boundary (HIPAA, HITRUST) within which protected health information can travel.
+The Azure Health Data Services workspace is a logical container for all your healthcare service instances such as Fast Healthcare Interoperability Resources (FHIR®) services, Digital Imaging and Communications in Medicine (DICOM®) services, and MedTech service. The workspace also creates a compliance boundary (HIPAA, HITRUST) within which protected health information can travel.
-You can provision multiple data services within a workspace, and by design, they work seamlessly with one another. With the workspace, you can organize all your Healthcare APIs instances and manage certain configuration settings that are shared among all the underlying datasets and services where it's applicable.
+You can provision multiple data services within a workspace, and by design, they work seamlessly with one another. With the workspace, you can organize all your Azure Health Data Services instances and manage certain configuration settings that are shared among all the underlying datasets and services where it's applicable.
## Workspace provisioning process
One or more workspaces can be created in a resource group from the Azure portal,
A workspace can't be deleted unless all child service instances within the workspace have been deleted. This feature helps prevent any accidental deletion of service instances. However, when a workspace resource group is deleted, all the workspaces and child service instances within the workspace resource group get deleted.
-Workspace names can be reused in the same Azure subscription, but not in a different Azure subscription, after deletion. However, when the move operation is supported and enabled, workspaces and its child resources can be moved from one subscription to another subscription if certain requirements are met. One requirement is that the two subscriptions must be part of the same Azure Active Directory (Azure AD) tenant. Another requirement is that the Private Link configuration isn't enabled. Names for FHIR services, DICOM services and IoT connectors can be reused in the same or different subscription after deletion if there's no collision with the URLs of any existing services.
+Workspace names can be reused in the same Azure subscription, but not in a different Azure subscription, after deletion. However, when the move operation is supported and enabled, workspaces and its child resources can be moved from one subscription to another subscription if certain requirements are met. One requirement is that the two subscriptions must be part of the same Azure Active Directory (Azure AD) tenant. Another requirement is that the Private Link configuration isn't enabled. Names for FHIR services, DICOM services and MedTech services can be reused in the same or different subscription after deletion if there's no collision with the URLs of any existing services.
## Workspace and Azure region selection
-When you create a workspace, it must be configured for an Azure region, which can be the same as or different from the resource group. The region canΓÇÖt be changed after the workspace is created. Within each workspace, all Healthcare APIs services (FHIR service, DICOM service, and IoT Connector service) must be created in the region of the workspace and canΓÇÖt be moved to a different workspace.
+When you create a workspace, it must be configured for an Azure region, which can be the same as or different from the resource group. The region canΓÇÖt be changed after the workspace is created. Within each workspace, all Azure Health Data Services (FHIR service, DICOM service, and MedTech service) must be created in the region of the workspace and canΓÇÖt be moved to a different workspace.
## Workspace and Azure Health Data Services service instances
Once the Azure Health Data Services workspace is created, youΓÇÖre now ready to
Additionally, workspaces can be created using Azure Resource Manager deployment templates, a process commonly known as infrastructure as code (IaC). This option offers the ability to customize the ARM templates and complete the workspace creation and service instance creation in a combined step.
-You can use PowerShell, CLI, Terraform scripts, or the .NET SDK to deploy the Healthcare APIs service. To create a service instance in the workspace, select **Create** (FHIR service, DICOM service, or IoT Connectors), and then enter the account details for that service instance that is being created.
+You can use PowerShell, CLI, Terraform scripts, or the .NET SDK to deploy Azure Health Data Services. To create a service instance in the workspace, select **Create** (FHIR service, DICOM service, or MedTech service), and then enter the account details for that service instance that is being created.
## FHIR service
systems into the Azure Cloud based on the [FHIR](https://www.hl7.org/fhir/index.
Deploy a DICOM service to bring medical imaging data into the cloud from any DICOMwebTM enabled system. For more information, see [Overview of DICOM service](dicom/dicom-services-overview.md).
-## IoT Connector
+## MedTech service
-The IoT Connector service enables you to ingest high-frequency IoT device data into the FHIR Service in a scalable, secure, and compliant manner. For more information, see [the IoT connector documentation page](./iot/index.yml).
+The IoT Connector service enables you to ingest high-frequency IoT device data into the FHIR Service in a scalable, secure, and compliant manner. For more information, see [the MedTech service documentation page](./iot/index.yml).
## Workspace configuration settings
hpc-cache Add Namespace Paths https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hpc-cache/add-namespace-paths.md
From the Azure portal, load the **Namespace** settings page. You can add, change
When using the Azure CLI, you must add a namespace path when you create the storage target. Read [Add a new Azure Blob storage target](hpc-cache-add-storage.md?tabs=azure-cli#add-a-new-azure-blob-storage-target) for details.
-To update the target's namespace path, use the [az hpc-cache blob-storage-target update](/cli/azure/hpc-cache/blob-storage-target#az_hpc_cache_blob_storage_target_update) command. The arguments for the update command are similar to the arguments in the create command, except that you do not pass the container name or storage account.
+To update the target's namespace path, use the [az hpc-cache blob-storage-target update](/cli/azure/hpc-cache/blob-storage-target#az-hpc-cache-blob-storage-target-update) command. The arguments for the update command are similar to the arguments in the create command, except that you do not pass the container name or storage account.
You cannot delete a namespace path from a blob storage target with the Azure CLI, but you can overwrite the path with a different value.
Fill in these values for each namespace path:
When using the Azure CLI, you must add at least one namespace path when you create the storage target. Read [Add a new NFS storage target](hpc-cache-add-storage.md?tabs=azure-cli#add-a-new-nfs-storage-target) for details.
-To update the target's namespace path or to add additional paths, use the [az hpc-cache nfs-storage-target update](/cli/azure/hpc-cache/nfs-storage-target#az_hpc_cache_nfs_storage_target_update) command. Use the ``--junction`` option to specify all of the namespace paths you want.
+To update the target's namespace path or to add additional paths, use the [az hpc-cache nfs-storage-target update](/cli/azure/hpc-cache/nfs-storage-target#az-hpc-cache-nfs-storage-target-update) command. Use the ``--junction`` option to specify all of the namespace paths you want.
The options used for the update command are similar to the "create" command, except that you do not pass the storage system information (IP address or hostname), and the usage model is optional. Read [Add a new NFS storage target](hpc-cache-add-storage.md?tabs=azure-cli#add-a-new-nfs-storage-target) for more details about the syntax of the ``--junction`` option.
hpc-cache Az Cli Prerequisites https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hpc-cache/az-cli-prerequisites.md
Follow these steps to prepare your environment before using Azure CLI to create
## Set default resource group (optional)
-Most of the hpc-cache commands require you to pass the cache's resource group. You can set the default resource group by using [az config](/cli/azure/reference-index#az_config).
+Most of the hpc-cache commands require you to pass the cache's resource group. You can set the default resource group by using [az config](/cli/azure/reference-index#az-config).
## Next steps
hpc-cache Hpc Cache Add Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hpc-cache/hpc-cache-add-storage.md
Also check your storage account's firewall settings. If the firewall is set to r
### Add a blob storage target with Azure CLI
-Use the [az hpc-cache blob-storage-target add](/cli/azure/hpc-cache/blob-storage-target#az_hpc_cache_blob_storage_target_add) interface to define an Azure Blob storage target.
+Use the [az hpc-cache blob-storage-target add](/cli/azure/hpc-cache/blob-storage-target#az-hpc-cache-blob-storage-target-add) interface to define an Azure Blob storage target.
> [!NOTE] > The Azure CLI commands currently require you to create a namespace path when you add a storage target. This is different from the process used with the Azure portal interface.
When finished, click **OK** to add the storage target.
[Set up Azure CLI for Azure HPC Cache](./az-cli-prerequisites.md).
-Use the Azure CLI command [az hpc-cache nfs-storage-target add](/cli/azure/hpc-cache/nfs-storage-target#az_hpc_cache_nfs_storage_target_add) to create the storage target.
+Use the Azure CLI command [az hpc-cache nfs-storage-target add](/cli/azure/hpc-cache/nfs-storage-target#az-hpc-cache-nfs-storage-target-add) to create the storage target.
> [!NOTE] > The Azure CLI commands currently require you to create a namespace path when you add a storage target. This is different from the process used with the Azure portal interface.
Supply these values in addition to the cache name and cache resource group:
* ``--nfs3-target`` - The IP address of your NFS storage system. (You can use a fully qualified domain name here if your cache has access to a DNS server that can resolve the name.) * ``--nfs3-usage-model`` - One of the data caching profiles, described in [Choose a usage model](#choose-a-usage-model), above.
- Verify the names of the usage models with the command [az hpc-cache usage-model list](/cli/azure/hpc-cache/usage-model#az_hpc_cache_usage_model_list).
+ Verify the names of the usage models with the command [az hpc-cache usage-model list](/cli/azure/hpc-cache/usage-model#az-hpc-cache-usage-model-list).
* ``--junction`` - The junction parameter links the client-facing virtual file path with an export path on the storage system.
Read [View and manage storage targets](manage-storage-targets.md) and [Edit stor
[Set up Azure CLI for Azure HPC Cache](./az-cli-prerequisites.md).
-Use the [az hpc-cache storage-target list](/cli/azure/hpc-cache/storage-target#az_hpc_cache_storage-target-list) option to show the existing storage targets for a cache. Supply the cache name and the resource group (unless you have set it globally).
+Use the [az hpc-cache storage-target list](/cli/azure/hpc-cache/storage-target#az-hpc-cache-storage-target-list) option to show the existing storage targets for a cache. Supply the cache name and the resource group (unless you have set it globally).
```azurecli az hpc-cache storage-target list --resource-group "scgroup" --cache-name "sc1" ```
-Use [az hpc-cache storage-target show](/cli/azure/hpc-cache/storage-target#az_hpc_cache_storage-target-list) to see details about a particular storage target. (Specify the storage target by name.)
+Use [az hpc-cache storage-target show](/cli/azure/hpc-cache/storage-target#az-hpc-cache-storage-target-list) to see details about a particular storage target. (Specify the storage target by name.)
Example:
hpc-cache Hpc Cache Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hpc-cache/hpc-cache-create.md
When creation finishes, a notification appears with a link to the new Azure HPC
> [!NOTE] > The Azure CLI currently does not support creating a cache with customer-managed encryption keys. Use the Azure portal.
-Use the [az hpc-cache create](/cli/azure/hpc-cache#az_hpc_cache_create) command to create a new Azure HPC Cache.
+Use the [az hpc-cache create](/cli/azure/hpc-cache#az-hpc-cache-create) command to create a new Azure HPC Cache.
Supply these values:
hpc-cache Hpc Cache Edit Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hpc-cache/hpc-cache-edit-storage.md
After making changes, click **OK** to update the storage target, or click **Canc
[Set up Azure CLI for Azure HPC Cache](./az-cli-prerequisites.md).
-To change a blob storage target's namespace with the Azure CLI, use the command [az hpc-cache blob-storage-target update](/cli/azure/hpc-cache/blob-storage-target#az_hpc_cache_blob_storage_target_update). Only the `--virtual-namespace-path` value can be changed.
+To change a blob storage target's namespace with the Azure CLI, use the command [az hpc-cache blob-storage-target update](/cli/azure/hpc-cache/blob-storage-target#az-hpc-cache-blob-storage-target-update). Only the `--virtual-namespace-path` value can be changed.
```azurecli az hpc-cache blob-storage-target update --cache-name cache-name --name target-name \
Use the drop-down selector to choose a new usage model. Click **OK** to update t
[Set up Azure CLI for Azure HPC Cache](./az-cli-prerequisites.md).
-Use the [az hpc-cache nfs-storage-target update](/cli/azure/hpc-cache/nfs-storage-target#az_hpc_cache_nfs_storage_target_update) command.
+Use the [az hpc-cache nfs-storage-target update](/cli/azure/hpc-cache/nfs-storage-target#az-hpc-cache-nfs-storage-target-update) command.
The update command is nearly identical to the command that you use to add an NFS storage target. Refer to [Create an NFS storage target](hpc-cache-add-storage.md#create-an-nfs-storage-target) for details and examples.
To change the usage model, update the ``--nfs3-usage-model`` option. Example: ``
The cache name, storage target name, and resource group values also are required.
-If you want to verify the names of the usage models, use the command [az hpc-cache usage-model list](/cli/azure/hpc-cache/usage-model#az_hpc_cache_usage-model-list).
+If you want to verify the names of the usage models, use the command [az hpc-cache usage-model list](/cli/azure/hpc-cache/usage-model#az-hpc-cache-usage-model-list).
If the cache is stopped or not in a healthy state, the update will apply after the cache is healthy.
hpc-cache Hpc Cache Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hpc-cache/hpc-cache-manage.md
To reactivate a stopped cache, click the **Start** button. No confirmation is ne
[Set up Azure CLI for Azure HPC Cache](./az-cli-prerequisites.md).
-Temporarily suspend a cache with the [az hpc-cache stop](/cli/azure/hpc-cache#az_hpc_cache_stop) command. This action is only valid when a cache's status is **Healthy** or **Degraded**.
+Temporarily suspend a cache with the [az hpc-cache stop](/cli/azure/hpc-cache#az-hpc-cache-stop) command. This action is only valid when a cache's status is **Healthy** or **Degraded**.
The cache automatically flushes its contents to the storage targets before stopping. This process might take some time, but it ensures data consistency. When the action is complete, the cache status changes to **Stopped**.
-Reactivate a stopped cache with [az hpc-cache start](/cli/azure/hpc-cache#az_hpc_cache_start).
+Reactivate a stopped cache with [az hpc-cache start](/cli/azure/hpc-cache#az-hpc-cache-start).
When you issue the start or stop command, the command line shows a "Running" status message until the operation completes.
To flush the cache, click the **Flush** button and then click **Yes** to confirm
[Set up Azure CLI for Azure HPC Cache](./az-cli-prerequisites.md).
-Use [az hpc-cache flush](/cli/azure/hpc-cache#az_hpc_cache_flush) to force the cache to write all changed data to the storage targets.
+Use [az hpc-cache flush](/cli/azure/hpc-cache#az-hpc-cache-flush) to force the cache to write all changed data to the storage targets.
Example:
Click the **Upgrade** button to begin the software update. The cache status chan
[Set up Azure CLI for Azure HPC Cache](./az-cli-prerequisites.md).
-On the Azure CLI, new software information is included at the end of the cache status report. (Use [az hpc-cache show](/cli/azure/hpc-cache#az_hpc_cache_show) to check.) Look for the string "upgradeStatus" in the message.
+On the Azure CLI, new software information is included at the end of the cache status report. (Use [az hpc-cache show](/cli/azure/hpc-cache#az-hpc-cache-show) to check.) Look for the string "upgradeStatus" in the message.
-Use [az hpc-cache upgrade-firmware](/cli/azure/hpc-cache#az_hpc_cache_upgrade-firmware) to apply the update, if any exists.
+Use [az hpc-cache upgrade-firmware](/cli/azure/hpc-cache#az-hpc-cache-upgrade-firmware) to apply the update, if any exists.
If no update is available, this operation has no effect.
After stopping the cache, click the **Delete** button to permanently remove the
[Set up Azure CLI for Azure HPC Cache](./az-cli-prerequisites.md).
-Use the Azure CLI command [az hpc-cache delete](/cli/azure/hpc-cache#az_hpc_cache_delete) to permanently remove the cache.
+Use the Azure CLI command [az hpc-cache delete](/cli/azure/hpc-cache#az-hpc-cache-delete) to permanently remove the cache.
Example: ```azurecli
hpc-cache Manage Storage Targets https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/hpc-cache/manage-storage-targets.md
To remove a storage target, open the **Storage targets** page. Click the '...' n
[Set up Azure CLI for Azure HPC Cache](./az-cli-prerequisites.md).
-Use [az hpc-cache storage-target remove](/cli/azure/hpc-cache/storage-target#az_hpc_cache_storage_target_remove) to delete a storage target from the cache.
+Use [az hpc-cache storage-target remove](/cli/azure/hpc-cache/storage-target#az-hpc-cache-storage-target-remove) to delete a storage target from the cache.
```azurecli $ az hpc-cache storage-target remove --resource-group cache-rg --cache-name doc-cache0629 --name blob1
import-export Storage Import Export Data From Blobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/import-export/storage-import-export-data-from-blobs.md
Use the following steps to create an export job in the Azure portal. Azure CLI a
### Create a job
-1. Use the [az extension add](/cli/azure/extension#az_extension_add) command to add the [az import-export](/cli/azure/import-export) extension:
+1. Use the [az extension add](/cli/azure/extension#az-extension-add) command to add the [az import-export](/cli/azure/import-export) extension:
```azurecli az extension add --name import-export ```
-1. To get a list of the locations from which you can receive disks, use the [az import-export location list](/cli/azure/import-export/location#az_import_export_location_list) command:
+1. To get a list of the locations from which you can receive disks, use the [az import-export location list](/cli/azure/import-export/location#az-import-export-location-list) command:
```azurecli az import-export location list ```
-1. Run the following [az import-export create](/cli/azure/import-export#az_import_export_create) command to create an export job that uses your existing storage account:
+1. Run the following [az import-export create](/cli/azure/import-export#az-import-export-create) command to create an export job that uses your existing storage account:
```azurecli az import-export create \
Use the following steps to create an export job in the Azure portal. Azure CLI a
> [!NOTE] > If the blob to be exported is in use during data copy, Azure Import/Export service takes a snapshot of the blob and copies the snapshot.
-1. Use the [az import-export list](/cli/azure/import-export#az_import_export_list) command to see all the jobs for the resource group myierg:
+1. Use the [az import-export list](/cli/azure/import-export#az-import-export-list) command to see all the jobs for the resource group myierg:
```azurecli az import-export list --resource-group myierg ```
-1. To update your job or cancel your job, run the [az import-export update](/cli/azure/import-export#az_import_export_update) command:
+1. To update your job or cancel your job, run the [az import-export update](/cli/azure/import-export#az-import-export-update) command:
```azurecli az import-export update --resource-group myierg --name MyIEjob1 --cancel-requested true
import-export Storage Import Export Data To Blobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/import-export/storage-import-export-data-to-blobs.md
Use the following steps to create an import job in the Azure CLI.
### Create a job
-1. Use the [az extension add](/cli/azure/extension#az_extension_add) command to add the [az import-export](/cli/azure/import-export) extension:
+1. Use the [az extension add](/cli/azure/extension#az-extension-add) command to add the [az import-export](/cli/azure/import-export) extension:
```azurecli az extension add --name import-export ```
-1. You can use an existing resource group or create one. To create a resource group, run the [az group create](/cli/azure/group#az_group_create) command:
+1. You can use an existing resource group or create one. To create a resource group, run the [az group create](/cli/azure/group#az-group-create) command:
```azurecli az group create --name myierg --location "West US" ```
-1. You can use an existing storage account or create one. To create a storage account, run the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command:
+1. You can use an existing storage account or create one. To create a storage account, run the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command:
```azurecli az storage account create --resource-group myierg --name myssdocsstorage --https-only ```
-1. To get a list of the locations to which you can ship disks, use the [az import-export location list](/cli/azure/import-export/location#az_import_export_location_list) command:
+1. To get a list of the locations to which you can ship disks, use the [az import-export location list](/cli/azure/import-export/location#az-import-export-location-list) command:
```azurecli az import-export location list ```
-1. Use the [az import-export location show](/cli/azure/import-export/location#az_import_export_location_show) command to get locations for your region:
+1. Use the [az import-export location show](/cli/azure/import-export/location#az-import-export-location-show) command to get locations for your region:
```azurecli az import-export location show --location "West US" ```
-1. Run the following [az import-export create](/cli/azure/import-export#az_import_export_create) command to create an import job:
+1. Run the following [az import-export create](/cli/azure/import-export#az-import-export-create) command to create an import job:
```azurecli az import-export create \
Use the following steps to create an import job in the Azure CLI.
> [!TIP] > Instead of specifying an email address for a single user, provide a group email. This ensures that you receive notifications even if an admin leaves.
-1. Use the [az import-export list](/cli/azure/import-export#az_import_export_list) command to see all the jobs for the myierg resource group:
+1. Use the [az import-export list](/cli/azure/import-export#az-import-export-list) command to see all the jobs for the myierg resource group:
```azurecli az import-export list --resource-group myierg ```
-1. To update your job or cancel your job, run the [az import-export update](/cli/azure/import-export#az_import_export_update) command:
+1. To update your job or cancel your job, run the [az import-export update](/cli/azure/import-export#az-import-export-update) command:
```azurecli az import-export update --resource-group myierg --name MyIEjob1 --cancel-requested true
import-export Storage Import Export Data To Files https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/import-export/storage-import-export-data-to-files.md
Use the following steps to create an import job in the Azure CLI.
### Create a job
-1. Use the [az extension add](/cli/azure/extension#az_extension_add) command to add the [az import-export](/cli/azure/import-export) extension:
+1. Use the [az extension add](/cli/azure/extension#az-extension-add) command to add the [az import-export](/cli/azure/import-export) extension:
```azurecli az extension add --name import-export ```
-1. You can use an existing resource group or create one. To create a resource group, run the [az group create](/cli/azure/group#az_group_create) command:
+1. You can use an existing resource group or create one. To create a resource group, run the [az group create](/cli/azure/group#az-group-create) command:
```azurecli az group create --name myierg --location "West US" ```
-1. You can use an existing storage account or create one. To create a storage account, run the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command:
+1. You can use an existing storage account or create one. To create a storage account, run the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command:
```azurecli az storage account create -resource-group myierg -name myssdocsstorage --https-only ```
-1. To get a list of the locations to which you can ship disks, use the [az import-export location list](/cli/azure/import-export/location#az_import_export_location_list) command:
+1. To get a list of the locations to which you can ship disks, use the [az import-export location list](/cli/azure/import-export/location#az-import-export-location-list) command:
```azurecli az import-export location list ```
-1. Use the [az import-export location show](/cli/azure/import-export/location#az_import_export_location_show) command to get locations for your region:
+1. Use the [az import-export location show](/cli/azure/import-export/location#az-import-export-location-show) command to get locations for your region:
```azurecli az import-export location show --location "West US" ```
-1. Run the following [az import-export create](/cli/azure/import-export#az_import_export_create) command to create an import job:
+1. Run the following [az import-export create](/cli/azure/import-export#az-import-export-create) command to create an import job:
```azurecli az import-export create \
Use the following steps to create an import job in the Azure CLI.
> Instead of specifying an email address for a single user, provide a group email to ensure that you receive notifications even if an admin leaves.
-1. Use the [az import-export list](/cli/azure/import-export#az_import_export_list) command to see all the jobs for the myierg resource group:
+1. Use the [az import-export list](/cli/azure/import-export#az-import-export-list) command to see all the jobs for the myierg resource group:
```azurecli az import-export list --resource-group myierg ```
-1. To update your job or cancel your job, run the [az import-export update](/cli/azure/import-export#az_import_export_update) command:
+1. To update your job or cancel your job, run the [az import-export update](/cli/azure/import-export#az-import-export-update) command:
```azurecli az import-export update --resource-group myierg --name MyIEjob1 --cancel-requested true
internet-analyzer Internet Analyzer Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/internet-analyzer/internet-analyzer-cli.md
The Internet Analyzer CLI exposes the following types of resources:
5. Select your Subscription ID that has been granted access to the Internet Analyzer public preview.
- After logging in, you see a list of subscriptions associated with your Azure account. The subscription information with `isDefault: true` is the currently activated subscription after logging in. To select another subscription, use the [az account set](/cli/azure/account#az_account_set) command with the subscription ID to switch to. For more information about subscription selection, see [Use multiple Azure subscriptions](/cli/azure/manage-azure-subscriptions-azure-cli).
+ After logging in, you see a list of subscriptions associated with your Azure account. The subscription information with `isDefault: true` is the currently activated subscription after logging in. To select another subscription, use the [az account set](/cli/azure/account#az-account-set) command with the subscription ID to switch to. For more information about subscription selection, see [Use multiple Azure subscriptions](/cli/azure/manage-azure-subscriptions-azure-cli).
There are ways to sign in non-interactively, which are covered in detail in [Sign in with Azure CLI](/cli/azure/authenticate-azure-cli).
iot-central Concepts Device Implementation https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-central/core/concepts-device-implementation.md
Command group 'iot central device' is in preview and under development. Referenc
} ```
-To learn more about the CLI command, see [az iot central device manual-failover](/cli/azure/iot/central/device#az_iot_central_device_manual_failover).
+To learn more about the CLI command, see [az iot central device manual-failover](/cli/azure/iot/central/device#az-iot-central-device-manual-failover).
You can now check that telemetry from the device still reaches your IoT Central application.
iot-central Howto Manage Iot Central From Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-central/core/howto-manage-iot-central-from-cli.md
Install-Module Az.IotCentral
# [Azure CLI](#tab/azure-cli)
-Use the [az iot central app create](/cli/azure/iot/central/app#az_iot_central_app_create) command to create an IoT Central application in your Azure subscription. For example:
+Use the [az iot central app create](/cli/azure/iot/central/app#az-iot-central-app-create) command to create an IoT Central application in your Azure subscription. For example:
```azurecli-interactive # Create a resource group for the IoT Central application
If you've created your own application template, you can use it to create a new
# [Azure CLI](#tab/azure-cli)
-Use the [az iot central app list](/cli/azure/iot/central/app#az_iot_central_app_list) command to list your IoT Central applications and view metadata.
+Use the [az iot central app list](/cli/azure/iot/central/app#az-iot-central-app-list) command to list your IoT Central applications and view metadata.
# [PowerShell](#tab/azure-powershell)
Use the [Get-AzIotCentralApp](/powershell/module/az.iotcentral/Get-AzIotCentralA
# [Azure CLI](#tab/azure-cli)
-Use the [az iot central app update](/cli/azure/iot/central/app#az_iot_central_app_update) command to update the metadata of an IoT Central application. For example, to change the display name of your application:
+Use the [az iot central app update](/cli/azure/iot/central/app#az-iot-central-app-update) command to update the metadata of an IoT Central application. For example, to change the display name of your application:
```azurecli-interactive az iot central app update --name myiotcentralapp \
Set-AzIotCentralApp -Name "myiotcentralapp" `
# [Azure CLI](#tab/azure-cli)
-Use the [az iot central app delete](/cli/azure/iot/central/app#az_iot_central_app_delete) command to delete an IoT Central application. For example:
+Use the [az iot central app delete](/cli/azure/iot/central/app#az-iot-central-app-delete) command to delete an IoT Central application. For example:
```azurecli-interactive az iot central app delete --name myiotcentralapp \
To enable the managed identity, use either the [Azure portal - Configure a manag
After you enable the managed identity, you can use the CLI to configure the role assignments.
-Use the [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) command to create a role assignment. For example, the following commands first retrieve the principal ID of the managed identity. The second command assigns the `Azure Event Hubs Data Sender` role to the principal ID in the scope of the `MyIoTCentralResourceGroup` resource group:
+Use the [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command to create a role assignment. For example, the following commands first retrieve the principal ID of the managed identity. The second command assigns the `Azure Event Hubs Data Sender` role to the principal ID in the scope of the `MyIoTCentralResourceGroup` resource group:
```azurecli-interactive spID=$(az resource list -n myiotcentralapp --query [*].identity.principalId --out tsv)
iot-central Howto Migrate https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-central/core/howto-migrate.md
The steps to migrate an application from V2 to V3 are:
1. Create a new V3 application from the V2 application. 1. Configure the V3 application.
-1. Delete to V2 application.
+1. Delete the V2 application.
## Create a new V3 application
iot-central Troubleshoot Connection https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-central/core/troubleshoot-connection.md
description: Troubleshoot why you're not seeing data from your devices in IoT Ce
Previously updated : 12/21/2021 Last updated : 03/24/2022
Here is a list of common error codes you might see when a device tries to upload
When you've established that your device is sending data to IoT Central, the next step is to ensure that your device is sending data in a valid format.
-To detect which categories your issue is in, run the most appropriate command for your scenario:
+To detect which categories your issue is in, run the most appropriate Azure CLI command for your scenario:
- To validate telemetry, use the preview command:
To detect which categories your issue is in, run the most appropriate command fo
az iot central diagnostics validate-messages --app-id <app-id> --device-id <device-name> ``` -- To validate property updates, use the preview command
+- To validate property updates, use the preview command:
```azurecli az iot central diagnostics validate-properties --app-id <app-id> --device-id <device-name>
To detect which categories your issue is in, run the most appropriate command fo
You may be prompted to install the `uamqp` library the first time you run a `validate` command.
-There are two main categories of common issues that cause device data to not appear in IoT Central:
+The two common types of issue that cause device data to not appear in IoT Central are:
- Device template to device data mismatch.-- Data shape is invalid JSON.
+- Data is invalid JSON.
### Device template to device data mismatch
-Mismatch in naming such as typos or case-matching issues.
-
-The following output shows example error and warning message where the device is sending a telemetry value called Temperature, when it should be temperature.
+A device must use the same name and casing as used in the device template for any telemetry field names in the payload it sends. The following output shows an example warning message where the device is sending a telemetry value called `Temperature`, when it should be `temperature`:
```output Validating telemetry.
Exiting after 300 second(s), or 10 message(s) have been parsed (whichever happen
[WARNING] [DeviceId: sample-device-01] [TemplateId: urn:modelDefinition:ofhmazgddj:vmjwwjuvdzg] Device is sending data that has not been defined in the device template. Following capabilities have NOT been defined in the device template '['Temperature']'. Following capabilities have been defined in the device template (grouped by components) '{'thermostat1': ['temperature', 'targetTemperature', 'maxTempSinceLastReboot', 'getMaxMinReport'], 'thermostat2': ['temperature', 'targetTemperature', 'maxTempSinceLastReboot', 'getMaxMinReport'], 'deviceInformation': ['manufacturer', 'model', 'swVersion', 'osName', 'processorArchitecture', 'processorManufacturer', 'totalStorage', 'totalMemory']}'. ```
-Unmodeled properties where the schema isn't defined in the device template.
-
-The following output shows example error and warning message where the osVersion is not defined in the device template :
+A device must use the same name and casing as used in the device template for any property names in the payload it sends. The following output shows an example warning message where the property `osVersion` isn't defined in the device template:
```output Command group 'iot central diagnostics' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus [WARNING] [DeviceId: sample-device-01] [TemplateId: urn:modelDefinition:ofhmazgddj:vmjwwjuvdzg] Device is sending data that has not been defined in the device template. Following capabilities have NOT been defined in the device template '['osVersion']'. Following capabilities have been defined in the device template (grouped by components) '{'thermostat1': ['temperature', 'targetTemperature', 'maxTempSinceLastReboot', 'getMaxMinReport', 'rundiagnostics'], 'thermostat2': ['temperature', 'targetTemperature', 'maxTempSinceLastReboot', 'getMaxMinReport', 'rundiagnostics'], 'deviceInformation': ['manufacturer', 'model', 'swVersion', 'osName', 'processorArchitecture', 'processorManufacturer', 'totalStorage', 'totalMemory']}'. ``` -
-Schema mismatch such as a type defined in the template as `boolean`, but the data is a string.
-
-The following output shows example error and warning messages where the device using a string value for a property that's defined as a double.
+A device must use the data types defined in the device template for any telemetry or property values. For example, you see a schema mismatch if the type defined in the device template is boolean, but the device sends a string. The following output shows an example error message where the device using a string value for a property that's defined as a double:
```output Command group 'iot central diagnostics' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Exiting after 300 second(s), or 10 message(s) have been parsed (whichever happen
[ERROR] [DeviceId: sample-device-01] [TemplateId: urn:modelDefinition:ofhmazgddj:vmjwwjuvdzg] Datatype of telemetry field 'temperature' does not match the datatype double. Data sent by the device : curr_temp. For more information, see: https://aka.ms/iotcentral-payloads ```
-The same telemetry name is defined in multiple interfaces, but the device isn't IoT Plug and Play compliant.
-
-### Invalid JSON
+The validation commands also report an error if the same telemetry name is defined in multiple interfaces, but the device isn't IoT Plug and Play compliant.
-If there are no errors reported, but a value isn't appearing, then it's probably malformed JSON. To learn more, see [Telemetry, property, and command payloads](concepts-telemetry-properties-commands.md).
-
-If you prefer to use a GUI, use the IoT Central **Raw data** view to see if something isn't being modeled. The **Raw data** view doesn't detect if the device is sending malformed JSON.
+If you prefer to use a GUI, use the IoT Central **Raw data** view to see if something isn't being modeled.
:::image type="content" source="media/troubleshoot-connection/raw-data-view.png" alt-text="Screenshot of Raw Data view":::
When you've detected the issue, you may need to update device firmware, or creat
If you chose to create a new template that models the data correctly, migrate devices from your old template to the new template. To learn more, see [Manage devices in your Azure IoT Central application](howto-manage-devices-individually.md).
+### Invalid JSON
+
+If there are no errors reported, but a value isn't appearing, then it's probably malformed JSON in the payload the device sends. To learn more, see [Telemetry, property, and command payloads](concepts-telemetry-properties-commands.md).
+
+You can't use the validate commands or the **Raw data** view in the UI to detect if the device is sending malformed JSON.
+ ## Next steps If you need more help, you can contact the Azure experts on the [Microsoft Q&A and Stack Overflow forums](https://azure.microsoft.com/support/community/). Alternatively, you can file an [Azure support ticket](https://portal.azure.com/#create/Microsoft.Support).
iot-central Tutorial Health Data Triage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-central/healthcare/tutorial-health-data-triage.md
Before you can do this, you will need to understand the JSON payload that is bei
1. For the **True** case of the Condition, add an action that calls the **Add rows to a dataset** Power BI functionality. You will have to sign into Power BI for this. Your **False** case can again use the **Terminate** control.
-1. Choose the appropriate **Workspace**, **Dataset**, and **Table**. Map the parameters that you specified when creating your streaming dataset in Power BI to the parsed JSON values that are coming from your Event Hub. Your filled-out actions should look like this:
-
- :::image type="content" source="media/add-rows-yesenia.png" alt-text="Add rows to Power BI":::
+1. Choose the appropriate **Workspace**, **Dataset**, and **Table**. Select **Add new parameter** > **Payload**. Map the parameters that you specified when creating your streaming dataset in Power BI to the parsed JSON values that are coming from your Event Hub. Then, enter valid JSON contents into the Payload field. Your filled-out actions should look like this:
+
+ ![Screenshot that shows how Logic Apps connects to Power BI.](media/add-rows-yesenia-json.png)
1. For the **Smart Knee Brace** switch case, add a **Parse JSON** action to parse the content, similar to Step 7. Then **Add rows to a dataset** to update your Teddy Silvers dataset in Power BI.
iot-develop Quickstart Devkit Mxchip Az3166 Iot Hub https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-develop/quickstart-devkit-mxchip-az3166-iot-hub.md
To create an IoT hub:
- If you prefer to use Cloud Shell, right-click the link for [Cloud Shell](https://shell.azure.com/bash) and select the option to open in a new tab. - If you're using Azure CLI locally, start your CLI console app and sign in to Azure CLI.
-1. Run [az extension add](/cli/azure/extension#az_extension_add) to install or upgrade the *azure-iot* extension to the current version.
+1. Run [az extension add](/cli/azure/extension#az-extension-add) to install or upgrade the *azure-iot* extension to the current version.
```azurecli-interactive az extension add --upgrade --name azure-iot
In the rest of this quickstart, you'll use IoT Explorer to register a device to
To add a connection to your IoT hub:
-1. In your CLI app, run the [az iot hub connection-string show](/cli/azure/iot/hub/connection-string#az_iot_hub_connection_string_show) command to get the connection string for your IoT hub.
+1. In your CLI app, run the [az iot hub connection-string show](/cli/azure/iot/hub/connection-string#az-iot-hub-connection-string-show) command to get the connection string for your IoT hub.
```azurecli az iot hub connection-string show --hub-name {YourIoTHubName}
To view device properties using Azure IoT Explorer:
To use Azure CLI to view device properties:
-1. Run the [az iot hub device-identity show](/cli/azure/iot/hub/device-identity#az_iot_hub_device_identity_show) command.
+1. Run the [az iot hub device-identity show](/cli/azure/iot/hub/device-identity#az-iot-hub-device-identity-show) command.
```azurecli az iot hub device-identity show --device-id mydevice --hub-name {YourIoTHubName}
To view telemetry in Azure IoT Explorer:
To use Azure CLI to view device telemetry:
-1. Run the [az iot hub monitor-events](/cli/azure/iot/hub#az_iot_hub_monitor_events) command. Use the names that you created previously in Azure IoT for your device and IoT hub.
+1. Run the [az iot hub monitor-events](/cli/azure/iot/hub#az-iot-hub-monitor-events) command. Use the names that you created previously in Azure IoT for your device and IoT hub.
```azurecli az iot hub monitor-events --device-id mydevice --hub-name {YourIoTHubName}
To call a method in Azure IoT Explorer:
To use Azure CLI to call a method:
-1. Run the [az iot hub invoke-device-method](/cli/azure/iot/hub#az_iot_hub_invoke_device_method) command, and specify the method name and payload. For this method, setting `method-payload` to `true` turns on the LED, and setting it to `false` turns it off.
+1. Run the [az iot hub invoke-device-method](/cli/azure/iot/hub#az-iot-hub-invoke-device-method) command, and specify the method name and payload. For this method, setting `method-payload` to `true` turns on the LED, and setting it to `false` turns it off.
```azurecli az iot hub invoke-device-method --device-id mydevice --method-name setLedState --method-payload true --hub-name {YourIoTHubName}
iot-develop Quickstart Send Telemetry Iot Hub https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-develop/quickstart-send-telemetry-iot-hub.md
If you no longer need the Azure resources created in this quickstart, you can us
> Deleting a resource group is irreversible. The resource group and all the resources contained in it are permanently deleted. Make sure that you do not accidentally delete the wrong resource group or resources. To delete a resource group by name:
-1. Run the [az group delete](/cli/azure/group#az_group_delete) command. This command removes the resource group, the IoT Hub, and the device registration you created.
+1. Run the [az group delete](/cli/azure/group#az-group-delete) command. This command removes the resource group, the IoT Hub, and the device registration you created.
```azurecli-interactive az group delete --name MyResourceGroup ```
-1. Run the [az group list](/cli/azure/group#az_group_list) command to confirm the resource group is deleted.
+1. Run the [az group list](/cli/azure/group#az-group-list) command to confirm the resource group is deleted.
```azurecli-interactive az group list
iot-dps Concepts Symmetric Key Attestation https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-dps/concepts-symmetric-key-attestation.md
Once a registration ID has been defined for the device, the symmetric key for th
# [Azure CLI](#tab/azure-cli)
-The IoT extension for the Azure CLI provides the [`compute-device-key`](/cli/azure/iot/dps#az_iot_dps_compute_device_key) command for generating derived device keys. This command can be used from Windows-based or Linux systems, in PowerShell or a Bash shell.
+The IoT extension for the Azure CLI provides the [`compute-device-key`](/cli/azure/iot/dps#az-iot-dps-compute-device-key) command for generating derived device keys. This command can be used from Windows-based or Linux systems, in PowerShell or a Bash shell.
Replace the value of `--key` argument with the **Primary Key** from your enrollment group.
iot-dps How To Legacy Device Symm Key https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-dps/how-to-legacy-device-symm-key.md
To generate device keys, use the enrollment group master key to compute an [HMAC
# [Azure CLI](#tab/azure-cli)
-The IoT extension for the Azure CLI provides the [`compute-device-key`](/cli/azure/iot/dps#az_iot_dps_compute_device_key) command for generating derived device keys. This command can be used from a Windows-based or Linux systems, in PowerShell or a Bash shell.
+The IoT extension for the Azure CLI provides the [`compute-device-key`](/cli/azure/iot/dps#az-iot-dps-compute-device-key) command for generating derived device keys. This command can be used from a Windows-based or Linux systems, in PowerShell or a Bash shell.
Replace the value of `--key` argument with the **Primary Key** from your enrollment group.
iot-dps How To Provision Multitenant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-dps/how-to-provision-multitenant.md
In this section, you'll create an Azure resource group, and two new regional IoT
>[!IMPORTANT] >It's recommended that you use the same resource group for all resources created in this article. This will make clean up easier after you are finished.
-1. In the Azure Cloud Shell, create a resource group with the following [az group create](/cli/azure/group#az_group_create) command:
+1. In the Azure Cloud Shell, create a resource group with the following [az group create](/cli/azure/group#az-group-create) command:
```azurecli-interactive az group create --name contoso-us-resource-group --location eastus ```
-2. Create an IoT hub in the *eastus* location, and add it to the resource group you created with the following [az iot hub create](/cli/azure/iot/hub#az_iot_hub_create) command(replace `{unique-hub-name}` with your own unique name):
+2. Create an IoT hub in the *eastus* location, and add it to the resource group you created with the following [az iot hub create](/cli/azure/iot/hub#az-iot-hub-create) command(replace `{unique-hub-name}` with your own unique name):
```azurecli-interactive az iot hub create --name {unique-hub-name} --resource-group contoso-us-resource-group --location eastus --sku S1
In this section, you'll create an Azure resource group, and two new regional IoT
This command may take a few minutes to complete.
-3. Now, create an IoT hub in the *westus2* location, and add it to the resource group you created with the following [az iot hub create](/cli/azure/iot/hub#az_iot_hub_create) command(replace `{unique-hub-name}` with your own unique name):
+3. Now, create an IoT hub in the *westus2* location, and add it to the resource group you created with the following [az iot hub create](/cli/azure/iot/hub#az-iot-hub-create) command(replace `{unique-hub-name}` with your own unique name):
```azurecli-interactive az iot hub create --name {unique-hub-name} --resource-group contoso-us-resource-group --location westus2 --sku S1
iot-dps How To Use Custom Allocation Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-dps/how-to-use-custom-allocation-policies.md
In this section, you use the Azure Cloud Shell to create a provisioning service
> The commands used in this article create the provisioning service and other resources in the West US location. We recommend that you create your resources in the region nearest you that supports Device Provisioning Service. You can view a list of available locations by running the command `az provider show --namespace Microsoft.Devices --query "resourceTypes[?resourceType=='ProvisioningServices'].locations | [0]" --out table` or by going to the [Azure Status](https://azure.microsoft.com/status/) page and searching for "Device Provisioning Service". In commands, locations can be specified either in one word or multi-word format; for example: westus, West US, WEST US, etc. The value is not case sensitive. If you use multi-word format to specify location, enclose the value in quotes; for example, `-- location "West US"`. >
-1. Use the Azure Cloud Shell to create a resource group with the [az group create](/cli/azure/group#az_group_create) command. An Azure resource group is a logical container into which Azure resources are deployed and managed.
+1. Use the Azure Cloud Shell to create a resource group with the [az group create](/cli/azure/group#az-group-create) command. An Azure resource group is a logical container into which Azure resources are deployed and managed.
The following example creates a resource group named *contoso-us-resource-group* in the *westus* region. It is recommended that you use this group for all resources created in this article. This approach will make clean up easier after you're finished.
In this section, you use the Azure Cloud Shell to create a provisioning service
az group create --name contoso-us-resource-group --location westus ```
-2. Use the Azure Cloud Shell to create a device provisioning service (DPS) with the [az iot dps create](/cli/azure/iot/dps#az_iot_dps_create) command. The provisioning service will be added to *contoso-us-resource-group*.
+2. Use the Azure Cloud Shell to create a device provisioning service (DPS) with the [az iot dps create](/cli/azure/iot/dps#az-iot-dps-create) command. The provisioning service will be added to *contoso-us-resource-group*.
The following example creates a provisioning service named *contoso-provisioning-service-1098* in the *westus* location. You must use a unique service name. Make up your own suffix in the service name in place of **1098**.
In this section, you use the Azure Cloud Shell to create a provisioning service
This command may take a few minutes to complete.
-3. Use the Azure Cloud Shell to create the **Contoso Toasters Division** IoT hub with the [az iot hub create](/cli/azure/iot/hub#az_iot_hub_create) command. The IoT hub will be added to *contoso-us-resource-group*.
+3. Use the Azure Cloud Shell to create the **Contoso Toasters Division** IoT hub with the [az iot hub create](/cli/azure/iot/hub#az-iot-hub-create) command. The IoT hub will be added to *contoso-us-resource-group*.
The following example creates an IoT hub named *contoso-toasters-hub-1098* in the *westus* location. You must use a unique hub name. Make up your own suffix in the hub name in place of **1098**.
In this section, you use the Azure Cloud Shell to create a provisioning service
This command may take a few minutes to complete.
-4. Use the Azure Cloud Shell to create the **Contoso Heat Pumps Division** IoT hub with the [az iot hub create](/cli/azure/iot/hub#az_iot_hub_create) command. This IoT hub will also be added to *contoso-us-resource-group*.
+4. Use the Azure Cloud Shell to create the **Contoso Heat Pumps Division** IoT hub with the [az iot hub create](/cli/azure/iot/hub#az-iot-hub-create) command. This IoT hub will also be added to *contoso-us-resource-group*.
The following example creates an IoT hub named *contoso-heatpumps-hub-1098* in the *westus* location. You must use a unique hub name. Make up your own suffix in the hub name in place of **1098**.
iot-dps Quick Enroll Device X509 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-dps/quick-enroll-device-x509.md
This section shows you how to create a .NET Core console application that adds a
:::zone pivot="programming-language-nodejs"
-This section shows you how to create a node.js script that adds an enrollment group to your provisioning service.
+This section shows you how to create a Node.js script that adds an enrollment group to your provisioning service.
1. From a command window in your working folder, run:
iot-dps Quick Setup Auto Provision Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-dps/quick-setup-auto-provision-cli.md
The Azure CLI is used to create and manage Azure resources from the command line
## Create a resource group
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command. An Azure resource group is a logical container into which Azure resources are deployed and managed.
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command. An Azure resource group is a logical container into which Azure resources are deployed and managed.
The following example creates a resource group named *my-sample-resource-group* in the *westus* location.
az group create --name my-sample-resource-group --location westus
## Create an IoT hub
-Create an IoT hub with the [az iot hub create](/cli/azure/iot/hub#az_iot_hub_create) command.
+Create an IoT hub with the [az iot hub create](/cli/azure/iot/hub#az-iot-hub-create) command.
The following example creates an IoT hub named *my-sample-hub* in the *westus* location. An IoT hub name must be globally unique in Azure, so you may want to add a unique prefix or suffix to the example name, or choose a new name altogether. Make sure your name follows proper naming conventions for an IoT hub: it should be 3-50 characters in length, and can contain only upper or lower case alphanumeric characters or hyphens ('-').
az iot hub create --name my-sample-hub --resource-group my-sample-resource-group
## Create a Device Provisioning Service
-Create a Device Provisioning Service with the [az iot dps create](/cli/azure/iot/dps#az_iot_dps_create) command.
+Create a Device Provisioning Service with the [az iot dps create](/cli/azure/iot/dps#az-iot-dps-create) command.
The following example creates a provisioning service named *my-sample-dps* in the *westus* location. You will also need to choose a globally unique name for your own provisioning service. Make sure it follows proper naming conventions for an IoT Hub Device Provisioning Service: it should be 3-64 characters in length and can contain only upper or lower case alphanumeric characters or hyphens ('-').
az iot dps create --name my-sample-dps --resource-group my-sample-resource-group
## Get the connection string for the IoT hub
-You need your IoT hub's connection string to link it with the Device Provisioning Service. Use the [az iot hub show-connection-string](/cli/azure/iot/hub#az_iot_hub_show_connection_string) command to get the connection string and use its output to set a variable that you will use when you link the two resources.
+You need your IoT hub's connection string to link it with the Device Provisioning Service. Use the [az iot hub show-connection-string](/cli/azure/iot/hub#az-iot-hub-show-connection-string) command to get the connection string and use its output to set a variable that you will use when you link the two resources.
The following example sets the *hubConnectionString* variable to the value of the connection string for the primary key of the hub's *iothubowner* policy (the `--policy-name` parameter can be used to specify a different policy). Trade out *my-sample-hub* for the unique IoT hub name you chose earlier. The command uses the Azure CLI [query](/cli/azure/query-azure-cli) and [output](/cli/azure/format-output-azure-cli#tsv-output-format) options to extract the connection string from the command output.
echo $hubConnectionString
## Link the IoT hub and the provisioning service
-Link the IoT hub and your provisioning service with the [az iot dps linked-hub create](/cli/azure/iot/dps/linked-hub#az_iot_dps_linked_hub_create) command.
+Link the IoT hub and your provisioning service with the [az iot dps linked-hub create](/cli/azure/iot/dps/linked-hub#az-iot-dps-linked-hub-create) command.
The following example links an IoT hub named *my-sample-hub* in the *westus* location and a Device Provisioning Service named *my-sample-dps*. Trade out these names for the unique IoT hub and Device Provisioning Service names you chose earlier. The command uses the connection string for your IoT hub that was stored in the *hubConnectionString* variable in the previous step.
The command may take a few minutes to complete.
## Verify the provisioning service
-Get the details of your provisioning service with the [az iot dps show](/cli/azure/iot/dps#az_iot_dps_show) command.
+Get the details of your provisioning service with the [az iot dps show](/cli/azure/iot/dps#az-iot-dps-show) command.
The following example gets the details of a provisioning service named *my-sample-dps*. Trade out this name for your own Device Provisioning Service name.
The linked IoT hub is shown in the *properties.iotHubs* collection.
Other quickstarts in this collection build upon this quickstart. If you plan to continue on to work with subsequent quickstarts or with the tutorials, do not clean up the resources created in this quickstart. If you do not plan to continue, you can use the following commands to delete the provisioning service, the IoT hub or the resource group and all of its resources. Replace the names of the resources written below with the names of your own resources.
-To delete the provisioning service, run the [az iot dps delete](/cli/azure/iot/dps#az_iot_dps_delete) command:
+To delete the provisioning service, run the [az iot dps delete](/cli/azure/iot/dps#az-iot-dps-delete) command:
```azurecli-interactive az iot dps delete --name my-sample-dps --resource-group my-sample-resource-group ```
-To delete the IoT hub, run the [az iot hub delete](/cli/azure/iot/hub#az_iot_hub_delete) command:
+To delete the IoT hub, run the [az iot hub delete](/cli/azure/iot/hub#az-iot-hub-delete) command:
```azurecli-interactive az iot hub delete --name my-sample-hub --resource-group my-sample-resource-group ```
-To delete a resource group and all its resources, run the [az group delete](/cli/azure/group#az_group_delete) command:
+To delete a resource group and all its resources, run the [az group delete](/cli/azure/group#az-group-delete) command:
```azurecli-interactive az group delete --name my-sample-resource-group
iot-dps Quick Setup Auto Provision Rm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-dps/quick-setup-auto-provision-rm.md
Sign in to your Azure account and select your subscription.
## Review deployed resources
-1. To verify the deployment, run the following [command to list resources](/cli/azure/resource#az_resource_list) and look for the new provisioning service and IoT hub in the output:
+1. To verify the deployment, run the following [command to list resources](/cli/azure/resource#az-resource-list) and look for the new provisioning service and IoT hub in the output:
```azurecli az resource list -g "${projectName}rg" ```
-2. To verify that the hub is already linked to the DPS resource, run the following [DPS extension show command](/cli/azure/iot/dps#az_iot_dps_show).
+2. To verify that the hub is already linked to the DPS resource, run the following [DPS extension show command](/cli/azure/iot/dps#az-iot-dps-show).
```azurecli az iot dps show --name <Your provisioningServiceName>
iot-dps Tutorial Custom Allocation Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-dps/tutorial-custom-allocation-policies.md
For the example in this article, use the following two device registration IDs w
# [Azure CLI](#tab/azure-cli)
-The IoT extension for the Azure CLI provides the [`compute-device-key`](/cli/azure/iot/dps#az_iot_dps_compute_device_key) command for generating derived device keys. This command can be used on Windows-based or Linux systems, from PowerShell or a Bash shell.
+The IoT extension for the Azure CLI provides the [`compute-device-key`](/cli/azure/iot/dps#az-iot-dps-compute-device-key) command for generating derived device keys. This command can be used on Windows-based or Linux systems, from PowerShell or a Bash shell.
Replace the value of `--key` argument with the **Primary Key** from your enrollment group.
iot-edge Development Environment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-edge/development-environment.md
The Azure IoT Edge dev container is a Docker container that has all the dependen
For more information, see [Azure IoT Edge dev container](https://github.com/Azure/iotedgedev/wiki/quickstart-with-iot-edge-dev-container).
-### IoT Edge runtime in a container
-
-The IoT Edge runtime in a container provides a complete runtime that takes your device connection string as an environment variable. This container enables you to test IoT Edge modules and scenarios on a system that may not support the runtime natively, like macOS. Any modules that you deploy will be started outside of the runtime container. If you want the runtime and any deployed modules to exist within the same container, consider the IoT Edge device container instead.
-
-For more information, see [Running Azure IoT Edge in a container](https://github.com/Azure/iotedgedev/tree/master/docker/runtime).
- ### IoT Edge device container The IoT Edge device container is a complete IoT Edge device, ready to be launched on any machine with a container engine. The device container includes the IoT Edge runtime and a container engine itself. Each instance of the container is a fully functional self-provisioning IoT Edge device. The device container supports remote debugging of modules, as long as there is a network route to the module. The device container is good for quickly creating large numbers of IoT Edge devices to test at-scale scenarios or Azure Pipelines. It also supports deployment to kubernetes via helm.
When you're ready to develop at-scale solutions for extensive production scenari
For more information, guidance, and examples, see the following pages: * [Continuous integration and continuous deployment to Azure IoT Edge](how-to-continuous-integration-continuous-deployment.md)
-* [IoT Edge DevOps GitHub repo](https://github.com/toolboc/IoTEdge-DevOps)
+* [IoT Edge DevOps GitHub repo](https://github.com/toolboc/IoTEdge-DevOps)
iot-edge How To Collect And Transport Metrics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-edge/how-to-collect-and-transport-metrics.md
You can find the resource ID in the **Properties** page of the IoT hub in the Az
:::image type="content" source="./media/how-to-collect-and-transport-metrics/resource-id.png" alt-text="Retrieve resource ID from the IoT Hub properties.":::
-Or, you retrieve the ID with the [az resource show](/cli/azure/resource#az_resource_show) command:
+Or, you retrieve the ID with the [az resource show](/cli/azure/resource#az-resource-show) command:
```azurecli-interactive az resource show -g <resource group> -n <hub name> --resource-type "Microsoft.Devices/IoTHubs"
You can find the resource ID in the **Properties** page of the IoT Central appli
:::image type="content" source="./media/how-to-collect-and-transport-metrics/resource-id-iot-central.png" alt-text="Retrieve resource ID from the IoT Central properties.":::
-Or, you retrieve the ID with the [az resource show](/cli/azure/resource#az_resource_show) command:
+Or, you retrieve the ID with the [az resource show](/cli/azure/resource#az-resource-show) command:
```azurecli-interactive az resource show -g <resource group> -n <application name> --resource-type "Microsoft.IoTCentral/IoTApps"
iot-edge Iot Edge For Linux On Windows https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-edge/iot-edge-for-linux-on-windows.md
[!INCLUDE [iot-edge-version-all-supported](../../includes/iot-edge-version-all-supported.md)]
-Azure IoT Edge for Linux on Windows (EFLOW) allows you to run containerized Linux workloads alongside Windows applications in Windows IoT deployments. Businesses that rely on Windows IoT to power their edge devices can now take advantage of the cloud-native analytics solutions being built in Linux.
+Azure IoT Edge for Linux on Windows (EFLOW) allows you to run containerized Linux workloads alongside Windows applications in Windows deployments. Businesses that rely on Windows to power their edge devices and solutions can now take advantage of the cloud-native analytics solutions being built in Linux.
<!-- 1.2 --> :::moniker range=">=iotedge-2020-11"
iot-edge Offline Capabilities https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-edge/offline-capabilities.md
Only non-IoT Edge devices can be added as child devices.
IoT Edge devices and their assigned child devices can function indefinitely offline after the initial, one-time sync. However, storage of messages depends on the time to live (TTL) setting and the available disk space for storing the messages.
+A device's *EdgeAgent* updates its reported properties whenever there is a change in the deployment status such as a new or failed deployment. When a device is offline, the *EdgeAgent* can't report status to the Azure portal. Therefore, the device status in the Azure portal may remain **200 OK** when IoT Edge device has no internet connectivity.
+ ## Set up parent and child devices By default, a parent device can have up to 100 children. You can change this limit by setting the **MaxConnectedClients** environment variable in the edgeHub module. A child device only has one parent.
iot-edge Support https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-edge/support.md
Modules built as Linux containers can be deployed to either Linux or Windows dev
:::moniker-end <!-- end 1.2 -->
-All Windows operating systems must be version 1809 (build 17763) or later.
+All Windows operating systems must be minimum build 17763 with all current cumulative updates installed.
>[!NOTE] >Ubuntu Server 16.04 support ended with the release of IoT Edge version 1.1.
iot-edge Tutorial Nested Iot Edge https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-edge/tutorial-nested-iot-edge.md
To create a hierarchy of IoT Edge devices, you will need:
* An Azure account with a valid subscription. If you don't have an [Azure subscription](../guides/developer/azure-developer-guide.md#understanding-accounts-subscriptions-and-billing), create a [free account](https://azure.microsoft.com/free/) before you begin. * A free or standard tier [IoT Hub](../iot-hub/iot-hub-create-through-portal.md) in Azure. * A Bash shell in Azure Cloud Shell using Azure CLI v2.3.1 with the Azure IoT extension v0.10.6 or higher installed. This tutorial uses the [Azure Cloud Shell](../cloud-shell/overview.md). If you're unfamiliar with the Azure Cloud Shell, [check out a quickstart for details](./quickstart-linux.md#prerequisites).
- * To see your current versions of the Azure CLI modules and extensions, run [az version](/cli/azure/reference-index?#az_version).
+ * To see your current versions of the Azure CLI modules and extensions, run [az version](/cli/azure/reference-index?#az-version).
* A Linux device to configure as an IoT Edge device for each device in your hierarchy. This tutorial uses two devices. If you don't have devices available, you can create Azure virtual machines for each device in your hierarchy using the command below. Replace the placeholder text in the following command and run it twice, once for each virtual machine. Each virtual machine needs a unique DNS prefix, which will also serve as its name. The DNS prefix must conform to the following regular expression: `[a-z][a-z0-9-]{1,61}[a-z0-9]`.
iot-hub Iot Hub Configure File Upload Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/iot-hub-configure-file-upload-cli.md
To use the [file upload functionality in IoT Hub](iot-hub-devguide-file-upload.m
* An active Azure account. If you don't have an account, you can create a [free account](https://azure.microsoft.com/pricing/free-trial/) in just a couple of minutes.
-* An Azure IoT hub. If you don't have an IoT hub, you can use the [`az iot hub create` command](/cli/azure/iot/hub#az_iot_hub_create) to create one or [Create an IoT hub using the portal](iot-hub-create-through-portal.md).
+* An Azure IoT hub. If you don't have an IoT hub, you can use the [`az iot hub create` command](/cli/azure/iot/hub#az-iot-hub-create) to create one or [Create an IoT hub using the portal](iot-hub-create-through-portal.md).
* An Azure Storage account. If you don't have an Azure Storage account, you can use the Azure CLI to create one. For more information, see [Create a storage account](../storage/common/storage-account-create.md).
The configuration requires the following values:
> The authentication type setting configures how your IoT hub authenticates with your Azure Storage account. Devices always authenticate with Azure Storage using the SAS URI that they get from the IoT hub.
-The following commands show how to configure the file upload settings on your IoT hub. These commands are shown separately for clarity, but, typically, you would issue a single command with all the required parameters for your scenario. Include quotes where they appear in the command line. Don't include the braces. More detail about each parameter can be found in the Azure CLI documentation for the [az iot hub update](/cli/azure/iot/hub#az_iot_hub_update) command.
+The following commands show how to configure the file upload settings on your IoT hub. These commands are shown separately for clarity, but, typically, you would issue a single command with all the required parameters for your scenario. Include quotes where they appear in the command line. Don't include the braces. More detail about each parameter can be found in the Azure CLI documentation for the [az iot hub update](/cli/azure/iot/hub#az-iot-hub-update) command.
The following command configures the storage account and blob container.
az iot hub update --name {your iot hub name} \
The following commands retrieve the user-assigned managed identities configured on your IoT hub and configure authentication with one of them. Before you can use a user-assigned managed identity to authenticate, it must be configured on your IoT hub and granted an appropriate RBAC role on your Azure Storage account. For more detail and steps, see [IoT Hub support for managed identities](./iot-hub-managed-identity.md).
-To query for user-assigned managed identities on your IoT hub, use the [az iot hub identity show](/cli/azure/iot/hub/identity#az_iot_hub_identity_show) command.
+To query for user-assigned managed identities on your IoT hub, use the [az iot hub identity show](/cli/azure/iot/hub/identity#az-iot-hub-identity-show) command.
```azurecli az iot hub identity show --name {your iot hub name} --query userAssignedIdentities
az iot hub update --name {your iot hub name} \
* [Upload files from a device overview](iot-hub-devguide-file-upload.md) * [IoT Hub support for managed identities](./iot-hub-managed-identity.md) * [File upload how-to guides](./iot-hub-csharp-csharp-file-upload.md)
-* Azure CLI [az iot hub update](/cli/azure/iot/hub#az_iot_hub_update), [az iot hub identity show](/cli/azure/iot/hub/identity#az_iot_hub_identity_show), and [az iot hub create](/cli/azure/iot/hub#az_iot_hub_create) commands
+* Azure CLI [az iot hub update](/cli/azure/iot/hub#az-iot-hub-update), [az iot hub identity show](/cli/azure/iot/hub/identity#az-iot-hub-identity-show), and [az iot hub create](/cli/azure/iot/hub#az-iot-hub-create) commands
iot-hub Iot Hub Create Using Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/iot-hub-create-using-cli.md
Use the Azure CLI to create a resource group and then add an IoT hub.
> ``` >
-2. Run the following [command to create an IoT hub](/cli/azure/iot/hub#az_iot_hub_create) in your resource group, using a globally unique name for your IoT hub:
+2. Run the following [command to create an IoT hub](/cli/azure/iot/hub#az-iot-hub-create) in your resource group, using a globally unique name for your IoT hub:
```azurecli-interactive az iot hub create --name {your iot hub name} \
The previous command creates an IoT hub in the S1 pricing tier for which you are
You can use Azure CLI to [delete an individual resource](/cli/azure/resource), such as an IoT hub, or delete a resource group and all its resources, including any IoT hubs.
-To [delete an IoT hub](/cli/azure/iot/hub#az_iot_hub_delete), run the following command:
+To [delete an IoT hub](/cli/azure/iot/hub#az-iot-hub-delete), run the following command:
```azurecli-interactive az iot hub delete --name {your iot hub name} -\ -resource-group {your resource group name} ```
-To [delete a resource group](/cli/azure/group#az_group_delete) and all its resources, run the following command:
+To [delete a resource group](/cli/azure/group#az-group-delete) and all its resources, run the following command:
```azurecli-interactive az group delete --name {your resource group name}
iot-hub Iot Hub Devguide Messages C2d https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/iot-hub-devguide-messages-c2d.md
You can set the configuration options in one of the following ways:
:::image type="content" source="./media/iot-hub-devguide-messages-c2d/c2d-configuration-portal.png" alt-text="Set configuration options for cloud-to-device messaging in the portal" border="true":::
-* **Azure CLI**: Use the [az iot hub update](/cli/azure/iot/hub#az_iot_hub_update) command:
+* **Azure CLI**: Use the [az iot hub update](/cli/azure/iot/hub#az-iot-hub-update) command:
```azurecli az iot hub update --name {your IoT hub name} \
iot-hub Iot Hub Device Management Iot Extension Azure Cli 2 0 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/iot-hub-device-management-iot-extension-azure-cli-2-0.md
Device twins are JSON documents that store device state information (metadata, c
## Prerequisites
-* Complete the [Raspberry Pi online simulator](iot-hub-raspberry-pi-web-simulator-get-started.md) tutorial or one of the device tutorials. For example, you can go to [Raspberry Pi with node.js](iot-hub-raspberry-pi-kit-node-get-started.md) or to one of the [Send telemetry](../iot-develop/quickstart-send-telemetry-iot-hub.md?pivots=programming-language-csharp) quickstarts. These articles cover the following requirements:
+* Complete the [Raspberry Pi online simulator](iot-hub-raspberry-pi-web-simulator-get-started.md) tutorial or one of the device tutorials. For example, you can go to [Raspberry Pi with Node.js](iot-hub-raspberry-pi-kit-node-get-started.md) or to one of the [Send telemetry](../iot-develop/quickstart-send-telemetry-iot-hub.md?pivots=programming-language-csharp) quickstarts. These articles cover the following requirements:
* An active Azure subscription. * An Azure IoT hub under your subscription.
iot-hub Iot Hub How To Order Connection State Events https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/iot-hub-how-to-order-connection-state-events.md
You can see results of the executed stored procedure in your Cosmos DB document.
## Use the Azure CLI
-Instead of using the [Azure portal](https://portal.azure.com), you can accomplish the IoT Hub steps using the Azure CLI. For details, see the Azure CLI pages for [creating an event subscription](/cli/azure/eventgrid/event-subscription) and [creating an IoT device](/cli/azure/iot/hub/device-identity#az_iot_hub_device_identity_create).
+Instead of using the [Azure portal](https://portal.azure.com), you can accomplish the IoT Hub steps using the Azure CLI. For details, see the Azure CLI pages for [creating an event subscription](/cli/azure/eventgrid/event-subscription) and [creating an IoT device](/cli/azure/iot/hub/device-identity#az-iot-hub-device-identity-create).
## Clean up resources
iot-hub Iot Hub Live Data Visualization In Web Apps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/iot-hub-live-data-visualization-in-web-apps.md
[!INCLUDE [iot-hub-get-started-note](../../includes/iot-hub-get-started-note.md)]
-In this article, you learn how to visualize real-time sensor data that your IoT hub receives with a node.js web app running on your local computer. After running the web app locally, you can optionally follow steps to host the web app in Azure App Service. If you want to try to visualize the data in your IoT hub by using Power BI, see [Use Power BI to visualize real-time sensor data from Azure IoT Hub](iot-hub-live-data-visualization-in-power-bi.md).
+In this article, you learn how to visualize real-time sensor data that your IoT hub receives with a Node.js web app running on your local computer. After running the web app locally, you can optionally follow steps to host the web app in Azure App Service. If you want to try to visualize the data in your IoT hub by using Power BI, see [Use Power BI to visualize real-time sensor data from Azure IoT Hub](iot-hub-live-data-visualization-in-power-bi.md).
## Prerequisites
-* Complete the [Raspberry Pi online simulator](iot-hub-raspberry-pi-web-simulator-get-started.md) tutorial or one of the device tutorials. For example, you can go to [Raspberry Pi with node.js](iot-hub-raspberry-pi-kit-node-get-started.md) or to one of the [Send telemetry](../iot-develop/quickstart-send-telemetry-iot-hub.md?pivots=programming-language-csharp) quickstarts. These articles cover the following requirements:
+* Complete the [Raspberry Pi online simulator](iot-hub-raspberry-pi-web-simulator-get-started.md) tutorial or one of the device tutorials. For example, you can go to [Raspberry Pi with Node.js](iot-hub-raspberry-pi-kit-node-get-started.md) or to one of the [Send telemetry](../iot-develop/quickstart-send-telemetry-iot-hub.md?pivots=programming-language-csharp) quickstarts. These articles cover the following requirements:
* An active Azure subscription * An Iot hub under your subscription
iot-hub Iot Hub Monitoring Notifications With Azure Logic Apps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/iot-hub-monitoring-notifications-with-azure-logic-apps.md
In this topic, you set up routing on your IoT hub to send messages in which the
## Prerequisites
-* Complete the [Raspberry Pi online simulator](iot-hub-raspberry-pi-web-simulator-get-started.md) tutorial or one of the device tutorials. For example, you can go to [Raspberry Pi with node.js](iot-hub-raspberry-pi-kit-node-get-started.md) or to one of the [Send telemetry](../iot-develop/quickstart-send-telemetry-iot-hub.md?pivots=programming-language-csharp) quickstarts. These articles cover the following requirements:
+* Complete the [Raspberry Pi online simulator](iot-hub-raspberry-pi-web-simulator-get-started.md) tutorial or one of the device tutorials. For example, you can go to [Raspberry Pi with Node.js](iot-hub-raspberry-pi-kit-node-get-started.md) or to one of the [Send telemetry](../iot-develop/quickstart-send-telemetry-iot-hub.md?pivots=programming-language-csharp) quickstarts. These articles cover the following requirements:
* An active Azure subscription. * An Azure IoT hub under your subscription.
iot-hub Iot Hub Node Node File Upload https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/iot-hub-node-node-file-upload.md
At the end of this article, you run two Node.js console apps:
## Upload a file from a device app
-In this section, you create a device app to upload a file to IoT hub. The code is based on code available in the [upload_to_blob_advanced.js](https://github.com/Azure/azure-iot-sdk-node/blob/main/device/samples/javascript/upload_to_blob_advanced.js) sample in the [Azure IoT node.js SDK](https://github.com/Azure/azure-iot-sdk-node) device samples.
+In this section, you create a device app to upload a file to IoT hub. The code is based on code available in the [upload_to_blob_advanced.js](https://github.com/Azure/azure-iot-sdk-node/blob/main/device/samples/javascript/upload_to_blob_advanced.js) sample in the [Azure IoT Node.js SDK](https://github.com/Azure/azure-iot-sdk-node) device samples.
1. Create an empty folder called `fileupload`. In the `fileupload` folder, create a package.json file using the following command at your command prompt. Accept all the defaults:
iot-hub Iot Hub Weather Forecast Machine Learning https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/iot-hub-weather-forecast-machine-learning.md
Machine learning is a technique of data science that helps computers learn from
## Prerequisites -- Complete the [Raspberry Pi online simulator](iot-hub-raspberry-pi-web-simulator-get-started.md) tutorial or one of the device tutorials. For example, you can go to [Raspberry Pi with node.js](iot-hub-raspberry-pi-kit-node-get-started.md) or to one of the [Send telemetry](../iot-develop/quickstart-send-telemetry-iot-hub.md?pivots=programming-language-csharp) quickstarts. These articles cover the following requirements:
+- Complete the [Raspberry Pi online simulator](iot-hub-raspberry-pi-web-simulator-get-started.md) tutorial or one of the device tutorials. For example, you can go to [Raspberry Pi with Node.js](iot-hub-raspberry-pi-kit-node-get-started.md) or to one of the [Send telemetry](../iot-develop/quickstart-send-telemetry-iot-hub.md?pivots=programming-language-csharp) quickstarts. These articles cover the following requirements:
- An active Azure subscription. - An Azure IoT hub under your subscription. - A client application that sends messages to your Azure IoT hub.
iot-hub Quickstart Send Telemetry Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/quickstart-send-telemetry-cli.md
Previously updated : 02/23/2022 Last updated : 03/24/2022 # Quickstart: Send telemetry from a device to an IoT hub and monitor it with the Azure CLI
In this section, you prepare two Azure CLI sessions. If you're using the Cloud S
Azure CLI requires you to be logged into your Azure account. All communication between your Azure CLI shell session and your IoT hub is authenticated and encrypted. As a result, this quickstart does not need additional authentication that you'd use with a real device, such as a connection string. -- Run the [az extension add](/cli/azure/extension#az_extension_add) command to add the Microsoft Azure IoT Extension for Azure CLI to your CLI shell. The IOT Extension adds IoT Hub, IoT Edge, and IoT Device Provisioning Service (DPS) specific commands to Azure CLI.
+- Run the [az extension add](/cli/azure/extension#az-extension-add) command to add the Microsoft Azure IoT Extension for Azure CLI to your CLI shell. The IOT Extension adds IoT Hub, IoT Edge, and IoT Device Provisioning Service (DPS) specific commands to Azure CLI.
```azurecli az extension add --name azure-iot
In this section, you use the Azure CLI to create a resource group and an IoT hub
> [!TIP] > Optionally, you can create an Azure resource group, an IoT hub, and other resources by using the [Azure portal](iot-hub-create-through-portal.md), [Visual Studio Code](iot-hub-create-use-iot-toolkit.md), or other programmatic methods.
-1. Run the [az group create](/cli/azure/group#az_group_create) command to create a resource group. The following command creates a resource group named *MyResourceGroup* in the *eastus* location.
+1. Run the [az group create](/cli/azure/group#az-group-create) command to create a resource group. The following command creates a resource group named *MyResourceGroup* in the *eastus* location.
```azurecli az group create --name MyResourceGroup --location eastus ```
-1. Run the [az iot hub create](/cli/azure/iot/hub#az_iot_hub_create) command to create an IoT hub. It might take a few minutes to create an IoT hub.
+1. Run the [az iot hub create](/cli/azure/iot/hub#az-iot-hub-create) command to create an IoT hub. It might take a few minutes to create an IoT hub.
- *YourIotHubName*. Replace this placeholder below with the name you chose for your IoT hub. An IoT hub name must be globally unique in Azure. This placeholder is used in the rest of this quickstart to represent your IoT hub name.
+ *YourIotHubName*. Replace this placeholder and the surrounding braces in the following command, using the name you chose for your IoT hub. An IoT hub name must be globally unique in Azure. Use your IoT hub name in the rest of this quickstart wherever you see the placeholder.
```azurecli az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
In this section, you create a simulated device in the first CLI session. The sim
To create and start a simulated device:
-1. Run the [az iot hub device-identity create](/cli/azure/iot/hub/device-identity#az_iot_hub_device_identity_create) command in the first CLI session. This creates the simulated device identity.
+1. Run the [az iot hub device-identity create](/cli/azure/iot/hub/device-identity#az-iot-hub-device-identity-create) command in the first CLI session. This creates the simulated device identity.
*YourIotHubName*. Replace this placeholder below with the name you chose for your IoT hub.
To create and start a simulated device:
az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName} ```
-1. Run the [az iot device simulate](/cli/azure/iot/device#az_iot_device_simulate) command in the first CLI session. This starts the simulated device. The device sends telemetry to your IoT hub and receives messages from it.
+1. Run the [az iot device simulate](/cli/azure/iot/device#az-iot-device-simulate) command in the first CLI session. This starts the simulated device. The device sends telemetry to your IoT hub and receives messages from it.
*YourIotHubName*. Replace this placeholder below with the name you chose for your IoT hub.
To create and start a simulated device:
To monitor a device:
-1. In the second CLI session, run the [az iot hub monitor-events](/cli/azure/iot/hub#az_iot_hub_monitor_events) command. This starts monitoring the simulated device. The output shows telemetry that the simulated device sends to the IoT hub.
+1. In the second CLI session, run the [az iot hub monitor-events](/cli/azure/iot/hub#az-iot-hub-monitor-events) command. This starts monitoring the simulated device. The output shows telemetry that the simulated device sends to the IoT hub.
*YourIotHubName*. Replace this placeholder below with the name you chose for your IoT hub.
In this section, you use the second CLI session to send a message to the simulat
az iot device simulate -d simDevice -n {YourIoTHubName} ```
-1. In the second CLI session, run the [az iot device c2d-message send](/cli/azure/iot/device/c2d-message#az_iot_device_c2d-message-send) command. This sends a cloud-to-device message from your IoT hub to the simulated device. The message includes a string and two key-value pairs.
+1. In the second CLI session, run the [az iot device c2d-message send](/cli/azure/iot/device/c2d-message#az-iot-device-c2d-message-send) command. This sends a cloud-to-device message from your IoT hub to the simulated device. The message includes a string and two key-value pairs.
*YourIotHubName*. Replace this placeholder below with the name you chose for your IoT hub.
If you continue to the next recommended article, you can keep the resources you'
To delete a resource group by name:
-1. Run the [az group delete](/cli/azure/group#az_group_delete) command. This removes the resource group, the IoT Hub, and the device registration you created.
+1. Run the [az group delete](/cli/azure/group#az-group-delete) command. This removes the resource group, the IoT Hub, and the device registration you created.
```azurecli az group delete --name MyResourceGroup ```
-1. Run the [az group list](/cli/azure/group#az_group_list) command to confirm the resource group is deleted.
+1. Run the [az group list](/cli/azure/group#az-group-list) command to confirm the resource group is deleted.
```azurecli az group list
iot-hub Tutorial Message Enrichments https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/tutorial-message-enrichments.md
To remove all of the resources you created in this tutorial, delete the resource
### Use the Azure CLI to clean up resources
-To remove the resource group, use the [az group delete](/cli/azure/group#az_group_delete) command. Recall that `$resourceGroup` was set to **ContosoResourcesMsgEn** at the beginning of this tutorial.
+To remove the resource group, use the [az group delete](/cli/azure/group#az-group-delete) command. Recall that `$resourceGroup` was set to **ContosoResourcesMsgEn** at the beginning of this tutorial.
```azurecli-interactive az group delete --name $resourceGroup
iot-hub Tutorial Routing Config Message Routing CLI https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/tutorial-routing-config-message-routing-CLI.md
Now that the base resources are set up, you can configure the message routing.
[!INCLUDE [iot-hub-include-create-routing-description](../../includes/iot-hub-include-create-routing-description.md)]
-To create a routing endpoint, use [az iot hub routing-endpoint create](/cli/azure/iot/hub/routing-endpoint#az_iot_hub_routing_endpoint_create). To create the message route for the endpoint, use [az iot hub route create](/cli/azure/iot/hub/route#az_iot_hub_route_create).
+To create a routing endpoint, use [az iot hub routing-endpoint create](/cli/azure/iot/hub/routing-endpoint#az-iot-hub-routing-endpoint-create). To create the message route for the endpoint, use [az iot hub route create](/cli/azure/iot/hub/route#az-iot-hub-route-create).
### Route to a storage account
iot-hub Tutorial Routing View Message Routing Results https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/tutorial-routing-view-message-routing-results.md
Sign in to your [Power BI](https://powerbi.microsoft.com/) account. Go to your w
### Use the Azure CLI to clean up resources
-To remove the resource group, use the [az group delete](/cli/azure/group#az_group_delete) command. `$resourceGroup` was set to **ContosoResources** back at the beginning of this tutorial.
+To remove the resource group, use the [az group delete](/cli/azure/group#az-group-delete) command. `$resourceGroup` was set to **ContosoResources** back at the beginning of this tutorial.
```azurecli-interactive az group delete --name $resourceGroup
iot-hub Tutorial Use Metrics And Diags https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/iot-hub/tutorial-use-metrics-and-diags.md
In the [Collect logs for connections and device telemetry](#collect-logs-for-con
To remove all of the resources you've created in this tutorial, delete the resource group. This action deletes all resources contained within the group. In this case, it removes the IoT hub, the Log Analytics workspace, and the resource group itself. If you have pinned metrics charts to the dashboard, you'll have to remove them manually by clicking on the three dots in the upper right-hand corner of each chart and selecting **Remove**. Be sure to save your changes after doing deleting the charts.
-To remove the resource group, use the [az group delete](/cli/azure/group#az_group_delete) command.
+To remove the resource group, use the [az group delete](/cli/azure/group#az-group-delete) command.
```azurecli-interactive az group delete --name ContosoResources
key-vault How To Export Certificate https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/certificates/how-to-export-certificate.md
az keyvault certificate download --file
[--version] ```
-View [examples and parameter definitions](/cli/azure/keyvault/certificate#az_keyvault_certificate_download) for more information.
+View [examples and parameter definitions](/cli/azure/keyvault/certificate#az-keyvault-certificate-download) for more information.
Downloading as certificate means getting the public portion. If you want both the private key and public metadata then you can download it as secret.
az keyvault secret download -ΓÇôfile {nameofcert.pfx}
[--version] ```
-For more information, see [parameter definitions](/cli/azure/keyvault/secret#az_keyvault_secret_download).
+For more information, see [parameter definitions](/cli/azure/keyvault/secret#az-keyvault-secret-download).
# [PowerShell](#tab/azure-powershell)
key-vault Quick Create Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/certificates/quick-create-python.md
To read a certificate from Key Vault, use the [get_certificate](/python/api/azur
retrieved_certificate = client.get_certificate(certificateName) ```
-You can also verify that the certificate has been set with the Azure CLI command [az keyvault certificate show](/cli/azure/keyvault/certificate?#az_keyvault_certificate_show).
+You can also verify that the certificate has been set with the Azure CLI command [az keyvault certificate show](/cli/azure/keyvault/certificate?#az-keyvault-certificate-show).
### Delete a certificate
deleted_certificate = poller.result()
The `begin_delete_certificate` method is asynchronous and returns a poller object. Calling the poller's `result` method waits for its completion.
-You can verify that the certificate is deleted with the Azure CLI command [az keyvault certificate show](/cli/azure/keyvault/certificate?#az_keyvault_certificate_show).
+You can verify that the certificate is deleted with the Azure CLI command [az keyvault certificate show](/cli/azure/keyvault/certificate?#az-keyvault-certificate-show).
Once deleted, a certificate remains in a deleted but recoverable state for a time. If you run the code again, use a different certificate name.
key-vault Tutorial Import Certificate https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/certificates/tutorial-import-certificate.md
az keyvault certificate import --file
[--tags] ```
-Learn more about the [parameters](/cli/azure/keyvault/certificate#az_keyvault_certificate_import).
+Learn more about the [parameters](/cli/azure/keyvault/certificate#az-keyvault-certificate-import).
-After importing the certificate, you can view the certificate using [Certificate show](/cli/azure/keyvault/certificate#az_keyvault_certificate_show)
+After importing the certificate, you can view the certificate using [Certificate show](/cli/azure/keyvault/certificate#az-keyvault-certificate-show)
```azurecli
key-vault Tutorial Rotate Certificates https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/certificates/tutorial-rotate-certificates.md
Set-AzureKeyVaultCertificatePolicy -VaultName $vaultName
> } > ``` >
-To learn more about the parameters, see [az keyvault certificate](/cli/azure/keyvault/certificate#az_keyvault_certificate_set_attributes).
+To learn more about the parameters, see [az keyvault certificate](/cli/azure/keyvault/certificate#az-keyvault-certificate-set-attributes).
## Clean up resources
key-vault Assign Access Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/general/assign-access-policy.md
A Key Vault access policy determines whether a given security principal, namely
# [Azure CLI](#tab/azure-cli)
-For more information on creating groups in Azure Active Directory using the Azure CLI, see [az ad group create](/cli/azure/ad/group#az_ad_group_create) and [az ad group member add](/cli/azure/ad/group/member#az_ad_group_member_add).
+For more information on creating groups in Azure Active Directory using the Azure CLI, see [az ad group create](/cli/azure/ad/group#az-ad-group-create) and [az ad group member add](/cli/azure/ad/group/member#az-ad-group-member-add).
## Configure the Azure CLI and sign in
For more information on creating groups in Azure Active Directory using the Azur
Determine the object ID of the application, group, or user to which you want to assign the access policy: -- Applications and other service principals: use the [az ad sp list](/cli/azure/ad/sp#az_ad_sp_list) command to retrieve your service principals. Examine the output of the command to determine the object ID of the security principal to which you want to assign the access policy.
+- Applications and other service principals: use the [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list) command to retrieve your service principals. Examine the output of the command to determine the object ID of the security principal to which you want to assign the access policy.
```azurecli-interactive az ad sp list --show-mine ``` -- Groups: use the [az ad group list](/cli/azure/ad/group#az_ad_group_list) command, filtering the results with the `--display-name` parameter:
+- Groups: use the [az ad group list](/cli/azure/ad/group#az-ad-group-list) command, filtering the results with the `--display-name` parameter:
```azurecli-interactive az ad group list --display-name <search-string> ``` -- Users: use the [az ad user show](/cli/azure/ad/user#az_ad_user_show) command, passing the user's email address in the `--id` parameter:
+- Users: use the [az ad user show](/cli/azure/ad/user#az-ad-user-show) command, passing the user's email address in the `--id` parameter:
```azurecli-interactive az ad user show --id <email-address-of-user>
Determine the object ID of the application, group, or user to which you want to
## Assign the access policy
-Use the [az keyvault set-policy](/cli/azure/keyvault#az_keyvault_set_policy) command to assign the desired permissions:
+Use the [az keyvault set-policy](/cli/azure/keyvault#az-keyvault-set-policy) command to assign the desired permissions:
```azurecli-interactive az keyvault set-policy --name myKeyVault --object-id <object-id> --secret-permissions <secret-permissions> --key-permissions <key-permissions> --certificate-permissions <certificate-permissions>
az keyvault set-policy --name myKeyVault --object-id <object-id> --secret-permis
Replace `<object-id>` with the object ID of your security principal.
-You need only include `--secret-permissions`, `--key-permissions`, and `--certificate-permissions` when assigning permissions to those particular types. The allowable values for `<secret-permissions>`, `<key-permissions>`, and `<certificate-permissions>` are given in the [az keyvault set-policy](/cli/azure/keyvault#az_keyvault_set_policy) documentation.
+You need only include `--secret-permissions`, `--key-permissions`, and `--certificate-permissions` when assigning permissions to those particular types. The allowable values for `<secret-permissions>`, `<key-permissions>`, and `<certificate-permissions>` are given in the [az keyvault set-policy](/cli/azure/keyvault#az-keyvault-set-policy) documentation.
# [Azure PowerShell](#tab/azure-powershell)
key-vault Howto Logging https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/general/howto-logging.md
In this article, commands are formatted for [Cloud Shell](https://shell.azure.co
The first step in setting up key logging is connecting to the subscription containing your key vault. This is especially important if you have multiple subscriptions associated with your account.
-With the Azure CLI, you can view all your subscriptions by using the [az account list](/cli/azure/account#az_account_list) command. Then you connect to one by using the [az account set](/cli/azure/account#az_account_set) command:
+With the Azure CLI, you can view all your subscriptions by using the [az account list](/cli/azure/account#az-account-list) command. Then you connect to one by using the [az account set](/cli/azure/account#az-account-set) command:
```azurecli-interactive az account list
For additional ease of management, you'll also use the same resource group as th
You also need to provide a storage account name. Storage account names must be unique, between 3 and 24 characters in length, and use numbers and lowercase letters only. Lastly, you create a storage account of the `Standard_LRS` SKU.
-With the Azure CLI, use the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command.
+With the Azure CLI, use the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command.
```azurecli-interactive az storage account create --name "<your-unique-storage-account-name>" -g "myResourceGroup" --sku "Standard_LRS"
The ID of the storage account is in the following format: "/subscriptions/*your-
## Obtain your key vault resource ID
-In the [CLI quickstart](quick-create-cli.md) and [PowerShell quickstart](quick-create-powershell.md), you created a key with a unique name. Use that name again in the following steps. If you can't remember the name of your key vault, you can use the Azure CLI [az keyvault list](/cli/azure/keyvault#az_keyvault_list) command, or the Azure PowerShell [Get-AzKeyVault](/powershell/module/az.keyvault/get-azkeyvault) cmdlet, to list them.
+In the [CLI quickstart](quick-create-cli.md) and [PowerShell quickstart](quick-create-powershell.md), you created a key with a unique name. Use that name again in the following steps. If you can't remember the name of your key vault, you can use the Azure CLI [az keyvault list](/cli/azure/keyvault#az-keyvault-list) command, or the Azure PowerShell [Get-AzKeyVault](/powershell/module/az.keyvault/get-azkeyvault) cmdlet, to list them.
-Use the name of your key vault to find its resource ID. With the Azure CLI, use the [az keyvault show](/cli/azure/keyvault#az_keyvault_show) command.
+Use the name of your key vault to find its resource ID. With the Azure CLI, use the [az keyvault show](/cli/azure/keyvault#az-keyvault-show) command.
```azurecli-interactive az keyvault show --name "<your-unique-keyvault-name>"
az monitor diagnostic-settings create --storage-account "<storage-account-id>" -
Optionally, you can set a retention policy for your logs, so that older logs are automatically deleted after a specified amount of time. For example, you might set a retention policy that automatically deletes logs older than 90 days.
-With the Azure CLI, use the [az monitor diagnostic-settings update](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_update) command.
+With the Azure CLI, use the [az monitor diagnostic-settings update](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-update) command.
```azurecli-interactive az monitor diagnostic-settings update --name "Key vault retention policy" --resource "<key-vault-resource-id>" --set retentionPolicy.days=90
To configure diagnostic settings in the Azure portal, follow these steps:
Your Key Vault logs are in the *insights-logs-auditevent* container in the storage account that you provided. To view the logs, you have to download blobs.
-First, list all the blobs in the container. With the Azure CLI, use the [az storage blob list](/cli/azure/storage/blob#az_storage_blob_list) command.
+First, list all the blobs in the container. With the Azure CLI, use the [az storage blob list](/cli/azure/storage/blob#az-storage-blob-list) command.
```azurecli-interactive az storage blob list --account-name "<your-unique-storage-account-name>" --container-name "insights-logs-auditevent"
From the output of either the Azure CLI command or the Azure PowerShell cmdlet,
Because you can use the same storage account to collect logs for multiple resources, the full resource ID in the blob name is useful to access or download just the blobs that you need.
-But first, download all the blobs. With the Azure CLI, use the [az storage blob download](/cli/azure/storage/blob#az_storage_blob_download) command, pass it the names of the blobs, and the path to the file where you want to save the results.
+But first, download all the blobs. With the Azure CLI, use the [az storage blob download](/cli/azure/storage/blob#az-storage-blob-download) command, pass it the names of the blobs, and the path to the file where you want to save the results.
```azurecli-interactive az storage blob download --container-name "insights-logs-auditevent" --file <path-to-file> --name "<blob-name>" --account-name "<your-unique-storage-account-name>"
key-vault Integrate Databricks Blob Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/general/integrate-databricks-blob-storage.md
Before you start this tutorial, install the [Azure CLI](/cli/azure/install-azure
## Create a storage account and blob container with Azure CLI
-You'll need to create a general-purpose storage account first to use blobs. If you don't have a [resource group](/cli/azure/group#az_group_create), create one before running the command. The following command creates and display the metadata of the storage container. Copy down the **ID**.
+You'll need to create a general-purpose storage account first to use blobs. If you don't have a [resource group](/cli/azure/group#az-group-create), create one before running the command. The following command creates and display the metadata of the storage container. Copy down the **ID**.
```azurecli az storage account create --name contosoblobstorage5 --resource-group contosoResourceGroup --location eastus --sku Standard_ZRS --encryption-services blob
key-vault Manage With Cli2 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/general/manage-with-cli2.md
az keyvault set-policy --name "ContosoKeyVault" --spn 8f8c4bbd-485b-45fd-98f7-ec
## <a name="bkmk_KVperCLI"></a> Setting key vault advanced access policies
-Use [az keyvault update](/cli/azure/keyvault#az_keyvault_update) to enable advanced policies for the key vault.
+Use [az keyvault update](/cli/azure/keyvault#az-keyvault-update) to enable advanced policies for the key vault.
Enable Key Vault for deployment: Allows virtual machines to retrieve certificates stored as secrets from the vault.
key-vault Rbac Guide https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/general/rbac-guide.md
Create new secret ( Secrets \> +Generate/Import) should show below error:
### Creating custom roles
-[az role definition create command](/cli/azure/role/definition#az_role_definition_create)
+[az role definition create command](/cli/azure/role/definition#az-role-definition-create)
# [Azure CLI](#tab/azure-cli) ```azurecli
key-vault Tutorial Javascript Virtual Machine https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/general/tutorial-javascript-virtual-machine.md
Note the value of `publicIpAddress` in the output.
## Assign an identity to the VM
-Create a system-assigned identity for the virtual machine by using the Azure CLI [az vm identity assign](/cli/azure/vm/identity#az_vm_identity_assign) command:
+Create a system-assigned identity for the virtual machine by using the Azure CLI [az vm identity assign](/cli/azure/vm/identity#az-vm-identity-assign) command:
```azurecli az vm identity assign --name "myVM" --resource-group "myResourceGroup"
key-vault Tutorial Net Create Vault Azure Web App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/general/tutorial-net-create-vault-azure-web-app.md
git commit -m "first commit"
You can use FTP and local Git to deploy an Azure web app by using a *deployment user*. After you configure your deployment user, you can use it for all your Azure deployments. Your account-level deployment user name and password are different from your Azure subscription credentials.
-To configure the deployment user, run the [az webapp deployment user set](/cli/azure/webapp/deployment/user?#az_webapp_deployment_user_set) command. Choose a user name and password that adheres to these guidelines:
+To configure the deployment user, run the [az webapp deployment user set](/cli/azure/webapp/deployment/user?#az-webapp-deployment-user-set) command. Choose a user name and password that adheres to these guidelines:
- The user name must be unique within Azure. For local Git pushes, it can't contain the at sign symbol (@). - The password must be at least eight characters long and contain two of the following three elements: letters, numbers, and symbols.
Record your user name and password so you can use it to deploy your web apps.
### Create a resource group
-A resource group is a logical container into which you deploy Azure resources and manage them. Create a resource group to contain both your key vault and your web app by using the [az group create](/cli/azure/group?#az_group_create) command:
+A resource group is a logical container into which you deploy Azure resources and manage them. Create a resource group to contain both your key vault and your web app by using the [az group create](/cli/azure/group?#az-group-create) command:
```azurecli-interactive az group create --name "myResourceGroup" -l "EastUS"
In this section, you'll configure web access to Key Vault and update your applic
In this tutorial, we'll use [managed identity](../../active-directory/managed-identities-azure-resources/overview.md) to authenticate to Key Vault. Managed identity automatically manages application credentials.
-In the Azure CLI, to create the identity for the application, run the [az webapp-identity assign](/cli/azure/webapp/identity?#az_webapp_identity_assign) command:
+In the Azure CLI, to create the identity for the application, run the [az webapp-identity assign](/cli/azure/webapp/identity?#az-webapp-identity-assign) command:
```azurecli-interactive az webapp identity assign --name "<your-webapp-name>" --resource-group "myResourceGroup"
The command will return this JSON snippet:
} ```
-To give your web app permission to do **get** and **list** operations on your key vault, pass the `principalId` to the Azure CLI [az keyvault set-policy](/cli/azure/keyvault?#az_keyvault_set_policy) command:
+To give your web app permission to do **get** and **list** operations on your key vault, pass the `principalId` to the Azure CLI [az keyvault set-policy](/cli/azure/keyvault?#az-keyvault-set-policy) command:
```azurecli-interactive az keyvault set-policy --name "<your-keyvault-name>" --object-id "<principalId>" --secret-permissions get list
key-vault Tutorial Net Virtual Machine https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/general/tutorial-net-virtual-machine.md
xxxxxxxx-xx-xxxxxx xxxxxxxx-xxxx-xxxx SystemAssigned
## Assign permissions to the VM identity
-Assign the previously created identity permissions to your key vault with the [az keyvault set-policy](/cli/azure/keyvault#az_keyvault_set_policy) command:
+Assign the previously created identity permissions to your key vault with the [az keyvault set-policy](/cli/azure/keyvault#az-keyvault-set-policy) command:
# [Azure CLI](#tab/azure-cli) ```azurecli
key-vault Tutorial Python Virtual Machine https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/general/tutorial-python-virtual-machine.md
Note the value of `publicIpAddress` in the output.
## Assign an identity to the VM
-Create a system-assigned identity for the virtual machine by using the Azure CLI [az vm identity assign](/cli/azure/vm/identity#az_vm_identity_assign) command:
+Create a system-assigned identity for the virtual machine by using the Azure CLI [az vm identity assign](/cli/azure/vm/identity#az-vm-identity-assign) command:
```azurecli az vm identity assign --name "myVM" --resource-group "myResourceGroup"
key-vault Vault Create Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/general/vault-create-template.md
You can find more Key Vault templates here: [Key Vault Resource Manager referenc
You can use the Azure portal to deploy the preceding templates by using the **Build your own template in editor** option as described here: [Deploy resources from a custom template](../../azure-resource-manager/templates/deploy-portal.md#deploy-resources-from-custom-template).
-You can also save the preceding templates to files and use these commands: [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create):
+You can also save the preceding templates to files and use these commands: [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create):
```azurepowershell New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateFile key-vault-template.json
key-vault Hsm Protected Keys Byok https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/keys/hsm-protected-keys-byok.md
The KEK must be:
> [!NOTE] > The KEK must have 'import' as the only allowed key operation. 'import' is mutually exclusive with all other key operations.
-Use the [az keyvault key create](/cli/azure/keyvault/key#az_keyvault_key_create) command to create a KEK that has key operations set to `import`. Record the key identifier (`kid`) that's returned from the following command. (You will use the `kid` value in [Step 3](#step-3-generate-and-prepare-your-key-for-transfer).)
+Use the [az keyvault key create](/cli/azure/keyvault/key#az-keyvault-key-create) command to create a KEK that has key operations set to `import`. Record the key identifier (`kid`) that's returned from the following command. (You will use the `kid` value in [Step 3](#step-3-generate-and-prepare-your-key-for-transfer).)
```azurecli az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --vault-name ContosoKeyVaultHSM
az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import
### Step 2: Download the KEK public key
-Use [az keyvault key download](/cli/azure/keyvault/key#az_keyvault_key_download) to download the KEK public key to a .pem file. The target key you import is encrypted by using the KEK public key.
+Use [az keyvault key download](/cli/azure/keyvault/key#az-keyvault-key-download) to download the KEK public key to a .pem file. The target key you import is encrypted by using the KEK public key.
```azurecli az keyvault key download --name KEKforBYOK --vault-name ContosoKeyVaultHSM --file KEKforBYOK.publickey.pem
Transfer the BYOK file to your connected computer.
### Step 4: Transfer your key to Azure Key Vault
-To complete the key import, transfer the key transfer package (a BYOK file) from your disconnected computer to the internet-connected computer. Use the [az keyvault key import](/cli/azure/keyvault/key#az_keyvault_key_import) command to upload the BYOK file to the Key Vault HSM.
+To complete the key import, transfer the key transfer package (a BYOK file) from your disconnected computer to the internet-connected computer. Use the [az keyvault key import](/cli/azure/keyvault/key#az-keyvault-key-import) command to upload the BYOK file to the Key Vault HSM.
To import an RSA key use following command. Parameter --kty is optional and defaults to 'RSA-HSM'. ```azurecli
key-vault Quick Create Java https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/keys/quick-create-java.md
Now that your application is authenticated, you can create a key in your key vau
keyClient.createKey(keyName, KeyType.RSA); ```
-You can verify that the key has been set with the [az keyvault key show](/cli/azure/keyvault/key?#az_keyvault_key_show) command:
+You can verify that the key has been set with the [az keyvault key show](/cli/azure/keyvault/key?#az-keyvault-key-show) command:
```azurecli az keyvault key show --vault-name <your-unique-key-vault-name> --name myKey
SyncPoller<DeletedKey, Void> deletionPoller = keyClient.beginDeleteKey(keyName);
deletionPoller.waitForCompletion(); ```
-You can verify that the key has been deleted with the [az keyvault key show](/cli/azure/keyvault/key?#az_keyvault_key_show) command:
+You can verify that the key has been deleted with the [az keyvault key show](/cli/azure/keyvault/key?#az-keyvault-key-show) command:
```azurecli az keyvault key show --vault-name <your-unique-key-vault-name> --name myKey
key-vault Quick Create Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/keys/quick-create-python.md
To read a key from Key Vault, use the [get_key](/python/api/azure-keyvault-keys/
retrieved_key = client.get_key(keyName) ```
-You can also verify that the key has been set with the Azure CLI command [az keyvault key show](/cli/azure/keyvault/key?#az_keyvault_key_show).
+You can also verify that the key has been set with the Azure CLI command [az keyvault key show](/cli/azure/keyvault/key?#az-keyvault-key-show).
### Delete a key
deleted_key = poller.result()
The `begin_delete_key` method is asynchronous and returns a poller object. Calling the poller's `result` method waits for its completion.
-You can verify that the key is deleted with the Azure CLI command [az keyvault key show](/cli/azure/keyvault/key?#az_keyvault_key_show).
+You can verify that the key is deleted with the Azure CLI command [az keyvault key show](/cli/azure/keyvault/key?#az-keyvault-key-show).
Once deleted, a key remains in a deleted but recoverable state for a time. If you run the code again, use a different key name.
key-vault Hsm Protected Keys Byok https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/managed-hsm/hsm-protected-keys-byok.md
The KEK must be:
> [!NOTE] > The KEK must have 'import' as the only allowed key operation. 'import' is mutually exclusive with all other key operations.
-Use the [az keyvault key create](/cli/azure/keyvault/key#az_keyvault_key_create) command to create a KEK that has key operations set to `import`. Record the key identifier (`kid`) that's returned from the following command. (You will use the `kid` value in [Step 3](#step-3-generate-and-prepare-your-key-for-transfer).)
+Use the [az keyvault key create](/cli/azure/keyvault/key#az-keyvault-key-create) command to create a KEK that has key operations set to `import`. Record the key identifier (`kid`) that's returned from the following command. (You will use the `kid` value in [Step 3](#step-3-generate-and-prepare-your-key-for-transfer).)
```azurecli-interactive az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --hsm-name ContosoKeyVaultHSM
az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import
### Step 2: Download the KEK public key
-Use [az keyvault key download](/cli/azure/keyvault/key#az_keyvault_key_download) to download the KEK public key to a .pem file. The target key you import is encrypted by using the KEK public key.
+Use [az keyvault key download](/cli/azure/keyvault/key#az-keyvault-key-download) to download the KEK public key to a .pem file. The target key you import is encrypted by using the KEK public key.
```azurecli-interactive az keyvault key download --name KEKforBYOK --hsm-name ContosoKeyVaultHSM --file KEKforBYOK.publickey.pem
Transfer the BYOK file to your connected computer.
### Step 4: Transfer your key to Managed HSM
-To complete the key import, transfer the key transfer package (a BYOK file) from your disconnected computer to the internet-connected computer. Use the [az keyvault key import](/cli/azure/keyvault/key#az_keyvault_key_import) command to upload the BYOK file to the Managed HSM.
+To complete the key import, transfer the key transfer package (a BYOK file) from your disconnected computer to the internet-connected computer. Use the [az keyvault key import](/cli/azure/keyvault/key#az-keyvault-key-import) command to upload the BYOK file to the Managed HSM.
```azurecli-interactive az keyvault key import --hsm-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok
key-vault Quick Create Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/managed-hsm/quick-create-template.md
The Azure resource defined in the template:
More Azure Key Vault template samples can be found [here](https://azure.microsoft.com/resources/templates/?resourceType=Microsoft.Keyvault).
-The template requires the object ID associated with your account. To find it, use the Azure CLI [az ad user show](/cli/azure/ad/user#az_ad_user_show) command, passing your email address to the `--id` parameter. You can limit the output to the object ID only with the `--query` parameter.
+The template requires the object ID associated with your account. To find it, use the Azure CLI [az ad user show](/cli/azure/ad/user#az-ad-user-show) command, passing your email address to the `--id` parameter. You can limit the output to the object ID only with the `--query` parameter.
```azurecli-interactive az ad user show --id <your-email-address> --query "objectId" ```
-You may also need your tenant ID. To find it, use the Azure CLI [az ad user show](/cli/azure/account#az_account_show) command. You can limit the output to the tenant ID only with the `--query` parameter.
+You may also need your tenant ID. To find it, use the Azure CLI [az ad user show](/cli/azure/account#az-account-show) command. You can limit the output to the tenant ID only with the `--query` parameter.
```azurecli-interactive az account show --query "tenantId"
key-vault Multiline Secrets https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/secrets/multiline-secrets.md
The [Azure CLI quickstart](quick-create-cli.md) and [Azure PowerShell quickstart](quick-create-powershell.md) demonstrate how to store a single-line secret. You can also use Key Vault to store a multi-line secret, such as a JSON file or RSA private key.
-Multi-line secrets cannot be passed to the Azure CLI [az keyvault secret set](/cli/azure/keyvault/secret#az_keyvault_secret_set) command or the Azure PowerShell [Set-AzKeyVaultSecret](/powershell/module/az.keyvault/set-azkeyvaultsecret) cmdlet through the commandline. Instead, you must first store the multi-line secret as a text file.
+Multi-line secrets cannot be passed to the Azure CLI [az keyvault secret set](/cli/azure/keyvault/secret#az-keyvault-secret-set) command or the Azure PowerShell [Set-AzKeyVaultSecret](/powershell/module/az.keyvault/set-azkeyvaultsecret) cmdlet through the commandline. Instead, you must first store the multi-line secret as a text file.
For example, you could create a text file called "secretfile.txt" containing the following lines:
multi-line
secret ```
-You can then pass this file to the Azure CLI [az keyvault secret set](/cli/azure/keyvault/secret#az_keyvault_secret_set) command using the `--file` parameter.
+You can then pass this file to the Azure CLI [az keyvault secret set](/cli/azure/keyvault/secret#az-keyvault-secret-set) command using the `--file` parameter.
```azurecli-interactive az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "MultilineSecret" --file "secretfile.txt"
Lastly, you store the secret using the [Set-AzKeyVaultSecret](/powershell/module
$secret = Set-AzKeyVaultSecret -VaultName "<your-unique-keyvault-name>" -Name "MultilineSecret" -SecretValue $SecureSecret ```
-In either case, you can then view the stored secret using the Azure CLI [az keyvault secret show](/cli/azure/keyvault/secret#az_keyvault_secret_show) command or the Azure PowerShell [Get-AzKeyVaultSecret](/powershell/module/az.keyvault/get-azkeyvaultsecret) cmdlet.
+In either case, you can then view the stored secret using the Azure CLI [az keyvault secret show](/cli/azure/keyvault/secret#az-keyvault-secret-show) command or the Azure PowerShell [Get-AzKeyVaultSecret](/powershell/module/az.keyvault/get-azkeyvaultsecret) cmdlet.
```azurecli-interactive az keyvault secret show --name "MultilineSecret" --vault-name "<your-unique-keyvault-name>" --query "value"
key-vault Overview Storage Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/secrets/overview-storage-keys.md
Use the Azure CLI [az role assignment create](/cli/azure/role/assignment) comman
- `--role`: Pass the "Storage Account Key Operator Service Role" Azure role. This role limits the access scope to your storage account. For a classic storage account, pass "Classic Storage Account Key Operator Service Role" instead. - `--assignee`: Pass the value "https://vault.azure.net", which is the url for Key Vault in the Azure public cloud. (For Azure Goverment cloud use '--assignee-object-id' instead, see [Service principal application ID](#service-principal-application-id).)-- `--scope`: Pass your storage account resource ID, which is in the form `/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>`. To find your subscription ID, use the Azure CLI [az account list](/cli/azure/account?#az_account_list) command; to find your storage account name and storage account resource group, use the Azure CLI [az storage account list](/cli/azure/storage/account?#az_storage_account_list) command.
+- `--scope`: Pass your storage account resource ID, which is in the form `/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>`. To find your subscription ID, use the Azure CLI [az account list](/cli/azure/account?#az-account-list) command; to find your storage account name and storage account resource group, use the Azure CLI [az storage account list](/cli/azure/storage/account?#az-storage-account-list) command.
```azurecli-interactive az role assignment create --role "Storage Account Key Operator Service Role" --assignee "https://vault.azure.net" --scope "/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>" ``` ### Give your user account permission to managed storage accounts
-Use the Azure CLI [az keyvault-set-policy](/cli/azure/keyvault?#az_keyvault_set_policy) cmdlet to update the Key Vault access policy and grant storage account permissions to your user account.
+Use the Azure CLI [az keyvault-set-policy](/cli/azure/keyvault?#az-keyvault-set-policy) cmdlet to update the Key Vault access policy and grant storage account permissions to your user account.
```azurecli-interactive # Give your user principal access to all storage account permissions, on your Key Vault instance
az keyvault set-policy --name <YourKeyVaultName> --upn user@domain.com --storage
Note that permissions for storage accounts aren't available on the storage account "Access policies" page in the Azure portal. ### Create a Key Vault Managed storage account
- Create a Key Vault managed storage account using the Azure CLI [az keyvault storage](/cli/azure/keyvault/storage?#az_keyvault_storage_add) command. Set a regeneration period of 90 days. When it is time to rotate, KeyVault regenerates the key that is not active, and then sets the newly created key as active. Only one of the keys are used to issue SAS tokens at any one time, this is the active key. Provide the command the following parameter values:
+ Create a Key Vault managed storage account using the Azure CLI [az keyvault storage](/cli/azure/keyvault/storage?#az-keyvault-storage-add) command. Set a regeneration period of 90 days. When it is time to rotate, KeyVault regenerates the key that is not active, and then sets the newly created key as active. Only one of the keys are used to issue SAS tokens at any one time, this is the active key. Provide the command the following parameter values:
-- `--vault-name`: Pass the name of your key vault. To find the name of your key vault, use the Azure CLI [az keyvault list](/cli/azure/keyvault?#az_keyvault_list) command.-- `-n`: Pass the name of your storage account. To find the name of your storage account, use the Azure CLI [az storage account list](/cli/azure/storage/account?#az_storage_account_list) command.-- `--resource-id`: Pass your storage account resource ID, which is in the form `/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>`. To find your subscription ID, use the Azure CLI [az account list](/cli/azure/account?#az_account_list) command; to find your storage account name and storage account resource group, use the Azure CLI [az storage account list](/cli/azure/storage/account?#az_storage_account_list) command.
+- `--vault-name`: Pass the name of your key vault. To find the name of your key vault, use the Azure CLI [az keyvault list](/cli/azure/keyvault?#az-keyvault-list) command.
+- `-n`: Pass the name of your storage account. To find the name of your storage account, use the Azure CLI [az storage account list](/cli/azure/storage/account?#az-storage-account-list) command.
+- `--resource-id`: Pass your storage account resource ID, which is in the form `/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>`. To find your subscription ID, use the Azure CLI [az account list](/cli/azure/account?#az-account-list) command; to find your storage account name and storage account resource group, use the Azure CLI [az storage account list](/cli/azure/storage/account?#az-storage-account-list) command.
```azurecli-interactive az keyvault storage add --vault-name <YourKeyVaultName> -n <YourStorageAccountName> --active-key-name key1 --auto-regenerate-key --regeneration-period P90D --resource-id "/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>"
The commands in this section complete the following actions:
### Create a shared access signature token
-Create a shared access signature definition using the Azure CLI [az storage account generate-sas](/cli/azure/storage/account?#az_storage_account_generate_sas) command. This operation requires the `storage` and `setsas` permissions.
+Create a shared access signature definition using the Azure CLI [az storage account generate-sas](/cli/azure/storage/account?#az-storage-account-generate-sas) command. This operation requires the `storage` and `setsas` permissions.
```azurecli-interactive
This output will be the passed to the `--template-uri` parameter in the next ste
### Generate a shared access signature definition
-Use the the Azure CLI [az keyvault storage sas-definition create](/cli/azure/keyvault/storage/sas-definition?#az_keyvault_storage_sas_definition_create) command, passing the output from the previous step to the `--template-uri` parameter, to create a shared access signature definition. You can provide the name of your choice to the `-n` parameter.
+Use the the Azure CLI [az keyvault storage sas-definition create](/cli/azure/keyvault/storage/sas-definition?#az-keyvault-storage-sas-definition-create) command, passing the output from the previous step to the `--template-uri` parameter, to create a shared access signature definition. You can provide the name of your choice to the `-n` parameter.
```azurecli-interactive az keyvault storage sas-definition create --vault-name <YourKeyVaultName> --account-name <YourStorageAccountName> -n <YourSASDefinitionName> --validity-period P2D --sas-type account --template-uri <OutputOfSasTokenCreationStep>
az keyvault storage sas-definition create --vault-name <YourKeyVaultName> --acco
### Verify the shared access signature definition
-You can verify that the shared access signature definition has been stored in your key vault using the Azure CLI [az keyvault storage sas-definition show](/cli/azure/keyvault/storage/sas-definition?#az_keyvault_storage_sas_definition_show) command.
+You can verify that the shared access signature definition has been stored in your key vault using the Azure CLI [az keyvault storage sas-definition show](/cli/azure/keyvault/storage/sas-definition?#az-keyvault-storage-sas-definition-show) command.
-You can now use the [az keyvault storage sas-definition show](/cli/azure/keyvault/storage/sas-definition?#az_keyvault_storage_sas_definition_show) command and the `id` property to view the content of that secret.
+You can now use the [az keyvault storage sas-definition show](/cli/azure/keyvault/storage/sas-definition?#az-keyvault-storage-sas-definition-show) command and the `id` property to view the content of that secret.
```azurecli-interactive az keyvault storage sas-definition show --id https://<YourKeyVaultName>.vault.azure.net/storage/<YourStorageAccountName>/sas/<YourSASDefinitionName>
key-vault Quick Create Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/secrets/quick-create-cli.md
This quickstart requires version 2.0.4 or later of the Azure CLI. If using Azure
To add a secret to the vault, you just need to take a couple of additional steps. This password could be used by an application. The password will be called **ExamplePassword** and will store the value of **hVFkk965BuUv** in it.
-Use the Azure CLI [az keyvault secret set](/cli/azure/keyvault/secret#az_keyvault_secret_set) command below to create a secret in Key Vault called **ExamplePassword** that will store the value **hVFkk965BuUv** :
+Use the Azure CLI [az keyvault secret set](/cli/azure/keyvault/secret#az-keyvault-secret-set) command below to create a secret in Key Vault called **ExamplePassword** that will store the value **hVFkk965BuUv** :
```azurecli az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "ExamplePassword" --value "hVFkk965BuUv"
az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "Exampl
You can now reference this password that you added to Azure Key Vault by using its URI. Use **`https://<your-unique-keyvault-name>.vault.azure.net/secrets/ExamplePassword`** to get the current version.
-To view the value contained in the secret as plain text, use the Azure CLI [az keyvault secret show](/cli/azure/keyvault/secret#az_keyvault_secret_show) command:
+To view the value contained in the secret as plain text, use the Azure CLI [az keyvault secret show](/cli/azure/keyvault/secret#az-keyvault-secret-show) command:
```azurecli az keyvault secret show --name "ExamplePassword" --vault-name "<your-unique-keyvault-name>" --query "value"
key-vault Quick Create Java https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/secrets/quick-create-java.md
Now that your application is authenticated, you can put a secret into your key v
secretClient.setSecret(new KeyVaultSecret(secretName, secretValue)); ```
-You can verify that the secret has been set with the [az keyvault secret show](/cli/azure/keyvault/secret?#az_keyvault_secret_show) command:
+You can verify that the secret has been set with the [az keyvault secret show](/cli/azure/keyvault/secret?#az-keyvault-secret-show) command:
```azurecli az keyvault secret show --vault-name <your-unique-key-vault-name> --name mySecret
SyncPoller<DeletedSecret, Void> deletionPoller = secretClient.beginDeleteSecret(
deletionPoller.waitForCompletion(); ```
-You can verify that the secret has been deleted with the [az keyvault secret show](/cli/azure/keyvault/secret?#az_keyvault_secret_show) command:
+You can verify that the secret has been deleted with the [az keyvault secret show](/cli/azure/keyvault/secret?#az-keyvault-secret-show) command:
```azurecli az keyvault secret show --vault-name <your-unique-key-vault-name> --name mySecret
key-vault Quick Create Node https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/secrets/quick-create-node.md
Create a Node.js application that uses your key vault.
## Grant access to your key vault
-Create an access policy for your key vault that grants secret permissions to your user account with the [az keyvault set-policy](/cli/azure/keyvault#az_keyvault_set_policy) command.
+Create an access policy for your key vault that grants secret permissions to your user account with the [az keyvault set-policy](/cli/azure/keyvault#az-keyvault-set-policy) command.
```azurecli az keyvault set-policy --name <your-key-vault-name> --upn user@domain.com --secret-permissions delete get list set purge
key-vault Quick Create Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/secrets/quick-create-python.md
retrieved_secret = client.get_secret(secretName)
The secret value is contained in `retrieved_secret.value`.
-You can also retrieve a secret with the the Azure CLI command [az keyvault secret show](/cli/azure/keyvault/secret?#az_keyvault_secret_show).
+You can also retrieve a secret with the the Azure CLI command [az keyvault secret show](/cli/azure/keyvault/secret?#az-keyvault-secret-show).
### Delete a secret
deleted_secret = poller.result()
The `begin_delete_secret` method is asynchronous and returns a poller object. Calling the poller's `result` method waits for its completion.
-You can verify that the secret had been removed with the Azure CLI command [az keyvault secret show](/cli/azure/keyvault/secret?#az_keyvault_secret_show).
+You can verify that the secret had been removed with the Azure CLI command [az keyvault secret show](/cli/azure/keyvault/secret?#az-keyvault-secret-show).
Once deleted, a secret remains in a deleted but recoverable state for a time. If you run the code again, use a different secret name.
key-vault Secrets Best Practices https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/secrets/secrets-best-practices.md
For more information, see:
Turn on [purge protection](../general/soft-delete-overview.md#purge-protection) to guard against forced deletion of the secret. Take regular backups of your vault when you update, delete, or create secrets within a vault. - To read about the Azure PowerShell backup command, see [Backup secret](/powershell/module/azurerm.keyvault/Backup-AzureKeyVaultSecret).-- To read about the Azure CLI backup command, see [Backup secret](/cli/azure/keyvault/secret#az_keyvault_secret_backup).
+- To read about the Azure CLI backup command, see [Backup secret](/cli/azure/keyvault/secret#az-keyvault-secret-backup).
## Learn more - [About Azure Key Vault secrets](about-secrets.md)
key-vault Tutorial Rotation Dual https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/secrets/tutorial-rotation-dual.md
Notice that `value` of the key is same as secret in key vault:
## Disable rotation for secret
-You can disable rotation of a secret simply by deleting event grid subscription for that secret. Use the Azure PowerShell [Remove-AzEventGridSubscription](/powershell/module/az.eventgrid/remove-azeventgridsubscription) cmdlet or Azure CLI [az event grid event--subscription delete](/cli/azure/eventgrid/event-subscription?#az_eventgrid_event_subscription_delete) command.
+You can disable rotation of a secret simply by deleting event grid subscription for that secret. Use the Azure PowerShell [Remove-AzEventGridSubscription](/powershell/module/az.eventgrid/remove-azeventgridsubscription) cmdlet or Azure CLI [az event grid event--subscription delete](/cli/azure/eventgrid/event-subscription?#az-eventgrid-event-subscription-delete) command.
## Key Vault rotation functions for two sets of credentials
load-balancer Quickstart Basic Internal Load Balancer Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/basic/quickstart-basic-internal-load-balancer-cli.md
+
+ Title: 'Quickstart: Create an internal basic load balancer - Azure CLI'
+
+description: This quickstart shows how to create an internal basic load balancer by using the Azure CLI.
+++ Last updated : 03/24/2022++
+#Customer intent: I want to create a load balancer so that I can load balance internal traffic to VMs.
+
+# Quickstart: Create an internal basic load balancer to load balance VMs by using the Azure CLI
+
+Get started with Azure Load Balancer by using the Azure CLI to create an internal load balancer and two virtual machines.
+++
+This quickstart requires version 2.0.28 or later of the Azure CLI. If you're using Azure Cloud Shell, the latest version is already installed.
+
+## Create a resource group
+
+An Azure resource group is a logical container into which you deploy and manage your Azure resources.
+
+Create a resource group with [az group create](/cli/azure/group#az_group_create).
+
+```azurecli
+ az group create \
+ --name CreateIntLBQS-rg \
+ --location westus3
+
+```
+
+When you create an internal load balancer, a virtual network is configured as the network for the load balancer.
+
+## Create the virtual network
+
+Before you deploy VMs and test your load balancer, create the supporting virtual network and subnet. The virtual network and subnet will contain the resources deployed later in this article.
+
+Create a virtual network by using [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create).
+
+```azurecli
+ az network vnet create \
+ --resource-group CreateIntLBQS-rg \
+ --location westus3 \
+ --name myVNet \
+ --address-prefixes 10.1.0.0/16 \
+ --subnet-name myBackendSubnet \
+ --subnet-prefixes 10.1.0.0/24
+```
+
+## Create an Azure Bastion host
+
+In this example, you'll create an Azure Bastion host. The Azure Bastion host is used later in this article to securely manage the virtual machines and test the load balancer deployment.
++
+### Create a bastion public IP address
+
+Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a public IP address for the Azure Bastion host.
+
+```azurecli
+az network public-ip create \
+ --resource-group CreateIntLBQS-rg \
+ --name myBastionIP \
+ --sku Standard \
+ --zone 1 2 3
+```
+### Create a bastion subnet
+
+Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) to create a subnet.
+
+```azurecli
+az network vnet subnet create \
+ --resource-group CreateIntLBQS-rg \
+ --name AzureBastionSubnet \
+ --vnet-name myVNet \
+ --address-prefixes 10.1.1.0/27
+```
+
+### Create the bastion host
+
+Use [az network bastion create](/cli/azure/network/bastion#az_network_bastion_create) to create a host.
+
+```azurecli
+az network bastion create \
+ --resource-group CreateIntLBQS-rg \
+ --name myBastionHost \
+ --public-ip-address myBastionIP \
+ --vnet-name myVNet \
+ --location westus3
+```
+
+It can take a few minutes for the Azure Bastion host to deploy.
+
+## Create the load balancer
+
+This section details how you can create and configure the following components of the load balancer:
+
+* A frontend IP pool that receives the incoming network traffic on the load balancer
+
+* A backend IP pool where the frontend pool sends the load balanced network traffic
+
+* A health probe that determines health of the backend VM instances
+
+* A load balancer rule that defines how traffic is distributed to the VMs
+
+### Create the load balancer resource
+
+Create an internal load balancer with [az network lb create](/cli/azure/network/lb#az_network_lb_create).
+
+```azurecli
+ az network lb create \
+ --resource-group CreateIntLBQS-rg \
+ --name myLoadBalancer \
+ --sku Basic \
+ --vnet-name myVNet \
+ --subnet myBackendSubnet \
+ --frontend-ip-name myFrontEnd \
+ --backend-pool-name myBackEndPool
+```
+
+### Create the health probe
+
+A health probe checks all virtual machine instances to ensure they can send network traffic.
+
+A virtual machine with a failed probe check is removed from the load balancer. The virtual machine is added back into the load balancer when the failure is resolved.
+
+Create a health probe with [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create).
+
+```azurecli
+ az network lb probe create \
+ --resource-group CreateIntLBQS-rg \
+ --lb-name myLoadBalancer \
+ --name myHealthProbe \
+ --protocol tcp \
+ --port 80
+```
+
+### Create a load balancer rule
+
+A load balancer rule defines:
+
+* Frontend IP configuration for the incoming traffic
+
+* The backend IP pool to receive the traffic
+
+* The required source and destination port
+
+Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create).
+
+```azurecli
+ az network lb rule create \
+ --resource-group CreateIntLBQS-rg \
+ --lb-name myLoadBalancer \
+ --name myHTTPRule \
+ --protocol tcp \
+ --frontend-port 80 \
+ --backend-port 80 \
+ --frontend-ip-name myFrontEnd \
+ --backend-pool-name myBackEndPool \
+ --probe-name myHealthProbe \
+ --idle-timeout 15
+```
+
+## Create a network security group
+
+For a standard load balancer, the VMs in the backend pool are required to have network interfaces that belong to a network security group.
+
+To create a network security group, use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create).
+
+```azurecli
+ az network nsg create \
+ --resource-group CreateIntLBQS-rg \
+ --name myNSG
+```
+
+## Create a network security group rule
+
+To create a network security group rule, use [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create).
+
+```azurecli
+ az network nsg rule create \
+ --resource-group CreateIntLBQS-rg \
+ --nsg-name myNSG \
+ --name myNSGRuleHTTP \
+ --protocol '*' \
+ --direction inbound \
+ --source-address-prefix '*' \
+ --source-port-range '*' \
+ --destination-address-prefix '*' \
+ --destination-port-range 80 \
+ --access allow \
+ --priority 200
+```
+
+## Create back-end servers
+
+In this section, you create:
+
+* Two network interfaces for the virtual machines
+
+* Two virtual machines to be used as servers for the load balancer
+
+### Create network interfaces for the virtual machines
+
+Create two network interfaces with [az network nic create](/cli/azure/network/nic#az_network_nic_create).
+
+```azurecli
+ array=(myNicVM1 myNicVM2)
+ for vmnic in "${array[@]}"
+ do
+ az network nic create \
+ --resource-group CreateIntLBQS-rg \
+ --name $vmnic \
+ --vnet-name myVNet \
+ --subnet myBackEndSubnet \
+ --network-security-group myNSG
+ done
+```
+
+### Create the availability set for the virtual machines
+
+Create the availability set with [az vm availability-set create](/cli/azure/vm/availability-set#az_vm_availability_set_create).
+
+```azurecli
+ az vm availability-set create \
+ --name myAvailabilitySet \
+ --resource-group CreateIntLBQS-rg \
+ --location westus3
+```
+
+### Create the virtual machines
+
+Create the virtual machines with [az vm create](/cli/azure/vm#az_vm_create).
+
+```azurecli
+ array=(1 2)
+ for n in "${array[@]}"
+ do
+ az vm create \
+ --resource-group CreateIntLBQS-rg \
+ --name myVM$n \
+ --nics myNicVM$n \
+ --image win2019datacenter \
+ --admin-username azureuser \
+ --availability-set myAvailabilitySet \
+ --no-wait
+ done
+```
+
+It can take a few minutes for the VMs to deploy.
++
+## Add virtual machines to the backend pool
+
+Add the virtual machines to the backend pool with [az network nic ip-config address-pool add](/cli/azure/network/nic/ip-config/address-pool#az_network_nic_ip_config_address_pool_add).
+
+```azurecli
+ array=(VM1 VM2)
+ for vm in "${array[@]}"
+ do
+ az network nic ip-config address-pool add \
+ --address-pool myBackendPool \
+ --ip-config-name ipconfig1 \
+ --nic-name myNic$vm \
+ --resource-group CreateIntLBQS-rg \
+ --lb-name myLoadBalancer
+ done
+
+```
+
+## Create test virtual machine
+
+Create the network interface with [az network nic create](/cli/azure/network/nic#az_network_nic_create).
+
+```azurecli
+ az network nic create \
+ --resource-group CreateIntLBQS-rg \
+ --name myNicTestVM \
+ --vnet-name myVNet \
+ --subnet myBackEndSubnet \
+ --network-security-group myNSG
+```
+Create the virtual machine with [az vm create](/cli/azure/vm#az_vm_create).
+
+```azurecli
+ az vm create \
+ --resource-group CreateIntLBQS-rg \
+ --name myTestVM \
+ --nics myNicTestVM \
+ --image Win2019Datacenter \
+ --admin-username azureuser \
+ --no-wait
+```
+You might need to wait a few minutes for the virtual machine to deploy.
+
+## Install IIS
+
+Use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) to install IIS on the backend virtual machines and set the default website to the computer name.
+
+```azurecli
+ array=(myVM1 myVM2)
+ for vm in "${array[@]}"
+ do
+ az vm extension set \
+ --publisher Microsoft.Compute \
+ --version 1.8 \
+ --name CustomScriptExtension \
+ --vm-name $vm \
+ --resource-group CreateIntLBQS-rg \
+ --settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
+ done
+
+```
+
+## Test the load balancer
+
+1. [Sign in](https://portal.azure.com) to the Azure portal.
+
+2. On the **Overview** page, find the private IP address for the load balancer. In the menu on the left, select **All services** > **All resources** > **myLoadBalancer**.
+
+3. In the overview of **myLoadBalancer**, copy the address next to **Private IP Address**. If **Private IP address** isn't visible, select **See more**.
+
+4. In the menu on the left, select **All services** > **All resources**. From the resources list, in the **CreateIntLBQS-rg** resource group, select **myTestVM**.
+
+5. On the **Overview** page, select **Connect** > **Bastion**.
+
+6. Enter the username and password that you entered when you created the VM.
+
+7. On **myTestVM**, open **Internet Explorer**.
+
+8. Enter the IP address from the previous step into the address bar of the browser. The default page of the IIS web server is shown in the browser.
+
+## Clean up resources
+
+When your resources are no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, load balancer, and all related resources.
+
+```azurecli
+ az group delete \
+ --name CreateIntLBQS-rg
+```
+
+## Next steps
+
+In this quickstart:
+
+* You created an internal basic load balancer
+
+* Attached two virtual machines
+
+* Configured the load balancer traffic rule and health probe
+
+* Tested the load balancer
+
+To learn more about Azure Load Balancer, continue to:
+> [!div class="nextstepaction"]
+> [What is Azure Load Balancer?](../load-balancer-overview.md)
load-balancer Quickstart Basic Public Load Balancer Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/basic/quickstart-basic-public-load-balancer-cli.md
Get started with Azure Load Balancer by using the Azure portal to create a basic
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create):
+Create a resource group with [az group create](/cli/azure/group#az-group-create):
```azurecli az group create \
Create a resource group with [az group create](/cli/azure/group#az_group_create)
Before you deploy VMs and test your load balancer, create the supporting virtual network and subnet.
-Create a virtual network using [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create). The virtual network and subnet will contain the resources deployed later in this article.
+Create a virtual network using [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create). The virtual network and subnet will contain the resources deployed later in this article.
```azurecli az network vnet create \
Create a virtual network using [az network vnet create](/cli/azure/network/vnet#
To access your web app on the Internet, you need a public IP address for the load balancer.
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create the public IP for the load balancer frontend.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create the public IP for the load balancer frontend.
```azurecli az network public-ip create \
This section details how you can create and configure the following components o
### Create the load balancer resource
-Create a public load balancer with [az network lb create](/cli/azure/network/lb#az_network_lb_create):
+Create a public load balancer with [az network lb create](/cli/azure/network/lb#az-network-lb-create):
```azurecli az network lb create \
A health probe checks all virtual machine instances to ensure they can send netw
A virtual machine with a failed probe check is removed from the load balancer. The virtual machine is added back into the load balancer when the failure is resolved.
-Create a health probe with [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create):
+Create a health probe with [az network lb probe create](/cli/azure/network/lb/probe#az-network-lb-probe-create):
```azurecli az network lb probe create \
A load balancer rule defines:
* The required source and destination port
-Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create):
+Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create):
```azurecli az network lb rule create \
Create a load balancer rule with [az network lb rule create](/cli/azure/network/
For a standard load balancer, the VMs in the backend address for are required to have network interfaces that belong to a network security group.
-Use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) to create the network security group:
+Use [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create) to create the network security group:
```azurecli az network nsg create \
Use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) to cre
### Create a network security group rule
-Create a network security group rule using [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create):
+Create a network security group rule using [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create):
```azurecli az network nsg rule create \
In this section, you'll create te resources for Azure Bastion. Azure Bastion is
### Create a public IP address
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a public ip address for the bastion host. The public IP is used by the bastion host for secure access to the virtual machine resources.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a public ip address for the bastion host. The public IP is used by the bastion host for secure access to the virtual machine resources.
```azurecli az network public-ip create \
Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public
``` ### Create a bastion subnet
-Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) to create a bastion subnet. The bastion subnet is used by the bastion host to access the virtual network.
+Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) to create a bastion subnet. The bastion subnet is used by the bastion host to access the virtual network.
```azurecli az network vnet subnet create \
Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vn
### Create bastion host
-Use [az network bastion create](/cli/azure/network/bastion#az_network_bastion_create) to create a bastion host. The bastion host is used to connect securely to the virtual machine resources created later in this article.
+Use [az network bastion create](/cli/azure/network/bastion#az-network-bastion-create) to create a bastion host. The bastion host is used to connect securely to the virtual machine resources created later in this article.
```azurecli az network bastion create \
In this section, you create:
### Create network interfaces for the virtual machines
-Create two network interfaces with [az network nic create](/cli/azure/network/nic#az_network_nic_create):
+Create two network interfaces with [az network nic create](/cli/azure/network/nic#az-network-nic-create):
```azurecli array=(myNicVM1 myNicVM2)
Create two network interfaces with [az network nic create](/cli/azure/network/ni
### Create availability set for virtual machines
-Create the availability set with [az vm availability-set create](/cli/azure/vm/availability-set#az_vm_availability_set_create):
+Create the availability set with [az vm availability-set create](/cli/azure/vm/availability-set#az-vm-availability-set-create):
```azurecli az vm availability-set create \
Create the availability set with [az vm availability-set create](/cli/azure/vm/a
### Create virtual machines
-Create the virtual machines with [az vm create](/cli/azure/vm#az_vm_create):
+Create the virtual machines with [az vm create](/cli/azure/vm#az-vm-create):
```azurecli az vm create \
It may take a few minutes for the VMs to deploy. You can continue to the next st
### Add virtual machines to load balancer backend pool
-Add the virtual machines to the backend pool with [az network nic ip-config address-pool add](/cli/azure/network/nic/ip-config/address-pool#az_network_nic_ip_config_address_pool_add):
+Add the virtual machines to the backend pool with [az network nic ip-config address-pool add](/cli/azure/network/nic/ip-config/address-pool#az-network-nic-ip-config-address-pool-add):
```azurecli array=(myNicVM1 myNicVM2)
Add the virtual machines to the backend pool with [az network nic ip-config addr
## Install IIS
-Use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) to install IIS on the virtual machines and set the default website to the computer name.
+Use [az vm extension set](/cli/azure/vm/extension#az-vm-extension-set) to install IIS on the virtual machines and set the default website to the computer name.
```azurecli array=(myVM1 myVM2)
Use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) to instal
## Test the load balancer
-To get the public IP address of the load balancer, use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show).
+To get the public IP address of the load balancer, use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show).
Copy the public IP address, and then paste it into the address bar of your browser.
Copy the public IP address, and then paste it into the address bar of your brows
## Clean up resources
-When no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, load balancer, and all related resources.
+When no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, load balancer, and all related resources.
```azurecli az group delete \
load-balancer Ipv6 Add To Existing Vnet Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/ipv6-add-to-existing-vnet-cli.md
az network public-ip create \
## Configure IPv6 load balancer frontend
-Configure the load balancer with the new IPv6 IP address using [az network lb frontend-ip create](/cli/azure/network/lb/frontend-ip#az_network_lb_frontend_ip_create) as follows:
+Configure the load balancer with the new IPv6 IP address using [az network lb frontend-ip create](/cli/azure/network/lb/frontend-ip#az-network-lb-frontend-ip-create) as follows:
```azurecli-interactive az network lb frontend-ip create \
az network lb frontend-ip create \
## Configure IPv6 load balancer backend pool
-Create the backend pool for NICs with IPv6 addresses using [az network lb address-pool create](/cli/azure/network/lb/address-pool#az_network_lb_address_pool_create) as follows:
+Create the backend pool for NICs with IPv6 addresses using [az network lb address-pool create](/cli/azure/network/lb/address-pool#az-network-lb-address-pool-create) as follows:
```azurecli-interactive az network lb address-pool create \
az network lb address-pool create \
## Configure IPv6 load balancer rules
-Create IPv6 load balancer rules with [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create).
+Create IPv6 load balancer rules with [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create).
```azurecli-interactive az network lb rule create \
az network vnet subnet update \
## Add IPv6 configuration to NICs
-Configure the VM NICs with an IPv6 address using [az network nic ip-config create](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_create) as follows:
+Configure the VM NICs with an IPv6 address using [az network nic ip-config create](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-create) as follows:
```azurecli-interactive az network nic ip-config create \
load-balancer Load Balancer Distribution Mode https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/load-balancer-distribution-mode.md
Set the value of `--load-distribution` for the type of load balancing required.
* Specify **Default** for the default behavior of five-tuple load balancing.
-For more information on the command used in this article, see [az network lb rule update](/cli/azure/network/lb/rule#az_network_lb_rule_update)
+For more information on the command used in this article, see [az network lb rule update](/cli/azure/network/lb/rule#az-network-lb-rule-update)
load-balancer Quickstart Load Balancer Standard Internal Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/quickstart-load-balancer-standard-internal-cli.md
Title: 'Quickstart: Create an internal load balancer - Azure CLI' description: This quickstart shows how to create an internal load balancer by using the Azure CLI.- - - Previously updated : 12/19/2020 Last updated : 03/23/2022 #Customer intent: I want to create a load balancer so that I can load balance internal traffic to VMs.
-# Quickstart: Create an internal load balancer by using the Azure CLI
+# Quickstart: Create an internal load balancer to load balance VMs by using the Azure CLI
-Get started with Azure Load Balancer by using the Azure CLI to create an internal load balancer and three virtual machines.
+Get started with Azure Load Balancer by using the Azure CLI to create an internal load balancer and two virtual machines.
[!INCLUDE [quickstarts-free-trial-note](../../includes/quickstarts-free-trial-note.md)]
This quickstart requires version 2.0.28 or later of the Azure CLI. If you're usi
An Azure resource group is a logical container into which you deploy and manage your Azure resources.
-Create a resource group with [az group create](/cli/azure/group#az_group_create). Name the resource group **CreateIntLBQS-rg**, and specify the location as **eastus**.
+Create a resource group with [az group create](/cli/azure/group#az_group_create).
-```azurecli-interactive
+```azurecli
az group create \ --name CreateIntLBQS-rg \
- --location eastus
+ --location westus3
``` -
-# [**Standard SKU**](#tab/option-1-create-load-balancer-standard)
-
->[!NOTE]
->Standard SKU load balancer is recommended for production workloads. For more information about skus, see **[Azure Load Balancer SKUs](skus.md)**.
-
-In this section, you create a load balancer that load balances virtual machines. When you create an internal load balancer, a virtual network is configured as the network for the load balancer.
-
-### Configure the virtual network
+When you create an internal load balancer, a virtual network is configured as the network for the load balancer.
-Before you deploy VMs and deploy your load balancer, create the supporting virtual network resources.
+## Create the virtual network
-#### Create a virtual network
+Before you deploy VMs and test your load balancer, create the supporting virtual network and subnet. The virtual network and subnet will contain the resources deployed later in this article.
-Create a virtual network by using [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create). Specify the following:
+Create a virtual network by using [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create).
-* Named **myVNet**
-* Address prefix of **10.1.0.0/16**
-* Subnet named **myBackendSubnet**
-* Subnet prefix of **10.1.0.0/24**
-* In the **CreateIntLBQS-rg** resource group
-* Location of **eastus**
-
-```azurecli-interactive
+```azurecli
az network vnet create \ --resource-group CreateIntLBQS-rg \
- --location eastus \
+ --location westus3 \
--name myVNet \ --address-prefixes 10.1.0.0/16 \ --subnet-name myBackendSubnet \ --subnet-prefixes 10.1.0.0/24 ```
-#### Create a public IP address
+## Create an Azure Bastion host
+
+In this example, you'll create an Azure Bastion host. The Azure Bastion host is used later in this article to securely manage the virtual machines and test the load balancer deployment.
+
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a public IP address for the Azure Bastion host. Specify the following:
+### Create a bastion public IP address
-* Create a standard zone-redundant public IP address named **myBastionIP**
-* In **CreateIntLBQS-rg**
+Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a public IP address for the Azure Bastion host.
-```azurecli-interactive
+```azurecli
az network public-ip create \ --resource-group CreateIntLBQS-rg \ --name myBastionIP \
- --sku Standard
+ --sku Standard \
+ --zone 1 2 3
```
-#### Create an Azure Bastion subnet
-
-Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) to create a subnet. Specify the following:
+### Create a bastion subnet
-* Named **AzureBastionSubnet**
-* Address prefix of **10.1.1.0/24**
-* In virtual network **myVNet**
-* In resource group **CreateIntLBQS-rg**
+Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) to create a subnet.
-```azurecli-interactive
+```azurecli
az network vnet subnet create \ --resource-group CreateIntLBQS-rg \ --name AzureBastionSubnet \ --vnet-name myVNet \
- --address-prefixes 10.1.1.0/24
+ --address-prefixes 10.1.1.0/27
```
-#### Create an Azure Bastion host
+### Create the bastion host
-Use [az network bastion create](/cli/azure/network/bastion#az_network_bastion_create) to create a host. Specify the following:
+Use [az network bastion create](/cli/azure/network/bastion#az_network_bastion_create) to create a host.
-* Named **myBastionHost**
-* In **CreateIntLBQS-rg**
-* Associated with public IP **myBastionIP**
-* Associated with virtual network **myVNet**
-* In **eastus** location
-
-```azurecli-interactive
+```azurecli
az network bastion create \ --resource-group CreateIntLBQS-rg \ --name myBastionHost \ --public-ip-address myBastionIP \ --vnet-name myVNet \
- --location eastus
+ --location westus3
``` It can take a few minutes for the Azure Bastion host to deploy.
-#### Create a network security group
-
-For a standard load balancer, ensure that your VMs have network interfaces that belong to a network security group. Create a network security group by using [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create). Specify the following:
-
-* Named **myNSG**
-* In resource group **CreateIntLBQS-rg**
-
-```azurecli-interactive
- az network nsg create \
- --resource-group CreateIntLBQS-rg \
- --name myNSG
-```
-
-#### Create a network security group rule
-
-Create a network security group rule by using [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create). Specify the following:
-
-* Named **myNSGRuleHTTP**
-* In the network security group you created in the previous step, **myNSG**
-* In resource group **CreateIntLBQS-rg**
-* Protocol **(*)**
-* Direction **Inbound**
-* Source **(*)**
-* Destination **(*)**
-* Destination port **Port 80**
-* Access **Allow**
-* Priority **200**
-
-```azurecli-interactive
- az network nsg rule create \
- --resource-group CreateIntLBQS-rg \
- --nsg-name myNSG \
- --name myNSGRuleHTTP \
- --protocol '*' \
- --direction inbound \
- --source-address-prefix '*' \
- --source-port-range '*' \
- --destination-address-prefix '*' \
- --destination-port-range 80 \
- --access allow \
- --priority 200
-```
-
-### Create back-end servers
-
-In this section, you create:
-
-* Three network interfaces for the virtual machines.
-* Three virtual machines to be used as servers for the load balancer.
-
-#### Create network interfaces for the virtual machines
-
-Create three network interfaces with [az network nic create](/cli/azure/network/nic#az_network_nic_create). Specify the following:
-
-* Named **myNicVM1**, **myNicVM2**, and **myNicVM3**
-* In resource group **CreateIntLBQS-rg**
-* In virtual network **myVNet**
-* In subnet **myBackendSubnet**
-* In network security group **myNSG**
-
-```azurecli-interactive
- array=(myNicVM1 myNicVM2 myNicVM3)
- for vmnic in "${array[@]}"
- do
- az network nic create \
- --resource-group CreateIntLBQS-rg \
- --name $vmnic \
- --vnet-name myVNet \
- --subnet myBackEndSubnet \
- --network-security-group myNSG
- done
-```
-
-#### Create the virtual machines
-
-Create the virtual machines with [az vm create](/cli/azure/vm#az_vm_create). Specify the following:
-
-* Named **myVM1**, **myVM2**, and **myVM3**
-* In resource group **CreateIntLBQS-rg**
-* Attached to network interface **myNicVM1**, **myNicVM2**, and **myNicVM3**
-* Virtual machine image **win2019datacenter**
-* In **Zone 1**, **Zone 2**, and **Zone 3**
-
-```azurecli-interactive
- array=(1 2 3)
- for n in "${array[@]}"
- do
- az vm create \
- --resource-group CreateIntLBQS-rg \
- --name myVM$n \
- --nics myNicVM$n \
- --image win2019datacenter \
- --admin-username azureuser \
- --zone $n \
- --no-wait
- done
-```
-
-It can take a few minutes for the VMs to deploy.
---
-### Create the load balancer
+## Create the load balancer
This section details how you can create and configure the following components of the load balancer:
+
+* A frontend IP pool that receives the incoming network traffic on the load balancer
+
+* A backend IP pool where the frontend pool sends the load balanced network traffic
-* An IP pool that receives the incoming network traffic on the load balancer.
-* A second IP pool, where the first pool sends the load-balanced network traffic.
-* A health probe that determines health of the VM instances.
-* A load balancer rule that defines how traffic is distributed to the VMs.
+* A health probe that determines health of the backend VM instances
-#### Create the load balancer resource
+* A load balancer rule that defines how traffic is distributed to the VMs
-Create a public load balancer with [az network lb create](/cli/azure/network/lb#az_network_lb_create). Specify the following:
+### Create the load balancer resource
-* Named **myLoadBalancer**
-* A pool named **myFrontEnd**
-* A pool named **myBackEndPool**
-* Associated with the virtual network **myVNet**
-* Associated with the subnet **myBackendSubnet**
+Create an internal load balancer with [az network lb create](/cli/azure/network/lb#az_network_lb_create).
-```azurecli-interactive
+```azurecli
az network lb create \ --resource-group CreateIntLBQS-rg \ --name myLoadBalancer \ --sku Standard \
- --vnet-name myVnet \
+ --vnet-name myVNet \
--subnet myBackendSubnet \ --frontend-ip-name myFrontEnd \ --backend-pool-name myBackEndPool ```
-#### Create the health probe
+### Create the health probe
-A health probe checks all virtual machine instances to ensure they can send network traffic. A virtual machine with a failed probe check is removed from the load balancer. The virtual machine is added back into the load balancer when the failure is resolved.
+A health probe checks all virtual machine instances to ensure they can send network traffic.
-Create a health probe with [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create). Specify the following:
+A virtual machine with a failed probe check is removed from the load balancer. The virtual machine is added back into the load balancer when the failure is resolved.
-* Monitors the health of the virtual machines
-* Named **myHealthProbe**
-* Protocol **TCP**
-* Monitoring **Port 80**
+Create a health probe with [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create).
-```azurecli-interactive
+```azurecli
az network lb probe create \ --resource-group CreateIntLBQS-rg \ --lb-name myLoadBalancer \
Create a health probe with [az network lb probe create](/cli/azure/network/lb/pr
--port 80 ```
-#### Create a load balancer rule
+### Create a load balancer rule
A load balancer rule defines:
-* The IP configuration for the incoming traffic.
-* The IP pool to receive the traffic.
-* The required source and destination port.
+* Frontend IP configuration for the incoming traffic
-Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create). Specify the following:
+* The backend IP pool to receive the traffic
-* Named **myHTTPRule**
-* Listening on **Port 80** in the pool **myFrontEnd**
-* Sending load-balanced network traffic to the address pool **myBackEndPool** by using **Port 80**
-* Using health probe **myHealthProbe**
-* Protocol **TCP**
-* Idle timeout of **15 minutes**
-* Enable TCP reset
+* The required source and destination port
-```azurecli-interactive
+Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create).
+
+```azurecli
az network lb rule create \ --resource-group CreateIntLBQS-rg \ --lb-name myLoadBalancer \
Create a load balancer rule with [az network lb rule create](/cli/azure/network/
--enable-tcp-reset true ```
-#### Add VMs to the load balancer pool
-
-Add the virtual machines to the back-end pool with [az network nic ip-config address-pool add](/cli/azure/network/nic/ip-config/address-pool#az_network_nic_ip_config_address_pool_add). Specify the following:
-
-* In address pool **myBackEndPool**
-* In resource group **CreateIntLBQS-rg**
-* Associated with network interface **myNicVM1**, **myNicVM2**, and **myNicVM3**
-* Associated with load balancer **myLoadBalancer**
-
-```azurecli-interactive
- array=(VM1 VM2 VM3)
- for vm in "${array[@]}"
- do
- az network nic ip-config address-pool add \
- --address-pool myBackendPool \
- --ip-config-name ipconfig1 \
- --nic-name myNic$vm \
- --resource-group CreateIntLBQS-rg \
- --lb-name myLoadBalancer
- done
-
-```
-
-# [**Basic SKU**](#tab/option-1-create-load-balancer-basic)
+## Create a network security group
->[!NOTE]
->Standard SKU load balancer is recommended for production workloads. For more information about skus, see **[Azure Load Balancer SKUs](skus.md)**.
+For a standard load balancer, the VMs in the backend pool are required to have network interfaces that belong to a network security group.
-In this section, you create a load balancer that load balances virtual machines. When you create an internal load balancer, a virtual network is configured as the network for the load balancer.
-
-### Configure the virtual network
-
-Before you deploy VMs and deploy your load balancer, create the supporting virtual network resources.
-
-#### Create a virtual network
-
-Create a virtual network by using [az network vnet create](/cli/azure/network/vnet#az_network_vnet_createt). Specify the following:
-
-* Named **myVNet**
-* Address prefix of **10.1.0.0/16**
-* Subnet named **myBackendSubnet**
-* Subnet prefix of **10.1.0.0/24**
-* In the **CreateIntLBQS-rg** resource group
-* Location of **eastus**
-
-```azurecli-interactive
- az network vnet create \
- --resource-group CreateIntLBQS-rg \
- --location eastus \
- --name myVNet \
- --address-prefixes 10.1.0.0/16 \
- --subnet-name myBackendSubnet \
- --subnet-prefixes 10.1.0.0/24
-```
+To create a network security group, use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create).
-#### Create a public IP address
-
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a public IP address for the Azure Bastion host. Specify the following:
-
-* Create a standard zone-redundant public IP address named **myBastionIP**
-* In **CreateIntLBQS-rg**
-
-```azurecli-interactive
-az network public-ip create \
- --resource-group CreateIntLBQS-rg \
- --name myBastionIP \
- --sku Standard
-```
-#### Create an Azure Bastion subnet
-
-Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) to create a subnet. Specify the following:
-
-* Named **AzureBastionSubnet**
-* Address prefix of **10.1.1.0/24**
-* In virtual network **myVNet**
-* In resource group **CreateIntLBQS-rg**
-
-```azurecli-interactive
-az network vnet subnet create \
- --resource-group CreateIntLBQS-rg \
- --name AzureBastionSubnet \
- --vnet-name myVNet \
- --address-prefixes 10.1.1.0/24
-```
-
-#### Create an Azure Bastion host
-
-Use [az network bastion create](/cli/azure/network/bastion#az_network_bastion_create) to create a host. Specify the following:
-
-* Named **myBastionHost**
-* In **CreateIntLBQS-rg**
-* Associated with public IP **myBastionIP**
-* Associated with virtual network **myVNet**
-* In **eastus** location
-
-```azurecli-interactive
-az network bastion create \
- --resource-group CreateIntLBQS-rg \
- --name myBastionHost \
- --public-ip-address myBastionIP \
- --vnet-name myVNet \
- --location eastus
-```
-
-It can take a few minutes for the Azure Bastion host to deploy.
-
-#### Create a network security group
-
-For a standard load balancer, ensure that your VMs have network interfaces that belong to a network security group. Create a network security group by using [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create). Specify the following:
-
-* Named **myNSG**
-* In resource group **CreateIntLBQS-rg**
-
-```azurecli-interactive
+```azurecli
az network nsg create \ --resource-group CreateIntLBQS-rg \ --name myNSG ```
-#### Create a network security group rule
-
-Create a network security group rule by using [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create). Specify the following:
+## Create a network security group rule
-* Named **myNSGRuleHTTP**
-* In the network security group you created in the previous step, **myNSG**
-* In resource group **CreateIntLBQS-rg**
-* Protocol **(*)**
-* Direction **Inbound**
-* Source **(*)**
-* Destination **(*)**
-* Destination port **Port 80**
-* Access **Allow**
-* Priority **200**
+To create a network security group rule, use [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create).
-```azurecli-interactive
+```azurecli
az network nsg rule create \ --resource-group CreateIntLBQS-rg \ --nsg-name myNSG \
Create a network security group rule by using [az network nsg rule create](/cli/
--priority 200 ```
-### Create back-end servers
+## Create back-end servers
In this section, you create:
-* Three network interfaces for the virtual machines.
-* The availability set for the virtual machines.
-* Three virtual machines to be used as servers for the load balancer.
+* Two network interfaces for the virtual machines
-#### Create network interfaces for the virtual machines
+* Two virtual machines to be used as servers for the load balancer
-Create three network interfaces with [az network nic create](/cli/azure/network/nic#az_network_nic_create). Specify the following:
+### Create network interfaces for the virtual machines
-* Named **myNicVM1**, **myNicVM2**, and **myNicVM3**
-* In resource group **CreateIntLBQS-rg**
-* In virtual network **myVNet**
-* In subnet **myBackendSubnet**
-* In network security group **myNSG**
+Create two network interfaces with [az network nic create](/cli/azure/network/nic#az_network_nic_create).
-```azurecli-interactive
- array=(myNicVM1 myNicVM2 myNicVM3)
+```azurecli
+ array=(myNicVM1 myNicVM2)
for vmnic in "${array[@]}" do az network nic create \
Create three network interfaces with [az network nic create](/cli/azure/network/
done ```
-#### Create the availability set for the virtual machines
-
-Create the availability set with [az vm availability-set create](/cli/azure/vm/availability-set#az_vm_availability_set_create). Specify the following:
-
-* Named **myAvailabilitySet**
-* In resource group **CreateIntLBQS-rg**
-* Location **eastus**
-
-```azurecli-interactive
- az vm availability-set create \
- --name myAvailabilitySet \
- --resource-group CreateIntLBQS-rg \
- --location eastus
-
-```
-
-#### Create the virtual machines
-
-Create the virtual machines with [az vm create](/cli/azure/vm#az_vm_create). Specify the following:
+### Create the virtual machines
-* Named **myVM1**, **myVM2**, and **myVM3**
-* In resource group **CreateIntLBQS-rg**
-* Attached to network interface **myNicVM1**, **myNicVM2**, and **myNicVM3**
-* Virtual machine image **win2019datacenter**
-* In **myAvailabilitySet**
+Create the virtual machines with [az vm create](/cli/azure/vm#az_vm_create).
-
-```azurecli-interactive
- array=(1 2 3)
+```azurecli
+ array=(1 2)
for n in "${array[@]}" do az vm create \
Create the virtual machines with [az vm create](/cli/azure/vm#az_vm_create). Spe
--nics myNicVM$n \ --image win2019datacenter \ --admin-username azureuser \
- --availability-set myAvailabilitySet \
+ --zone $n \
--no-wait done ```+ It can take a few minutes for the VMs to deploy. [!INCLUDE [ephemeral-ip-note.md](../../includes/ephemeral-ip-note.md)]
+## Add virtual machines to the backend pool
-### Create the load balancer
-
-This section details how you can create and configure the following components of the load balancer:
-
-* An IP pool that receives the incoming network traffic on the load balancer.
-* A second IP pool, where the first pool sends the load-balanced network traffic.
-* A health probe that determines health of the VM instances.
-* A load balancer rule that defines how traffic is distributed to the VMs.
-
-#### Create the load balancer resource
+Add the virtual machines to the backend pool with [az network nic ip-config address-pool add](/cli/azure/network/nic/ip-config/address-pool#az_network_nic_ip_config_address_pool_add).
-Create a public load balancer with [az network lb create](/cli/azure/network/lb#az_network_lb_create). Specify the following:
-
-* Named **myLoadBalancer**
-* A pool named **myFrontEnd**
-* A pool named **myBackEndPool**
-* Associated with the virtual network **myVNet**
-* Associated with the subnet **myBackendSubnet**
+```azurecli
+ array=(VM1 VM2)
+ for vm in "${array[@]}"
+ do
+ az network nic ip-config address-pool add \
+ --address-pool myBackendPool \
+ --ip-config-name ipconfig1 \
+ --nic-name myNic$vm \
+ --resource-group CreateIntLBQS-rg \
+ --lb-name myLoadBalancer
+ done
-```azurecli-interactive
- az network lb create \
- --resource-group CreateIntLBQS-rg \
- --name myLoadBalancer \
- --sku Basic \
- --vnet-name myVNet \
- --subnet myBackendSubnet \
- --frontend-ip-name myFrontEnd \
- --backend-pool-name myBackEndPool
```
+## Create NAT gateway
-#### Create the health probe
-
-A health probe checks all virtual machine instances to ensure they can send network traffic. A virtual machine with a failed probe check is removed from the load balancer. The virtual machine is added back into the load balancer when the failure is resolved.
+To provide outbound internet access for resources in the backend pool, create a NAT gateway.
-Create a health probe with [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create). Specify the following:
+### Create public IP
-* Monitors the health of the virtual machines
-* Named **myHealthProbe**
-* Protocol **TCP**
-* Monitoring **Port 80**
+Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a single IP for the outbound connectivity.
-```azurecli-interactive
- az network lb probe create \
+```azurecli
+ az network public-ip create \
--resource-group CreateIntLBQS-rg \
- --lb-name myLoadBalancer \
- --name myHealthProbe \
- --protocol tcp \
- --port 80
+ --name myNATgatewayIP \
+ --sku Standard \
+ --zone 1 2 3
```
-#### Create a load balancer rule
-
-A load balancer rule defines:
+### Create NAT gateway resource
-* The IP configuration for the incoming traffic.
-* The IP pool to receive the traffic.
-* The required source and destination port.
+Use [az network nat gateway create](/cli/azure/network/nat#az_network_nat_gateway_create) to create the NAT gateway resource. The public IP created in the previous step is associated with the NAT gateway.
-Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create). Specify the following:
-
-* Named **myHTTPRule**
-* Listening on **Port 80** in the pool **myFrontEnd**
-* Sending load-balanced network traffic to the address pool **myBackEndPool** by using **Port 80**
-* Using health probe **myHealthProbe**
-* Protocol **TCP**
-* Idle timeout of **15 minutes**
-
-```azurecli-interactive
- az network lb rule create \
+```azurecli
+ az network nat gateway create \
--resource-group CreateIntLBQS-rg \
- --lb-name myLoadBalancer \
- --name myHTTPRule \
- --protocol tcp \
- --frontend-port 80 \
- --backend-port 80 \
- --frontend-ip-name myFrontEnd \
- --backend-pool-name myBackEndPool \
- --probe-name myHealthProbe \
- --idle-timeout 15
+ --name myNATgateway \
+ --public-ip-addresses myNATgatewayIP \
+ --idle-timeout 10
```
-#### Add VMs to the load balancer pool
-
-Add the virtual machines to the back-end pool with [az network nic ip-config address-pool add](/cli/azure/network/nic/ip-config/address-pool#az_network_nic_ip_config_address_pool_add). Specify the following:
-* In address pool **myBackEndPool**
-* In resource group **CreateIntLBQS-rg**
-* Associated with network interface **myNicVM1**, **myNicVM2**, and **myNicVM3**
-* Associated with load balancer **myLoadBalancer**
+### Associate NAT gateway with subnet
-```azurecli-interactive
- array=(VM1 VM2 VM3)
- for vm in "${array[@]}"
- do
- az network nic ip-config address-pool add \
- --address-pool myBackendPool \
- --ip-config-name ipconfig1 \
- --nic-name myNic$vm \
- --resource-group CreateIntLBQS-rg \
- --lb-name myLoadBalancer
- done
+Configure the source subnet in virtual network to use a specific NAT gateway resource with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update).
+```azurecli
+ az network vnet subnet update \
+ --resource-group CreateIntLBQS-rg \
+ --vnet-name myVNet \
+ --name myBackendSubnet \
+ --nat-gateway myNATgateway
```-
-## Test the load balancer
-Create the network interface with [az network nic create](/cli/azure/network/nic#az_network_nic_create). Specify the following:
+## Create test virtual machine
-* Named **myNicTestVM**
-* In resource group **CreateIntLBQS-rg**
-* In virtual network **myVNet**
-* In subnet **myBackendSubnet**
-* In network security group **myNSG**
+Create the network interface with [az network nic create](/cli/azure/network/nic#az_network_nic_create).
-```azurecli-interactive
+```azurecli
az network nic create \ --resource-group CreateIntLBQS-rg \ --name myNicTestVM \
Create the network interface with [az network nic create](/cli/azure/network/nic
--subnet myBackEndSubnet \ --network-security-group myNSG ```
-Create the virtual machine with [az vm create](/cli/azure/vm#az_vm_create). Specify the following:
-
-* Named **myTestVM**
-* In resource group **CreateIntLBQS-rg**
-* Attached to network interface **myNicTestVM**
-* Virtual machine image **Win2019Datacenter**
+Create the virtual machine with [az vm create](/cli/azure/vm#az_vm_create).
-```azurecli-interactive
+```azurecli
az vm create \ --resource-group CreateIntLBQS-rg \ --name myTestVM \
You might need to wait a few minutes for the virtual machine to deploy.
## Install IIS
-Use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) to install IIS on the virtual machines and set the default website to the computer name.
+Use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) to install IIS on the backend virtual machines and set the default website to the computer name.
-```azurecli-interactive
- array=(myVM1 myVM2 myVM3)
+```azurecli
+ array=(myVM1 myVM2)
for vm in "${array[@]}" do az vm extension set \
Use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) to instal
```
-### Test
+## Test the load balancer
1. [Sign in](https://portal.azure.com) to the Azure portal. 2. On the **Overview** page, find the private IP address for the load balancer. In the menu on the left, select **All services** > **All resources** > **myLoadBalancer**.
-3. In the overview of **myLoadBalancer**, copy the address next to **Private IP Address**.
+3. In the overview of **myLoadBalancer**, copy the address next to **Private IP Address**. If **Private IP address** isn't visible, select **See more**.
4. In the menu on the left, select **All services** > **All resources**. From the resources list, in the **CreateIntLBQS-rg** resource group, select **myTestVM**.
Use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) to instal
8. Enter the IP address from the previous step into the address bar of the browser. The default page of the IIS web server is shown on the browser. :::image type="content" source="./media/quickstart-load-balancer-standard-internal-portal/load-balancer-test.png" alt-text="Screenshot of the IP address in the address bar of the browser." border="true":::
-
-To see the load balancer distribute traffic across all three VMs, you can customize the default page of each VM's IIS web server. Then, manually refresh your web browser from the client machine.
## Clean up resources
-When your resources are no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, load balancer, and all related resources.
+When your resources are no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, load balancer, and all related resources.
-```azurecli-interactive
+```azurecli
az group delete \ --name CreateIntLBQS-rg ``` ## Next steps
-Get an overview of Azure Load Balancer.
+In this quickstart:
+
+* You created an internal load balancer
+
+* Attached two virtual machines
+
+* Configured the load balancer traffic rule and health probe
+
+* Tested the load balancer
+
+To learn more about Azure Load Balancer, continue to:
> [!div class="nextstepaction"] > [What is Azure Load Balancer?](load-balancer-overview.md)
load-balancer Quickstart Load Balancer Standard Internal Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/quickstart-load-balancer-standard-internal-template.md
az deployment group create \
## Clean up resources
-When no longer needed, you can use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group and all resources contained within.
+When no longer needed, you can use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group and all resources contained within.
```azurecli-interactive az group delete \
load-balancer Quickstart Load Balancer Standard Public Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/quickstart-load-balancer-standard-public-cli.md
Get started with Azure Load Balancer by using the Azure CLI to create a public l
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create):
+Create a resource group with [az group create](/cli/azure/group#az-group-create):
```azurecli az group create \
Create a resource group with [az group create](/cli/azure/group#az_group_create)
Before you deploy VMs and test your load balancer, create the supporting virtual network and subnet.
-Create a virtual network using [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create). The virtual network and subnet will contain the resources deployed later in this article.
+Create a virtual network using [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create). The virtual network and subnet will contain the resources deployed later in this article.
```azurecli az network vnet create \
Create a virtual network using [az network vnet create](/cli/azure/network/vnet#
To access your web app on the Internet, you need a public IP address for the load balancer.
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create the public IP for the load balancer frontend.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create the public IP for the load balancer frontend.
```azurecli az network public-ip create \
This section details how you can create and configure the following components o
### Create the load balancer resource
-Create a public load balancer with [az network lb create](/cli/azure/network/lb#az_network_lb_create):
+Create a public load balancer with [az network lb create](/cli/azure/network/lb#az-network-lb-create):
```azurecli az network lb create \
A health probe checks all virtual machine instances to ensure they can send netw
A virtual machine with a failed probe check is removed from the load balancer. The virtual machine is added back into the load balancer when the failure is resolved.
-Create a health probe with [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create):
+Create a health probe with [az network lb probe create](/cli/azure/network/lb/probe#az-network-lb-probe-create):
```azurecli az network lb probe create \
A load balancer rule defines:
* The required source and destination port
-Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create):
+Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create):
```azurecli az network lb rule create \
Create a load balancer rule with [az network lb rule create](/cli/azure/network/
## Create a network security group
-For a standard load balancer, the VMs in the backend address for are required to have network interfaces that belong to a network security group.
+For a standard load balancer, the VMs in the backend pool are required to have network interfaces that belong to a network security group.
-Use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) to create the network security group:
+Use [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create) to create the network security group:
```azurecli az network nsg create \
Use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) to cre
### Create a network security group rule
-Create a network security group rule using [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create):
+Create a network security group rule using [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create):
```azurecli az network nsg rule create \
In this section, you'll create te resources for Azure Bastion. Azure Bastion is
### Create a public IP address
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a public ip address for the bastion host. The public IP is used by the bastion host for secure access to the virtual machine resources.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a public ip address for the bastion host. The public IP is used by the bastion host for secure access to the virtual machine resources.
```azurecli az network public-ip create \
Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public
``` ### Create a bastion subnet
-Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) to create a bastion subnet. The bastion subnet is used by the bastion host to access the virtual network.
+Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) to create a bastion subnet. The bastion subnet is used by the bastion host to access the virtual network.
```azurecli az network vnet subnet create \
Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vn
### Create bastion host
-Use [az network bastion create](/cli/azure/network/bastion#az_network_bastion_create) to create a bastion host. The bastion host is used to connect securely to the virtual machine resources created later in this article.
+Use [az network bastion create](/cli/azure/network/bastion#az-network-bastion-create) to create a bastion host. The bastion host is used to connect securely to the virtual machine resources created later in this article.
```azurecli az network bastion create \
In this section, you create:
### Create network interfaces for the virtual machines
-Create two network interfaces with [az network nic create](/cli/azure/network/nic#az_network_nic_create):
+Create two network interfaces with [az network nic create](/cli/azure/network/nic#az-network-nic-create):
```azurecli array=(myNicVM1 myNicVM2)
Create two network interfaces with [az network nic create](/cli/azure/network/ni
### Create virtual machines
-Create the virtual machines with [az vm create](/cli/azure/vm#az_vm_create):
+Create the virtual machines with [az vm create](/cli/azure/vm#az-vm-create):
```azurecli az vm create \
It may take a few minutes for the VMs to deploy. You can continue to the next st
### Add virtual machines to load balancer backend pool
-Add the virtual machines to the backend pool with [az network nic ip-config address-pool add](/cli/azure/network/nic/ip-config/address-pool#az_network_nic_ip_config_address_pool_add):
+Add the virtual machines to the backend pool with [az network nic ip-config address-pool add](/cli/azure/network/nic/ip-config/address-pool#az-network-nic-ip-config-address-pool-add):
```azurecli array=(myNicVM1 myNicVM2)
To provide outbound internet access for resources in the backend pool, create a
### Create public IP
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a single IP for the outbound connectivity.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a single IP for the outbound connectivity.
```azurecli az network public-ip create \
To create a zonal redundant public IP address in Zone 1:
### Create NAT gateway resource
-Use [az network nat gateway create](/cli/azure/network/nat#az_network_nat_gateway_create) to create the NAT gateway resource. The public IP created in the previous step is associated with the NAT gateway.
+Use [az network nat gateway create](/cli/azure/network/nat#az-network-nat-gateway-create) to create the NAT gateway resource. The public IP created in the previous step is associated with the NAT gateway.
```azurecli az network nat gateway create \
Use [az network nat gateway create](/cli/azure/network/nat#az_network_nat_gatewa
### Associate NAT gateway with subnet
-Configure the source subnet in virtual network to use a specific NAT gateway resource with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update).
+Configure the source subnet in virtual network to use a specific NAT gateway resource with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update).
```azurecli az network vnet subnet update \
Configure the source subnet in virtual network to use a specific NAT gateway res
## Install IIS
-Use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) to install IIS on the virtual machines and set the default website to the computer name.
+Use [az vm extension set](/cli/azure/vm/extension#az-vm-extension-set) to install IIS on the virtual machines and set the default website to the computer name.
```azurecli array=(myVM1 myVM2)
Use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) to instal
## Test the load balancer
-To get the public IP address of the load balancer, use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show).
+To get the public IP address of the load balancer, use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show).
Copy the public IP address, and then paste it into the address bar of your browser.
Copy the public IP address, and then paste it into the address bar of your brows
## Clean up resources
-When no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, load balancer, and all related resources.
+When no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, load balancer, and all related resources.
```azurecli az group delete \
load-balancer Load Balancer Linux Cli Load Balance Multiple Websites Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/scripts/load-balancer-linux-cli-load-balance-multiple-websites-vm.md
This script uses the following commands to create a resource group, virtual netw
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) | Creates an Azure virtual network and subnet. |
-| [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) | Creates a public IP address with a static IP address and an associated DNS name. |
-| [az network lb create](/cli/azure/network/lb#az_network_lb_create) | Creates an Azure Load Balancer. |
-| [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
-| [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 one of the VMs in the load balancer set. |
-| [az network lb frontend-ip create](/cli/azure/network/lb/frontend-ip#az_network_lb_frontend_ip_create) | Create a frontend IP address for the Load Balancer. |
-| [az network lb address-pool create](/cli/azure/network/lb/address-pool#az_network_lb_address_pool_create) | Creates a backend address pool. |
-| [az network nic create](/cli/azure/network/nic#az_network_nic_create) | Creates a virtual network card and attaches it to the virtual network, and subnet. |
-| [az vm availability-set create](/cli/azure/network/lb/rule#az_network_lb_rule_create) | Creates an availability set. Availability sets ensure application uptime by spreading the virtual machines across physical resources such that if failure occurs, the entire set is not effected. |
-| [az network nic ip-config create](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_create) | Creates an IP configuration. You must have the Microsoft.Network/AllowMultipleIpConfigurationsPerNic feature enabled for your subscription. Only one configuration may be designated as the primary IP configuration per NIC, using the --make-primary flag. |
-| [az vm create](/cli/azure/vm/availability-set#az_vm_availability_set_create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
-| [az group delete](/cli/azure/vm/extension#az_vm_extension_set) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates an Azure virtual network and subnet. |
+| [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) | Creates a public IP address with a static IP address and an associated DNS name. |
+| [az network lb create](/cli/azure/network/lb#az-network-lb-create) | Creates an Azure Load Balancer. |
+| [az network lb probe create](/cli/azure/network/lb/probe#az-network-lb-probe-create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
+| [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 one of the VMs in the load balancer set. |
+| [az network lb frontend-ip create](/cli/azure/network/lb/frontend-ip#az-network-lb-frontend-ip-create) | Create a frontend IP address for the Load Balancer. |
+| [az network lb address-pool create](/cli/azure/network/lb/address-pool#az-network-lb-address-pool-create) | Creates a backend address pool. |
+| [az network nic create](/cli/azure/network/nic#az-network-nic-create) | Creates a virtual network card and attaches it to the virtual network, and subnet. |
+| [az vm availability-set create](/cli/azure/network/lb/rule#az-network-lb-rule-create) | Creates an availability set. Availability sets ensure application uptime by spreading the virtual machines across physical resources such that if failure occurs, the entire set is not effected. |
+| [az network nic ip-config create](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-create) | Creates an IP configuration. You must have the Microsoft.Network/AllowMultipleIpConfigurationsPerNic feature enabled for your subscription. Only one configuration may be designated as the primary IP configuration per NIC, using the --make-primary flag. |
+| [az vm create](/cli/azure/vm/availability-set#az-vm-availability-set-create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
+| [az group delete](/cli/azure/vm/extension#az-vm-extension-set) | Deletes a resource group including all nested resources. |
## Next steps
load-balancer Load Balancer Linux Cli Sample Nlb https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/scripts/load-balancer-linux-cli-sample-nlb.md
This script uses the following commands to create a resource group, virtual mach
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) | Creates an Azure virtual network and subnet. |
-| [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) | Creates a public IP address with a static IP address and an associated DNS name. |
-| [az network lb create](/cli/azure/network/lb#az_network_lb_create) | Creates an Azure load balancer. |
-| [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
-| [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 one of the VMs in the LB set. |
-| [az network lb inbound-nat-rule create](/cli/azure/network/lb/inbound-nat-rule#az_network_lb_inbound_nat_rule_create) | Creates load balancer Network Address Translation (NAT) rule. NAT rules map a port of the load balancer to a port on a VM. In this sample, a NAT rule is created for SSH traffic to each VM in the load balancer set. |
-| [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) | Creates a network security group (NSG), which is a security boundary between the internet and the virtual machine. |
-| [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create) | Creates an NSG rule to allow inbound traffic. In this sample, port 22 is opened for SSH traffic. |
-| [az network nic create](/cli/azure/network/nic#az_network_nic_create) | Creates a virtual network card and attaches it to the virtual network, subnet, and NSG. |
-| [az vm availability-set create](/cli/azure/network/lb/rule#az_network_lb_rule_create) | Creates an availability set. Availability sets ensure application uptime by spreading the virtual machines across physical resources such that if failure occurs, the entire set is not effected. |
-| [az vm create](/cli/azure/vm#az_vm_create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
-| [az group delete](/cli/azure/vm/extension#az_vm_extension_set) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates an Azure virtual network and subnet. |
+| [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) | Creates a public IP address with a static IP address and an associated DNS name. |
+| [az network lb create](/cli/azure/network/lb#az-network-lb-create) | Creates an Azure load balancer. |
+| [az network lb probe create](/cli/azure/network/lb/probe#az-network-lb-probe-create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
+| [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 one of the VMs in the LB set. |
+| [az network lb inbound-nat-rule create](/cli/azure/network/lb/inbound-nat-rule#az-network-lb-inbound-nat-rule-create) | Creates load balancer Network Address Translation (NAT) rule. NAT rules map a port of the load balancer to a port on a VM. In this sample, a NAT rule is created for SSH traffic to each VM in the load balancer set. |
+| [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create) | Creates a network security group (NSG), which is a security boundary between the internet and the virtual machine. |
+| [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create) | Creates an NSG rule to allow inbound traffic. In this sample, port 22 is opened for SSH traffic. |
+| [az network nic create](/cli/azure/network/nic#az-network-nic-create) | Creates a virtual network card and attaches it to the virtual network, subnet, and NSG. |
+| [az vm availability-set create](/cli/azure/network/lb/rule#az-network-lb-rule-create) | Creates an availability set. Availability sets ensure application uptime by spreading the virtual machines across physical resources such that if failure occurs, the entire set is not effected. |
+| [az vm create](/cli/azure/vm#az-vm-create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
+| [az group delete](/cli/azure/vm/extension#az-vm-extension-set) | Deletes a resource group including all nested resources. |
## Next steps
load-balancer Load Balancer Linux Cli Sample Zonal Frontend https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/scripts/load-balancer-linux-cli-sample-zonal-frontend.md
This script uses the following commands to create a resource group, virtual mach
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) | Creates an Azure virtual network and subnet. |
-| [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) | Creates a public IP address with a static IP address and an associated DNS name. |
-| [az network lb create](/cli/azure/network/lb#az_network_lb_create) | Creates an Azure load balancer. |
-| [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
-| [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 one of the VMs in the LB set. |
-| [az network lb inbound-nat-rule create](/cli/azure/network/lb/inbound-nat-rule#az_network_lb_inbound_nat_rule_create) | Creates load balancer Network Address Translation (NAT) rule. NAT rules map a port of the load balancer to a port on a VM. In this sample, a NAT rule is created for SSH traffic to each VM in the load balancer set. |
-| [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) | Creates a network security group (NSG), which is a security boundary between the internet and the virtual machine. |
-| [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create) | Creates an NSG rule to allow inbound traffic. In this sample, port 22 is opened for SSH traffic. |
-| [az network nic create](/cli/azure/network/nic#az_network_nic_create) | Creates a virtual network card and attaches it to the virtual network, subnet, and NSG. |
-| [az vm create](/cli/azure/vm#az_vm_create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
-| [az group delete](/cli/azure/vm/extension#az_vm_extension_set) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates an Azure virtual network and subnet. |
+| [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) | Creates a public IP address with a static IP address and an associated DNS name. |
+| [az network lb create](/cli/azure/network/lb#az-network-lb-create) | Creates an Azure load balancer. |
+| [az network lb probe create](/cli/azure/network/lb/probe#az-network-lb-probe-create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
+| [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 one of the VMs in the LB set. |
+| [az network lb inbound-nat-rule create](/cli/azure/network/lb/inbound-nat-rule#az-network-lb-inbound-nat-rule-create) | Creates load balancer Network Address Translation (NAT) rule. NAT rules map a port of the load balancer to a port on a VM. In this sample, a NAT rule is created for SSH traffic to each VM in the load balancer set. |
+| [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create) | Creates a network security group (NSG), which is a security boundary between the internet and the virtual machine. |
+| [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create) | Creates an NSG rule to allow inbound traffic. In this sample, port 22 is opened for SSH traffic. |
+| [az network nic create](/cli/azure/network/nic#az-network-nic-create) | Creates a virtual network card and attaches it to the virtual network, subnet, and NSG. |
+| [az vm create](/cli/azure/vm#az-vm-create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
+| [az group delete](/cli/azure/vm/extension#az-vm-extension-set) | Deletes a resource group including all nested resources. |
## Next steps
load-balancer Load Balancer Linux Cli Sample Zone Redundant Frontend https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/scripts/load-balancer-linux-cli-sample-zone-redundant-frontend.md
This script uses the following commands to create a resource group, virtual mach
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) | Creates an Azure virtual network and subnet. |
-| [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) | Creates a public IP address with a static IP address and an associated DNS name. |
-| [az network lb create](/cli/azure/network/lb#az_network_lb_create) | Creates an Azure load balancer. |
-| [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
-| [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 of the VMs included in a load-balanced set. |
-| [az network lb inbound-nat-rule create](/cli/azure/network/lb/inbound-nat-rule#az_network_lb_inbound_nat_rule_create) | Creates load balancer Network Address Translation (NAT) rule. NAT rules map a port of the load balancer to a port on a VM. In this sample, a NAT rule is created for SSH traffic to each VM in the load balancer set. |
-| [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) | Creates a network security group (NSG), which is a security boundary between the internet and the virtual machine. |
-| [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create) | Creates an NSG rule to allow inbound traffic. In this sample, port 22 is opened for SSH traffic. |
-| [az network nic create](/cli/azure/network/nic#az_network_nic_create) | Creates a virtual network card and attaches it to the virtual network, subnet, and NSG. |
-| [az vm create](/cli/azure/vm#az_vm_create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
-| [az group delete](/cli/azure/vm/extension#az_vm_extension_set) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates an Azure virtual network and subnet. |
+| [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) | Creates a public IP address with a static IP address and an associated DNS name. |
+| [az network lb create](/cli/azure/network/lb#az-network-lb-create) | Creates an Azure load balancer. |
+| [az network lb probe create](/cli/azure/network/lb/probe#az-network-lb-probe-create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
+| [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 of the VMs included in a load-balanced set. |
+| [az network lb inbound-nat-rule create](/cli/azure/network/lb/inbound-nat-rule#az-network-lb-inbound-nat-rule-create) | Creates load balancer Network Address Translation (NAT) rule. NAT rules map a port of the load balancer to a port on a VM. In this sample, a NAT rule is created for SSH traffic to each VM in the load balancer set. |
+| [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create) | Creates a network security group (NSG), which is a security boundary between the internet and the virtual machine. |
+| [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create) | Creates an NSG rule to allow inbound traffic. In this sample, port 22 is opened for SSH traffic. |
+| [az network nic create](/cli/azure/network/nic#az-network-nic-create) | Creates a virtual network card and attaches it to the virtual network, subnet, and NSG. |
+| [az vm create](/cli/azure/vm#az-vm-create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
+| [az group delete](/cli/azure/vm/extension#az-vm-extension-set) | Deletes a resource group including all nested resources. |
## Next steps
load-balancer Tutorial Cross Region Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/tutorial-cross-region-cli.md
In this section, you'll create a cross-region load balancer, public IP address,
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create):
+Create a resource group with [az group create](/cli/azure/group#az-group-create):
* Named **myResourceGroupLB-CR**. * In the **westus** location.
Create a resource group with [az group create](/cli/azure/group#az_group_create)
### Create the load balancer resource
-Create a cross-region load balancer with [az network cross-region-lb create](/cli/azure/network/cross-region-lb#az_network_cross_region_lb_create):
+Create a cross-region load balancer with [az network cross-region-lb create](/cli/azure/network/cross-region-lb#az-network-cross-region-lb-create):
* Named **myLoadBalancer-CR**. * A frontend pool named **myFrontEnd-CR**.
A load balancer rule defines:
* The backend IP pool to receive the traffic. * The required source and destination port.
-Create a load balancer rule with [az network cross-region-lb rule create](/cli/azure/network/cross-region-lb/rule#az_network_cross_region_lb_rule_create):
+Create a load balancer rule with [az network cross-region-lb rule create](/cli/azure/network/cross-region-lb/rule#az-network-cross-region-lb-rule-create):
* Named **myHTTPRule-CR** * Listening on **Port 80** in the frontend pool **myFrontEnd-CR**.
In this section, you'll add two regional standard load balancers to the backend
In this section, you'll place the resource IDs of two regional load balancers frontends into variables. You'll then use the variables to add the frontends to the backend address pool of the cross-region load balancer.
-Retrieve the resource IDs with [az network lb frontend-ip show](/cli/azure/network/lb/frontend-ip#az_network_lb_frontend_ip_show).
+Retrieve the resource IDs with [az network lb frontend-ip show](/cli/azure/network/lb/frontend-ip#az-network-lb-frontend-ip-show).
-Use [az network cross-region-lb address-pool address add](/cli/azure/network/cross-region-lb/address-pool/address#az_network_cross_region_lb_address_pool_address_add) to add the frontends you placed in variables in the backend pool of the cross-region load balancer:
+Use [az network cross-region-lb address-pool address add](/cli/azure/network/cross-region-lb/address-pool/address#az-network-cross-region-lb-address-pool-address-add) to add the frontends you placed in variables in the backend pool of the cross-region load balancer:
```azurecli-interactive region1id=$(az network lb frontend-ip show \
Use [az network cross-region-lb address-pool address add](/cli/azure/network/cro
In this section, you'll test the cross-region load balancer. You'll connect to the public IP address in a web browser. You'll stop the virtual machines in one of the regional load balancer backend pools and observe the failover.
-1. To get the public IP address of the load balancer, use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show):
+1. To get the public IP address of the load balancer, use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show):
```azurecli-interactive az network public-ip show \
In this section, you'll test the cross-region load balancer. You'll connect to t
## Clean up resources
-When no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, load balancer, and all related resources.
+When no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, load balancer, and all related resources.
```azurecli-interactive az group delete \
load-balancer Tutorial Gateway Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/tutorial-gateway-cli.md
In this tutorial, you learn how to:
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create):
+Create a resource group with [az group create](/cli/azure/group#az-group-create):
```azurecli-interactive az group create \
A virtual network is needed for the resources that are in the backend pool of th
### Create virtual network
-Use [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) to create the virtual network.
+Use [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) to create the virtual network.
```azurecli-interactive az network vnet create \
Use [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) to
### Create bastion public IP address
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a public IP address for the Azure Bastion host
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a public IP address for the Azure Bastion host
```azurecli-interactive az network public-ip create \
az network public-ip create \
### Create bastion subnet
-Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) to create the bastion subnet.
+Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) to create the bastion subnet.
```azurecli-interactive az network vnet subnet create \
az network vnet subnet create \
### Create bastion host
-Use [az network bastion create](/cli/azure/network/bastion#az_network_bastion_create) to deploy a bastion host for secure management of resources in virtual network.
+Use [az network bastion create](/cli/azure/network/bastion#az-network-bastion-create) to deploy a bastion host for secure management of resources in virtual network.
```azurecli-interactive az network bastion create \
Use the following example to create a network security group. You'll configure t
### Create NSG
-Use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) to create the NSG.
+Use [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create) to create the NSG.
```azurecli-interactive az network nsg create \
Use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) to cre
### Create NSG Rules
-Use [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create) to create rules for the NSG.
+Use [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create) to create rules for the NSG.
```azurecli-interactive az network nsg rule create \
In this section, you'll create the configuration and deploy the gateway load bal
### Create Gateway Load Balancer
-To create the load balancer, use [az network lb create](/cli/azure/network/lb#az_network_lb_create).
+To create the load balancer, use [az network lb create](/cli/azure/network/lb#az-network-lb-create).
```azurecli-interactive az network lb create \
To create the load balancer, use [az network lb create](/cli/azure/network/lb#az
An internal interface is automatically created with Azure CLI with the **`--identifier`** of **900** and **`--port`** of **10800**.
-You'll use [az network lb address-pool tunnel-interface add](/cli/azure/network/lb/address-pool/tunnel-interface#az_network_lb_address_pool_tunnel_interface_add) to create external tunnel interface for the load balancer.
+You'll use [az network lb address-pool tunnel-interface add](/cli/azure/network/lb/address-pool/tunnel-interface#az-network-lb-address-pool-tunnel-interface-add) to create external tunnel interface for the load balancer.
```azurecli-interactive az network lb address-pool tunnel-interface add \
You'll use [az network lb address-pool tunnel-interface add](/cli/azure/network/
``` ### Create health probe
-A health probe is required to monitor the health of the backend instances in the load balancer. Use [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create) to create the health probe.
+A health probe is required to monitor the health of the backend instances in the load balancer. Use [az network lb probe create](/cli/azure/network/lb/probe#az-network-lb-probe-create) to create the health probe.
```azurecli-interactive az network lb probe create \
A health probe is required to monitor the health of the backend instances in the
### Create load-balancing rule
-Traffic destined for the backend instances is routed with a load-balancing rule. Use [az network lb rule create](/cli/azure/network/lb/probe#az_network_lb_rule_create) to create the load-balancing rule.
+Traffic destined for the backend instances is routed with a load-balancing rule. Use [az network lb rule create](/cli/azure/network/lb/probe#az-network-lb-rule-create) to create the load-balancing rule.
```azurecli-interactive az network lb rule create \
Traffic destined for the backend instances is routed with a load-balancing rule.
``` ## Add network virtual appliances to the Gateway Load Balancer backend pool
-Deploy NVAs through the Azure Marketplace. Once deployed, add the virtual machines to the backend pool with [az network nic ip-config address-pool add](/cli/azure/network/nic/ip-config/address-pool#az_network_nic_ip_config_address_pool_add).
+Deploy NVAs through the Azure Marketplace. Once deployed, add the virtual machines to the backend pool with [az network nic ip-config address-pool add](/cli/azure/network/nic/ip-config/address-pool#az-network-nic-ip-config-address-pool-add).
## Chain load balancer frontend to Gateway Load Balancer
In this example, you'll chain the frontend of a standard load balancer to the ga
You'll add the frontend to the frontend IP of an existing load balancer in your subscription.
-Use [az network lb frontend-ip show](/cli/azure/network/lb/frontend-ip#az_az_network_lb_frontend_ip_show) to place the resource ID of your gateway load balancer frontend into a variable.
+Use [az network lb frontend-ip show](/cli/azure/network/lb/frontend-ip#az-az-network-lb-frontend-ip-show) to place the resource ID of your gateway load balancer frontend into a variable.
-Use [az network lb frontend-ip update](/cli/azure/network/lb/frontend-ip#az_network_lb_frontend_ip_update) to chain the gateway load balancer frontend to your existing load balancer.
+Use [az network lb frontend-ip update](/cli/azure/network/lb/frontend-ip#az-network-lb-frontend-ip-update) to chain the gateway load balancer frontend to your existing load balancer.
```azurecli-interactive feid=$(az network lb frontend-ip show \
Alternatively, you can chain a VM's NIC IP configuration to the gateway load bal
You'll add the gateway load balancer's frontend to an existing VM's NIC IP configuration.
-Use [az network lb frontend-ip show](/cli/azure/network/lb/frontend-ip#az_az_network_lb_frontend_ip_show) to place the resource ID of your gateway load balancer frontend into a variable.
+Use [az network lb frontend-ip show](/cli/azure/network/lb/frontend-ip#az-az-network-lb-frontend-ip-show) to place the resource ID of your gateway load balancer frontend into a variable.
Use [az network lb frontend-ip update](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-update) to chain the gateway load balancer frontend to your existing VM's NIC IP configuration.
Use [az network lb frontend-ip update](/cli/azure/network/nic/ip-config#az-netwo
## Clean up resources
-When no longer needed, you can use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, load balancer, and the remaining resources.
+When no longer needed, you can use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, load balancer, and the remaining resources.
```azurecli-interactive az group delete \
load-balancer Update Load Balancer With Vm Scale Set https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/update-load-balancer-with-vm-scale-set.md
Individual inbound NAT rules can't be added. But you can add a set of inbound NA
To add a whole set of inbound NAT rules for the virtual machine scale sets, first create an inbound NAT pool in the load balancer. Then reference the inbound NAT pool from the network profile of the virtual machine scale set. A full example using the CLI is shown.
-The new inbound NAT pool should not have an overlapping front-end port range with existing inbound NAT pools. To view existing inbound NAT pools that are set up, use this [CLI command](/cli/azure/network/lb/inbound-nat-pool#az_network_lb_inbound_nat_pool_list):
+The new inbound NAT pool should not have an overlapping front-end port range with existing inbound NAT pools. To view existing inbound NAT pools that are set up, use this [CLI command](/cli/azure/network/lb/inbound-nat-pool#az-network-lb-inbound-nat-pool-list):
```azurecli-interactive az network lb inbound-nat-pool create
load-balancer Virtual Network Ipv4 Ipv6 Dual Stack Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/virtual-network-ipv4-ipv6-dual-stack-cli.md
az network lb create \
### Create IPv6 frontend
-Create an IPV6 frontend IP with [az network lb frontend-ip create](/cli/azure/network/lb/frontend-ip#az_network_lb_frontend_ip_create). The following example creates a frontend IP configuration named *dsLbFrontEnd_v6* and attaches the *dsPublicIP_v6* address:
+Create an IPV6 frontend IP with [az network lb frontend-ip create](/cli/azure/network/lb/frontend-ip#az-network-lb-frontend-ip-create). The following example creates a frontend IP configuration named *dsLbFrontEnd_v6* and attaches the *dsPublicIP_v6* address:
```azurecli-interactive az network lb frontend-ip create \
az network lb frontend-ip create \
### Configure IPv6 back-end address pool
-Create a IPv6 back-end address pools with [az network lb address-pool create](/cli/azure/network/lb/address-pool#az_network_lb_address_pool_create). The following example creates back-end address pool named *dsLbBackEndPool_v6* to include VMs with IPv6 NIC configurations:
+Create a IPv6 back-end address pools with [az network lb address-pool create](/cli/azure/network/lb/address-pool#az-network-lb-address-pool-create). The following example creates back-end address pool named *dsLbBackEndPool_v6* to include VMs with IPv6 NIC configurations:
```azurecli-interactive az network lb address-pool create \
az network lb probe create -g DsResourceGroup01 --lb-name dsLB -n dsProbe --pro
A load balancer rule is used to define how traffic is distributed to the VMs. You define the frontend IP configuration for the incoming traffic and the backend IP pool to receive the traffic, along with the required source and destination port.
-Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create). The following example creates load balancer rules named *dsLBrule_v4* and *dsLBrule_v6* and balances traffic on *TCP* port *80* to the IPv4 and IPv6 frontend IP configurations:
+Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create). The following example creates load balancer rules named *dsLBrule_v4* and *dsLBrule_v6* and balances traffic on *TCP* port *80* to the IPv4 and IPv6 frontend IP configurations:
```azurecli-interactive az network lb rule create \
Create a network security group for the rules that will govern inbound and outbo
#### Create a network security group
-Create a network security group with [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create)
+Create a network security group with [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create)
```azurecli-interactive
az network nsg create \
#### Create a network security group rule for inbound and outbound connections
-Create a network security group rule to allow RDP connections through port 3389, internet connection through port 80, and for outbound connections with [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create).
+Create a network security group rule to allow RDP connections through port 3389, internet connection through port 80, and for outbound connections with [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create).
```azurecli-interactive # Create inbound rule for port 3389
az network nsg rule create \
### Create a virtual network
-Create a virtual network with [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create). The following example creates a virtual network named *dsVNET* with subnets *dsSubNET_v4* and *dsSubNET_v6*:
+Create a virtual network with [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create). The following example creates a virtual network named *dsVNET* with subnets *dsSubNET_v4* and *dsSubNET_v6*:
```azurecli-interactive # Create the virtual network
az network vnet subnet create \
### Create NICs
-Create virtual NICs for each VM with [az network nic create](/cli/azure/network/nic#az_network_nic_create). The following example creates a virtual NIC for each VM. Each NIC has two IP configurations (1 IPv4 config, 1 IPv6 config). You create the IPV6 configuration with [az network nic ip-config create](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_create).
+Create virtual NICs for each VM with [az network nic create](/cli/azure/network/nic#az-network-nic-create). The following example creates a virtual NIC for each VM. Each NIC has two IP configurations (1 IPv4 config, 1 IPv6 config). You create the IPV6 configuration with [az network nic ip-config create](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-create).
```azurecli-interactive # Create NICs
az network nic ip-config create \
### Create virtual machines
-Create the VMs with [az vm create](/cli/azure/vm#az_vm_create). The following example creates two VMs and the required virtual network components if they do not already exist.
+Create the VMs with [az vm create](/cli/azure/vm#az-vm-create). The following example creates two VMs and the required virtual network components if they do not already exist.
Create virtual machine *dsVM0* as follows:
You can view the IPv6 dual stack virtual network in Azure portal as follows:
## Clean up resources
-When no longer needed, you can use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, VM, and all related resources.
+When no longer needed, you can use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, VM, and all related resources.
```azurecli-interactive az group delete --name DsResourceGroup01
load-balancer Virtual Network Ipv4 Ipv6 Dual Stack Standard Load Balancer Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/load-balancer/virtual-network-ipv4-ipv6-dual-stack-standard-load-balancer-cli.md
az network lb create \
### Create IPv6 frontend
-Create an IPV6 frontend IP with [az network lb frontend-ip create](/cli/azure/network/lb/frontend-ip#az_network_lb_frontend_ip_create). The following example creates a frontend IP configuration named *dsLbFrontEnd_v6* and attaches the *dsPublicIP_v6* address:
+Create an IPV6 frontend IP with [az network lb frontend-ip create](/cli/azure/network/lb/frontend-ip#az-network-lb-frontend-ip-create). The following example creates a frontend IP configuration named *dsLbFrontEnd_v6* and attaches the *dsPublicIP_v6* address:
```azurecli-interactive az network lb frontend-ip create \
az network lb frontend-ip create \
### Configure IPv6 back-end address pool
-Create a IPv6 back-end address pools with [az network lb address-pool create](/cli/azure/network/lb/address-pool#az_network_lb_address_pool_create). The following example creates back-end address pool named *dsLbBackEndPool_v6* to include VMs with IPv6 NIC configurations:
+Create a IPv6 back-end address pools with [az network lb address-pool create](/cli/azure/network/lb/address-pool#az-network-lb-address-pool-create). The following example creates back-end address pool named *dsLbBackEndPool_v6* to include VMs with IPv6 NIC configurations:
```azurecli-interactive az network lb address-pool create \
az network lb probe create -g DsResourceGroup01 --lb-name dsLB -n dsProbe --pro
A load balancer rule is used to define how traffic is distributed to the VMs. You define the frontend IP configuration for the incoming traffic and the backend IP pool to receive the traffic, along with the required source and destination port.
-Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create). The following example creates load balancer rules named *dsLBrule_v4* and *dsLBrule_v6* and balances traffic on *TCP* port *80* to the IPv4 and IPv6 frontend IP configurations:
+Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create). The following example creates load balancer rules named *dsLBrule_v4* and *dsLBrule_v6* and balances traffic on *TCP* port *80* to the IPv4 and IPv6 frontend IP configurations:
```azurecli-interactive az network lb rule create \
Create a network security group for the rules that will govern inbound and outbo
#### Create a network security group
-Create a network security group with [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create)
+Create a network security group with [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create)
```azurecli-interactive
az network nsg create \
#### Create a network security group rule for inbound and outbound connections
-Create a network security group rule to allow RDP connections through port 3389, internet connection through port 80, and for outbound connections with [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create).
+Create a network security group rule to allow RDP connections through port 3389, internet connection through port 80, and for outbound connections with [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create).
```azurecli-interactive # Create inbound rule for port 3389
az network nsg rule create \
### Create a virtual network
-Create a virtual network with [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create). The following example creates a virtual network named *dsVNET* with subnets *dsSubNET_v4* and *dsSubNET_v6*:
+Create a virtual network with [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create). The following example creates a virtual network named *dsVNET* with subnets *dsSubNET_v4* and *dsSubNET_v6*:
```azurecli-interactive # Create the virtual network
az network vnet subnet create \
### Create NICs
-Create virtual NICs for each VM with [az network nic create](/cli/azure/network/nic#az_network_nic_create). The following example creates a virtual NIC for each VM. Each NIC has two IP configurations (1 IPv4 config, 1 IPv6 config). You create the IPV6 configuration with [az network nic ip-config create](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_create).
+Create virtual NICs for each VM with [az network nic create](/cli/azure/network/nic#az-network-nic-create). The following example creates a virtual NIC for each VM. Each NIC has two IP configurations (1 IPv4 config, 1 IPv6 config). You create the IPV6 configuration with [az network nic ip-config create](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-create).
```azurecli-interactive # Create NICs
az network nic ip-config create \
### Create virtual machines
-Create the VMs with [az vm create](/cli/azure/vm#az_vm_create). The following example creates two VMs and the required virtual network components if they do not already exist.
+Create the VMs with [az vm create](/cli/azure/vm#az-vm-create). The following example creates two VMs and the required virtual network components if they do not already exist.
Create virtual machine *dsVM0* as follows:
You can view the IPv6 dual stack virtual network in Azure portal as follows:
## Clean up resources
-When no longer needed, you can use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, VM, and all related resources.
+When no longer needed, you can use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, VM, and all related resources.
```azurecli-interactive az group delete --name DsResourceGroup01
logic-apps Azure Arc Enabled Logic Apps Create Deploy Workflows https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/logic-apps/azure-arc-enabled-logic-apps-create-deploy-workflows.md
This section describes the common prerequisites across all the approaches and to
To create an Azure Active Directory (Azure AD) app registration using the Azure CLI, follow these steps:
- 1. Create an app registration by using the [`az ad sp create`](/cli/azure/ad/sp#az_ad_sp_create) command.
+ 1. Create an app registration by using the [`az ad sp create`](/cli/azure/ad/sp#az-ad-sp-create) command.
- 1. To review all the details, run the [`az ad sp show`](/cli/azure/ad/sp#az_ad_sp_show) command.
+ 1. To review all the details, run the [`az ad sp show`](/cli/azure/ad/sp#az-ad-sp-show) command.
1. From the output of both commands, find and save the client ID, object ID, tenant ID, and client secret values, which you need to keep for later use.
Before you start, you need to have the following items:
- An Azure storage account to use with your logic app for data and run history retention.
- If you don't have this storage account, you can create this account when you create your logic app, or you can follow the [steps to create a storage account](/cli/azure/storage/account#az_storage_account_create).
+ If you don't have this storage account, you can create this account when you create your logic app, or you can follow the [steps to create a storage account](/cli/azure/storage/account#az-storage-account-create).
<a name="check-environment-cli-version"></a>
logic-apps Connect Virtual Network Vnet Set Up Single Ip Address https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/logic-apps/connect-virtual-network-vnet-set-up-single-ip-address.md
This topic shows how to route outbound traffic through an Azure Firewall, but yo
* [Azure Firewall rule processing logic](../firewall/rule-processing.md#network-rules-and-applications-rules) * [Azure Firewall FAQ](../firewall/firewall-faq.yml) * [Azure PowerShell: New-AzFirewallNetworkRule](/powershell/module/az.network/new-azfirewallnetworkrule)
- * [Azure CLI: az network firewall network-rule](/cli/azure/network/firewall/network-rule#az_network_firewall_network_rule_create)
+ * [Azure CLI: az network firewall network-rule](/cli/azure/network/firewall/network-rule#az-network-firewall-network-rule-create)
## Next steps
logic-apps Logic Apps Deploy Azure Resource Manager Templates https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/logic-apps/logic-apps-deploy-azure-resource-manager-templates.md
az deployment group create -g <Azure-resource-group-name> --template-uri https:/
For more information, see these topics: * [Deploy resources with Resource Manager templates and Azure CLI](../azure-resource-manager/templates/deploy-cli.md)
-* [`az deployment group create`](/cli/azure/deployment/group#az_deployment_group_create)
+* [`az deployment group create`](/cli/azure/deployment/group#az-deployment-group-create)
<a name="azure-pipelines"></a>
logic-apps Logic Apps Enterprise Integration Create Integration Account https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/logic-apps/logic-apps-enterprise-integration-create-integration-account.md
Based on your requirements and scenarios, determine the appropriate integration
| **Free** | For exploratory scenarios, not production scenarios. This tier has limits on region availability, throughput, and usage. For example, the Free tier is available only for public regions in Azure, for example, West US or Southeast Asia, but not for [Azure China 21Vianet](/azure/chin). <p><p>**Note**: Not supported by the Logic Apps SLA. | |||
-For this task, you can use the Azure portal, [Azure CLI](/cli/azure/resource#az_resource_create), or [Azure PowerShell](/powershell/module/Az.LogicApp/New-AzIntegrationAccount).
+For this task, you can use the Azure portal, [Azure CLI](/cli/azure/resource#az-resource-create), or [Azure PowerShell](/powershell/module/Az.LogicApp/New-AzIntegrationAccount).
### [Portal](#tab/azure-portal)
For this task, you can use the Azure portal, [Azure CLI](/cli/azure/resource#az_
[!INCLUDE [azure-cli-prepare-your-environment-h3.md](../../includes/azure-cli-prepare-your-environment-h3.md)]
-1. To add the [az logic integration-account](/cli/azure/logic/integration-account) extension, use the [az extension add](/cli/azure/extension#az_extension_add) command:
+1. To add the [az logic integration-account](/cli/azure/logic/integration-account) extension, use the [az extension add](/cli/azure/extension#az-extension-add) command:
```azurecli az extension add ΓÇô-name logic ```
-1. To create a resource group or use an existing resource group, run the [az group create](/cli/azure/group#az_group_create) command:
+1. To create a resource group or use an existing resource group, run the [az group create](/cli/azure/group#az-group-create) command:
```azurecli az group create --name myresourcegroup --location westus ```
- To list the integration accounts for a resource group, use the [az logic integration-account list](/cli/azure/logic/integration-account#az_logic_integration_account_list) command:
+ To list the integration accounts for a resource group, use the [az logic integration-account list](/cli/azure/logic/integration-account#az-logic-integration-account-list) command:
```azurecli az logic integration-account list --resource-group myresourcegroup ```
-1. To create an integration account, run the [az logic integration-account create](/cli/azure/logic/integration-account#az_logic_integration_account_create) command:
+1. To create an integration account, run the [az logic integration-account create](/cli/azure/logic/integration-account#az-logic-integration-account-create) command:
```azurecli az logic integration-account create --resource-group myresourcegroup \
For this task, you can use the Azure portal, [Azure CLI](/cli/azure/resource#az_
Your integration account name can contain only letters, numbers, hyphens (-), underscores (_), parentheses ((, )), and periods (.).
- To view a specific integration account, use the [az logic integration-account show](/cli/azure/logic/integration-account#az_logic_integration_account_show) command:
+ To view a specific integration account, use the [az logic integration-account show](/cli/azure/logic/integration-account#az-logic-integration-account-show) command:
```azurecli az logic integration-account show --name integration_account_01 --resource-group myresourcegroup ```
- You can change your SKU, or pricing tier, by using the [az logic integration-account update](/cli/azure/logic/integration-account#az_logic_integration_account_update) command:
+ You can change your SKU, or pricing tier, by using the [az logic integration-account update](/cli/azure/logic/integration-account#az-logic-integration-account-update) command:
```azurecli az logic integration-account update --sku name=Basic --name integration_account_01 \
For this task, you can use the Azure portal, [Azure CLI](/cli/azure/resource#az_
* [Logic Apps limits and configuration](logic-apps-limits-and-config.md#integration-account-limits) * [Logic Apps pricing](https://azure.microsoft.com/pricing/details/logic-apps/)
-To import an integration account by using a JSON file, use the [az logic integration-account import](/cli/azure/logic/integration-account#az_logic_integration_account_import) command:
+To import an integration account by using a JSON file, use the [az logic integration-account import](/cli/azure/logic/integration-account#az-logic-integration-account-import) command:
```azurecli az logic integration-account import --name integration_account_01 \
To make this change, you can use either the Azure portal or the Azure CLI.
![Screenshot that shows the Azure portal toolbar with "Cloud Shell" selected.](./media/logic-apps-enterprise-integration-create-integration-account/open-azure-cloud-shell-window.png)
-1. At the command prompt, enter the [**az resource** command](/cli/azure/resource#az_resource_update), and set `skuName` to the higher tier that you want.
+1. At the command prompt, enter the [**az resource** command](/cli/azure/resource#az-resource-update), and set `skuName` to the higher tier that you want.
```azurecli az resource update --resource-group {ResourceGroupName} --resource-type Microsoft.Logic/integrationAccounts --name {IntegrationAccountName} --subscription {AzureSubscriptionID} --set sku.name={SkuName}
To make this change, use the [Azure CLI](/cli/azure/get-started-with-azure-cli).
![Screenshot that shows the Azure portal toolbar with "Cloud Shell" selected.](./media/logic-apps-enterprise-integration-create-integration-account/open-azure-cloud-shell-window.png)
-1. At the command prompt, enter the [**az resource** command](/cli/azure/resource#az_resource_update) and set `skuName` to the lower tier that you want.
+1. At the command prompt, enter the [**az resource** command](/cli/azure/resource#az-resource-update) and set `skuName` to the lower tier that you want.
```azurecli az resource update --resource-group <resourceGroupName> --resource-type Microsoft.Logic/integrationAccounts --name <integrationAccountName> --subscription <AzureSubscriptionID> --set sku.name=<skuName>
If you want to link your logic app to another integration account, or no longer
You can move your integration account to another Azure resource group or Azure subscription. When you move resources, Azure creates new resource IDs, so make sure that you use the new IDs instead and update any scripts or tools associated with the moved resources. If you want to change the subscription, you must also specify an existing or new resource group.
-For this task, you can use either the Azure portal by following the steps in this section or the [Azure CLI](/cli/azure/resource#az_resource_move).
+For this task, you can use either the Azure portal by following the steps in this section or the [Azure CLI](/cli/azure/resource#az-resource-move).
1. Sign in to the [Azure portal](https://portal.azure.com) with your Azure account credentials.
For this task, you can use either the Azure portal by following the steps in thi
## Delete integration account
-For this task, you can use either the Azure portal by following the steps in this section, [Azure CLI](/cli/azure/resource#az_resource_delete), or [Azure PowerShell](/powershell/module/az.logicapp/remove-azintegrationaccount).
+For this task, you can use either the Azure portal by following the steps in this section, [Azure CLI](/cli/azure/resource#az-resource-delete), or [Azure PowerShell](/powershell/module/az.logicapp/remove-azintegrationaccount).
### [Portal](#tab/azure-portal)
For this task, you can use either the Azure portal by following the steps in thi
#### [Azure CLI](#tab/azure-cli)
-You can delete an integration account by using the [az logic integration-account delete](/cli/azure/logic/integration-account#az_logic_integration_account_delete) command:
+You can delete an integration account by using the [az logic integration-account delete](/cli/azure/logic/integration-account#az-logic-integration-account-delete) command:
```azurecli az logic integration-account delete --name integration_account_01 --resource-group myresourcegroup
logic-apps Quickstart Create Deploy Azure Resource Manager Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/logic-apps/quickstart-create-deploy-azure-resource-manager-template.md
az logic workflow show --name $logicAppName &&
echo "Press [ENTER] to continue ..." ```
-For more information, see [Azure CLI: az logic workflow show](/cli/azure/logic/workflow#az_logic_workflow_show).
+For more information, see [Azure CLI: az logic workflow show](/cli/azure/logic/workflow#az-logic-workflow-show).
### [PowerShell](#tab/azure-powershell)
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..." ```
-For more information, see [Azure CLI: az group delete](/cli/azure/group#az_group_delete).
+For more information, see [Azure CLI: az group delete](/cli/azure/group#az-group-delete).
### [PowerShell](#tab/azure-powershell)
logic-apps Quickstart Logic Apps Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/logic-apps/quickstart-logic-apps-azure-cli.md
When you run the commands to create or update your logic app, your workflow defi
## Create logic apps from CLI
-You can create a logic app workflow from the Azure CLI using the command [`az logic workflow create`](/cli/azure/logic/workflow#az_logic_workflow_create) with a JSON file for the definition.
+You can create a logic app workflow from the Azure CLI using the command [`az logic workflow create`](/cli/azure/logic/workflow#az-logic-workflow-create) with a JSON file for the definition.
```azurecli az logic workflow create --definition
az logic workflow create --definition
[--tags] ```
-Your command must include the following [required parameters](/cli/azure/logic/workflow#az_logic_workflow_create-required-parameters):
+Your command must include the following [required parameters](/cli/azure/logic/workflow#az-logic-workflow-create-required-parameters):
| Parameter | Value | Description | | | -- | -- |
Your command must include the following [required parameters](/cli/azure/logic/w
| Resource group name | `--resource-group -g` | The [Azure resource group](../azure-resource-manager/management/overview.md) in which you want to create your logic app. [Create a resource group](#examplecreate-resource-group) before you begin if you don't already have one for your logic app. | ||||
-You can also include additional [optional parameters](/cli/azure/logic/workflow#az_logic_workflow_create-optional-parameters) to configure your logic app's access controls, endpoints, integration account, integration service environment, state, and resource tags.
+You can also include additional [optional parameters](/cli/azure/logic/workflow#az-logic-workflow-create-optional-parameters) to configure your logic app's access controls, endpoints, integration account, integration service environment, state, and resource tags.
### Example - create logic app
When your workflow is successfully created, the CLI shows your new workflow defi
## Update logic apps from CLI
-You can also update a logic app's workflow from the Azure CLI using the command [`az logic workflow create`](/cli/azure/logic/workflow#az_logic_workflow_create).
+You can also update a logic app's workflow from the Azure CLI using the command [`az logic workflow create`](/cli/azure/logic/workflow#az-logic-workflow-create).
-Your command must include the same [required parameters](/cli/azure/logic/workflow#az_logic_workflow_create-required-parameters) as when you [create a logic app](#create-logic-apps-from-cli). You can also add the same [optional parameters](/cli/azure/logic/workflow#az_logic_workflow_create-optional-parameters) as when creating a logic app.
+Your command must include the same [required parameters](/cli/azure/logic/workflow#az-logic-workflow-create-required-parameters) as when you [create a logic app](#create-logic-apps-from-cli). You can also add the same [optional parameters](/cli/azure/logic/workflow#az-logic-workflow-create-optional-parameters) as when creating a logic app.
```azurecli az logic workflow create --definition
When your workflow is successfully updated, the CLI shows your logic app's updat
## Delete logic apps from CLI
-You can delete a logic app's workflow from the Azure CLI using the command [`az logic workflow delete`](/cli/azure/logic/workflow#az_logic_workflow_delete).
+You can delete a logic app's workflow from the Azure CLI using the command [`az logic workflow delete`](/cli/azure/logic/workflow#az-logic-workflow-delete).
-Your command must include the following [required parameters](/cli/azure/logic/workflow#az_logic_workflow_delete-required-parameters):
+Your command must include the following [required parameters](/cli/azure/logic/workflow#az-logic-workflow-delete-required-parameters):
| Parameter | Value | Description | | | -- | -- |
Your command must include the following [required parameters](/cli/azure/logic/w
| Resource group name | `-resource-group -g` | The resource group in which your logic app is located. | ||||
-You can also include an [optional parameter](/cli/azure/logic/workflow#az_logic_workflow_delete-optional-parameters) to skip confirmation prompts, `--yes -y`.
+You can also include an [optional parameter](/cli/azure/logic/workflow#az-logic-workflow-delete-optional-parameters) to skip confirmation prompts, `--yes -y`.
```azurecli az logic workflow delete --name
Deleting a logic app affects workflow instances in the following ways:
## Show logic apps in CLI
-You can get a specific logic app workflow using the command [`az logic workflow show`](/cli/azure/logic/workflow#az_logic_workflow_show).
+You can get a specific logic app workflow using the command [`az logic workflow show`](/cli/azure/logic/workflow#az-logic-workflow-show).
```azurecli az logic workflow show --name --resource-group ```
-Your command must include the following [required parameters](/cli/azure/logic/workflow#az_logic_workflow_show-required-parameters)
+Your command must include the following [required parameters](/cli/azure/logic/workflow#az-logic-workflow-show-required-parameters)
| Parameter | Value | Description | | | -- | -- |
az logic workflow show --resource-group "testResourceGroup" --name "testLogicApp
## List logic apps in CLI
-You can list your logic apps by subscription using the command [`az logic workflow list`](/cli/azure/logic/workflow#az_logic_workflow_list). This command returns the JSON code for your logic apps' workflows.
+You can list your logic apps by subscription using the command [`az logic workflow list`](/cli/azure/logic/workflow#az-logic-workflow-list). This command returns the JSON code for your logic apps' workflows.
-You can filter your results by the following [optional parameters](/cli/azure/logic/workflow#az_logic_workflow_list-optional-parameters):
+You can filter your results by the following [optional parameters](/cli/azure/logic/workflow#az-logic-workflow-list-optional-parameters):
| Parameter | Value | Description | | | -- | -- |
logic-apps Sample Logic Apps Cli Script https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/logic-apps/sample-logic-apps-cli-script.md
This sample script uses the following commands to create a new resource group an
| Command | Notes | | - | -- |
-| [`az group create`](/cli/azure/group#az_group_create) | Creates a resource group in which your logic app's resources are stored. |
-| [`az logic workflow create`](/cli/azure/logic/workflow#az_logic_workflow_create) | Creates a logic app based on the workflow defined in the parameter `--definition`. |
+| [`az group create`](/cli/azure/group#az-group-create) | Creates a resource group in which your logic app's resources are stored. |
+| [`az logic workflow create`](/cli/azure/logic/workflow#az-logic-workflow-create) | Creates a logic app based on the workflow defined in the parameter `--definition`. |
| [`az group delete`](/cli/azure/vm/extension) | Deletes a resource group and all of its nested resources. | ## Next steps
logic-apps Set Up Devops Deployment Single Tenant Azure Logic Apps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/logic-apps/set-up-devops-deployment-single-tenant-azure-logic-apps.md
If you use other deployment tools, you can deploy your single-tenant based logic
- An Azure storage account to use with your logic app for data and run history retention.
- If you don't have this storage account, follow the [steps to create a storage account](/cli/azure/storage/account#az_storage_account_create).
+ If you don't have this storage account, follow the [steps to create a storage account](/cli/azure/storage/account#az-storage-account-create).
<a name="check-environment-cli-version"></a>
logic-apps Tutorial Process Email Attachments Workflow https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/logic-apps/tutorial-process-email-attachments-workflow.md
You can save incoming emails and attachments as blobs in an [Azure storage conta
![Finished storage container](./media/tutorial-process-email-attachments-workflow/created-storage-container.png)
- To create a storage container, you can also use [Azure PowerShell](/powershell/module/az.storage/new-azstoragecontainer) or [Azure CLI](/cli/azure/storage/container#az_storage_container_create).
+ To create a storage container, you can also use [Azure PowerShell](/powershell/module/az.storage/new-azstoragecontainer) or [Azure CLI](/cli/azure/storage/container#az-storage-container-create).
Next, connect Storage Explorer to your storage account.
machine-learning Concept Compute Target https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/concept-compute-target.md
If using the GPU-enabled compute targets, it is important to ensure that the cor
In addition to ensuring the CUDA version and hardware are compatible, also ensure that the CUDA version is compatible with the version of the machine learning framework you are using: -- For PyTorch, you can check the compatibility [here](https://pytorch.org/get-started/previous-versions/). -- For Tensorflow, you can check the compatibility [here](https://www.tensorflow.org/install/source#gpu).
+- For PyTorch, you can check the compatibility by visiting [Pytorch's previous versions page](https://pytorch.org/get-started/previous-versions/).
+- For Tensorflow, you can check the compatibility by visiting [Tensorflow's build from source page](https://www.tensorflow.org/install/source#gpu).
### Compute isolation
machine-learning How To Attach Arc Kubernetes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-attach-arc-kubernetes.md
kubectl get pods -n azureml
``` ## Update Azure Machine Learning extension
-Use ```k8s-extension update``` CLI command to update the mutable properties of Azure Machine Learning extension. For more information, see the [`k8s-extension update` CLI command documentation](/cli/azure/k8s-extension?view=azure-cli-latest#az_k8s_extension_update&preserve-view=true).
+Use ```k8s-extension update``` CLI command to update the mutable properties of Azure Machine Learning extension. For more information, see the [`k8s-extension update` CLI command documentation](/cli/azure/k8s-extension?view=azure-cli-latest#az-k8s-extension-update&preserve-view=true).
1. Azure Arc supports update of ``--auto-upgrade-minor-version``, ``--version``, ``--configuration-settings``, ``--configuration-protected-settings``. 2. For configurationSettings, only the settings that require update need to be provided. If the user provides all settings, they would be merged/overwritten with the provided values.
Use ```k8s-extension update``` CLI command to update the mutable properties of
## Delete Azure Machine Learning extension
-Use [`k8s-extension delete`](/cli/azure/k8s-extension?view=azure-cli-latest#az_k8s_extension_delete&preserve-view=true) CLI command to delete the Azure Machine Learning extension.
+Use [`k8s-extension delete`](/cli/azure/k8s-extension?view=azure-cli-latest#az-k8s-extension-delete&preserve-view=true) CLI command to delete the Azure Machine Learning extension.
It takes around 10 minutes to delete all components deployed to the Kubernetes cluster. Run `kubectl get pods -n azureml` to check if all components were deleted.
machine-learning How To Auto Train Forecast https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-auto-train-forecast.md
Automated ML considers a time series a **short series** if there are not enough
Automated ML offers short series handling by default with the `short_series_handling_configuration` parameter in the `ForecastingParameters` object.
-To enable short series handling, the `freq` parameter must also be defined. To define an hourly frequency, we will set `freq='H'`. View the frequency string options [here](https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects). To change the default behavior, `short_series_handling_configuration = 'auto'`, update the `short_series_handling_configuration` parameter in your `ForecastingParameter` object.
+To enable short series handling, the `freq` parameter must also be defined. To define an hourly frequency, we will set `freq='H'`. View the frequency string options by visiting the [pandas Time series page DataOffset objects section](https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects). To change the default behavior, `short_series_handling_configuration = 'auto'`, update the `short_series_handling_configuration` parameter in your `ForecastingParameter` object.
```python from azureml.automl.core.forecasting_parameters import ForecastingParameters
machine-learning How To Configure Private Link https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-configure-private-link.md
az ml workspace create \
--file privatelink.yml ```
-After creating the workspace, use the [Azure networking CLI commands](/cli/azure/network/private-endpoint#az_network_private_endpoint_create) to create a private link endpoint for the workspace.
+After creating the workspace, use the [Azure networking CLI commands](/cli/azure/network/private-endpoint#az-network-private-endpoint-create) to create a private link endpoint for the workspace.
```azurecli-interactive az network private-endpoint create \
az network private-endpoint dns-zone-group add \
# [Azure CLI extension 1.0](#tab/azurecliextensionv1)
-If you are using the Azure CLI [extension 1.0 for machine learning](reference-azure-machine-learning-cli.md), use the [az ml workspace create](/cli/azure/ml/workspace#az_ml_workspace_create) command. The following parameters for this command can be used to create a workspace with a private network, but it requires an existing virtual network:
+If you are using the Azure CLI [extension 1.0 for machine learning](reference-azure-machine-learning-cli.md), use the [az ml workspace create](/cli/azure/ml/workspace#az-ml-workspace-create) command. The following parameters for this command can be used to create a workspace with a private network, but it requires an existing virtual network:
* `--pe-name`: The name of the private endpoint that is created. * `--pe-auto-approval`: Whether private endpoint connections to the workspace should be automatically approved.
For more information on the classes and methods used in this example, see [Priva
# [Azure CLI extension 2.0 preview](#tab/azurecliextensionv2)
-When using the Azure CLI [extension 2.0 CLI preview for machine learning](how-to-configure-cli.md), use the [Azure networking CLI commands](/cli/azure/network/private-endpoint#az_network_private_endpoint_create) to create a private link endpoint for the workspace.
+When using the Azure CLI [extension 2.0 CLI preview for machine learning](how-to-configure-cli.md), use the [Azure networking CLI commands](/cli/azure/network/private-endpoint#az-network-private-endpoint-create) to create a private link endpoint for the workspace.
```azurecli-interactive az network private-endpoint create \
az network private-endpoint dns-zone-group add \
# [Azure CLI extension 1.0](#tab/azurecliextensionv1)
-The Azure CLI [extension 1.0 for machine learning](reference-azure-machine-learning-cli.md) provides the [az ml workspace private-endpoint add](/cli/azure/ml(v1)/workspace/private-endpoint#az_ml_workspace_private_endpoint_add) command.
+The Azure CLI [extension 1.0 for machine learning](reference-azure-machine-learning-cli.md) provides the [az ml workspace private-endpoint add](/cli/azure/ml(v1)/workspace/private-endpoint#az-ml-workspace-private-endpoint-add) command.
```azurecli az ml workspace private-endpoint add -w myworkspace --pe-name myprivateendpoint --pe-auto-approval --pe-vnet-name myvnet
az network private-endpoint delete \
# [Azure CLI extension 1.0](#tab/azurecliextensionv1)
-The Azure CLI [extension 1.0 for machine learning](reference-azure-machine-learning-cli.md) provides the [az ml workspace private-endpoint delete](/cli/azure/ml(v1)/workspace/private-endpoint#az_ml_workspace_private_endpoint_delete) command.
+The Azure CLI [extension 1.0 for machine learning](reference-azure-machine-learning-cli.md) provides the [az ml workspace private-endpoint delete](/cli/azure/ml(v1)/workspace/private-endpoint#az-ml-workspace-private-endpoint-delete) command.
# [Portal](#tab/azure-portal)
az ml workspace update \
# [Azure CLI extension 1.0](#tab/azurecliextensionv1)
-The Azure CLI [extension 1.0 for machine learning](reference-azure-machine-learning-cli.md) provides the [az ml workspace update](/cli/azure/ml/workspace#az_ml_workspace_update) command. To enable public access to the workspace, add the parameter `--allow-public-access true`.
+The Azure CLI [extension 1.0 for machine learning](reference-azure-machine-learning-cli.md) provides the [az ml workspace update](/cli/azure/ml/workspace#az-ml-workspace-update) command. To enable public access to the workspace, add the parameter `--allow-public-access true`.
# [Portal](#tab/azure-portal)
machine-learning How To Consume Web Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-consume-web-service.md
There are a several ways to retrieve this information for deployed web
[!INCLUDE [cli v1](../../includes/machine-learning-cli-v1.md)]
-If you know the name of the deployed service, use the [az ml service show](/cli/azure/ml(v1)/service#az_ml_service_show) command:
+If you know the name of the deployed service, use the [az ml service show](/cli/azure/ml(v1)/service#az-ml-service-show) command:
```azurecli az ml service show -n <service-name>
machine-learning How To Create Attach Compute Cluster https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-create-attach-compute-cluster.md
az ml computetarget create amlcompute -n cpu --min-nodes 1 --max-nodes 1 -s STAN
> [!WARNING] > When using a compute cluster in a different region than your workspace or datastores, you may see increased network latency and data transfer costs. The latency and costs can occur when creating the cluster, and when running jobs on it.
-For more information, see [az ml computetarget create amlcompute](/cli/azure/ml(v1)/computetarget/create#az_ml_computetarget_create_amlcompute).
+For more information, see [az ml computetarget create amlcompute](/cli/azure/ml(v1)/computetarget/create#az-ml-computetarget-create-amlcompute).
# [Studio](#tab/azure-studio)
machine-learning How To Create Attach Kubernetes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-create-attach-kubernetes.md
When **attaching** an existing AKS cluster, we support all currently supported A
### Available and default versions
-To find the available and default AKS versions, use the [Azure CLI](/cli/azure/install-azure-cli) command [az aks get-versions](/cli/azure/aks#az_aks_get_versions). For example, the following command returns the versions available in the West US region:
+To find the available and default AKS versions, use the [Azure CLI](/cli/azure/install-azure-cli) command [az aks get-versions](/cli/azure/aks#az-aks-get-versions). For example, the following command returns the versions available in the West US region:
```azurecli-interactive az aks get-versions -l westus -o table
For more information on the classes, methods, and parameters used in this exampl
az ml computetarget create aks -n myaks ```
-For more information, see the [az ml computetarget create aks](/cli/azure/ml(v1)/computetarget/create#az_ml_computetarget_create_aks) reference.
+For more information, see the [az ml computetarget create aks](/cli/azure/ml(v1)/computetarget/create#az-ml-computetarget-create-aks) reference.
# [Portal](#tab/azure-portal)
If you already have AKS cluster in your Azure subscription, you can use it with
For more information on creating an AKS cluster using the Azure CLI or portal, see the following articles:
-* [Create an AKS cluster (CLI)](/cli/azure/aks?bc=%2fazure%2fbread%2ftoc.json&toc=%2fazure%2faks%2fTOC.json#az_aks_create)
+* [Create an AKS cluster (CLI)](/cli/azure/aks?bc=%2fazure%2fbread%2ftoc.json&toc=%2fazure%2faks%2fTOC.json#az-aks-create)
* [Create an AKS cluster (portal)](../aks/kubernetes-walkthrough-portal.md) * [Create an AKS cluster (ARM Template on Azure Quickstart templates)](https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.containerinstance/aks-azml-targetcompute)
To attach the existing cluster to your workspace, use the following command. Rep
az ml computetarget attach aks -n myaks -i aksresourceid -g myresourcegroup -w myworkspace ```
-For more information, see the [az ml computetarget attach aks](/cli/azure/ml(v1)/computetarget/attach#az_ml_computetarget_attach_aks) reference.
+For more information, see the [az ml computetarget attach aks](/cli/azure/ml(v1)/computetarget/attach#az-ml-computetarget-attach-aks) reference.
# [Portal](#tab/azure-portal)
machine-learning How To Create Manage Compute Instance https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-create-manage-compute-instance.md
For more information on the classes, methods, and parameters used in this exampl
az ml computetarget create computeinstance -n instance -s "STANDARD_D3_V2" -v ```
-For more information, see the [az ml computetarget create computeinstance](/cli/azure/ml(v1)/computetarget/create#az_ml_computetarget_create_computeinstance) reference.
+For more information, see the [az ml computetarget create computeinstance](/cli/azure/ml(v1)/computetarget/create#az-ml-computetarget-create-computeinstance) reference.
# [Studio](#tab/azure-studio)
In the examples below, the name of the compute instance is **instance**
az ml computetarget stop computeinstance -n instance -v ```
- For more information, see [az ml computetarget stop computeinstance](/cli/azure/ml(v1)/computetarget/computeinstance#az_ml_computetarget_computeinstance_stop).
+ For more information, see [az ml computetarget stop computeinstance](/cli/azure/ml(v1)/computetarget/computeinstance#az-ml-computetarget-computeinstance-stop).
* Start
In the examples below, the name of the compute instance is **instance**
az ml computetarget start computeinstance -n instance -v ```
- For more information, see [az ml computetarget start computeinstance](/cli/azure/ml(v1)/computetarget/computeinstance#az_ml_computetarget_computeinstance_start).
+ For more information, see [az ml computetarget start computeinstance](/cli/azure/ml(v1)/computetarget/computeinstance#az-ml-computetarget-computeinstance-start).
* Restart
In the examples below, the name of the compute instance is **instance**
az ml computetarget restart computeinstance -n instance -v ```
- For more information, see [az ml computetarget restart computeinstance](/cli/azure/ml(v1)/computetarget/computeinstance#az_ml_computetarget_computeinstance_restart).
+ For more information, see [az ml computetarget restart computeinstance](/cli/azure/ml(v1)/computetarget/computeinstance#az-ml-computetarget-computeinstance-restart).
* Delete
In the examples below, the name of the compute instance is **instance**
az ml computetarget delete -n instance -v ```
- For more information, see [az ml computetarget delete computeinstance](/cli/azure/ml(v1)/computetarget#az_ml_computetarget_delete).
+ For more information, see [az ml computetarget delete computeinstance](/cli/azure/ml(v1)/computetarget#az-ml-computetarget-delete).
# [Studio](#tab/azure-studio) <a name="schedule"></a>
machine-learning How To Deploy And Where https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-deploy-and-where.md
To delete a deployed webservice, use `az ml service delete <name of webservice>`
To delete a registered model from your workspace, use `az ml model delete <model id>`
-Read more about [deleting a webservice](/cli/azure/ml(v1)/computetarget/create#az_ml_service_delete) and [deleting a model](/cli/azure/ml/model#az_ml_model_delete).
+Read more about [deleting a webservice](/cli/azure/ml(v1)/computetarget/create#az-ml-service-delete) and [deleting a model](/cli/azure/ml/model#az-ml-model-delete).
# [Python](#tab/python)
machine-learning How To Deploy Azure Container Instance https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-deploy-azure-container-instance.md
az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc depl
[!INCLUDE [deploymentconfig](../../includes/machine-learning-service-aci-deploy-config.md)]
-For more information, see the [az ml model deploy](/cli/azure/ml/model#az_ml_model_deploy) reference.
+For more information, see the [az ml model deploy](/cli/azure/ml/model#az-ml-model-deploy) reference.
## Using VS Code
machine-learning How To Deploy Azure Kubernetes Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-deploy-azure-kubernetes-service.md
az ml model deploy --ct myaks -m mymodel:1 -n myservice --ic inferenceconfig.jso
[!INCLUDE [deploymentconfig](../../includes/machine-learning-service-aks-deploy-config.md)]
-For more information, see the [az ml model deploy](/cli/azure/ml/model#az_ml_model_deploy) reference.
+For more information, see the [az ml model deploy](/cli/azure/ml/model#az-ml-model-deploy) reference.
# [Visual Studio Code](#tab/visual-studio-code)
print(token)
> > Microsoft strongly recommends that you create your Azure Machine Learning workspace in the same region as your Azure Kubernetes Service cluster. To authenticate with a token, the web service will make a call to the region in which your Azure Machine Learning workspace is created. If your workspace's region is unavailable, then you will not be able to fetch a token for your web service even, if your cluster is in a different region than your workspace. This effectively results in Token-based Authentication being unavailable until your workspace's region is available again. In addition, the greater the distance between your cluster's region and your workspace's region, the longer it will take to fetch a token. >
-> To retrieve a token, you must use the Azure Machine Learning SDK or the [az ml service get-access-token](/cli/azure/ml(v1)/computetarget/create#az_ml_service_get_access_token) command.
+> To retrieve a token, you must use the Azure Machine Learning SDK or the [az ml service get-access-token](/cli/azure/ml(v1)/computetarget/create#az-ml-service-get-access-token) command.
### Vulnerability scanning
machine-learning How To Deploy Local https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-deploy-local.md
Using Docker to deploy your model as a web service is the most common option. Bu
You can download the model: - From the portal, by selecting the **Models** tab, selecting the desired model, and on the **Details** page, selecting **Download**.-- From the command line, by using `az ml model download`. (See [model download.](/cli/azure/ml/model#az_ml_model_download))
+- From the command line, by using `az ml model download`. (See [model download.](/cli/azure/ml/model#az-ml-model-download))
- By using the Python SDK `Model.download()` method. (See [Model class.](/python/api/azureml-core/azureml.core.model.model#download-target-direxist-ok-false--exists-ok-none-)) An Azure model may be in whatever form your framework uses but is generally one or more serialized Python objects, packaged as a Python pickle file (.pkl extension). The contents of the pickle file depend on the machine learning library or technique used to train the model. For example, if you're using the model from the tutorial, you might load the model with:
machine-learning How To Deploy Update Web Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-deploy-update-web-service.md > > To update the service to use a new entry script or environment, create an [inference configuration file](./reference-azure-machine-learning-cli.md#inference-configuration-schema) and specify it with the `ic` parameter.
-For more information, see the [az ml service update](/cli/azure/ml(v1)/service#az_ml_v1__service_update) documentation.
+For more information, see the [az ml service update](/cli/azure/ml(v1)/service#az-ml-v1--service-update) documentation.
## Next steps
machine-learning How To Github Actions Machine Learning https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-github-actions-machine-learning.md
Create a new repository off the [ML Ops with GitHub Actions and Azure Machine Le
## Generate deployment credentials
-You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
```azurecli-interactive az ad sp create-for-rbac --name "myML" --role contributor \
machine-learning How To Manage Optimize Cost https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-manage-optimize-cost.md
You can also configure the amount of time the node is idle before scale down. By
+ If you perform less iterative experimentation, reduce this time to save costs. + If you perform highly iterative dev/test experimentation, you might need to increase the time so you aren't paying for constant scaling up and down after each change to your training script or environment.
-AmlCompute clusters can be configured for your changing workload requirements in Azure portal, using the [AmlCompute SDK class](/python/api/azureml-core/azureml.core.compute.amlcompute.amlcompute), [AmlCompute CLI](/cli/azure/ml(v1)/computetarget/create#az_ml_v1__computetarget_create_amlcompute), with the [REST APIs](https://github.com/Azure/azure-rest-api-specs/tree/master/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable).
+AmlCompute clusters can be configured for your changing workload requirements in Azure portal, using the [AmlCompute SDK class](/python/api/azureml-core/azureml.core.compute.amlcompute.amlcompute), [AmlCompute CLI](/cli/azure/ml(v1)/computetarget/create#az-ml-v1--computetarget-create-amlcompute), with the [REST APIs](https://github.com/Azure/azure-rest-api-specs/tree/master/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable).
[!INCLUDE [cli v1](../../includes/machine-learning-cli-v1.md)]
machine-learning How To Manage Workspace Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-manage-workspace-cli.md
When using private link, your workspace cannot use Azure Container Registry task
az ml workspace create -g <resource-group-name> --file privatelink.yml ```
-After creating the workspace, use the [Azure networking CLI commands](/cli/azure/network/private-endpoint#az_network_private_endpoint_create) to create a private link endpoint for the workspace.
+After creating the workspace, use the [Azure networking CLI commands](/cli/azure/network/private-endpoint#az-network-private-endpoint-create) to create a private link endpoint for the workspace.
```azurecli-interactive az network private-endpoint create \
az ml workspace show -n <workspace-name> -g <resource-group-name>
-For more information, see the [az ml workspace show](/cli/azure/ml/workspace#az_ml_workspace_show) documentation.
+For more information, see the [az ml workspace show](/cli/azure/ml/workspace#az-ml-workspace-show) documentation.
### Update a workspace
az ml workspace update -n <workspace-name> -g <resource-group-name>
-For more information, see the [az ml workspace update](/cli/azure/ml/workspace#az_ml_workspace_update) documentation.
+For more information, see the [az ml workspace update](/cli/azure/ml/workspace#az-ml-workspace-update) documentation.
### Sync keys for dependent resources
az ml workspace sync-keys -n <workspace-name> -g <resource-group-name>
For more information on changing keys, see [Regenerate storage access keys](how-to-change-storage-access-key.md).
-For more information on the sync-keys command, see [az ml workspace sync-keys](/cli/azure/ml/workspace#az_ml_workspace_sync-keys).
+For more information on the sync-keys command, see [az ml workspace sync-keys](/cli/azure/ml/workspace#az-ml-workspace-sync-keys).
### Delete a workspace
You can also delete the resource group, which deletes the workspace and all othe
az group delete -g <resource-group-name> ```
-For more information, see the [az ml workspace delete](/cli/azure/ml/workspace#az_ml_workspace_delete) documentation.
+For more information, see the [az ml workspace delete](/cli/azure/ml/workspace#az-ml-workspace-delete) documentation.
If you accidentally deleted your workspace, are still able to retrieve your notebooks. Please refer to [this documentation](./how-to-high-availability-machine-learning.md#workspace-deletion).
machine-learning How To Manage Workspace https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-manage-workspace.md
As your needs change or requirements for automation increase you can also manage
[!INCLUDE [register-namespace](../../includes/machine-learning-register-namespace.md)]
-By default, creating a workspace also creates an Azure Container Registry (ACR). Since ACR does not currently support unicode characters in resource group names, use a resource group that does not contain these characters.
+* By default, creating a workspace also creates an Azure Container Registry (ACR). Since ACR does not currently support unicode characters in resource group names, use a resource group that does not contain these characters.
+
+* Azure Machine Learning does not support hierarchical namespace (Azure Data Lake Storage Gen2 feature) for the workspace's default storage account.
[!INCLUDE [application-insight](../../includes/machine-learning-application-insight.md)]
machine-learning How To Secure Inferencing Vnet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-secure-inferencing-vnet.md
az ml computetarget update aks \
```
-For more information, see the [az ml computetarget create aks](/cli/azure/ml(v1)/computetarget/create#az_ml_computetarget_create_aks) and [az ml computetarget update aks](/cli/azure/ml(v1)/computetarget/update#az_ml_computetarget_update_aks) reference.
+For more information, see the [az ml computetarget create aks](/cli/azure/ml(v1)/computetarget/create#az-ml-computetarget-create-aks) and [az ml computetarget update aks](/cli/azure/ml(v1)/computetarget/update#az-ml-computetarget-update-aks) reference.
machine-learning How To Track Monitor Analyze Runs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-track-monitor-analyze-runs.md
You'll need the following items:
This command creates a `.azureml` subdirectory that contains example runconfig and conda environment files. It also contains a `config.json` file that is used to communicate with your Azure Machine Learning workspace.
- For more information, see [az ml folder attach](/cli/azure/ml(v1)/folder#az_ml_folder_attach).
+ For more information, see [az ml folder attach](/cli/azure/ml(v1)/folder#az-ml-folder-attach).
2. To start the run, use the following command. When using this command, specify the name of the runconfig file (the text before \*.runconfig if you're looking at your file system) against the -c parameter.
You'll need the following items:
> > For more example runconfig files, see [https://github.com/MicrosoftDocs/pipelines-azureml/](https://github.com/MicrosoftDocs/pipelines-azureml/).
- For more information, see [az ml run submit-script](/cli/azure/ml(v1)/run#az_ml_run_submit-script).
+ For more information, see [az ml run submit-script](/cli/azure/ml(v1)/run#az-ml-run-submit-script).
# [Studio](#tab/azure-studio)
You'll need the following items:
This command returns a JSON document that lists information about runs for this experiment.
- For more information, see [az ml experiment list](/cli/azure/ml(v1)/experiment#az_ml_experiment_list).
+ For more information, see [az ml experiment list](/cli/azure/ml(v1)/experiment#az-ml-experiment-list).
* To view information on a specific run, use the following command. Replace `runid` with the ID of the run:
You'll need the following items:
This command returns a JSON document that lists information about the run.
- For more information, see [az ml run show](/cli/azure/ml(v1)/run#az_ml_run_show).
+ For more information, see [az ml run show](/cli/azure/ml(v1)/run#az-ml-run-show).
# [Studio](#tab/azure-studio)
In Azure Machine Learning, you can use properties and tags to help organize and
az ml run update -r runid --add-tag quality='fantastic run' ```
- For more information, see [az ml run update](/cli/azure/ml(v1)/run#az_ml_run_update).
+ For more information, see [az ml run update](/cli/azure/ml(v1)/run#az-ml-run-update).
# [Studio](#tab/azure-studio)
To cancel a run using the CLI, use the following command. Replace `runid` with t
az ml run cancel -r runid -w workspace_name -e experiment_name ```
-For more information, see [az ml run cancel](/cli/azure/ml(v1)/run#az_ml_run_cancel).
+For more information, see [az ml run cancel](/cli/azure/ml(v1)/run#az-ml-run-cancel).
# [Studio](#tab/azure-studio)
machine-learning How To Train Scikit Learn https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-train-scikit-learn.md
ws = Workspace.from_config()
### Prepare scripts
-In this tutorial, the training script **train_iris.py** is already provided for you [here](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/ml-frameworks/scikit-learn/train-hyperparameter-tune-deploy-with-sklearn/train_iris.py). In practice, you should be able to take any custom training script as is and run it with Azure ML without having to modify your code.
+In this tutorial, the [training script **train_iris.py**](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/ml-frameworks/scikit-learn/train-hyperparameter-tune-deploy-with-sklearn/train_iris.py) is already provided for you. In practice, you should be able to take any custom training script as is and run it with Azure ML without having to modify your code.
Notes: - The provided training script shows how to log some metrics to your Azure ML run using the `Run` object within the script.
Notes:
To define the Azure ML [Environment](concept-environments.md) that encapsulates your training script's dependencies, you can either define a custom environment or use and Azure ML curated environment. #### Use a curated environment
-Optionally, Azure ML provides prebuilt, curated environments if you don't want to define your own environment. For more info, see [here](resource-curated-environments.md).
+Optionally, Azure ML provides prebuilt, [curated environments](resource-curated-environments.md) if you don't want to define your own environment.
+ If you want to use a curated environment, you can run the following command instead: ```python
machine-learning How To Troubleshoot Deployment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-troubleshoot-deployment.md
Understanding these high-level steps should help you understand where errors are
## Get deployment logs
-The first step in debugging errors is to get your deployment logs. First, follow the [instructions here](how-to-deploy-and-where.md#connect-to-your-workspace) to connect to your workspace.
+The first step in debugging errors is to get your deployment logs. First, follow the [instructions here to connect to your workspace](how-to-deploy-and-where.md#connect-to-your-workspace).
# [Azure CLI](#tab/azcli)
machine-learning How To Use Managed Identities https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-use-managed-identities.md
If ACR admin user is disallowed by subscription policy, you should first create
[Create ACR from Azure CLI](../container-registry/container-registry-get-started-azure-cli.md) without setting ```--admin-enabled``` argument, or from Azure portal without enabling admin user. Then, when creating Azure Machine Learning workspace, specify the Azure resource ID of the ACR. The following example demonstrates creating a new Azure ML workspace that uses an existing ACR: > [!TIP]
-> To get the value for the `--container-registry` parameter, use the [az acr show](/cli/azure/acr#az_acr_show) command to show information for your ACR. The `id` field contains the resource ID for your ACR.
+> To get the value for the `--container-registry` parameter, use the [az acr show](/cli/azure/acr#az-acr-show) command to show information for your ACR. The `id` field contains the resource ID for your ACR.
[!INCLUDE [cli v1](../../includes/machine-learning-cli-v1.md)]
machine-learning Reference Azure Machine Learning Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/reference-azure-machine-learning-cli.md
The following commands demonstrate how to use the CLI to manage resources used b
az ml workspace create -w myworkspace -g myresourcegroup ```
- For more information, see [az ml workspace create](/cli/azure/ml/workspace#az_ml_workspace_create).
+ For more information, see [az ml workspace create](/cli/azure/ml/workspace#az-ml-workspace-create).
+ Attach a workspace configuration to a folder to enable CLI contextual awareness.
The following commands demonstrate how to use the CLI to manage resources used b
This command creates a `.azureml` subdirectory that contains example runconfig and conda environment files. It also contains a `config.json` file that is used to communicate with your Azure Machine Learning workspace.
- For more information, see [az ml folder attach](/cli/azure/ml(v1)/folder#az_ml_folder_attach).
+ For more information, see [az ml folder attach](/cli/azure/ml(v1)/folder#az-ml-folder-attach).
+ Attach an Azure blob container as a Datastore.
The following commands demonstrate how to use the CLI to manage resources used b
az ml datastore attach-blob -n datastorename -a accountname -c containername ```
- For more information, see [az ml datastore attach-blob](/cli/azure/ml/datastore#az_ml_datastore_attach-blob).
+ For more information, see [az ml datastore attach-blob](/cli/azure/ml/datastore#az-ml-datastore-attach-blob).
+ Upload files to a Datastore.
The following commands demonstrate how to use the CLI to manage resources used b
az ml datastore upload -n datastorename -p sourcepath ```
- For more information, see [az ml datastore upload](/cli/azure/ml/datastore#az_ml_datastore_upload).
+ For more information, see [az ml datastore upload](/cli/azure/ml/datastore#az-ml-datastore-upload).
+ Attach an AKS cluster as a Compute Target.
The following commands demonstrate how to use the CLI to manage resources used b
az ml computetarget attach aks -n myaks -i myaksresourceid -g myresourcegroup -w myworkspace ```
- For more information, see [az ml computetarget attach aks](/cli/azure/ml(v1)/computetarget/attach#az_ml_computetarget_attach-aks)
+ For more information, see [az ml computetarget attach aks](/cli/azure/ml(v1)/computetarget/attach#az-ml-computetarget-attach-aks)
### Compute clusters
The following commands demonstrate how to use the CLI to manage resources used b
az ml computetarget amlcompute identity assign --name cpu-cluster '[system]' ```
-For more information, see [az ml computetarget create amlcompute](/cli/azure/ml(v1)/computetarget/create#az_ml_computetarget_create_amlcompute).
+For more information, see [az ml computetarget create amlcompute](/cli/azure/ml(v1)/computetarget/create#az-ml-computetarget-create-amlcompute).
[!INCLUDE [aml-clone-in-azure-notebook](../../includes/aml-managed-identity-note.md)]
Manage compute instances. In all the examples below, the name of the compute in
az ml computetarget create computeinstance -n cpu -s "STANDARD_D3_V2" -v ```
- For more information, see [az ml computetarget create computeinstance](/cli/azure/ml(v1)/computetarget/create#az_ml_computetarget_create_computeinstance).
+ For more information, see [az ml computetarget create computeinstance](/cli/azure/ml(v1)/computetarget/create#az-ml-computetarget-create-computeinstance).
+ Stop a computeinstance.
Manage compute instances. In all the examples below, the name of the compute in
az ml computetarget computeinstance stop -n cpu -v ```
- For more information, see [az ml computetarget computeinstance stop](/cli/azure/ml(v1)/computetarget/computeinstance#az_ml_computetarget_computeinstance_stop).
+ For more information, see [az ml computetarget computeinstance stop](/cli/azure/ml(v1)/computetarget/computeinstance#az-ml-computetarget-computeinstance-stop).
+ Start a computeinstance.
Manage compute instances. In all the examples below, the name of the compute in
az ml computetarget computeinstance start -n cpu -v ```
- For more information, see [az ml computetarget computeinstance start](/cli/azure/ml(v1)/computetarget/computeinstance#az_ml_computetarget_computeinstance_start).
+ For more information, see [az ml computetarget computeinstance start](/cli/azure/ml(v1)/computetarget/computeinstance#az-ml-computetarget-computeinstance-start).
+ Restart a computeinstance.
Manage compute instances. In all the examples below, the name of the compute in
az ml computetarget computeinstance restart -n cpu -v ```
- For more information, see [az ml computetarget computeinstance restart](/cli/azure/ml(v1)/computetarget/computeinstance#az_ml_computetarget_computeinstance_restart).
+ For more information, see [az ml computetarget computeinstance restart](/cli/azure/ml(v1)/computetarget/computeinstance#az-ml-computetarget-computeinstance-restart).
+ Delete a computeinstance.
Manage compute instances. In all the examples below, the name of the compute in
az ml computetarget delete -n cpu -v ```
- For more information, see [az ml computetarget delete computeinstance](/cli/azure/ml(v1)/computetarget#az_ml_computetarget_delete).
+ For more information, see [az ml computetarget delete computeinstance](/cli/azure/ml(v1)/computetarget#az-ml-computetarget-delete).
## <a id="experiments"></a>Run experiments
Manage compute instances. In all the examples below, the name of the compute in
> > The full runconfig schema can be found in this [JSON file](https://github.com/microsoft/MLOps/blob/b4bdcf8c369d188e83f40be8b748b49821f71cf2/infra-as-code/runconfigschema.json). The schema is self-documenting through the `description` key of each object. Additionally, there are enums for possible values, and a template snippet at the end.
- For more information, see [az ml run submit-script](/cli/azure/ml(v1)/run#az_ml_run_submit_script).
+ For more information, see [az ml run submit-script](/cli/azure/ml(v1)/run#az-ml-run-submit-script).
* View a list of experiments:
Manage compute instances. In all the examples below, the name of the compute in
az ml experiment list ```
- For more information, see [az ml experiment list](/cli/azure/ml(v1)/experiment#az_ml_experiment_list).
+ For more information, see [az ml experiment list](/cli/azure/ml(v1)/experiment#az-ml-experiment-list).
### HyperDrive run
The following commands demonstrate how to work with datasets in Azure Machine Le
For information on the format of the JSON file used to define the dataset, use `az ml dataset register --show-template`.
- For more information, see [az ml dataset register](/cli/azure/ml(v1)/dataset#az_ml_dataset_register).
+ For more information, see [az ml dataset register](/cli/azure/ml(v1)/dataset#az-ml-dataset-register).
+ List all datasets in a workspace:
The following commands demonstrate how to work with datasets in Azure Machine Le
az ml dataset list ```
- For more information, see [az ml dataset list](/cli/azure/ml(v1)/dataset#az_ml_dataset_list).
+ For more information, see [az ml dataset list](/cli/azure/ml(v1)/dataset#az-ml-dataset-list).
+ Get details of a dataset:
The following commands demonstrate how to work with datasets in Azure Machine Le
az ml dataset show -n dataset-name ```
- For more information, see [az ml dataset show](/cli/azure/ml(v1)/dataset#az_ml_dataset_show).
+ For more information, see [az ml dataset show](/cli/azure/ml(v1)/dataset#az-ml-dataset-show).
+ Unregister a dataset:
The following commands demonstrate how to work with datasets in Azure Machine Le
az ml dataset unregister -n dataset-name ```
- For more information, see [az ml dataset unregister](/cli/azure/ml(v1)/dataset#az_ml_dataset_archive).
+ For more information, see [az ml dataset unregister](/cli/azure/ml(v1)/dataset#az-ml-dataset-archive).
## Environment management
The following commands demonstrate how to create, register, and list Azure Machi
az ml environment scaffold -n myenv -d myenvdirectory ```
- For more information, see [az ml environment scaffold](/cli/azure/ml/environment#az_ml_environment_scaffold).
+ For more information, see [az ml environment scaffold](/cli/azure/ml/environment#az-ml-environment-scaffold).
+ Register an environment:
The following commands demonstrate how to create, register, and list Azure Machi
az ml environment register -d myenvdirectory ```
- For more information, see [az ml environment register](/cli/azure/ml/environment#az_ml_environment_register).
+ For more information, see [az ml environment register](/cli/azure/ml/environment#az-ml-environment-register).
+ List registered environments:
The following commands demonstrate how to create, register, and list Azure Machi
az ml environment list ```
- For more information, see [az ml environment list](/cli/azure/ml/environment#az_ml_environment_list).
+ For more information, see [az ml environment list](/cli/azure/ml/environment#az-ml-environment-list).
+ Download a registered environment:
The following commands demonstrate how to create, register, and list Azure Machi
az ml environment download -n myenv -d downloaddirectory ```
- For more information, see [az ml environment download](/cli/azure/ml/environment#az_ml_environment_download).
+ For more information, see [az ml environment download](/cli/azure/ml/environment#az-ml-environment-download).
### Environment configuration schema
The following commands demonstrate how to work with machine learning pipelines:
az ml pipeline create -n mypipeline -y mypipeline.yml ```
- For more information, see [az ml pipeline create](/cli/azure/ml(v1)/pipeline#az_ml_pipeline_create).
+ For more information, see [az ml pipeline create](/cli/azure/ml(v1)/pipeline#az-ml-pipeline-create).
For more information on the pipeline YAML file, see [Define machine learning pipelines in YAML](reference-yaml-job-pipeline.md).
The following commands demonstrate how to work with machine learning pipelines:
az ml run submit-pipeline -n myexperiment -y mypipeline.yml ```
- For more information, see [az ml run submit-pipeline](/cli/azure/ml(v1)/run#az_ml_run_submit_pipeline).
+ For more information, see [az ml run submit-pipeline](/cli/azure/ml(v1)/run#az-ml-run-submit-pipeline).
For more information on the pipeline YAML file, see [Define machine learning pipelines in YAML](reference-yaml-job-pipeline.md).
The following commands demonstrate how to work with machine learning pipelines:
az ml pipeline create-schedule -n myschedule -e myexperiment -i mypipelineid -y myschedule.yml ```
- For more information, see [az ml pipeline create-schedule](/cli/azure/ml(v1)/pipeline#az_ml_pipeline_create-schedule).
+ For more information, see [az ml pipeline create-schedule](/cli/azure/ml(v1)/pipeline#az-ml-pipeline-create-schedule).
## Model registration, profiling, deployment
The following commands demonstrate how to register a trained model, and then dep
az ml model register -n mymodel -p sklearn_regression_model.pkl ```
- For more information, see [az ml model register](/cli/azure/ml/model#az_ml_model_register).
+ For more information, see [az ml model register](/cli/azure/ml/model#az-ml-model-register).
+ **OPTIONAL** Profile your model to get optimal CPU and memory values for deployment. ```azurecli-interactive az ml model profile -n myprofile -m mymodel:1 --ic inferenceconfig.json -d "{\"data\": [[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]]}" -t myprofileresult.json ```
- For more information, see [az ml model profile](/cli/azure/ml/model#az_ml_model_profile).
+ For more information, see [az ml model profile](/cli/azure/ml/model#az-ml-model-profile).
+ Deploy your model to AKS ```azurecli-interactive
The following commands demonstrate how to register a trained model, and then dep
For more information on the deployment configuration file schema, see [Deployment configuration schema](#deploymentconfig).
- For more information, see [az ml model deploy](/cli/azure/ml/model#az_ml_model_deploy).
+ For more information, see [az ml model deploy](/cli/azure/ml/model#az-ml-model-deploy).
<a id="inferenceconfig"></a>
machine-learning Resource Curated Environments https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/resource-curated-environments.md
Last updated 10/21/2021
This article lists the curated environments with latest framework versions in Azure Machine Learning. Curated environments are provided by Azure Machine Learning and are available in your workspace by default. They are backed by cached Docker images that use the latest version of the Azure Machine Learning SDK, reducing the run preparation cost and allowing for faster deployment time. Use these environments to quickly get started with various machine learning frameworks. > [!NOTE]
-> Use the [Python SDK](how-to-use-environments.md), [CLI](/cli/azure/ml/environment#az_ml_environment_list), or Azure Machine Learning [studio](how-to-manage-environments-in-studio.md) to get the full list of environments and their dependencies. For more information, see the [environments article](how-to-use-environments.md#use-a-curated-environment).
+> Use the [Python SDK](how-to-use-environments.md), [CLI](/cli/azure/ml/environment#az-ml-environment-list), or Azure Machine Learning [studio](how-to-manage-environments-in-studio.md) to get the full list of environments and their dependencies. For more information, see the [environments article](how-to-use-environments.md#use-a-curated-environment).
## Why should I use curated environments?
managed-instance-apache-cassandra Create Cluster Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/managed-instance-apache-cassandra/create-cluster-cli.md
This quickstart demonstrates how to use the Azure CLI commands to create a clust
> [!NOTE] > The `assignee` and `role` values in the previous command are fixed values, enter these values exactly as mentioned in the command. Not doing so will lead to errors when creating the cluster. If you encounter any errors when executing this command, you may not have permissions to run it, please reach out to your admin for permissions.
-1. Next create the cluster in your newly created Virtual Network by using the [az managed-cassandra cluster create](/cli/azure/managed-cassandra/cluster#az_managed_cassandra_cluster_create) command. Run the following command the value of `delegatedManagementSubnetId` variable:
+1. Next create the cluster in your newly created Virtual Network by using the [az managed-cassandra cluster create](/cli/azure/managed-cassandra/cluster#az-managed-cassandra-cluster-create) command. Run the following command the value of `delegatedManagementSubnetId` variable:
> [!NOTE] > The value of the `delegatedManagementSubnetId` variable you will supply below is exactly the same as the value of `--scope` that you supplied in the command above:
This quickstart demonstrates how to use the Azure CLI commands to create a clust
--debug ```
-1. Finally, create a datacenter for the cluster, with three nodes, Standard D8s v4 VM SKU, with 4 P30 disks attached for each node, by using the [az managed-cassandra datacenter create](/cli/azure/managed-cassandra/datacenter#az_managed_cassandra_datacenter_create) command:
+1. Finally, create a datacenter for the cluster, with three nodes, Standard D8s v4 VM SKU, with 4 P30 disks attached for each node, by using the [az managed-cassandra datacenter create](/cli/azure/managed-cassandra/datacenter#az-managed-cassandra-datacenter-create) command:
```azurecli-interactive dataCenterName='dc1'
This quickstart demonstrates how to use the Azure CLI commands to create a clust
> [!WARNING] > Availability zones are not supported in all regions. Deployments will fail if you select a region where Availability zones are not supported. See [here](../availability-zones/az-overview.md#azure-regions-with-availability-zones) for supported regions. The successful deployment of availability zones is also subject to the availability of compute resources in all of the zones in the given region. Deployments may fail if the SKU you have selected, or capacity, is not available across all zones.
-1. Once the datacenter is created, if you want to scale up, or scale down the nodes in the datacenter, run the [az managed-cassandra datacenter update](/cli/azure/managed-cassandra/datacenter#az_managed_cassandra_datacenter_update) command. Change the value of `node-count` parameter to the desired value:
+1. Once the datacenter is created, if you want to scale up, or scale down the nodes in the datacenter, run the [az managed-cassandra datacenter update](/cli/azure/managed-cassandra/datacenter#az-managed-cassandra-datacenter-update) command. Change the value of `node-count` parameter to the desired value:
```azurecli-interactive resourceGroupName='<Resource_Group_Name>'
managed-instance-apache-cassandra Manage Resources Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/managed-instance-apache-cassandra/manage-resources-cli.md
The following sections demonstrate how to manage Azure Managed Instance for Apac
### <a id="create-cluster"></a>Create a managed instance cluster
-Create an Azure Managed Instance for Apache Cassandra cluster by using the [az managed-cassandra cluster create](/cli/azure/managed-cassandra/cluster#az_managed_cassandra_cluster_create) command:
+Create an Azure Managed Instance for Apache Cassandra cluster by using the [az managed-cassandra cluster create](/cli/azure/managed-cassandra/cluster#az-managed-cassandra-cluster-create) command:
```azurecli-interactive resourceGroupName='MyResourceGroup'
az managed-cassandra cluster create \
### <a id="delete-cluster"></a>Delete a managed instance cluster
-Delete a cluster by using the [az managed-cassandra cluster delete](/cli/azure/managed-cassandra/cluster#az_managed_cassandra_cluster_delete) command:
+Delete a cluster by using the [az managed-cassandra cluster delete](/cli/azure/managed-cassandra/cluster#az-managed-cassandra-cluster-delete) command:
```azurecli-interactive resourceGroupName='MyResourceGroup'
az managed-cassandra cluster delete \
### <a id="get-cluster-details"></a>Get the cluster details
-Get cluster details by using the [az managed-cassandra cluster show](/cli/azure/managed-cassandra/cluster#az_managed_cassandra_cluster_show) command:
+Get cluster details by using the [az managed-cassandra cluster show](/cli/azure/managed-cassandra/cluster#az-managed-cassandra-cluster-show) command:
```azurecli-interactive resourceGroupName='MyResourceGroup'
az managed-cassandra cluster show \
### <a id="get-cluster-status"></a>Get the cluster node status
-Get cluster details by using the [az managed-cassandra cluster node-status](/cli/azure/managed-cassandra/cluster#az_managed_cassandra_cluster_node_status) command:
+Get cluster details by using the [az managed-cassandra cluster node-status](/cli/azure/managed-cassandra/cluster#az-managed-cassandra-cluster-node-status) command:
```azurecli-interactive clusterName='cassandra-hybrid-cluster'
az managed-cassandra cluster status \
### <a id="list-clusters-resource-group"></a>List the clusters by resource group
-List clusters by resource group by using the [az managed-cassandra cluster list](/cli/azure/managed-cassandra/cluster#az_managed_cassandra_cluster_list) command:
+List clusters by resource group by using the [az managed-cassandra cluster list](/cli/azure/managed-cassandra/cluster#az-managed-cassandra-cluster-list) command:
```azurecli-interactive subscriptionId='MySubscriptionId'
The following sections demonstrate how to manage Azure Managed Instance for Apac
### <a id="create-datacenter"></a>Create a datacenter
-Create a datacenter by using the [az managed-cassandra datacenter create](/cli/azure/managed-cassandra/datacenter#az_managed_cassandra_datacenter_create) command:
+Create a datacenter by using the [az managed-cassandra datacenter create](/cli/azure/managed-cassandra/datacenter#az-managed-cassandra-datacenter-create) command:
```azurecli-interactive resourceGroupName='MyResourceGroup'
az managed-cassandra datacenter create \
### <a id="delete-datacenter"></a>Delete a datacenter
-Delete a datacenter by using the [az managed-cassandra datacenter delete](/cli/azure/managed-cassandra/datacenter#az_managed_cassandra_datacenter_delete) command:
+Delete a datacenter by using the [az managed-cassandra datacenter delete](/cli/azure/managed-cassandra/datacenter#az-managed-cassandra-datacenter-delete) command:
```azurecli-interactive resourceGroupName='MyResourceGroup'
az managed-cassandra datacenter delete \
### <a id="get-datacenter-details"></a>Get datacenter details
-Get datacenter details by using the [az managed-cassandra datacenter show](/cli/azure/managed-cassandra/datacenter#az_managed_cassandra_datacenter_show) command:
+Get datacenter details by using the [az managed-cassandra datacenter show](/cli/azure/managed-cassandra/datacenter#az-managed-cassandra-datacenter-show) command:
```azurecli-interactive resourceGroupName='MyResourceGroup'
az managed-cassandra datacenter show \
### <a id="update-datacenter"></a>Update or scale a datacenter
-Update or scale a datacenter (to scale change nodeCount value) by using the [az managed-cassandra datacenter update](/cli/azure/managed-cassandra/datacenter#az_managed_cassandra_datacenter_update) command:
+Update or scale a datacenter (to scale change nodeCount value) by using the [az managed-cassandra datacenter update](/cli/azure/managed-cassandra/datacenter#az-managed-cassandra-datacenter-update) command:
```azurecli-interactive resourceGroupName='MyResourceGroup'
az managed-cassandra datacenter update \
### <a id="update-yaml"></a>Update Cassandra configuration
-Change Cassandra configuration on a datacenter by using the [az managed-cassandra datacenter update](/cli/azure/managed-cassandra/datacenter#az_managed_cassandra_datacenter_update) command. You will need to base64 encode the YAML fragment by using an [online tool](https://www.base64encode.org/). The following YAML settings are supported:
+Change Cassandra configuration on a datacenter by using the [az managed-cassandra datacenter update](/cli/azure/managed-cassandra/datacenter#az-managed-cassandra-datacenter-update) command. You will need to base64 encode the YAML fragment by using an [online tool](https://www.base64encode.org/). The following YAML settings are supported:
- column_index_size_in_kb - allocate_tokens_for_keyspace
az managed-cassandra datacenter update \
### <a id="get-datacenters-cluster"></a>Get the datacenters in a cluster
-Get datacenters in a cluster by using the [az managed-cassandra datacenter list](/cli/azure/managed-cassandra/datacenter#az_managed_cassandra_datacenter_list) command:
+Get datacenters in a cluster by using the [az managed-cassandra datacenter list](/cli/azure/managed-cassandra/datacenter#az-managed-cassandra-datacenter-list) command:
```azurecli-interactive resourceGroupName='MyResourceGroup'
managed-instance-apache-cassandra Monitor Clusters https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/managed-instance-apache-cassandra/monitor-clusters.md
Platform metrics and the Activity logs are collected automatically, whereas you
:::image type="content" source="./media/azure-monitor/query.png" alt-text="Query logs"::: ## <a id="create-setting-cli"></a> Create diagnostic setting via Azure CLI
-Use the [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create) command to create a diagnostic setting with the Azure CLI. See the documentation for this command for descriptions of its parameters.
+Use the [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create) command to create a diagnostic setting with the Azure CLI. See the documentation for this command for descriptions of its parameters.
```azurecli-interactive logs='[{"category":"CassandraAudit","enabled":true,"retentionPolicy":{"enabled":true,"days":3}},{"category":"CassandraLogs","enabled":true,"retentionPolicy":{"enabled":true,"days":3}}]'
mariadb Howto Configure Privatelink Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/howto-configure-privatelink-cli.md
az network vnet create \
``` ## Disable subnet private endpoint policies
-Azure deploys resources to a subnet within a virtual network, so you need to create or update the subnet to disable private endpoint [network policies](../private-link/disable-private-endpoint-network-policy.md). Update a subnet configuration named *mySubnet* with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update):
+Azure deploys resources to a subnet within a virtual network, so you need to create or update the subnet to disable private endpoint [network policies](../private-link/disable-private-endpoint-network-policy.md). Update a subnet configuration named *mySubnet* with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update):
```azurecli-interactive az network vnet subnet update \
mariadb Howto Configure Server Logs Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/howto-configure-server-logs-cli.md
az mariadb server configuration list --resource-group myresourcegroup --server m
``` ## List logs for Azure Database for MariaDB server
-If **log_output** is configured to "File", you can access logs directly from the server's local storage. To list the available slow query log files for your server, run the [az mariadb server-logs list](/cli/azure/mariadb/server-logs#az_mariadb_server_logs_list) command.
+If **log_output** is configured to "File", you can access logs directly from the server's local storage. To list the available slow query log files for your server, run the [az mariadb server-logs list](/cli/azure/mariadb/server-logs#az-mariadb-server-logs-list) command.
You can list the log files for server **mydemoserver.mariadb.database.azure.com** under the resource group **myresourcegroup**. Then direct the list of log files to a text file called **log\_files\_list.txt**. ```azurecli-interactive az mariadb server-logs list --resource-group myresourcegroup --server mydemoserver > log_files_list.txt ``` ## Download logs from the server
-If **log_output** is configured to "File", you can download individual log files from your server with the [az mariadb server-logs download](/cli/azure/mariadb/server-logs#az_mariadb_server_logs_download) command.
+If **log_output** is configured to "File", you can download individual log files from your server with the [az mariadb server-logs download](/cli/azure/mariadb/server-logs#az-mariadb-server-logs-download) command.
Use the following example to download the specific log file for the server **mydemoserver.mariadb.database.azure.com** under the resource group **myresourcegroup** to your local environment. ```azurecli-interactive
mariadb Howto Configure Server Parameters Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/howto-configure-server-parameters-cli.md
To step through this how-to guide, you need:
- [Azure CLI](/cli/azure/install-azure-cli) command-line utility or use the Azure Cloud Shell in the browser. ## List server configuration parameters for Azure Database for MariaDB server
-To list all modifiable parameters in a server and their values, run the [az mariadb server configuration list](/cli/azure/mariadb/server/configuration#az_mariadb_server_configuration_list) command.
+To list all modifiable parameters in a server and their values, run the [az mariadb server configuration list](/cli/azure/mariadb/server/configuration#az-mariadb-server-configuration-list) command.
You can list the server configuration parameters for the server **mydemoserver.mariadb.database.azure.com** under resource group **myresourcegroup**. ```azurecli-interactive
az mariadb server configuration list --resource-group myresourcegroup --server m
For the definition of each of the listed parameters, see the MariaDB reference section on [Server System Variables](https://mariadb.com/kb/en/library/server-system-variables/). ## Show server configuration parameter details
-To show details about a particular configuration parameter for a server, run the [az mariadb server configuration show](/cli/azure/mariadb/server/configuration#az_mariadb_server_configuration_show) command.
+To show details about a particular configuration parameter for a server, run the [az mariadb server configuration show](/cli/azure/mariadb/server/configuration#az-mariadb-server-configuration-show) command.
This example shows details of the **slow\_query\_log** server configuration parameter for server **mydemoserver.mariadb.database.azure.com** under resource group **myresourcegroup.** ```azurecli-interactive
az mariadb server configuration show --name slow_query_log --resource-group myre
``` ## Modify a server configuration parameter value
-You can also modify the value of a certain server configuration parameter, which updates the underlying configuration value for the MariaDB server engine. To update the configuration, use the [az mariadb server configuration set](/cli/azure/mariadb/server/configuration#az_mariadb_server_configuration_set) command.
+You can also modify the value of a certain server configuration parameter, which updates the underlying configuration value for the MariaDB server engine. To update the configuration, use the [az mariadb server configuration set](/cli/azure/mariadb/server/configuration#az-mariadb-server-configuration-set) command.
To update the **slow\_query\_log** server configuration parameter of server **mydemoserver.mariadb.database.azure.com** under resource group **myresourcegroup.** ```azurecli-interactive
SELECT name FROM mysql.time_zone_name;
### Setting the global level time zone
-The global level time zone can be set using the [az mariadb server configuration set](/cli/azure/mariadb/server/configuration#az_mariadb_server_configuration_set) command.
+The global level time zone can be set using the [az mariadb server configuration set](/cli/azure/mariadb/server/configuration#az-mariadb-server-configuration-set) command.
The following command updates the **time\_zone** server configuration parameter of server **mydemoserver.mariadb.database.azure.com** under resource group **myresourcegroup** to **US/Pacific**.
mariadb Howto Manage Firewall Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/howto-manage-firewall-cli.md
Securely connect Azure CLI with your Azure account by using the **az login** com
3. At the prompt, sign in using your Azure credentials.
-4. After your login is authorized, a list of subscriptions is printed in the console. Copy the ID of the desired subscription to set the current subscription to use. Use the [az account set](/cli/azure/account#az_account_set) command.
+4. After your login is authorized, a list of subscriptions is printed in the console. Copy the ID of the desired subscription to set the current subscription to use. Use the [az account set](/cli/azure/account#az-account-set) command.
```azurecli-interactive az account set --subscription <your subscription id> ```
-5. List the Azure Databases for MariaDB servers for your subscription and resource group if you are unsure of the names. Use the [az mariadb server list](/cli/azure/mariadb/server#az_mariadb_server_list) command.
+5. List the Azure Databases for MariaDB servers for your subscription and resource group if you are unsure of the names. Use the [az mariadb server list](/cli/azure/mariadb/server#az-mariadb-server-list) command.
```azurecli-interactive az mariadb server list --resource-group myresourcegroup ```
- Note the name attribute in the listing, which you need to specify the MariaDB server to work on. If needed, confirm the details for that server and using the name attribute to ensure it is correct. Use the [az mariadb server show](/cli/azure/mariadb/server#az_mariadb_server_show) command.
+ Note the name attribute in the listing, which you need to specify the MariaDB server to work on. If needed, confirm the details for that server and using the name attribute to ensure it is correct. Use the [az mariadb server show](/cli/azure/mariadb/server#az-mariadb-server-show) command.
```azurecli-interactive az mariadb server show --resource-group myresourcegroup --name mydemoserver ``` ## List firewall rules on Azure Database for MariaDB Server
-Using the server name and the resource group name, list the existing server firewall rules on the server. Use the [az mariadb server firewall list](/cli/azure/mariadb/server/firewall-rule#az_mariadb_server_firewall_rule_list) command. Notice that the server name attribute is specified in the **--server** switch and not in the **--name** switch.
+Using the server name and the resource group name, list the existing server firewall rules on the server. Use the [az mariadb server firewall list](/cli/azure/mariadb/server/firewall-rule#az-mariadb-server-firewall-rule-list) command. Notice that the server name attribute is specified in the **--server** switch and not in the **--name** switch.
```azurecli-interactive az mariadb server firewall-rule list --resource-group myresourcegroup --server-name mydemoserver ```
The output lists the rules, if any, in JSON format (by default). You can use the
az mariadb server firewall-rule list --resource-group myresourcegroup --server-name mydemoserver --output table ``` ## Create a firewall rule on Azure Database for MariaDB Server
-Using the Azure MariaDB server name and the resource group name, create a new firewall rule on the server. Use the [az mariadb server firewall create](/cli/azure/mariadb/server/firewall-rule#az_mariadb_server_firewall_rule_create) command. Provide a name for the rule, as well as the start IP and end IP (to provide access to a range of IP addresses) for the rule.
+Using the Azure MariaDB server name and the resource group name, create a new firewall rule on the server. Use the [az mariadb server firewall create](/cli/azure/mariadb/server/firewall-rule#az-mariadb-server-firewall-rule-create) command. Provide a name for the rule, as well as the start IP and end IP (to provide access to a range of IP addresses) for the rule.
```azurecli-interactive az mariadb server firewall-rule create --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.15 ```
az mariadb server firewall-rule create --resource-group myresourcegroup --server
Upon success, each create command output lists the details of the firewall rule you have created, in JSON format (by default). If there is a failure, the output shows error message text instead. ## Update a firewall rule on Azure Database for MariaDB server
-Using the Azure MariaDB server name and the resource group name, update an existing firewall rule on the server. Use the [az mariadb server firewall update](/cli/azure/mariadb/server/firewall-rule#az_mariadb_server_firewall_rule_update) command. Provide the name of the existing firewall rule as input, as well as the start IP and end IP attributes to update.
+Using the Azure MariaDB server name and the resource group name, update an existing firewall rule on the server. Use the [az mariadb server firewall update](/cli/azure/mariadb/server/firewall-rule#az-mariadb-server-firewall-rule-update) command. Provide the name of the existing firewall rule as input, as well as the start IP and end IP attributes to update.
```azurecli-interactive az mariadb server firewall-rule update --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.1 ```
Upon success, the command output lists the details of the firewall rule you have
> If the firewall rule does not exist, the rule is created by the update command. ## Show firewall rule details on Azure Database for MariaDB Server
-Using the Azure MariaDB server name and the resource group name, show the existing firewall rule details from the server. Use the [az mariadb server firewall show](/cli/azure/mariadb/server/firewall-rule#az_mariadb_server_firewall_rule_show) command. Provide the name of the existing firewall rule as input.
+Using the Azure MariaDB server name and the resource group name, show the existing firewall rule details from the server. Use the [az mariadb server firewall show](/cli/azure/mariadb/server/firewall-rule#az-mariadb-server-firewall-rule-show) command. Provide the name of the existing firewall rule as input.
```azurecli-interactive az mariadb server firewall-rule show --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 ``` Upon success, the command output lists the details of the firewall rule you have specified, in JSON format (by default). If there is a failure, the output shows error message text instead. ## Delete a firewall rule on Azure Database for MariaDB Server
-Using the Azure MariaDB server name and the resource group name, remove an existing firewall rule from the server. Use the [az mariadb server firewall delete](/cli/azure/mariadb/server/firewall-rule#az_mariadb_server_firewall_rule_delete) command. Provide the name of the existing firewall rule.
+Using the Azure MariaDB server name and the resource group name, remove an existing firewall rule from the server. Use the [az mariadb server firewall delete](/cli/azure/mariadb/server/firewall-rule#az-mariadb-server-firewall-rule-delete) command. Provide the name of the existing firewall rule.
```azurecli-interactive az mariadb server firewall-rule delete --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 ```
mariadb Howto Restore Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/howto-restore-server-cli.md
The backup retention period governs how far back in time a point-in-time restore
You can restore the server to a previous point in time. The restored data is copied to a new server, and the existing server is left as is. For example, if a table is accidentally dropped at noon today, you can restore to the time just before noon. Then, you can retrieve the missing table and data from the restored copy of the server.
-To restore the server, use the Azure CLI [az mariadb server restore](/cli/azure/mariadb/server#az_mariadb_server_restore) command.
+To restore the server, use the Azure CLI [az mariadb server restore](/cli/azure/mariadb/server#az-mariadb-server-restore) command.
### Run the restore command
mariadb Quickstart Create Mariadb Server Database Using Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/quickstart-create-mariadb-server-database-using-azure-cli.md
If you don't have an Azure subscription, create a [free](https://azure.microsoft
- This article requires version 2.0 or later of the Azure CLI. If using Azure Cloud Shell, the latest version is already installed.
-If you have multiple subscriptions, choose the subscription that contains the resource or the subscription in which you are billed. To select a specific subscription ID in your account, use the [az account set](/cli/azure/account#az_account_set) command:
+If you have multiple subscriptions, choose the subscription that contains the resource or the subscription in which you are billed. To select a specific subscription ID in your account, use the [az account set](/cli/azure/account#az-account-set) command:
```azurecli-interactive az account set --subscription 00000000-0000-0000-0000-000000000000
az account set --subscription 00000000-0000-0000-0000-000000000000
## Create a resource group
-Create an [Azure resource group](../azure-resource-manager/management/overview.md) by using the [az group create](/cli/azure/group#az_group_create) command. A resource group is a logical container in which Azure resources are deployed and managed as a group.
+Create an [Azure resource group](../azure-resource-manager/management/overview.md) by using the [az group create](/cli/azure/group#az-group-create) command. A resource group is a logical container in which Azure resources are deployed and managed as a group.
The following example creates a resource group named `myresourcegroup` in the `westus` location:
az group create --name myresourcegroup --location westus
## Create an Azure Database for MariaDB server
-Create an Azure Database for MariaDB server by using the [az mariadb server create](/cli/azure/mariadb/server#az_mariadb_server_create) command. A server can manage multiple databases. Typically, a separate database is used for each project or for each user.
+Create an Azure Database for MariaDB server by using the [az mariadb server create](/cli/azure/mariadb/server#az-mariadb-server-create) command. A server can manage multiple databases. Typically, a separate database is used for each project or for each user.
Setting | Sample value | Description ||
az mariadb server create --resource-group myresourcegroup --name mydemoserver -
## Configure a firewall rule
-Create an Azure Database for MariaDB server-level firewall rule by using the [az mariadb server firewall-rule create](/cli/azure/mariadb/server/firewall-rule#az_mariadb_server_firewall_rule_create) command. A server-level firewall rule allows an external application like the mysql command-line tool or MySQL Workbench to connect to your server through the Azure Database for MariaDB service firewall.
+Create an Azure Database for MariaDB server-level firewall rule by using the [az mariadb server firewall-rule create](/cli/azure/mariadb/server/firewall-rule#az-mariadb-server-firewall-rule-create) command. A server-level firewall rule allows an external application like the mysql command-line tool or MySQL Workbench to connect to your server through the Azure Database for MariaDB service firewall.
The following example creates a firewall rule called `AllowMyIP` that allows connections from a specific IP address, 192.168.0.1. Substitute an IP address or range of IP addresses that corresponds to the location you connect from.
If you don't need the resources that you used in this quickstart for another qui
az group delete --name myresourcegroup ```
-If you want to delete only the server that you created in this quickstart, run the [az mariadb server delete](/cli/azure/mariadb/server#az_mariadb_server_delete) command:
+If you want to delete only the server that you created in this quickstart, run the [az mariadb server delete](/cli/azure/mariadb/server#az-mariadb-server-delete) command:
```azurecli-interactive az mariadb server delete --resource-group myresourcegroup --name mydemoserver
mariadb Sample Change Server Configuration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/scripts/sample-change-server-configuration.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mariadb server create](/cli/azure/mariadb/server#az_mariadb_server_create) | Creates a MariaDB server that hosts the databases. |
-| [az mariadb server configuration list](/cli/azure/mariadb/server/configuration#az_mariadb_server_configuration_list) | List the configurations of an Azure Database for MariaDB server. |
-| [az mariadb server configuration set](/cli/azure/mariadb/server/configuration#az_mariadb_server_configuration_set) | Update the configuration of an Azure Database for MariaDB server. |
-| [az mariadb server configuration show](/cli/azure/mariadb/server/configuration#az_mariadb_server_configuration_show) | Show the configuration of an Azure Database for MariaDB server. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mariadb server create](/cli/azure/mariadb/server#az-mariadb-server-create) | Creates a MariaDB server that hosts the databases. |
+| [az mariadb server configuration list](/cli/azure/mariadb/server/configuration#az-mariadb-server-configuration-list) | List the configurations of an Azure Database for MariaDB server. |
+| [az mariadb server configuration set](/cli/azure/mariadb/server/configuration#az-mariadb-server-configuration-set) | Update the configuration of an Azure Database for MariaDB server. |
+| [az mariadb server configuration show](/cli/azure/mariadb/server/configuration#az-mariadb-server-configuration-show) | Show the configuration of an Azure Database for MariaDB server. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mariadb Sample Create Server And Firewall Rule https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/scripts/sample-create-server-and-firewall-rule.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mariadb server create](/cli/azure/mariadb/server#az_mariadb_server_create) | Creates a MariaDB server that hosts the databases. |
-| [az mariadb server firewall create](/cli/azure/mariadb/server/firewall-rule#az_mariadb_server_firewall_rule_create) | Creates a firewall rule to allow access to the server and databases under it from the entered IP address range. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mariadb server create](/cli/azure/mariadb/server#az-mariadb-server-create) | Creates a MariaDB server that hosts the databases. |
+| [az mariadb server firewall create](/cli/azure/mariadb/server/firewall-rule#az-mariadb-server-firewall-rule-create) | Creates a firewall rule to allow access to the server and databases under it from the entered IP address range. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mariadb Sample Create Server With Vnet Rule https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/scripts/sample-create-server-with-vnet-rule.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mariadb server create](/cli/azure/mariadb/server#az_mariadb_server_create) | Creates a MariaDB server that hosts the databases. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mariadb server create](/cli/azure/mariadb/server#az-mariadb-server-create) | Creates a MariaDB server that hosts the databases. |
| [az network vnet list-endpoint-services](/cli/azure/network/vnet#az-network-vnet-list-endpoint-services) | List which services support VNET service tunneling in a given region. | | [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates a virtual network. | | [az network vnet subnet create](/cli/azure/network/vnet#az-network-vnet-subnet-create) | Create a subnet and associate an existing NSG and route table. | | [az network vnet subnet show](/cli/azure/network/vnet#az-network-vnet-subnet-show) | Shows details of a subnet. | | [az mariadb server vnet-rule create](/cli/azure/mariadb/server/vnet-rule#az-mariadb-server-vnet-rule-create) | Create a virtual network rule to allows access to a MariaDB server. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mariadb Sample Point In Time Restore https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/scripts/sample-point-in-time-restore.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mariadb server create](/cli/azure/mariadb/server#az_mariadb_server_create) | Creates a MariaDB server that hosts the databases. |
-| [az mariadb server restore](/cli/azure/mariadb/server#az_mariadb_server_restore) | Restore a server from backup. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mariadb server create](/cli/azure/mariadb/server#az-mariadb-server-create) | Creates a MariaDB server that hosts the databases. |
+| [az mariadb server restore](/cli/azure/mariadb/server#az-mariadb-server-restore) | Restore a server from backup. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mariadb Sample Scale Server https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/scripts/sample-scale-server.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mariadb server create](/cli/azure/mariadb/server#az_mariadb_server_create) | Creates a MariaDB server that hosts the databases. |
-| [az mariadb server update](/cli/azure/mariadb/server#az_mariadb_server_update) | Updates properties of the MariaDB server. |
-| [az monitor metrics list](/cli/azure/monitor/metrics#az_monitor_metrics_list) | List the metric value for the resources. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mariadb server create](/cli/azure/mariadb/server#az-mariadb-server-create) | Creates a MariaDB server that hosts the databases. |
+| [az mariadb server update](/cli/azure/mariadb/server#az-mariadb-server-update) | Updates properties of the MariaDB server. |
+| [az monitor metrics list](/cli/azure/monitor/metrics#az-monitor-metrics-list) | List the metric value for the resources. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mariadb Sample Server Logs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/scripts/sample-server-logs.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mariadb server create](/cli/azure/mariadb/server#az_mariadb_server_create) | Creates a MariaDB server that hosts the databases. |
-| [az mariadb server configuration list](/cli/azure/mariadb/server/configuration#az_mariadb_server_configuration_list) | List the configuration values for a server. |
-| [az mariadb server configuration set](/cli/azure/mariadb/server/configuration#az_mariadb_server_configuration_set) | Update the configuration of a server. |
-| [az mariadb server-logs list](/cli/azure/mariadb/server-logs#az_mariadb_server_logs_list) | List log files for a server. |
-| [az mariadb server-logs download](/cli/azure/mariadb/server-logs#az_mariadb_server_logs_download) | Download log files. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mariadb server create](/cli/azure/mariadb/server#az-mariadb-server-create) | Creates a MariaDB server that hosts the databases. |
+| [az mariadb server configuration list](/cli/azure/mariadb/server/configuration#az-mariadb-server-configuration-list) | List the configuration values for a server. |
+| [az mariadb server configuration set](/cli/azure/mariadb/server/configuration#az-mariadb-server-configuration-set) | Update the configuration of a server. |
+| [az mariadb server-logs list](/cli/azure/mariadb/server-logs#az-mariadb-server-logs-list) | List log files for a server. |
+| [az mariadb server-logs download](/cli/azure/mariadb/server-logs#az-mariadb-server-logs-download) | Download log files. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mariadb Tutorial Design Database Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mariadb/tutorial-design-database-cli.md
If you don't have an Azure subscription, create a [free Azure account](https://a
- This article requires version 2.0 or later of the Azure CLI. If using Azure Cloud Shell, the latest version is already installed.
-If you have multiple subscriptions, choose the appropriate subscription in which the resource exists or is billed for. Select a specific subscription ID under your account using [az account set](/cli/azure/account#az_account_set) command.
+If you have multiple subscriptions, choose the appropriate subscription in which the resource exists or is billed for. Select a specific subscription ID under your account using [az account set](/cli/azure/account#az-account-set) command.
```azurecli-interactive az account set --subscription 00000000-0000-0000-0000-000000000000 ``` ## Create a resource group
-Create an [Azure resource group](../azure-resource-manager/management/overview.md) with [az group create](/cli/azure/group#az_group_create) command. A resource group is a logical container into which Azure resources are deployed and managed as a group.
+Create an [Azure resource group](../azure-resource-manager/management/overview.md) with [az group create](/cli/azure/group#az-group-create) command. A resource group is a logical container into which Azure resources are deployed and managed as a group.
The following example creates a resource group named `myresourcegroup` in the `westus` location.
marketplace Azure Container Plan Technical Configuration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/marketplace/azure-container-plan-technical-configuration.md
Previously updated : 04/21/2021 Last updated : 03/24/2022 # Set plan technical configuration for an Azure Container offer
Customers must be able to automatically get updates from Azure Marketplace when
Select **Add Image version** to include an **Image tag** that points to the latest version of your image on all supported platforms. It must also include a version tag (for example, starting with xx.xx.xx, where xx is a number). Customers should use [manifest tags](https://github.com/estesp/manifest-tool) to target multiple platforms. All tags referenced by a manifest tag must also be added so we can upload them. All manifest tags (except the latest tag) must start with either X.Y- or X.Y.Z- where X, Y, and Z are integers. For example, if a latest tag points to `1.0.1-linux-x64`, `1.0.1-linux-arm32`, and `1.0.1-windows-arm32`, these six tags need to be added to this field. For details about tags and versioning, see [Prepare your Azure Container technical assets](azure-container-technical-assets.md). > [!TIP]
-> Add a test tag to your image so you can identify the image during testing.
+> Only the image with the ΓÇ£latestΓÇ¥ tag is shown in preview. After the offer is published live, all tags are shown.
<!-- possible future restore
media-services Account Reset Account Credentials https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/media-services/latest/account-reset-account-credentials.md
az ams account sp reset-credentials \
## Next steps * [az ams](/cli/azure/ams)
-* [Reset credentials](/cli/azure/ams/account/sp#az_ams_account_sp_reset_credentials)
+* [Reset credentials](/cli/azure/ams/account/sp#az-ams-account-sp-reset-credentials)
media-services Configure Connect Nodejs Howto https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/media-services/latest/configure-connect-nodejs-howto.md
[!INCLUDE [media services api v3 logo](./includes/v3-hr.md)]
-This article shows you how to connect to the Azure Media Services v3 node.js SDK using the service principal sign-in method. You will work with files in the *media-services-v3-node-tutorials* samples repository. The *HelloWorld-ListAssets* sample contains the code for connecting then list Assets in the account.
+This article shows you how to connect to the Azure Media Services v3 Node.js SDK using the service principal sign-in method. You will work with files in the *media-services-v3-node-tutorials* samples repository. The *HelloWorld-ListAssets* sample contains the code for connecting then list Assets in the account.
## Prerequisites
Many more samples are available in the [repository](https://github.com/Azure-Sam
## Next steps
-Explore the Media Services [Node.js ref](/javascript/api/overview/azure/arm-mediaservices-readme) documentation and check out [samples](https://github.com/Azure-Samples/media-services-v3-node-tutorials) that show how to use Media Services API with node.js.
+Explore the Media Services [Node.js ref](/javascript/api/overview/azure/arm-mediaservices-readme) documentation and check out [samples](https://github.com/Azure-Samples/media-services-v3-node-tutorials) that show how to use Media Services API with Node.js.
media-services Live Event Outputs Concept https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/media-services/latest/live-event-outputs-concept.md
Once the live event is created, you can get ingest URLs that you'll provide to t
|Language|Enable static hostname URL|Set access token| |||| |REST|[properties.useStaticHostname](/rest/api/media/liveevents/create#liveevent)|[LiveEventInput.useStaticHostname](/rest/api/media/liveevents/create#liveeventinput)|
- |CLI|[--use-static-hostname](/cli/azure/ams/live-event#az_ams_live_event_create)|[--access-token](/cli/azure/ams/live-event#optional-parameters)|
+ |CLI|[--use-static-hostname](/cli/azure/ams/live-event#az-ams-live-event-create)|[--access-token](/cli/azure/ams/live-event#optional-parameters)|
|.NET|[LiveEvent.useStaticHostname](/dotnet/api/microsoft.azure.management.media.models.liveevent.usestatichostname?view=azure-dotnet&preserve-view=true#Microsoft_Azure_Management_Media_Models_LiveEvent_UseStaticHostname)|[LiveEventInput.AccessToken](/dotnet/api/microsoft.azure.management.media.models.liveeventinput.accesstoken#Microsoft_Azure_Management_Media_Models_LiveEventInput_AccessToken)| ### Live ingest URL naming rules
media-services Stream Manage Streaming Endpoints How To https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/media-services/latest/stream-manage-streaming-endpoints-how-to.md
az ams streaming-endpoint start [--account-name]
[--subscription] ```
-For more information, see [az ams streaming-endpoint start](/cli/azure/ams/streaming-endpoint#az_ams_streaming_endpointstart).
+For more information, see [az ams streaming-endpoint start](/cli/azure/ams/streaming-endpoint#az-ams-streaming-endpointstart).
## [REST](#tab/rest/)
media-services Stream Streaming Locators Concept https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/media-services/latest/stream-streaming-locators-concept.md
To get Streaming Locators based on the associated Asset name, use the following
|Language|API| ||| |REST|[liststreaminglocators](/rest/api/media/assets/liststreaminglocators)|
-|CLI|[az ams asset list-streaming-locators](/cli/azure/ams/asset#az_ams_asset_list_streaming_locators)|
+|CLI|[az ams asset list-streaming-locators](/cli/azure/ams/asset#az-ams-asset-list-streaming-locators)|
|.NET|[ListStreamingLocators](/dotnet/api/microsoft.azure.management.media.assetsoperationsextensions.liststreaminglocators#Microsoft_Azure_Management_Media_AssetsOperationsExtensions_ListStreamingLocators_Microsoft_Azure_Management_Media_IAssetsOperations_System_String_System_String_System_String_)| |Java|[AssetStreamingLocator](/rest/api/media/assets/liststreaminglocators#assetstreaminglocator)| |Node.js|[listStreamingLocators](/javascript/api/@azure/arm-mediaservices/assets#liststreaminglocators-string--string--string--msrest-requestoptionsbase-)|
migrate Concepts Dependency Visualization https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/migrate/concepts-dependency-visualization.md
There are two options for deploying dependency analysis
**Option** | **Details** | **Public cloud** | **Azure Government** - |- | -
-**Agentless** | Polls data from servers on VMware using vSphere APIs.<br/><br/> You don't need to install agents on servers.<br/><br/> This option is currently only for servers on VMware. | Supported. | Supported.
+**Agentless** | For VMware VMs, dependency data is gathered from servers by connecting via the vCenter Server using the vSphere APIs.<br/><br/> For Hyper-V VMs and physical servers, dependency data is gathered by directly connecting to Windows servers using PowerShell remoting and to Linux servers using SSH connection.<br/><br/>No agents need to be installed on target servers.| Supported | Supported
**Agent-based analysis** | Uses the [Service Map solution](../azure-monitor/vm/service-map.md) in Azure Monitor, to enable dependency visualization and analysis.<br/><br/> You need to install agents on each on-premises server that you want to analyze. | Supported | Not supported. ## Agentless analysis
The differences between agentless visualization and agent-based visualization ar
**Requirement** | **Agentless** | **Agent-based** | |
-**Support** | Available for servers on VMware only. [Review](migrate-support-matrix-vmware.md#dependency-analysis-requirements-agentless) supported operating systems. | In general availability (GA).
+**Support** | Available for VMware VMs in general availability (GA).<br><br>Available for Hyper-V VMs and physical servers in public preview. | In general availability (GA).
**Agent** | No agents needed on servers you want to analyze. | Agents required on each on-premises server that you want to analyze. **Log Analytics** | Not required. | Azure Migrate uses the [Service Map](../azure-monitor/vm/service-map.md) solution in [Azure Monitor logs](../azure-monitor/logs/log-query-overview.md) for dependency analysis.<br/><br/> You associate a Log Analytics workspace with a project. The workspace must reside in the East US, Southeast Asia, or West Europe regions. The workspace must be in a region in which [Service Map is supported](../azure-monitor/vm/vminsights-configure-workspace.md#supported-regions). **Process** | Captures TCP connection data. After discovery, it gathers data at intervals of five minutes. | Service Map agents installed on a server gather data about TCP processes, and inbound/outbound connections for each process.
migrate Prepare For Migration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/migrate/prepare-for-migration.md
The table summarizes discovery, assessment, and migration limits for Azure Migra
**Scenario** | **Project** | **Discovery/Assessment** | **Migration** | | |
-**VMware VMs** | Discover and assess up to 35,000 VMs in a single Azure Migrate project. | Discover up to 10,000 VMware VMs with a single [Azure Migrate appliance](common-questions-appliance.md) for VMware. | **Agentless migration**: you can simultaneously replicate a maximum of 500 VMs from each vCenter Server. **Agent-based migration**: you can [scale out](./agent-based-migration-architecture.md#performance-and-scaling) the [replication appliance](migrate-replication-appliance.md) to replicate large numbers of VMs.<br/><br/> In the portal, you can select up to 10 machines at once for replication. To replicate more machines, add in batches of 10.
+**VMware VMs** | Discover and assess up to 35,000 VMs in a single Azure Migrate project. | Discover up to 10,000 VMware VMs with a single [Azure Migrate appliance](common-questions-appliance.md) for VMware. <br> The appliance supports adding multiple vCenter Servers. You can add up to 10 vCenter Servers per appliance. | **Agentless migration**: you can simultaneously replicate a maximum of 500 VMs across multiple vCenter Servers (discovered from one appliance) using a scale-out appliance.<br> **Agent-based migration**: you can [scale out](./agent-based-migration-architecture.md#performance-and-scaling) the [replication appliance](migrate-replication-appliance.md) to replicate large numbers of VMs.<br/><br/> In the portal, you can select up to 10 machines at once for replication. To replicate more machines, add in batches of 10.
**Hyper-V VMs** | Discover and assess up to 35,000 VMs in a single Azure Migrate project. | Discover up to 5,000 Hyper-V VMs with a single Azure Migrate appliance | An appliance isn't used for Hyper-V migration. Instead, the Hyper-V Replication Provider runs on each Hyper-V host.<br/><br/> Replication capacity is influenced by performance factors such as VM churn, and upload bandwidth for replication data.<br/><br/> In the portal, you can select up to 10 machines at once for replication. To replicate more machines, add in batches of 10. **Physical machines** | Discover and assess up to 35,000 machines in a single Azure Migrate project. | Discover up to 250 physical servers with a single Azure Migrate appliance for physical servers. | You can [scale out](./agent-based-migration-architecture.md#performance-and-scaling) the [replication appliance](migrate-replication-appliance.md) to replicate large numbers of servers.<br/><br/> In the portal, you can select up to 10 machines at once for replication. To replicate more machines, add in batches of 10.
migrate Scale Vmware Assessment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/migrate/scale-vmware-assessment.md
Use the limits summarized in this table for planning.
**Planning** | **Limits** | **Azure Migrate projects** | Assess up to 35,000 servers in a project.
-**Azure Migrate appliance** | An appliance can discover up to 10,000 servers on a vCenter Server.<br/> An appliance can only connect to a single vCenter Server.<br/> An appliance can only be associated with a single Azure Migrate project.<br/> Any number of appliances can be associated with a single Azure Migrate project. <br/><br/>
+**Azure Migrate appliance** | An appliance can discover up to 10,000 servers on a vCenter Server.<br/> An appliance can connect up to 10 vCenter Servers.<br/> An appliance can only be associated with a single Azure Migrate project.<br/> Any number of appliances can be associated with a single Azure Migrate project. <br/><br/>
**Group** | You can add up to 35,000 servers in a single group. **Azure Migrate assessment** | You can assess up to 35,000 servers in a single assessment. With these limits in mind, here are some example deployments: -
-**vCenter server** | **Servers on server** | **Recommendation** | **Action**
-|||
-One | < 10,000 | One Azure Migrate project.<br/> One appliance.<br/> One vCenter account for discovery. | Set up appliance, connect to vCenter Server with an account.
-One | > 10,000 | One Azure Migrate project.<br/> Multiple appliances.<br/> Multiple vCenter accounts. | Set up appliance for every 10,000 servers.<br/><br/> Set up vCenter accounts, and divide inventory to limit access for an account to less than 10,000 servers.<br/> Connect each appliance to vCenter server with an account.<br/> You can analyze dependencies across servers that are discovered with different appliances. <br/> <br/> Ensure there is no overlap among the servers on the vCenter accounts provided. A discovery with such an overlap is an unsupported scenario. If a server is discovered by more than one appliance, this results in a duplicates in discovery and in issues while enabling replication for the server using the Azure portal in Server Migration.
-Multiple | < 10,000 | One Azure Migrate project.<br/> Multiple appliances.<br/> One vCenter account for discovery. | Set up appliances, connect to vCenter Server with an account.<br/> You can analyze dependencies across servers that are discovered with different appliances.
-Multiple | > 10,000 | One Azure Migrate project.<br/> Multiple appliances.<br/> Multiple vCenter accounts. | If vCenter Server discovery < 10,000 servers, set up an appliance for each vCenter Server.<br/><br/> If vCenter Server discovery > 10,000 servers, set up an appliance for every 10,000 servers.<br/> Set up vCenter accounts, and divide inventory to limit access for an account to less than 10,000 servers.<br/> Connect each appliance to vCenter server with an account.<br/> You can analyze dependencies across servers that are discovered with different appliances. <br/><br/> Ensure there is no overlap among the servers on the vCenter accounts provided. A discovery with such an overlap is an unsupported scenario. If a server is discovered by more than one appliance, this results in a duplicates in discovery and in issues while enabling replication for the server using the Azure portal in Server Migration.
+**vCenter server** | **Servers to be discovered** | **Recommendation** | **Action** |
+ | | | |
+One | < 10,000 | One Azure Migrate project.<br><br> One appliance can discover up to 10,000 servers running on up to 10 vCenter Servers.<br><br> Provide one or more vCenter Server accounts for discovery. | Set up an appliance to discover servers from up to 10 vCenter Servers mapped to one or more vCenter Server accounts, scoped to discover less than 10,000 servers. <br> <br>You can analyze dependencies on servers across vCenter Servers discovered from the same appliance.|
+One | > 10,000 | One Azure Migrate project.<br><br> One appliance can discover up to 10,000 servers running on up to 10 vCenter Servers.<br><br> Provide one or more vCenter Server accounts for discovery. | Set up an appliance to connect up to 10 vCenter Servers mapped to one or more vCenter Server accounts, scoped to discover less than 10,000 servers. You need to deploy additional appliances for every 10,000 servers.<br><br> If the number of servers is greater than 10,000, set up additional appliances with the vCenter Server accounts scoped accordingly. <br><br> You can analyze dependencies on servers across vCenter Servers discovered from the same appliance.<br> <br> Ensure there is no overlap among the servers on the vCenter accounts provided. A discovery with such an overlap is an unsupported scenario. If a server is discovered by more than one appliance, this results in a duplicates in discovery and in issues while enabling replication for the server using the Azure portal in Server Migration. |
+Multiple | < 10,000 | One Azure Migrate project.<br><br> One appliance can discover up to 10,000 servers running on up to 10 vCenter Servers.<br><br> Provide one or more vCenter Server accounts for discovery. | Set up an appliance to connect up to 10 vCenter Servers mapped to one or more vCenter Server accounts, scoped to discover less than 10,000 servers. <br><br> You need to deploy additional appliances for every 10 vCenter Servers.<br> <br> You can analyze dependencies on servers across vCenter Servers discovered from the same appliance. |
+Multiple | > 10,000 | One Azure Migrate project.<br><br> One appliance can discover up to 10,000 servers running on up to 10 vCenter Servers.<br><br> Provide one or more vCenter Server accounts for discovery. | Set up an appliance to discover VMs from up to 10 vCenter Servers mapped to one or more vCenter Server accounts, scoped to discover less than 10,000 servers. You need to deploy additional appliances for every 10 vCenter Servers. <br><br> If the number of servers is greater than 10,000, set up additional appliances with the vCenter Server accounts scoped accordingly. <br><br> You can analyze dependencies on servers across vCenter Servers discovered from the same appliance. <br><br> Ensure there is no overlap among the servers on the vCenter accounts provided. A discovery with such an overlap is an unsupported scenario. If a server is discovered by more than one appliance, this results in a duplicates in discovery and in issues while enabling replication for the server using the Azure portal in Server Migration. |
migrate Server Migrate Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/migrate/server-migrate-overview.md
Use these selected comparisons to help you decide which method to use. You can a
**Setting** | **Agentless** | **Agent-based** | | **Azure permissions** | You need permissions to create an Azure Migrate project, and to register Azure AD apps created when you deploy the Azure Migrate appliance. | You need Contributor permissions on the Azure subscription.
-**Replication** | A maximum of 500 VMs can be simultaneously replicated from a vCenter Server. In the portal, you can select up to 10 machines at once for replication. To replicate more machines, add in batches of 10.| Replication capacity increases by scaling the replication appliance.
+**Replication** | You can simultaneously replicate a maximum of 500 VMs across multiple vCenter Servers (discovered from one appliance) using a scale-out appliance. In the portal, you can select up to 10 machines at once for replication. To replicate more machines, add in batches of 10.| Replication capacity increases by scaling the replication appliance.
**Appliance deployment** | The [Azure Migrate appliance](migrate-appliance.md) is deployed on-premises. | The [Azure Migrate Replication appliance](migrate-replication-appliance.md) is deployed on-premises. **Site Recovery compatibility** | Compatible. | You can't replicate with Azure Migrate Server Migration if you've set up replication for a machine using Site Recovery. **Target disk** | Managed disks | Managed disks
mysql Concepts Data Encryption Mysql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/concepts-data-encryption-mysql.md
When you configure data encryption with a customer-managed key in Key Vault, con
* If we create a read replica for your Azure Database for MySQL, which has data encryption enabled, the replica server will be in *Inaccessible* state. You can fix this through [Azure portal](howto-data-encryption-portal.md#using-data-encryption-for-restore-or-replica-servers) or [CLI](howto-data-encryption-cli.md#using-data-encryption-for-restore-or-replica-servers). * If you delete the KeyVault, the Azure Database for MySQL will be unable to access the key and will move to *Inaccessible* state. Recover the [Key Vault](../key-vault/general/key-vault-recovery.md) and revalidate the data encryption to make the server *Available*. * If we delete the key from the KeyVault, the Azure Database for MySQL will be unable to access the key and will move to *Inaccessible* state. Recover the [Key](../key-vault/general/key-vault-recovery.md) and revalidate the data encryption to make the server *Available*.
-* If the key stored in the Azure KeyVault expires, the key will become invalid and the Azure Database for MySQL will transition into *Inaccessible* state. Extend the key expiry date using [CLI](/cli/azure/keyvault/key#az_keyvault_key_set-attributes) and then revalidate the data encryption to make the server *Available*.
+* If the key stored in the Azure KeyVault expires, the key will become invalid and the Azure Database for MySQL will transition into *Inaccessible* state. Extend the key expiry date using [CLI](/cli/azure/keyvault/key#az-keyvault-key-set-attributes) and then revalidate the data encryption to make the server *Available*.
### Accidental key access revocation from Key Vault
mysql Connect Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/connect-azure-cli.md
The first thing we'll create is a managed MySQL server. In [Azure Cloud Shell](h
az mysql flexible-server create --public-access <your-ip-address> ```
-You can provide additional arguments for this command to customize it. See all arguments for [az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create).
+You can provide additional arguments for this command to customize it. See all arguments for [az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create).
## Create a database Run the following command to create a database, **newdatabase** if you have not already created one.
mysql How To Configure High Availability Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/how-to-configure-high-availability-cli.md
High availability feature provisions physically separate primary and standby rep
[!INCLUDE [flexible-server-free-trial-note](../includes/flexible-server-free-trial-note.md)] - Install or upgrade Azure CLI to the latest version. See [Install Azure CLI](/cli/azure/install-azure-cli).-- Login to Azure account using [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+- Login to Azure account using [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login
You can only create server using General purpose or Memory optimized pricing ti
## Disable high availability
-You can disable high availability by using the [az mysql flexible-server update](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_update) command. Note that disabling high availability is only supported if the server was created with high availability.
+You can disable high availability by using the [az mysql flexible-server update](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-update) command. Note that disabling high availability is only supported if the server was created with high availability.
```azurecli az mysql flexible-server update [--high-availability {Disabled, SameZone, ZoneRedundant}]
mysql How To Manage Firewall Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/how-to-manage-firewall-cli.md
If you prefer to install and use the CLI locally, this quickstart requires Azure
## Prerequisites
-You'll need to sign in to your account using the [az login](/cli/azure/reference-index#az_login) command. Note the **ID** property, which refers to **Subscription ID** for your Azure account.
+You'll need to sign in to your account using the [az login](/cli/azure/reference-index#az-login) command. Note the **ID** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login ```
-Select the specific subscription under your account using [az account set](/cli/azure/account#az_account_set) command. Make a note of the **ID** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az_account_list).
+Select the specific subscription under your account using [az account set](/cli/azure/account#az-account-set) command. Make a note of the **ID** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az-account-list).
```azurecli az account set --subscription <subscription id>
mysql How To Manage Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/how-to-manage-server-cli.md
This article shows you how to manage your Flexible Server deployed in Azure. Man
This article requires that you're running the Azure CLI version 2.0 or later locally. To see the version installed, run the `az --version` command. If you need to install or upgrade, see [Install Azure CLI](/cli/azure/install-azure-cli).
-You'll need to log in to your account using the [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+You'll need to log in to your account using the [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login ```
-Select the specific subscription under your account using [az account set](/cli/azure/account) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az_account_list).
+Select the specific subscription under your account using [az account set](/cli/azure/account) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az-account-list).
```azurecli az account set --subscription <subscription id>
az account set --subscription <subscription id>
## Scale compute and storage
-You can scale up your compute tier, vCores, and storage easily using the following command. You can see all the server operation you can perform [az mysql flexible-server update](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_update)
+You can scale up your compute tier, vCores, and storage easily using the following command. You can see all the server operation you can perform [az mysql flexible-server update](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-update)
```azurecli-interactive az mysql flexible-server update --resource-group myresourcegroup --name mydemoserver --sku-name Standard_D4ds_v4 --storage-size 6144
You can use any of these commands to create, delete , list and view database pro
| Cmdlet | Usage| Description | | | | |
-|[az mysql flexible-server db create](/cli/azure/mysql/flexible-server/db#az_mysql_flexible_server_db_create)|```az mysql flexible-server db create -g myresourcegroup -s mydemoserver -n mydatabasename``` |Creates a database|
-|[az mysql flexible-server db delete](/cli/azure/mysql/flexible-server/db#az_mysql_flexible_server_db_delete)|```az mysql flexible-server db delete -g myresourcegroup -s mydemoserver -n mydatabasename```|Delete your database from your server. This command does not delete your server. |
-|[az mysql flexible-server db list](/cli/azure/mysql/flexible-server/db#az_mysql_flexible_server_db_list)|```az mysql flexible-server db list -g myresourcegroup -s mydemoserver```|lists all the databases on the server|
-|[az mysql flexible-server db show](/cli/azure/mysql/flexible-server/db#az_mysql_flexible_server_db_show)|```az mysql flexible-server db show -g myresourcegroup -s mydemoserver -n mydatabasename```|Shows more details of the database|
+|[az mysql flexible-server db create](/cli/azure/mysql/flexible-server/db#az-mysql-flexible-server-db-create)|```az mysql flexible-server db create -g myresourcegroup -s mydemoserver -n mydatabasename``` |Creates a database|
+|[az mysql flexible-server db delete](/cli/azure/mysql/flexible-server/db#az-mysql-flexible-server-db-delete)|```az mysql flexible-server db delete -g myresourcegroup -s mydemoserver -n mydatabasename```|Delete your database from your server. This command does not delete your server. |
+|[az mysql flexible-server db list](/cli/azure/mysql/flexible-server/db#az-mysql-flexible-server-db-list)|```az mysql flexible-server db list -g myresourcegroup -s mydemoserver```|lists all the databases on the server|
+|[az mysql flexible-server db show](/cli/azure/mysql/flexible-server/db#az-mysql-flexible-server-db-show)|```az mysql flexible-server db show -g myresourcegroup -s mydemoserver -n mydatabasename```|Shows more details of the database|
## Update admin password You can change the administrator role's password with this command
az mysql flexible-server update --resource-group myresourcegroup --name mydemose
> Password must contain characters from three of the following categories: English uppercase letters, English lowercase letters, numbers, and non-alphanumeric characters. ## Delete a server
-If you would just like to delete the MySQL Flexible server, you can run [az mysql flexible-server server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete) command.
+If you would just like to delete the MySQL Flexible server, you can run [az mysql flexible-server server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete) command.
```azurecli-interactive az mysql flexible-server delete --resource-group myresourcegroup --name mydemoserver
mysql How To Manage Virtual Network Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/how-to-manage-virtual-network-cli.md
If you prefer to install and use the CLI locally, this quickstart requires Azure
## Prerequisites
-You'll need to sign in to your account using the [az login](/cli/azure/reference-index#az_login) command. Note the **ID** property, which refers to **Subscription ID** for your Azure account.
+You'll need to sign in to your account using the [az login](/cli/azure/reference-index#az-login) command. Note the **ID** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login ```
-Select the specific subscription under your account using [az account set](/cli/azure/account#az_account_set) command. Make a note of the **ID** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az_account_list).
+Select the specific subscription under your account using [az account set](/cli/azure/account#az-account-set) command. Make a note of the **ID** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az-account-list).
```azurecli az account set --subscription <subscription id>
mysql How To Restart Stop Start Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/how-to-restart-stop-start-server-cli.md
This article shows you how to perform restart, start and stop flexible server us
[!INCLUDE [flexible-server-free-trial-note](../includes/flexible-server-free-trial-note.md)] - Install or upgrade Azure CLI to the latest version. See [Install Azure CLI](/cli/azure/install-azure-cli).-- Login to Azure account using [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+- Login to Azure account using [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login
mysql How To Restore Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/how-to-restore-server-cli.md
This article provides step-by-step procedure to perform point-in-time recoveries
[!INCLUDE [flexible-server-free-trial-note](../includes/flexible-server-free-trial-note.md)] - Install or upgrade Azure CLI to the latest version. See [Install Azure CLI](/cli/azure/install-azure-cli).-- Login to Azure account using [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.+
+- Login to Azure account using [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login
mysql How To Troubleshoot Cli Errors https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/how-to-troubleshoot-cli-errors.md
Currently, Azure CLI doesn't support turning on debug logging, but you can retri
|SubscriptionNotFound| The requested subscription was not found. Run ```az account list all``` to see all your current subscriptions.| |InvalidParameterValue| An invalid value was given to a parameter.Check the [CLI reference docs](/cli/azure/mysql/flexible-server) to see what is the correct values supported for the arguments.| |InvalidLocation| An invalid location was specified. Check availability of Azure Database for MySQL Flexible Server in [Azure regions](https://azure.microsoft.com/global-infrastructure/services/?products=mysql) |
-|InvalidServerName| Identified an invalid server name. Check the sever name. Run the command [az mysql flexible-server list](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_list) to see all the list of Flexible servers available. |
+|InvalidServerName| Identified an invalid server name. Check the sever name. Run the command [az mysql flexible-server list](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-list) to see all the list of Flexible servers available. |
|InvalidResourceIdSegment| A syntax error was identified in your Azure Resource Manager template. Use an JSON formatter tool to validate the JSON to identify the syntax error.| |InvalidUserName| Enter a valid username. The admin user name can't be azure_superuser, azure_pg_admin, admin, administrator, root, guest, or public. It can't start with pg_.| |BlockedUserName| The admin user name can't be azure_superuser, azure_pg_admin, admin, administrator, root, guest, or public. It can't start with pg_. Avoid using these patterns in the admin name.|
mysql Quickstart Create Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/quickstart-create-server-cli.md
If you prefer to install and use the CLI locally, this quickstart requires Azure
## Prerequisites
-You'll need to log in to your account using the [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+You'll need to log in to your account using the [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login ```
-Select the specific subscription under your account using [az account set](/cli/azure/account#az_account_set) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az_account_list).
+Select the specific subscription under your account using [az account set](/cli/azure/account#az-account-set) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az-account-list).
```azurecli-interactive az account set --subscription <subscription id>
mysql Sample Cli Audit Logs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-audit-logs.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az mysql flexible-server parameter set](/cli/azure/mysql/flexible-server/parameter#az_mysql_flexible_server_parameter_set)|Updates the parameter of a flexible server.|
-|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete)|Deletes a Flexible Server.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az mysql flexible-server parameter set](/cli/azure/mysql/flexible-server/parameter#az-mysql-flexible-server-parameter-set)|Updates the parameter of a flexible server.|
+|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete)|Deletes a Flexible Server.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Sample Cli Change Server Parameters https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-change-server-parameters.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az mysql flexible-server parameter list](/cli/azure/mysql/flexible-server/parameter#az_mysql_flexible_server_parameter_list)|Lists the parameter values for a flexible server.|
-|[az mysql flexible-server parameter set](/cli/azure/mysql/flexible-server/parameter#az_mysql_flexible_server_parameter_set)|Updates the parameter of a flexible server.|
-|[az mysql flexible-server parameter show](/cli/azure/mysql/flexible-server/parameter#az_mysql_flexible_server_parameter_show)|Get a specific parameter value for a flexible server.|
-|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete)|Deletes a Flexible Server.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az mysql flexible-server parameter list](/cli/azure/mysql/flexible-server/parameter#az-mysql-flexible-server-parameter-list)|Lists the parameter values for a flexible server.|
+|[az mysql flexible-server parameter set](/cli/azure/mysql/flexible-server/parameter#az-mysql-flexible-server-parameter-set)|Updates the parameter of a flexible server.|
+|[az mysql flexible-server parameter show](/cli/azure/mysql/flexible-server/parameter#az-mysql-flexible-server-parameter-show)|Get a specific parameter value for a flexible server.|
+|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete)|Deletes a Flexible Server.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Sample Cli Create Connect Private Access https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-create-connect-private-access.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create)|Creates a subnet within the VNet.|
-|[az vm create](/cli/azure/vm#az_vm_create)|Creates an Azure Virtual Machine.|
-|[az vm open-port](/cli/azure/vm#az_vm_open_port)|Opens a VM to inbound traffic on specified ports.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create)|Creates a subnet within the VNet.|
+|[az vm create](/cli/azure/vm#az-vm-create)|Creates an Azure Virtual Machine.|
+|[az vm open-port](/cli/azure/vm#az-vm-open-port)|Opens a VM to inbound traffic on specified ports.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Sample Cli Create Connect Public Access https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-create-connect-public-access.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az mysql flexible-server firewall-rule create](/cli/azure/mysql/flexible-server/firewall-rule#az_mysql_flexible_server_firewall_rule_create)|Creates a firewall rule to allow access to the Flexible Server and its databases from the entered IP address range.|
-|[az mysql flexible-server connect](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_connect)|Connects to a Flexible Server to perform server or database operations.|
-|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete)|Deletes a Flexible Server.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az mysql flexible-server firewall-rule create](/cli/azure/mysql/flexible-server/firewall-rule#az-mysql-flexible-server-firewall-rule-create)|Creates a firewall rule to allow access to the Flexible Server and its databases from the entered IP address range.|
+|[az mysql flexible-server connect](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-connect)|Connects to a Flexible Server to perform server or database operations.|
+|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete)|Deletes a Flexible Server.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Sample Cli Monitor And Scale https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-monitor-and-scale.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az monitor metrics list](/cli/azure/monitor/metrics#az_monitor_metrics_list)|Lists the Azure Monitor metric value for the resources.|
-|[az mysql flexible-server update](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_update)|Updates properties of the Flexible Server.|
-|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete)|Deletes a Flexible Server.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az monitor metrics list](/cli/azure/monitor/metrics#az-monitor-metrics-list)|Lists the Azure Monitor metric value for the resources.|
+|[az mysql flexible-server update](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-update)|Updates properties of the Flexible Server.|
+|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete)|Deletes a Flexible Server.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Sample Cli Read Replicas https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-read-replicas.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az mysql flexible-server replica create](/cli/azure/mysql/flexible-server/replica#az_mysql_flexible_server_replica_create)|Create a read replica for a server.|
-|[az mysql flexible-server replica list](/cli/azure/mysql/flexible-server/replica#az_mysql_flexible_server_replica_list)|List all read replicas for a given server.|
-|[az mysql flexible-server replica stop-replication](/cli/azure/mysql/flexible-server/replica#az_mysql_flexible_server_replica_stop_replication)|Stop replication to a read replica and make it a read/write server.|
-|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete)|Deletes a Flexible Server.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az mysql flexible-server replica create](/cli/azure/mysql/flexible-server/replica#az-mysql-flexible-server-replica-create)|Create a read replica for a server.|
+|[az mysql flexible-server replica list](/cli/azure/mysql/flexible-server/replica#az-mysql-flexible-server-replica-list)|List all read replicas for a given server.|
+|[az mysql flexible-server replica stop-replication](/cli/azure/mysql/flexible-server/replica#az-mysql-flexible-server-replica-stop-replication)|Stop replication to a read replica and make it a read/write server.|
+|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete)|Deletes a Flexible Server.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Sample Cli Restart Stop Start https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-restart-stop-start.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az mysql flexible-server stop](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_stop)|Stops a Flexible Server.|
-|[az mysql flexible-server start](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_start)|Starts a Flexible Server.|
-|[az mysql flexible-server restart](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_restart)|Restarts a Flexible Server.|
-|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete)|Deletes a Flexible Server.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az mysql flexible-server stop](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-stop)|Stops a Flexible Server.|
+|[az mysql flexible-server start](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-start)|Starts a Flexible Server.|
+|[az mysql flexible-server restart](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-restart)|Restarts a Flexible Server.|
+|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete)|Deletes a Flexible Server.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Sample Cli Restore Server https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-restore-server.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az mysql flexible-server restore](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_restore)|Restore a Flexible Server from backup.|
-|[az mysql flexible-server show](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_show)|Get details of a Flexible Server.|
-|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete)|Deletes a Flexible Server.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az mysql flexible-server restore](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-restore)|Restore a Flexible Server from backup.|
+|[az mysql flexible-server show](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-show)|Get details of a Flexible Server.|
+|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete)|Deletes a Flexible Server.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Sample Cli Same Zone Ha https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-same-zone-ha.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az mysql flexible-server update](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_update)|Updates a Flexible Server.|
-|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete)|Deletes a Flexible Server.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az mysql flexible-server update](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-update)|Updates a Flexible Server.|
+|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete)|Deletes a Flexible Server.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Sample Cli Slow Query Logs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-slow-query-logs.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az mysql flexible-server parameter set](/cli/azure/mysql/flexible-server/parameter#az_mysql_flexible_server_parameter_set)|Updates the parameter of a flexible server.|
-|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete)|Deletes a Flexible Server.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az mysql flexible-server parameter set](/cli/azure/mysql/flexible-server/parameter#az-mysql-flexible-server-parameter-set)|Updates the parameter of a flexible server.|
+|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete)|Deletes a Flexible Server.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Sample Cli Zone Redundant Ha https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/scripts/sample-cli-zone-redundant-ha.md
This script uses the following commands. Each command in the table links to comm
| **Command** | **Notes** | |||
-|[az group create](/cli/azure/group#az_group_create)|Creates a resource group in which all resources are stored|
-|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create)|Creates a Flexible Server that hosts the databases.|
-|[az mysql flexible-server update](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_update)|Updates a Flexible Server.|
-|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_delete)|Deletes a Flexible Server.|
-|[az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources.|
+|[az group create](/cli/azure/group#az-group-create)|Creates a resource group in which all resources are stored|
+|[az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create)|Creates a Flexible Server that hosts the databases.|
+|[az mysql flexible-server update](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-update)|Updates a Flexible Server.|
+|[az mysql flexible-server delete](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-delete)|Deletes a Flexible Server.|
+|[az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources.|
## Next steps
mysql Tutorial Deploy Springboot On Aks Vnet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/tutorial-deploy-springboot-on-aks-vnet.md
In this tutorial, you'll learn how to deploy a [Spring Boot](https://spring.io/p
## Create an Azure Database for MySQL - Flexible Server ### Create a resource group
-An Azure resource group is a logical group in which Azure resources are deployed and managed. Let's create a resource group *rg-mysqlaksdemo* using the [az group create](/cli/azure/group#az_group_create) command in the *eastus* location.
+An Azure resource group is a logical group in which Azure resources are deployed and managed. Let's create a resource group *rg-mysqlaksdemo* using the [az group create](/cli/azure/group#az-group-create) command in the *eastus* location.
1. Open command prompt. 1. Sign in to your Azure account.
We'll now create a flexible server in a virtual network (private access connecti
--subnet-prefix 155.55.1.0/24 ```
-1. Create an Azure Database for MySQL - Flexible Server *mysql-mysqlaksdemo* in the above created subnet, using [az mysql flexible-server create](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_create) command. Replace your values for admin username and password.
+1. Create an Azure Database for MySQL - Flexible Server *mysql-mysqlaksdemo* in the above created subnet, using [az mysql flexible-server create](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-create) command. Replace your values for admin username and password.
```azurecli-interactive az mysql flexible-server create \
Congratulations! You've successfully deployed a Spring Boot application on Azure
## Clean up the resources
-To avoid Azure charges, you should clean up unneeded resources. When the cluster is no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, container service, and all related resources.
+To avoid Azure charges, you should clean up unneeded resources. When the cluster is no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, container service, and all related resources.
```azurecli-interactive az group delete --name rg-mysqlaksdemo
mysql Tutorial Deploy Wordpress On Aks https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/tutorial-deploy-wordpress-on-aks.md
The following example output shows the resource group created successfully:
## Create AKS cluster
-Use the [az aks create](/cli/azure/aks#az_aks_create) command to create an AKS cluster. The following example creates a cluster named *myAKSCluster* with one node. This will take several minutes to complete.
+Use the [az aks create](/cli/azure/aks#az-aks-create) command to create an AKS cluster. The following example creates a cluster named *myAKSCluster* with one node. This will take several minutes to complete.
```azurecli-interactive az aks create --resource-group wordpress-project --name myAKSCluster --node-count 1 --generate-ssh-keys
After a few minutes, the command completes and returns JSON-formatted informatio
## Connect to the cluster
-To manage a Kubernetes cluster, you use [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/), the Kubernetes command-line client. If you use Azure Cloud Shell, `kubectl` is already installed. To install `kubectl` locally, use the [az aks install-cli](/cli/azure/aks#az_aks_install_cli) command:
+To manage a Kubernetes cluster, you use [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/), the Kubernetes command-line client. If you use Azure Cloud Shell, `kubectl` is already installed. To install `kubectl` locally, use the [az aks install-cli](/cli/azure/aks#az-aks-install-cli) command:
```azurecli-interactive az aks install-cli ```
-To configure `kubectl` to connect to your Kubernetes cluster, use the [az aks get-credentials](/cli/azure/aks#az_aks_get_credentials) command. This command downloads credentials and configures the Kubernetes CLI to use them.
+To configure `kubectl` to connect to your Kubernetes cluster, use the [az aks get-credentials](/cli/azure/aks#az-aks-get-credentials) command. This command downloads credentials and configures the Kubernetes CLI to use them.
```azurecli-interactive az aks get-credentials --resource-group wordpress-project --name myAKSCluster
Open a web browser to the external IP address of your service to see your WordPr
## Clean up the resources
-To avoid Azure charges, you should clean up unneeded resources. When the cluster is no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, container service, and all related resources.
+To avoid Azure charges, you should clean up unneeded resources. When the cluster is no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, container service, and all related resources.
```azurecli-interactive az group delete --name wordpress-project --yes --no-wait
mysql Tutorial Php Database App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/tutorial-php-database-app.md
To stop PHP, type `Ctrl + C` in the terminal.
## Create a MySQL Flexible Server
-In this step, you create a MySQL database in [Azure Database for MySQL Flexible Server](../index.yml). Later, you configure the PHP application to connect to this database. In the [Azure Cloud Shell](../../cloud-shell/overview.md), create a server in with the [`az flexible-server create`](/cli/azure/mysql/server#az_mysql_flexible_server_create) command.
+In this step, you create a MySQL database in [Azure Database for MySQL Flexible Server](../index.yml). Later, you configure the PHP application to connect to this database. In the [Azure Cloud Shell](../../cloud-shell/overview.md), create a server in with the [`az flexible-server create`](/cli/azure/mysql/server#az-mysql-flexible-server-create) command.
```azurecli-interactive az mysql flexible-server create --resource-group myResourceGroup --public-access <IP-Address>
In this step, you deploy the MySQL-connected PHP application to Azure App Servic
FTP and local Git can deploy to an Azure web app by using a deployment user. Once you configure your deployment user, you can use it for all your Azure deployments. Your account-level deployment username and password are different from your Azure subscription credentials.
-To configure the deployment user, run the [az webapp deployment user set](/cli/azure/webapp/deployment/user#az_webapp_deployment_user_set) command in Azure Cloud Shell. Replace _&lt;username>_ and _&lt;password>_ with your deployment user username and password.
+To configure the deployment user, run the [az webapp deployment user set](/cli/azure/webapp/deployment/user#az-webapp-deployment-user-set) command in Azure Cloud Shell. Replace _&lt;username>_ and _&lt;password>_ with your deployment user username and password.
The username must be unique within Azure, and for local Git pushes, must not contain the '@' symbol. The password must be at least eight characters long, with two of the following three elements: letters, numbers, and symbols.
The JSON output shows the password as null. If you get a 'Conflict'. Details: 40
### Create an App Service plan
-In the Cloud Shell, create an App Service plan in the resource group with the [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create) command. The following example creates an App Service plan named myAppServicePlan in the Free pricing tier (--sku F1) and in a Linux container (--is-linux).
+In the Cloud Shell, create an App Service plan in the resource group with the [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create) command. The following example creates an App Service plan named myAppServicePlan in the Free pricing tier (--sku F1) and in a Linux container (--is-linux).
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku F1 --is-linux
az appservice plan create --name myAppServicePlan --resource-group myResourceGro
Create a [web app](../../app-service/overview.md#app-service-on-linux) in the myAppServicePlan App Service plan.
-In the Cloud Shell, you can use the [az webapp create](/cli/azure/webapp#az_webapp_create) command. In the following example, replace _&lt;app-name>_ with a globally unique app name (valid characters are `a-z`, `0-9`, and `-`). The runtime is set to `PHP|7.0`. To see all supported runtimes, run [az webapp list-runtimes --os linux](/cli/azure/webapp#az_webapp_list_runtimes).
+In the Cloud Shell, you can use the [az webapp create](/cli/azure/webapp#az-webapp-create) command. In the following example, replace _&lt;app-name>_ with a globally unique app name (valid characters are `a-z`, `0-9`, and `-`). The runtime is set to `PHP|7.0`. To see all supported runtimes, run [az webapp list-runtimes --os linux](/cli/azure/webapp#az-webapp-list-runtimes).
```bash az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime "PHP|7.3" --deployment-local-git
You've created an empty new web app, with git deployment enabled.
### Configure database settings
-In App Service, you set environment variables as *app settings* by using the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command.
+In App Service, you set environment variables as *app settings* by using the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command.
The following command configures the app settings `DB_HOST`, `DB_DATABASE`, `DB_USERNAME`, and `DB_PASSWORD`. Replace the placeholders _&lt;app-name>_ and _&lt;mysql-server-name>_.
In the local terminal window, use `php artisan` to generate a new application ke
php artisan key:generate --show ```
-In the Cloud Shell, set the application key in the App Service app by using the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command. Replace the placeholders _&lt;app-name>_ and _&lt;outputofphpartisankey:generate>_.
+In the Cloud Shell, set the application key in the App Service app by using the [`az webapp config appsettings set`](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command. Replace the placeholders _&lt;app-name>_ and _&lt;outputofphpartisankey:generate>_.
```azurecli-interactive az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings APP_KEY="<output_of_php_artisan_key:generate>" APP_DEBUG="true"
mysql Tutorial Webapp Server Vnet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/flexible-server/tutorial-webapp-server-vnet.md
In this tutorial you will learn how to:
This article requires that you're running the Azure CLI version 2.0 or later locally. To see the version installed, run the `az --version` command. If you need to install or upgrade, see [Install Azure CLI](/cli/azure/install-azure-cli).
-You'll need to login to your account using the [az login](/cli/azure/reference-index#az_login) command. Note the **id** property from the command output for the corresponding subscription name.
+You'll need to login to your account using the [az login](/cli/azure/reference-index#az-login) command. Note the **id** property from the command output for the corresponding subscription name.
```azurecli az login
mysql How To Major Version Upgrade https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/how-to-major-version-upgrade.md
Follow these steps to perform major version upgrade for your Azure Database of M
This upgrade requires version 2.16.0 or later of the Azure CLI. If using Azure Cloud Shell, the latest version is already installed. Run az version to find the version and dependent libraries that are installed. To upgrade to the latest version, run az upgrade.
-2. After you sign in, run the [az mysql server upgrade](/cli/azure/mysql/server#az_mysql_server_upgrade) command:
+2. After you sign in, run the [az mysql server upgrade](/cli/azure/mysql/server#az-mysql-server-upgrade) command:
```azurecli az mysql server upgrade --name testsvr --resource-group testgroup --subscription MySubscription --target-server-version 5.7"
mysql How To Manage Single Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/how-to-manage-single-server-cli.md
This article shows you how to manage your Single servers deployed in Azure. Mana
## Prerequisites If you don't have an Azure subscription, create a [free](https://azure.microsoft.com/free/) account before you begin. This article requires that you're running the Azure CLI version 2.0 or later locally. To see the version installed, run the `az --version` command. If you need to install or upgrade, see [Install Azure CLI](/cli/azure/install-azure-cli).
-You'll need to log in to your account using the [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+You'll need to log in to your account using the [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login ```
-Select the specific subscription under your account using [az account set](/cli/azure/account) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az_account_list).
+Select the specific subscription under your account using [az account set](/cli/azure/account) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az-account-list).
```azurecli az account set --subscription <subscription id>
You can use any of these commands to create, delete , list and view database pro
| Cmdlet | Usage| Description | | | | |
-|[az mysql db create](/cli/azure/sql/db#az_mysql_db_create)|```az mysql db create -g myresourcegroup -s mydemoserver -n mydatabasename``` |Creates a database|
-|[az mysql db delete](/cli/azure/sql/db#az_mysql_db_delete)|```az mysql db delete -g myresourcegroup -s mydemoserver -n mydatabasename```|Delete your database from your server. This command does not delete your server. |
-|[az mysql db list](/cli/azure/sql/db#az_mysql_db_list)|```az mysql db list -g myresourcegroup -s mydemoserver```|lists all the databases on the server|
-|[az mysql db show](/cli/azure/sql/db#az_mysql_db_show)|```az mysql db show -g myresourcegroup -s mydemoserver -n mydatabasename```|Shows more details of the database|
+|[az mysql db create](/cli/azure/sql/db#az-mysql-db-create)|```az mysql db create -g myresourcegroup -s mydemoserver -n mydatabasename``` |Creates a database|
+|[az mysql db delete](/cli/azure/sql/db#az-mysql-db-delete)|```az mysql db delete -g myresourcegroup -s mydemoserver -n mydatabasename```|Delete your database from your server. This command does not delete your server. |
+|[az mysql db list](/cli/azure/sql/db#az-mysql-db-list)|```az mysql db list -g myresourcegroup -s mydemoserver```|lists all the databases on the server|
+|[az mysql db show](/cli/azure/sql/db#az-mysql-db-show)|```az mysql db show -g myresourcegroup -s mydemoserver -n mydatabasename```|Shows more details of the database|
## Update admin password You can change the administrator role's password with this command
az mysql server update --resource-group myresourcegroup --name mydemoserver --ad
> Password must contain characters from three of the following categories: English uppercase letters, English lowercase letters, numbers, and non-alphanumeric characters. ## Delete a server
-If you would just like to delete the MySQL Single server, you can run [az mysql server delete](/cli/azure/mysql/server#az_mysql_server_delete) command.
+If you would just like to delete the MySQL Single server, you can run [az mysql server delete](/cli/azure/mysql/server#az-mysql-server-delete) command.
```azurecli-interactive az mysql server delete --resource-group myresourcegroup --name mydemoserver
mysql Howto Configure Privatelink Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/howto-configure-privatelink-cli.md
az network vnet create \
## Disable subnet private endpoint policies
-Azure deploys resources to a subnet within a virtual network, so you need to create or update the subnet to disable private endpoint [network policies](../private-link/disable-private-endpoint-network-policy.md). Update a subnet configuration named *mySubnet* with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update):
+Azure deploys resources to a subnet within a virtual network, so you need to create or update the subnet to disable private endpoint [network policies](../private-link/disable-private-endpoint-network-policy.md). Update a subnet configuration named *mySubnet* with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update):
```azurecli-interactive az network vnet subnet update \
mysql Howto Configure Server Logs In Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/howto-configure-server-logs-in-cli.md
az mysql server configuration list --resource-group myresourcegroup --server myd
``` ## List logs for Azure Database for MySQL server
-If **log_output** is configured to "File", you can access logs directly from the server's local storage. To list the available slow query log files for your server, run the [az mysql server-logs list](/cli/azure/mysql/server-logs#az_mysql_server_logs_list) command.
+If **log_output** is configured to "File", you can access logs directly from the server's local storage. To list the available slow query log files for your server, run the [az mysql server-logs list](/cli/azure/mysql/server-logs#az-mysql-server-logs-list) command.
You can list the log files for server **mydemoserver.mysql.database.azure.com** under the resource group **myresourcegroup**. Then direct the list of log files to a text file called **log\_files\_list.txt**. ```azurecli-interactive az mysql server-logs list --resource-group myresourcegroup --server mydemoserver > log_files_list.txt ``` ## Download logs from the server
-If **log_output** is configured to "File", you can download individual log files from your server with the [az mysql server-logs download](/cli/azure/mysql/server-logs#az_mysql_server_logs_download) command.
+If **log_output** is configured to "File", you can download individual log files from your server with the [az mysql server-logs download](/cli/azure/mysql/server-logs#az-mysql-server-logs-download) command.
Use the following example to download the specific log file for the server **mydemoserver.mysql.database.azure.com** under the resource group **myresourcegroup** to your local environment. ```azurecli-interactive
mysql Howto Configure Server Parameters Using Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/howto-configure-server-parameters-using-cli.md
To step through this how-to guide, you need:
- [Azure CLI](/cli/azure/install-azure-cli) command-line utility or use the Azure Cloud Shell in the browser. ## List server configuration parameters for Azure Database for MySQL server
-To list all modifiable parameters in a server and their values, run the [az mysql server configuration list](/cli/azure/mysql/server/configuration#az_mysql_server_configuration_list) command.
+To list all modifiable parameters in a server and their values, run the [az mysql server configuration list](/cli/azure/mysql/server/configuration#az-mysql-server-configuration-list) command.
You can list the server configuration parameters for the server **mydemoserver.mysql.database.azure.com** under resource group **myresourcegroup**. ```azurecli-interactive
az mysql server configuration list --resource-group myresourcegroup --server myd
For the definition of each of the listed parameters, see the MySQL reference section on [Server System Variables](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html). ## Show server configuration parameter details
-To show details about a particular configuration parameter for a server, run the [az mysql server configuration show](/cli/azure/mysql/server/configuration#az_mysql_server_configuration_show) command.
+To show details about a particular configuration parameter for a server, run the [az mysql server configuration show](/cli/azure/mysql/server/configuration#az-mysql-server-configuration-show) command.
This example shows details of the **slow\_query\_log** server configuration parameter for server **mydemoserver.mysql.database.azure.com** under resource group **myresourcegroup.** ```azurecli-interactive az mysql server configuration show --name slow_query_log --resource-group myresourcegroup --server mydemoserver ``` ## Modify a server configuration parameter value
-You can also modify the value of a certain server configuration parameter, which updates the underlying configuration value for the MySQL server engine. To update the configuration, use the [az mysql server configuration set](/cli/azure/mysql/server/configuration#az_mysql_server_configuration_set) command.
+You can also modify the value of a certain server configuration parameter, which updates the underlying configuration value for the MySQL server engine. To update the configuration, use the [az mysql server configuration set](/cli/azure/mysql/server/configuration#az-mysql-server-configuration-set) command.
To update the **slow\_query\_log** server configuration parameter of server **mydemoserver.mysql.database.azure.com** under resource group **myresourcegroup.** ```azurecli-interactive
SELECT name FROM mysql.time_zone_name;
### Setting the global level time zone
-The global level time zone can be set using the [az mysql server configuration set](/cli/azure/mysql/server/configuration#az_mysql_server_configuration_set) command.
+The global level time zone can be set using the [az mysql server configuration set](/cli/azure/mysql/server/configuration#az-mysql-server-configuration-set) command.
The following command updates the **time\_zone** server configuration parameter of server **mydemoserver.mysql.database.azure.com** under resource group **myresourcegroup** to **US/Pacific**.
mysql Howto Connect With Managed Identity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/howto-connect-with-managed-identity.md
You learn how to:
## Creating a user-assigned managed identity for your VM
-Create an identity in your subscription using the [az identity create](/cli/azure/identity#az_identity_create) command. You can use the same resource group that your virtual machine runs in, or a different one.
+Create an identity in your subscription using the [az identity create](/cli/azure/identity#az-identity-create) command. You can use the same resource group that your virtual machine runs in, or a different one.
```azurecli-interactive az identity create --resource-group myResourceGroup --name myManagedIdentity ```
-To configure the identity in the following steps, use the [az identity show](/cli/azure/identity#az_identity_show) command to store the identity's resource ID and client ID in variables.
+To configure the identity in the following steps, use the [az identity show](/cli/azure/identity#az-identity-show) command to store the identity's resource ID and client ID in variables.
```azurecli # Get resource ID of the user-assigned identity
resourceID=$(az identity show --resource-group myResourceGroup --name myManagedI
clientID=$(az identity show --resource-group myResourceGroup --name myManagedIdentity --query clientId --output tsv) ```
-We can now assign the user-assigned identity to the VM with the [az vm identity assign](/cli/azure/vm/identity#az_vm_identity_assign) command:
+We can now assign the user-assigned identity to the VM with the [az vm identity assign](/cli/azure/vm/identity#az-vm-identity-assign) command:
```azurecli az vm identity assign --resource-group myResourceGroup --name myVM --identities $resourceID
mysql Howto Manage Firewall Using Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/howto-manage-firewall-using-cli.md
Securely connect Azure CLI with your Azure account by using the **az login** com
3. At the prompt, sign in using your Azure credentials.
-4. After your login is authorized, a list of subscriptions is printed in the console. Copy the ID of the desired subscription to set the current subscription to use. Use the [az account set](/cli/azure/account#az_account_set) command.
+4. After your login is authorized, a list of subscriptions is printed in the console. Copy the ID of the desired subscription to set the current subscription to use. Use the [az account set](/cli/azure/account#az-account-set) command.
```azurecli-interactive az account set --subscription <your subscription id> ```
-5. List the Azure Databases for MySQL servers for your subscription and resource group if you are unsure of the names. Use the [az mysql server list](/cli/azure/mysql/server#az_mysql_server_list) command.
+5. List the Azure Databases for MySQL servers for your subscription and resource group if you are unsure of the names. Use the [az mysql server list](/cli/azure/mysql/server#az-mysql-server-list) command.
```azurecli-interactive az mysql server list --resource-group myresourcegroup ```
- Note the name attribute in the listing, which you need to specify the MySQL server to work on. If needed, confirm the details for that server and using the name attribute to ensure it is correct. Use the [az mysql server show](/cli/azure/mysql/server#az_mysql_server_show) command.
+ Note the name attribute in the listing, which you need to specify the MySQL server to work on. If needed, confirm the details for that server and using the name attribute to ensure it is correct. Use the [az mysql server show](/cli/azure/mysql/server#az-mysql-server-show) command.
```azurecli-interactive az mysql server show --resource-group myresourcegroup --name mydemoserver ``` ## List firewall rules on Azure Database for MySQL Server
-Using the server name and the resource group name, list the existing server firewall rules on the server. Use the [az mysql server firewall list](/cli/azure/mysql/server/firewall-rule#az_mysql_server_firewall_rule_list) command. Notice that the server name attribute is specified in the **--server** switch and not in the **--name** switch.
+Using the server name and the resource group name, list the existing server firewall rules on the server. Use the [az mysql server firewall list](/cli/azure/mysql/server/firewall-rule#az-mysql-server-firewall-rule-list) command. Notice that the server name attribute is specified in the **--server** switch and not in the **--name** switch.
```azurecli-interactive az mysql server firewall-rule list --resource-group myresourcegroup --server-name mydemoserver ```
The output lists the rules, if any, in JSON format (by default). You can use the
az mysql server firewall-rule list --resource-group myresourcegroup --server-name mydemoserver --output table ``` ## Create a firewall rule on Azure Database for MySQL Server
-Using the Azure MySQL server name and the resource group name, create a new firewall rule on the server. Use the [az mysql server firewall create](/cli/azure/mysql/server/firewall-rule#az_mysql_server_firewall_rule_create) command. Provide a name for the rule, as well as the start IP and end IP (to provide access to a range of IP addresses) for the rule.
+Using the Azure MySQL server name and the resource group name, create a new firewall rule on the server. Use the [az mysql server firewall create](/cli/azure/mysql/server/firewall-rule#az-mysql-server-firewall-rule-create) command. Provide a name for the rule, as well as the start IP and end IP (to provide access to a range of IP addresses) for the rule.
```azurecli-interactive az mysql server firewall-rule create --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.15 ```
az mysql server firewall-rule create --resource-group myresourcegroup --server m
Upon success, each create command output lists the details of the firewall rule you have created, in JSON format (by default). If there is a failure, the output shows error message text instead. ## Update a firewall rule on Azure Database for MySQL server
-Using the Azure MySQL server name and the resource group name, update an existing firewall rule on the server. Use the [az mysql server firewall update](/cli/azure/mysql/server/firewall-rule#az_mysql_server_firewall_rule_update) command. Provide the name of the existing firewall rule as input, as well as the start IP and end IP attributes to update.
+Using the Azure MySQL server name and the resource group name, update an existing firewall rule on the server. Use the [az mysql server firewall update](/cli/azure/mysql/server/firewall-rule#az-mysql-server-firewall-rule-update) command. Provide the name of the existing firewall rule as input, as well as the start IP and end IP attributes to update.
```azurecli-interactive az mysql server firewall-rule update --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.1 ```
Upon success, the command output lists the details of the firewall rule you have
> If the firewall rule does not exist, the rule is created by the update command. ## Show firewall rule details on Azure Database for MySQL Server
-Using the Azure MySQL server name and the resource group name, show the existing firewall rule details from the server. Use the [az mysql server firewall show](/cli/azure/mysql/server/firewall-rule#az_mysql_server_firewall_rule_show) command. Provide the name of the existing firewall rule as input.
+Using the Azure MySQL server name and the resource group name, show the existing firewall rule details from the server. Use the [az mysql server firewall show](/cli/azure/mysql/server/firewall-rule#az-mysql-server-firewall-rule-show) command. Provide the name of the existing firewall rule as input.
```azurecli-interactive az mysql server firewall-rule show --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 ``` Upon success, the command output lists the details of the firewall rule you have specified, in JSON format (by default). If there is a failure, the output shows error message text instead. ## Delete a firewall rule on Azure Database for MySQL Server
-Using the Azure MySQL server name and the resource group name, remove an existing firewall rule from the server. Use the [az mysql server firewall delete](/cli/azure/mysql/server/firewall-rule#az_mysql_server_firewall_rule_delete) command. Provide the name of the existing firewall rule.
+Using the Azure MySQL server name and the resource group name, remove an existing firewall rule from the server. Use the [az mysql server firewall delete](/cli/azure/mysql/server/firewall-rule#az-mysql-server-firewall-rule-delete) command. Provide the name of the existing firewall rule.
```azurecli-interactive az mysql server firewall-rule delete --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 ```
mysql Howto Restore Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/howto-restore-server-cli.md
The backup retention period governs how far back in time a point-in-time restore
## Server point-in-time restore You can restore the server to a previous point in time. The restored data is copied to a new server, and the existing server is left as is. For example, if a table is accidentally dropped at noon today, you can restore to the time just before noon. Then, you can retrieve the missing table and data from the restored copy of the server.
-To restore the server, use the Azure CLI [az mysql server restore](/cli/azure/mysql/server#az_mysql_server_restore) command.
+To restore the server, use the Azure CLI [az mysql server restore](/cli/azure/mysql/server#az-mysql-server-restore) command.
### Run the restore command
mysql Quickstart Create Mysql Server Database Using Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/quickstart-create-mysql-server-database-using-azure-cli.md
[!INCLUDE[applies-to-mysql-single-server](includes/applies-to-mysql-single-server.md)] > [!TIP]
-> Consider using the simpler [az mysql up](/cli/azure/mysql#az_mysql_up) Azure CLI command (currently in preview). Try out the [quickstart](./quickstart-create-server-up-azure-cli.md).
+> Consider using the simpler [az mysql up](/cli/azure/mysql#az-mysql-up) Azure CLI command (currently in preview). Try out the [quickstart](./quickstart-create-server-up-azure-cli.md).
This quickstart shows how to use the [Azure CLI](/cli/azure/get-started-with-azure-cli) commands in [Azure Cloud Shell](https://shell.azure.com) to create an Azure Database for MySQL server in five minutes.
This quickstart shows how to use the [Azure CLI](/cli/azure/get-started-with-azu
- This quickstart requires version 2.0 or later of the Azure CLI. If using Azure Cloud Shell, the latest version is already installed.
+ - Select the specific subscription under your account using [az account set](/cli/azure/account) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az-account-list).
```azurecli az account set --subscription <subscription id>
Create an [Azure resource group](../azure-resource-manager/management/overview.m
az group create --name myresourcegroup --location westus ```
-Create an Azure Database for MySQL server with the [az mysql server create](/cli/azure/mysql/server#az_mysql_server_create) command. A server can contain multiple databases.
+Create an Azure Database for MySQL server with the [az mysql server create](/cli/azure/mysql/server#az-mysql-server-create) command. A server can contain multiple databases.
```azurecli az mysql server create --resource-group myresourcegroup --name mydemoserver --location westus --admin-user myadmin --admin-password <server_admin_password> --sku-name GP_Gen5_2
sku-name|GP_Gen5_2|Enter the name of the pricing tier and compute configuration.
>[!IMPORTANT] >- The default MySQL version on your server is 5.7 . We currently have 5.6 and 8.0 versions also available.
->- To view all the arguments for **az mysql server create** command, see this [reference document](/cli/azure/mysql/server#az_mysql_server_create).
+>- To view all the arguments for **az mysql server create** command, see this [reference document](/cli/azure/mysql/server#az-mysql-server-create).
>- SSL is enabled by default on your server . For more infroamtion on SSL, see [Configure SSL connectivity](howto-configure-ssl.md) ## Configure a server-level firewall rule
If you don't need these resources for another quickstart/tutorial, you can delet
az group delete --name myresourcegroup ```
-If you would just like to delete the one newly created server, you can run [az mysql server delete](/cli/azure/mysql/server#az_mysql_server_delete) command.
+If you would just like to delete the one newly created server, you can run [az mysql server delete](/cli/azure/mysql/server#az-mysql-server-delete) command.
```azurecli-interactive az mysql server delete --resource-group myresourcegroup --name mydemoserver
mysql Quickstart Create Server Up Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/quickstart-create-server-up-azure-cli.md
[!INCLUDE[applies-to-mysql-single-server](includes/applies-to-mysql-single-server.md)] > [!IMPORTANT]
-> The [az mysql up](/cli/azure/mysql#az_mysql_up) Azure CLI command is in preview.
+> The [az mysql up](/cli/azure/mysql#az-mysql-up) Azure CLI command is in preview.
-Azure Database for MySQL is a managed service that enables you to run, manage, and scale highly available MySQL databases in the cloud. The Azure CLI is used to create and manage Azure resources from the command-line or in scripts. This quickstart shows you how to use the [az mysql up](/cli/azure/mysql#az_mysql_up) command to create an Azure Database for MySQL server using the Azure CLI. In addition to creating the server, the `az mysql up` command creates a sample database, a root user in the database, opens the firewall for Azure services, and creates default firewall rules for the client computer. This helps to expedite the development process.
+Azure Database for MySQL is a managed service that enables you to run, manage, and scale highly available MySQL databases in the cloud. The Azure CLI is used to create and manage Azure resources from the command-line or in scripts. This quickstart shows you how to use the [az mysql up](/cli/azure/mysql#az-mysql-up) command to create an Azure Database for MySQL server using the Azure CLI. In addition to creating the server, the `az mysql up` command creates a sample database, a root user in the database, opens the firewall for Azure services, and creates default firewall rules for the client computer. This helps to expedite the development process.
## Prerequisites
admin-user | System generated | The username for the administrator login.
admin-password | System generated | The password of the administrator user. > [!NOTE]
-> For more information about the `az mysql up` command and its additional parameters, see the [Azure CLI documentation](/cli/azure/mysql#az_mysql_up).
+> For more information about the `az mysql up` command and its additional parameters, see the [Azure CLI documentation](/cli/azure/mysql#az-mysql-up).
Once your server is created, it comes with the following settings:
Once your server is created, it comes with the following settings:
After the `az mysql up` command is completed, a list of connection strings for popular programming languages is returned to you. These connection strings are pre-configured with the specific attributes of your newly created Azure Database for MySQL server.
-You can use the [az mysql show-connection-string](/cli/azure/mysql#az_mysql_show_connection_string) command to list these connection strings again.
+You can use the [az mysql show-connection-string](/cli/azure/mysql#az-mysql-show-connection-string) command to list these connection strings again.
## Clean up resources
Clean up all resources you created in the quickstart using the following command
az mysql down --delete-group ```
-If you would just like to delete the newly created server, you can run [az mysql down](/cli/azure/mysql#az_mysql_down) command.
+If you would just like to delete the newly created server, you can run [az mysql down](/cli/azure/mysql#az-mysql-down) command.
```azurecli az mysql down
mysql Quickstart Mysql Github Actions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/quickstart-mysql-github-actions.md
The file has two sections:
## Generate deployment credentials
-You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac&preserve-view=true) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac&preserve-view=true) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
Replace the placeholders `server-name` with the name of your MySQL server hosted on Azure. Replace the `subscription-id` and `resource-group` with the subscription ID and resource group connected to your MySQL server.
mysql Sample Change Server Configuration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/scripts/sample-change-server-configuration.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mysql server create](/cli/azure/mysql/server#az_mysql_server_create) | Creates a MySQL server that hosts the databases. |
-| [az mysql server configuration list](/cli/azure/mysql/server/configuration#az_mysql_server_configuration_list) | List the configurations of an Azure Database for MySQL server. |
-| [az mysql server configuration set](/cli/azure/mysql/server/configuration#az_mysql_server_configuration_set) | Update the configuration of an Azure Database for MySQL server. |
-| [az mysql server configuration show](/cli/azure/mysql/server/configuration#az_mysql_server_configuration_show) | Show the configuration of an Azure Database for MySQL server. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mysql server create](/cli/azure/mysql/server#az-mysql-server-create) | Creates a MySQL server that hosts the databases. |
+| [az mysql server configuration list](/cli/azure/mysql/server/configuration#az-mysql-server-configuration-list) | List the configurations of an Azure Database for MySQL server. |
+| [az mysql server configuration set](/cli/azure/mysql/server/configuration#az-mysql-server-configuration-set) | Update the configuration of an Azure Database for MySQL server. |
+| [az mysql server configuration show](/cli/azure/mysql/server/configuration#az-mysql-server-configuration-show) | Show the configuration of an Azure Database for MySQL server. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mysql Sample Create Server And Firewall Rule https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/scripts/sample-create-server-and-firewall-rule.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mysql server create](/cli/azure/mysql/server#az_mysql_server_create) | Creates a MySQL server that hosts the databases. |
-| [az mysql server firewall create](/cli/azure/mysql/server/firewall-rule#az_mysql_server_firewall_rule_create) | Creates a firewall rule to allow access to the server and databases under it from the entered IP address range. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mysql server create](/cli/azure/mysql/server#az-mysql-server-create) | Creates a MySQL server that hosts the databases. |
+| [az mysql server firewall create](/cli/azure/mysql/server/firewall-rule#az-mysql-server-firewall-rule-create) | Creates a firewall rule to allow access to the server and databases under it from the entered IP address range. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mysql Sample Point In Time Restore https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/scripts/sample-point-in-time-restore.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mysql server create](/cli/azure/mysql/server#az_mysql_server_create) | Creates a MySQL server that hosts the databases. |
-| [az mysql server restore](/cli/azure/mysql/server#az_mysql_server_restore) | Restore a server from backup. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mysql server create](/cli/azure/mysql/server#az-mysql-server-create) | Creates a MySQL server that hosts the databases. |
+| [az mysql server restore](/cli/azure/mysql/server#az-mysql-server-restore) | Restore a server from backup. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mysql Sample Scale Server https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/scripts/sample-scale-server.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mysql server create](/cli/azure/mysql/server#az_mysql_server_create) | Creates a MySQL server that hosts the databases. |
-| [az mysql server update](/cli/azure/mysql/server#az_mysql_server_update) | Updates properties of the MySQL server. |
-| [az monitor metrics list](/cli/azure/monitor/metrics#az_monitor_metrics_list) | List the metric value for the resources. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mysql server create](/cli/azure/mysql/server#az-mysql-server-create) | Creates a MySQL server that hosts the databases. |
+| [az mysql server update](/cli/azure/mysql/server#az-mysql-server-update) | Updates properties of the MySQL server. |
+| [az monitor metrics list](/cli/azure/monitor/metrics#az-monitor-metrics-list) | List the metric value for the resources. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mysql Sample Server Logs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/scripts/sample-server-logs.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az mysql server create](/cli/azure/mysql/server#az_mysql_server_create) | Creates a MySQL server that hosts the databases. |
-| [az mysql server configuration list](/cli/azure/mysql/server/configuration#az_mysql_server_configuration_list) | List the configuration values for a server. |
-| [az mysql server configuration set](/cli/azure/mysql/server/configuration#az_mysql_server_configuration_set) | Update the configuration of a server. |
-| [az mysql server-logs list](/cli/azure/mysql/server-logs#az_mysql_server_logs_list) | List log files for a server. |
-| [az mysql server-logs download](/cli/azure/mysql/server-logs#az_mysql_server_logs_download) | Download log files. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az mysql server create](/cli/azure/mysql/server#az-mysql-server-create) | Creates a MySQL server that hosts the databases. |
+| [az mysql server configuration list](/cli/azure/mysql/server/configuration#az-mysql-server-configuration-list) | List the configuration values for a server. |
+| [az mysql server configuration set](/cli/azure/mysql/server/configuration#az-mysql-server-configuration-set) | Update the configuration of a server. |
+| [az mysql server-logs list](/cli/azure/mysql/server-logs#az-mysql-server-logs-list) | List log files for a server. |
+| [az mysql server-logs download](/cli/azure/mysql/server-logs#az-mysql-server-logs-download) | Download log files. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
mysql Tutorial Design Database Using Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/mysql/tutorial-design-database-using-cli.md
Azure Database for MySQL is a relational database service in the Microsoft cloud
- This article requires version 2.0 or later of the Azure CLI. If using Azure Cloud Shell, the latest version is already installed.
-If you have multiple subscriptions, choose the appropriate subscription in which the resource exists or is billed for. Select a specific subscription ID under your account using [az account set](/cli/azure/account#az_account_set) command.
+If you have multiple subscriptions, choose the appropriate subscription in which the resource exists or is billed for. Select a specific subscription ID under your account using [az account set](/cli/azure/account#az-account-set) command.
```azurecli-interactive az account set --subscription 00000000-0000-0000-0000-000000000000 ``` ## Create a resource group
-Create an [Azure resource group](../azure-resource-manager/management/overview.md) with [az group create](/cli/azure/group#az_group_create) command. A resource group is a logical container into which Azure resources are deployed and managed as a group.
+Create an [Azure resource group](../azure-resource-manager/management/overview.md) with [az group create](/cli/azure/group#az-group-create) command. A resource group is a logical container into which Azure resources are deployed and managed as a group.
The following example creates a resource group named `myresourcegroup` in the `westus` location.
If you don't need these resources for another quickstart/tutorial, you can delet
az group delete --name myresourcegroup ```
-If you would just like to delete the one newly created server, you can run [az mysql server delete](/cli/azure/mysql/server#az_mysql_server_delete) command.
+If you would just like to delete the one newly created server, you can run [az mysql server delete](/cli/azure/mysql/server#az-mysql-server-delete) command.
```azurecli-interactive az mysql server delete --resource-group myresourcegroup --name mydemoserver
network-watcher Diagnose Vm Network Routing Problem Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/diagnose-vm-network-routing-problem-cli.md
In this article, you deploy a virtual machine (VM), and then check communication
## Create a VM
-Before you can create a VM, you must create a resource group to contain the VM. Create a resource group with [az group create](/cli/azure/group#az_group_create). The following example creates a resource group named *myResourceGroup* in the *eastus* location:
+Before you can create a VM, you must create a resource group to contain the VM. Create a resource group with [az group create](/cli/azure/group#az-group-create). The following example creates a resource group named *myResourceGroup* in the *eastus* location:
```azurecli-interactive az group create --name myResourceGroup --location eastus ```
-Create a VM with [az vm create](/cli/azure/vm#az_vm_create). If SSH keys do not already exist in a default key location, the command creates them. To use a specific set of keys, use the `--ssh-key-value` option. The following example creates a VM named *myVm*:
+Create a VM with [az vm create](/cli/azure/vm#az-vm-create). If SSH keys do not already exist in a default key location, the command creates them. To use a specific set of keys, use the `--ssh-key-value` option. The following example creates a VM named *myVm*:
```azurecli-interactive az vm create \
To test network communication with Network Watcher, you must first enable a netw
### Enable network watcher
-If you already have a network watcher enabled in the East US region, skip to [Use next hop](#use-next-hop). Use the [az network watcher configure](/cli/azure/network/watcher#az_network_watcher_configure) command to create a network watcher in the East US region:
+If you already have a network watcher enabled in the East US region, skip to [Use next hop](#use-next-hop). Use the [az network watcher configure](/cli/azure/network/watcher#az-network-watcher-configure) command to create a network watcher in the East US region:
```azurecli-interactive az network watcher configure \
az network watcher configure \
### Use next hop
-Azure automatically creates routes to default destinations. You may create custom routes that override the default routes. Sometimes, custom routes can cause communication to fail. To test routing from a VM, use [az network watcher show-next-hop](/cli/azure/network/watcher#az_network_watcher_show_next_hop) to determine the next routing hop when traffic is destined for a specific address.
+Azure automatically creates routes to default destinations. You may create custom routes that override the default routes. Sometimes, custom routes can cause communication to fail. To test routing from a VM, use [az network watcher show-next-hop](/cli/azure/network/watcher#az-network-watcher-show-next-hop) to determine the next routing hop when traffic is destined for a specific address.
Test outbound communication from the VM to one of the IP addresses for www.bing.com:
The output returned informs you that **None** is the **nextHopType**, and that t
## View details of a route
-To analyze routing further, review the effective routes for the network interface with the [az network nic show-effective-route-table](/cli/azure/network/nic#az_network_nic_show_effective_route_table) command:
+To analyze routing further, review the effective routes for the network interface with the [az network nic show-effective-route-table](/cli/azure/network/nic#az-network-nic-show-effective-route-table) command:
```azurecli-interactive az network nic show-effective-route-table \
As you can see in the output from the `az network watcher nic show-effective-rou
## Clean up resources
-When no longer needed, you can use [az group delete](/cli/azure/group#az_group_delete) to remove the resource group and all of the resources it contains:
+When no longer needed, you can use [az group delete](/cli/azure/group#az-group-delete) to remove the resource group and all of the resources it contains:
```azurecli-interactive az group delete --name myResourceGroup --yes
network-watcher Diagnose Vm Network Traffic Filtering Problem Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/diagnose-vm-network-traffic-filtering-problem-cli.md
To test network communication with Network Watcher, you must first enable a netw
### Enable network watcher
-If you already have a network watcher enabled in the East US region, skip to [Use IP flow verify](#use-ip-flow-verify). Use the [az network watcher configure](/cli/azure/network/watcher#az_network_watcher_configure) command to create a network watcher in the EastUS region:
+If you already have a network watcher enabled in the East US region, skip to [Use IP flow verify](#use-ip-flow-verify). Use the [az network watcher configure](/cli/azure/network/watcher#az-network-watcher-configure) command to create a network watcher in the EastUS region:
```azurecli-interactive az network watcher configure \
az network watcher configure \
### Use IP flow verify
-When you create a VM, Azure allows and denies network traffic to and from the VM, by default. You might later override Azure's defaults, allowing or denying additional types of traffic. To test whether traffic is allowed or denied to different destinations and from a source IP address, use the [az network watcher test-ip-flow](/cli/azure/network/watcher#az_network_watcher_test_ip_flow) command.
+When you create a VM, Azure allows and denies network traffic to and from the VM, by default. You might later override Azure's defaults, allowing or denying additional types of traffic. To test whether traffic is allowed or denied to different destinations and from a source IP address, use the [az network watcher test-ip-flow](/cli/azure/network/watcher#az-network-watcher-test-ip-flow) command.
Test outbound communication from the VM to one of the IP addresses for www.bing.com:
The result returned informs you that access is denied because of a security rule
## View details of a security rule
-To determine why the rules in [Use IP flow verify](#use-ip-flow-verify) are allowing or preventing communication, review the effective security rules for the network interface with the [az network nic list-effective-nsg](/cli/azure/network/nic#az_network_nic_list_effective_nsg) command:
+To determine why the rules in [Use IP flow verify](#use-ip-flow-verify) are allowing or preventing communication, review the effective security rules for the network interface with the [az network nic list-effective-nsg](/cli/azure/network/nic#az-network-nic-list-effective-nsg) command:
```azurecli-interactive az network nic list-effective-nsg \
network-watcher Network Watcher Network Configuration Diagnostics Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-network-configuration-diagnostics-overview.md
For a given flow, the NCD tool runs a simulation of the flow and returns whether
Use Network Configuration Diagnostic through other interfaces - [REST API](/rest/api/network-watcher/networkwatchers/getnetworkconfigurationdiagnostic) - [PowerShell](/powershell/module/az.network/invoke-aznetworkwatchernetworkconfigurationdiagnostic)
+ - [Azure CLI](/cli/azure/network/watcher#az-network-watcher-run-configuration-diagnostic)
network-watcher Network Watcher Nsg Flow Logging Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-nsg-flow-logging-overview.md
When the flow log is disabled, the flow logging for associated NSG is stopped. B
*Delete flow logs*
-When the flow log is deleted, not only the flow logging for the associated NSG is stopped but also the flow log resource is deleted with its settings and associations. To begin flow logging again, a new flow log resource must be created for that NSG. A flow log can be deleted using [PowerShell](/powershell/module/az.network/remove-aznetworkwatcherflowlog), [CLI](/cli/azure/network/watcher/flow-log#az_network_watcher_flow_log_delete) or [REST API](/rest/api/network-watcher/flowlogs/delete). The support for deleting flow logs from Azure portal is in pipeline.
+When the flow log is deleted, not only the flow logging for the associated NSG is stopped but also the flow log resource is deleted with its settings and associations. To begin flow logging again, a new flow log resource must be created for that NSG. A flow log can be deleted using [PowerShell](/powershell/module/az.network/remove-aznetworkwatcherflowlog), [CLI](/cli/azure/network/watcher/flow-log#az-network-watcher-flow-log-delete) or [REST API](/rest/api/network-watcher/flowlogs/delete). The support for deleting flow logs from Azure portal is in pipeline.
Also, when a NSG is deleted, by default the associated flow log resource is deleted.
network-watcher Network Watcher Security Group View Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-security-group-view-overview.md
Rules can be selected and a new blade opens up to show the Network Security Grou
You can also use the *Effective Security Groups* feature through other methods listed below: * [REST API](/rest/api/virtualnetwork/NetworkInterfaces/ListEffectiveNetworkSecurityGroups) * [PowerShell](/powershell/module/az.network/get-azeffectivenetworksecuritygroup)
-* [Azure CLI](/cli/azure/network/nic#az_network_nic_list_effective_nsg)
+* [Azure CLI](/cli/azure/network/nic#az-network-nic-list-effective-nsg)
Learn how to audit your Network Security Group settings by visiting [Audit Network Security Group settings with PowerShell](network-watcher-nsg-auditing-powershell.md)
network-watcher View Network Topology https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/view-network-topology.md
The account that you use must have the necessary [permissions](required-rbac-per
az group create --name NetworkWatcherRG --location eastus ```
-2. Create a network watcher with [az network watcher configure](/cli/azure/network/watcher#az_network_watcher_configure). The following example creates a network watcher in the *eastus* region:
+2. Create a network watcher with [az network watcher configure](/cli/azure/network/watcher#az-network-watcher-configure). The following example creates a network watcher in the *eastus* region:
```azurecli-interactive az network watcher configure \
The account that you use must have the necessary [permissions](required-rbac-per
--enabled true ```
-3. View the topology with [az network watcher show-topology](/cli/azure/network/watcher#az_network_watcher_show_topology). The following example views the topology for a resource group named *MyResourceGroup*:
+3. View the topology with [az network watcher show-topology](/cli/azure/network/watcher#az-network-watcher-show-topology). The following example views the topology for a resource group named *MyResourceGroup*:
```azurecli-interactive az network watcher show-topology --resource-group MyResourceGroup
networking Check Usage Against Limits https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/networking/check-usage-against-limits.md
Network Watchers 1 1
If you're using Azure CLI commands to complete tasks in this article, run the commands via either the [Azure Cloud Shell](https://shell.azure.com/bash) or the Azure CLI installed locally. This article requires the Azure CLI version 2.0.32 or later. Run `az --version` to find the installed version. If you need to install or upgrade, see [Install the Azure CLI](/cli/azure/install-azure-cli). If you're running the Azure CLI locally, you also need to run `az login` to log in to Azure.
-View your usage against limits with [az network list-usages](/cli/azure/network#az_network_list_usages). The following example gets the usage for resources in the East US location:
+View your usage against limits with [az network list-usages](/cli/azure/network#az-network-list-usages). The following example gets the usage for resources in the East US location:
```azurecli-interactive az network list-usages \
networking Traffic Manager Cli Websites High Availability https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/networking/scripts/traffic-manager-cli-websites-high-availability.md
This script uses the following commands to create a resource group, web app, tra
||| | [az group create](/cli/azure/group) | Creates a resource group in which all resources are stored. | | [az appservice plan create](/cli/azure/appservice/plan) | Creates an App Service plan. This is like a server farm for your Azure web app. |
-| [az webapp create](/cli/azure/webapp#az_webapp_create) | Creates an Azure web app within the App Service plan. |
+| [az webapp create](/cli/azure/webapp#az-webapp-create) | Creates an Azure web app within the App Service plan. |
| [az network traffic-manager profile create](/cli/azure/network/traffic-manager/profile) | Creates an Azure Traffic Manager profile. | | [az network traffic-manager endpoint create](/cli/azure/network/traffic-manager/endpoint) | Adds an endpoint to an Azure Traffic Manager Profile. |
networking Virtual Network Cli Sample Route Traffic Through Nva https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/networking/scripts/virtual-network-cli-sample-route-traffic-through-nva.md
This script uses the following commands to create a resource group, virtual netw
| [az network nsg create](/cli/azure/network/nsg) | Creates a network security group (NSG). | | [az network nsg rule create](/cli/azure/network/nsg/rule) | Creates NSG rules that allow HTTP and HTTPS ports inbound to the VM. | | [az network vnet subnet update](/cli/azure/network/vnet/subnet)| Associates the NSGs and route tables to subnets. |
-| [az network route-table create](/cli/azure/network/route-table#az_network_route_table_create)| Creates a route table for all routes. |
-| [az network route-table route create](/cli/azure/network/route-table/route#az_network_route_table_route_create)| Creates routes to route traffic between subnets and the Internet through the VM. |
+| [az network route-table create](/cli/azure/network/route-table#az-network-route-table-create)| Creates a route table for all routes. |
+| [az network route-table route create](/cli/azure/network/route-table/route#az-network-route-table-route-create)| Creates routes to route traffic between subnets and the Internet through the VM. |
| [az vm create](/cli/azure/vm) | Creates a virtual machine and attaches the NIC to it. This command also specifies the virtual machine image to use and administrative credentials. | | [az group delete](/cli/azure/group) | Deletes a resource group and all resources it contains. |
notification-hubs Configure Notification Hub Portal Pns Settings https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/configure-notification-hub-portal-pns-settings.md
You will need the **API Key** for your Google Firebase Cloud Messaging (FCM) pro
### Set up push notifications for Google FCM
-1. Use the [az notification-hub credential gcm update](/cli/azure/notification-hub/credential/gcm#az_notification_hub_credential_gcm_update) command to add your Google API key to your notification hub.
+1. Use the [az notification-hub credential gcm update](/cli/azure/notification-hub/credential/gcm#az-notification-hub-credential-gcm-update) command to add your Google API key to your notification hub.
```azurecli az notification-hub credential gcm update --resource-group spnhubrg --namespace-name spnhubns --notification-hub-name spfcmtutorial1nhub --google-api-key myKey ```
-2. The Android App needs a connection string to connect with the notification hub. Use the [az notification-hub authorization-rule list](/cli/azure/notification-hub/authorization-rule#az_notification_hub_authorization_rule_list) command to list the available access policies. Use the [az notification-hub authorization-rule list-keys](/cli/azure/notification-hub/authorization-rule#az_notification_hub_authorization_rule_list_keys) command to get the access policy connection strings. Specify the **primaryConnectionString** or **secondaryConnectionString** in the `--query` parameter to get the primary connection string directly.
+2. The Android App needs a connection string to connect with the notification hub. Use the [az notification-hub authorization-rule list](/cli/azure/notification-hub/authorization-rule#az-notification-hub-authorization-rule-list) command to list the available access policies. Use the [az notification-hub authorization-rule list-keys](/cli/azure/notification-hub/authorization-rule#az-notification-hub-authorization-rule-list-keys) command to get the access policy connection strings. Specify the **primaryConnectionString** or **secondaryConnectionString** in the `--query` parameter to get the primary connection string directly.
```azurecli #list access policies for a notification hub
You will need the **API Key** for your Google Firebase Cloud Messaging (FCM) pro
az notification-hub authorization-rule list-keys --resource-group spnhubrg --namespace-name spnhubns --notification-hub-name spfcmtutorial1nhub --name myAccessPolicyName --query primaryConnectionString ```
-3. Use the [az notification-hub test-send](/cli/azure/notification-hub#az_notification_hub_test_send) command to test sending messages to the Android App.
+3. Use the [az notification-hub test-send](/cli/azure/notification-hub#az-notification-hub-test-send) command to test sending messages to the Android App.
```azurecli #test with message body
notification-hubs Create Notification Hub Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/create-notification-hub-azure-cli.md
If you don't have an Azure subscription, create a [free account](https://azure.m
[!INCLUDE [azure-cli-prepare-your-environment.md](../../includes/azure-cli-prepare-your-environment.md)] > [!IMPORTANT]
-> Notification Hubs requires version 2.0.67 or later of the Azure CLI. Run [az version](/cli/azure/reference-index#az_version) to find the version and dependent libraries that are installed. To upgrade to the latest version, run [az upgrade](/cli/azure/reference-index#az_upgrade).
+> Notification Hubs requires version 2.0.67 or later of the Azure CLI. Run [az version](/cli/azure/reference-index#az-version) to find the version and dependent libraries that are installed. To upgrade to the latest version, run [az upgrade](/cli/azure/reference-index#az-upgrade).
## Create a resource group Azure Notification Hubs, like all Azure resources, must be deployed into a resource group. Resource groups allow you to organize and manage related Azure resources. See [What is Azure Resource Manager](../azure-resource-manager/management/overview.md) to learn more about resource groups.
-For this quickstart, create a resource group named **spnhubrg** in the **eastus** location with the following [az group create](/cli/azure/group#az_group_create) command.
+For this quickstart, create a resource group named **spnhubrg** in the **eastus** location with the following [az group create](/cli/azure/group#az-group-create) command.
```azurecli az group create --name spnhubrg --location eastus
az group create --name spnhubrg --location eastus
1. Create a namespace for your notification hubs.
- A namespace contains one or more hubs, and the name must be unique across all Azure subscriptions and be at least six characters in length. To check the availability of a name, use the [az notification-hub namespace check-availability](/cli/azure/notification-hub/namespace#az_notification_hub_namespace_check-availability) command.
+ A namespace contains one or more hubs, and the name must be unique across all Azure subscriptions and be at least six characters in length. To check the availability of a name, use the [az notification-hub namespace check-availability](/cli/azure/notification-hub/namespace#az-notification-hub-namespace-check-availability) command.
```azurecli az notification-hub namespace check-availability --name spnhubns
az group create --name spnhubrg --location eastus
} ```
- Notice the second line in the Azure CLI response, `"isAvailable": true`. This line reads `false` if the desired name you specified for the namespace is not available. Once you have confirmed availability of the name, run the [az notification-hub namespace create](/cli/azure/notification-hub/namespace#az_notification_hub_namespace_create) command to create your namespace.
+ Notice the second line in the Azure CLI response, `"isAvailable": true`. This line reads `false` if the desired name you specified for the namespace is not available. Once you have confirmed availability of the name, run the [az notification-hub namespace create](/cli/azure/notification-hub/namespace#az-notification-hub-namespace-create) command to create your namespace.
```azurecli az notification-hub namespace create --resource-group spnhubrg --name spnhubns --location eastus --sku Free
az group create --name spnhubrg --location eastus
2. Get a list of namespaces.
- To see the details about your new namespace use the [az notification-hub namespace list](/cli/azure/notification-hub/namespace#az_notification_hub_namespace_list) command. The `--resource-group` parameter is optional if you want to see all namespaces for a subscription.
+ To see the details about your new namespace use the [az notification-hub namespace list](/cli/azure/notification-hub/namespace#az-notification-hub-namespace-list) command. The `--resource-group` parameter is optional if you want to see all namespaces for a subscription.
```azurecli az notification-hub namespace list --resource-group spnhubrg
az group create --name spnhubrg --location eastus
1. Create your first notification hub.
- One or more notification hubs can now be created in your new namespace. Run the [az notification-hub create](/cli/azure/notification-hub#az_notification_hub_create) command to create a notification hub.
+ One or more notification hubs can now be created in your new namespace. Run the [az notification-hub create](/cli/azure/notification-hub#az-notification-hub-create) command to create a notification hub.
```azurecli az notification-hub create --resource-group spnhubrg --namespace-name spnhubns --name spfcmtutorial1nhub --location eastus --sku Free
az group create --name spnhubrg --location eastus
3. Get a list of notification hubs.
- Azure CLI returns either a success or error message with each executed command; however, being able to query for a list of notification hubs is reassuring. The [az notification-hub list](/cli/azure/notification-hub#az_notification_hub_list) command was designed for this purpose.
+ Azure CLI returns either a success or error message with each executed command; however, being able to query for a list of notification hubs is reassuring. The [az notification-hub list](/cli/azure/notification-hub#az-notification-hub-list) command was designed for this purpose.
```azurecli az notification-hub list --resource-group spnhubrg --namespace-name spnhubns --output table
az group create --name spnhubrg --location eastus
## Work with access policies
-1. Azure Notification Hubs uses [shared access signature security](./notification-hubs-push-notification-security.md) through the use of access policies. Two policies are created automatically when you create a notification hub. The connection strings from these policies are needed to configure push notifications. The [az notification-hub authorization-rule list](/cli/azure/notification-hub/authorization-rule#az_notification_hub_authorization-rule-list) command provides a list of policy names and their respective resource groups.
+1. Azure Notification Hubs uses [shared access signature security](./notification-hubs-push-notification-security.md) through the use of access policies. Two policies are created automatically when you create a notification hub. The connection strings from these policies are needed to configure push notifications. The [az notification-hub authorization-rule list](/cli/azure/notification-hub/authorization-rule#az-notification-hub-authorization-rule-list) command provides a list of policy names and their respective resource groups.
```azurecli az notification-hub authorization-rule list --resource-group spnhubrg --namespace-name spnhubns --notification-hub-name spfcmtutorial1nhub --output table
az group create --name spnhubrg --location eastus
> [!IMPORTANT] > Do not use the _DefaultFullSharedAccessSignature_ policy in your application. This policy is meant to be used in your back-end only. Use only `Listen` access policies in your client application.
-2. If you want to create additional authorization rules with meaningful names, you can create and customize your own access policy by using the [az notification-hub authorization-rule create](/cli/azure/notification-hub/authorization-rule#az_notification_hub_authorization_rule_create) command. The `--rights` parameter is a space delimited list of the permissions you want to assign.
+2. If you want to create additional authorization rules with meaningful names, you can create and customize your own access policy by using the [az notification-hub authorization-rule create](/cli/azure/notification-hub/authorization-rule#az-notification-hub-authorization-rule-create) command. The `--rights` parameter is a space delimited list of the permissions you want to assign.
```azurecli az notification-hub authorization-rule create --resource-group spnhubrg --namespace-name spnhubns --notification-hub-name spfcmtutorial1nhub --name spnhub1key --rights Listen Manage Send ```
-3. There are two sets of keys and connection strings for each access policy. You'll need them later to [configure a notification hub](./configure-notification-hub-portal-pns-settings.md). To list the keys and connection strings for a Notification Hubs access policy, use the [az notification-hub authorization-rule list-keys](/cli/azure/notification-hub/authorization-rule#az_notification_hub_authorization_rule_list_keys) command.
+3. There are two sets of keys and connection strings for each access policy. You'll need them later to [configure a notification hub](./configure-notification-hub-portal-pns-settings.md). To list the keys and connection strings for a Notification Hubs access policy, use the [az notification-hub authorization-rule list-keys](/cli/azure/notification-hub/authorization-rule#az-notification-hub-authorization-rule-list-keys) command.
```azurecli # query the keys and connection strings for DefaultListenSharedAccessSignature
az group create --name spnhubrg --location eastus
``` > [!NOTE]
- > A [Notification Hubs namespace](/cli/azure/notification-hub/namespace/authorization-rule#az_notification_hub_namespace_authorization_rule_list_keys) and a [notification hub](/cli/azure/notification-hub/authorization-rule#az_notification_hub_authorization_rule_list_keys) have separate access policies. Make sure you are using the correct Azure CLI reference when querying for keys and connection strings.
+ > A [Notification Hubs namespace](/cli/azure/notification-hub/namespace/authorization-rule#az-notification-hub-namespace-authorization-rule-list-keys) and a [notification hub](/cli/azure/notification-hub/authorization-rule#az-notification-hub-authorization-rule-list-keys) have separate access policies. Make sure you are using the correct Azure CLI reference when querying for keys and connection strings.
## Clean up resources
notification-hubs Notification Hubs Nodejs Push Notification Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-nodejs-push-notification-tutorial.md
notificationHubService.wns.send(null, payload , 'wns/toast', function(error){
## Next Steps
-The sample snippets above allow you to easily build service infrastructure to deliver push notifications to a wide variety of devices. Now that you've learned the basics of using Notification Hubs with node.js, follow these links to learn more about how you can extend these capabilities further.
+The sample snippets above allow you to easily build service infrastructure to deliver push notifications to a wide variety of devices. Now that you've learned the basics of using Notification Hubs with Node.js, follow these links to learn more about how you can extend these capabilities further.
- See the MSDN Reference for [Azure Notification Hubs](/previous-versions/azure/azure-services/jj927170(v=azure.100)). - Visit the [Azure SDK for Node] repository on GitHub for more samples and implementation details.
openshift Howto Deploy Java Jboss Enterprise Application Platform App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/openshift/howto-deploy-java-jboss-enterprise-application-platform-app.md
The application is a stateful application that stores information in an HTTP Ses
If you plan to run memory-intensive applications on the cluster, specify the proper virtual machine size for the worker nodes using the `--worker-vm-size` parameter. For more information, see:
- * [Azure CLI to create a cluster](/cli/azure/aro#az_aro_create)
+ * [Azure CLI to create a cluster](/cli/azure/aro#az-aro-create)
* [Supported virtual machine sizes for memory optimized](./support-policies-v4.md#memory-optimized) 1. Connect to the cluster by following the steps in [Connect to an Azure Red Hat OpenShift 4 cluster](./tutorial-connect-cluster.md).
openshift Howto Deploy Java Liberty App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/openshift/howto-deploy-java-liberty-app.md
Complete the following prerequisites to successfully walk through this guide.
If you plan to run memory-intensive applications on the cluster, specify the proper virtual machine size for the worker nodes using the `--worker-vm-size` parameter. For example, `Standard_E4s_v3` is the minimum virtual machine size to install the Elasticsearch Operator on a cluster. For more information, see:
- * [Azure CLI to create a cluster](/cli/azure/aro#az_aro_create)
+ * [Azure CLI to create a cluster](/cli/azure/aro#az-aro-create)
* [Supported virtual machine sizes for memory optimized](./support-policies-v4.md#memory-optimized) * [Prerequisites to install the Elasticsearch Operator](https://docs.openshift.com/container-platform/4.3/logging/cluster-logging-deploying.html#cluster-logging-deploy-eo-cli_cluster-logging-deploying)
openshift Tutorial Create Cluster https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/openshift/tutorial-create-cluster.md
Next, you will create a virtual network containing two empty subnets. If you hav
2. **Create a resource group.**
- An Azure resource group is a logical group in which Azure resources are deployed and managed. When you create a resource group, you are asked to specify a location. This location is where resource group metadata is stored, and it is also where your resources run in Azure if you don't specify another region during resource creation. Create a resource group using the [az group create](/cli/azure/group#az_group_create) command.
+ An Azure resource group is a logical group in which Azure resources are deployed and managed. When you create a resource group, you are asked to specify a location. This location is where resource group metadata is stored, and it is also where your resources run in Azure if you don't specify another region during resource creation. Create a resource group using the [az group create](/cli/azure/group#az-group-create) command.
> [!NOTE] > Azure Red Hat OpenShift is not available in all regions where an Azure resource group can be created. See [Available regions](https://azure.microsoft.com/global-infrastructure/services/?products=openshift) for information on where Azure Red Hat OpenShift is supported.
partner-solutions Create Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/partner-solutions/apache-kafka-confluent-cloud/create-cli.md
Start by preparing your environment for the Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../../includes/azure-cli-prepare-your-environment-no-header.md)]
-After you sign in, use the [az confluent organization create](/cli/azure/confluent/organization#az_confluent_organization_create) command to create the new organization resource:
+After you sign in, use the [az confluent organization create](/cli/azure/confluent/organization#az-confluent-organization-create) command to create the new organization resource:
```azurecli az confluent organization create --name "myOrganization" --resource-group "myResourceGroup" \
az confluent organization create --name "myOrganization" --resource-group "myRes
> [!NOTE] > If you want the command to return before the create operation completes, add the optional parameter `--no-wait`. The operation continues to run until the Confluent organization is created.
-To pause CLI execution until an organization's specific event or condition occurs, use the [az confluent organization wait](/cli/azure/confluent/organization#az_confluent_organization_wait) command. For example, to wait until an organization is created:
+To pause CLI execution until an organization's specific event or condition occurs, use the [az confluent organization wait](/cli/azure/confluent/organization#az-confluent-organization-wait) command. For example, to wait until an organization is created:
```azurecli az confluent organization wait --name "myOrganization" --resource-group "myResourceGroup" --created ```
-To see a list of existing organizations, use the [az confluent organization list](/cli/azure/confluent/organization#az_confluent_organization_list) command.
+To see a list of existing organizations, use the [az confluent organization list](/cli/azure/confluent/organization#az-confluent-organization-list) command.
You can view all of the organizations in your subscription:
Or, view the organizations in a resource group:
az confluent organization list --resource-group "myResourceGroup" ```
-To see the properties of a specific organization, use the [az confluent organization show](/cli/azure/confluent/organization#az_confluent_organization_show) command.
+To see the properties of a specific organization, use the [az confluent organization show](/cli/azure/confluent/organization#az-confluent-organization-show) command.
You can view the organization by name:
partner-solutions Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/partner-solutions/apache-kafka-confluent-cloud/manage.md
Start by preparing your environment for the Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../../includes/azure-cli-prepare-your-environment-no-header.md)]
-After you sign in, use the [az confluent organization delete](/cli/azure/confluent#az_confluent_organization_delete) command to delete the organization resource by name:
+After you sign in, use the [az confluent organization delete](/cli/azure/confluent#az-confluent-organization-delete) command to delete the organization resource by name:
```azurecli az confluent organization delete --name "myOrganization" --resource-group "myResourceGroup"
payment-hsm Certification Compliance https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/payment-hsm/certification-compliance.md
# Certification and compliance
-Thales payShield 10K HSMs are certified to FIPS 140-2 Level 3 and PCI HSM v3.
+The Azure Payment HSM service is PCI DSS and PCI 3DS compliant.
+
+- [Azure - PCI DSS - 2022 Package](https://servicetrust.microsoft.com/ViewPage/MSComplianceGuideV3?command=Download&downloadType=Document&downloadId=b9cc20e0-38db-4953-aa58-9fb5cce26cc2&tab=7027ead0-3d6b-11e9-b9e1-290b1eb4cdeb&docTab=7027ead0-3d6b-11e9-b9e1-290b1eb4cdeb_PCI_DSS) ΓÇô Contains the official PCI DSS certification reports and shared responsibility matrices. The PCI DSS AOC includes the full list of PCI DSS certified Azure offerings and regions. Customers can leverage AzureΓÇÖs PCI DSS AOC during their PCI DSS assessment.
+- [Azure - PCI 3DS - 2022 Package](https://servicetrust.microsoft.com/ViewPage/MSComplianceGuideV3?command=Download&downloadType=Document&downloadId=45ade37c-753c-4392-8321-adc49ecad12c&tab=7027ead0-3d6b-11e9-b9e1-290b1eb4cdeb&docTab=7027ead0-3d6b-11e9-b9e1-290b1eb4cdeb_PCI_DSS) ΓÇô Contains the official PCI 3DS certification report, shared responsibility matrix, and whitepaper. The PCI 3DS AOC includes the full list of PCI 3DS certified Azure offerings and regions. Customers can leverage AzureΓÇÖs PCI 3DS AOC during their PCI 3DS assessment.
-The Azure Payment HSM service is currently undergoing PCI DSS and PCI 3DS audit assessment.
+Azure Payment HSMs can be deployed as part of a validated PCI P2PE and PCI PIN component or solution. Microsoft can provide evidence of proof for customer to meet their P2PE and PIN certification requirements.
-The Azure Payment HSM can be deployed as part of a validated PCI P2PE and PCI PIN component or solution, Microsoft can provide evidence of proof for customer to meet their P2PE and PIN certification requirements.
+Thales payShield 10K HSMs are certified to FIPS 140-2 Level 3 and PCI HSM v3.
## Next steps
peering-service Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/peering-service/cli.md
Azure Peering Service is a networking service that enhances customer connectivity to Microsoft cloud services such as Microsoft 365, Dynamics 365, software as a service (SaaS) services, Azure, or any Microsoft services accessible via the public internet. In this article, you'll learn how to register a Peering Service connection by using the Azure CLI. -- This article requires version 2.0.28 or later of the Azure CLI. Run [az version](/cli/azure/reference-index#az_version) to find the version and dependent libraries that are installed. To upgrade to the latest version, run [az upgrade](/cli/azure/reference-index#az_upgrade).
+- This article requires version 2.0.28 or later of the Azure CLI. Run [az version](/cli/azure/reference-index#az-version) to find the version and dependent libraries that are installed. To upgrade to the latest version, run [az upgrade](/cli/azure/reference-index#az-upgrade).
## Prerequisites
postgresql Concepts Data Encryption Postgresql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/concepts-data-encryption-postgresql.md
When you configure data encryption with a customer-managed key in Key Vault, con
* If we create a read replica for your Azure Database for PostgreSQL Single server, which has data encryption enabled, the replica server will be in *Inaccessible* state. You can fix the server state through [Azure portal](howto-data-encryption-portal.md#using-data-encryption-for-restore-or-replica-servers) or [CLI](howto-data-encryption-cli.md#using-data-encryption-for-restore-or-replica-servers). * If you delete the KeyVault, the Azure Database for PostgreSQL Single server will be unable to access the key and will move to *Inaccessible* state. Recover the [Key Vault](../key-vault/general/key-vault-recovery.md) and revalidate the data encryption to make the server *Available*. * If we delete the key from the KeyVault, the Azure Database for PostgreSQL Single server will be unable to access the key and will move to *Inaccessible* state. Recover the [Key](../key-vault/general/key-vault-recovery.md) and revalidate the data encryption to make the server *Available*.
-* If the key stored in the Azure KeyVault expires, the key will become invalid and the Azure Database for PostgreSQL Single server will transition into *Inaccessible* state. Extend the key expiry date using [CLI](/cli/azure/keyvault/key#az_keyvault_key_set_attributes) and then revalidate the data encryption to make the server *Available*.
+* If the key stored in the Azure KeyVault expires, the key will become invalid and the Azure Database for PostgreSQL Single server will transition into *Inaccessible* state. Extend the key expiry date using [CLI](/cli/azure/keyvault/key#az-keyvault-key-set-attributes) and then revalidate the data encryption to make the server *Available*.
### Accidental key access revocation from Key Vault
postgresql Connect Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/connect-azure-cli.md
The first thing we'll create is a managed PostgreSQL server. In [Azure Cloud She
```azurecli az postgres flexible-server create --public-access <your-ip-address> ```
-You can provide additional arguments for this command to customize it. See all arguments for [az postgres flexible-server create](/cli/azure/postgres/flexible-server#az_postgres_flexible_server_create).
+You can provide additional arguments for this command to customize it. See all arguments for [az postgres flexible-server create](/cli/azure/postgres/flexible-server#az-postgres-flexible-server-create).
## View all the arguments You can view all the arguments for this command with ```--help``` argument.
postgresql How To Configure High Availability Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/how-to-configure-high-availability-cli.md
High availability feature provisions physically separate primary and standby rep
## Prerequisites - If you don't have an Azure subscription, create a [free](https://azure.microsoft.com/free/) account before you begin. - Install or upgrade Azure CLI to the latest version. See [Install Azure CLI](/cli/azure/install-azure-cli).-- Login to Azure account using [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+- Login to Azure account using [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login
az postgres flexible-server create --name myservername --sku-name Standard-D2ds_
## Disable high availability
-You can disable high availability by using the [az postgres flexible-server update](/cli/azure/postgres/flexible-server#az_postgres_flexible_server_update) command. Note that disabling high availability is only supported if the server is configured with high availability.
+You can disable high availability by using the [az postgres flexible-server update](/cli/azure/postgres/flexible-server#az-postgres-flexible-server-update) command. Note that disabling high availability is only supported if the server is configured with high availability.
```azurecli az postgres flexible-server update [--high-availability {Disabled, Enabled}]
postgresql How To Manage Firewall Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/how-to-manage-firewall-cli.md
If you prefer to install and use the CLI locally, this quickstart requires Azure
## Prerequisites
-You'll need to sign in to your account using the [az login](/cli/azure/reference-index#az_login) command. Note the **ID** property, which refers to **Subscription ID** for your Azure account.
+You'll need to sign in to your account using the [az login](/cli/azure/reference-index#az-login) command. Note the **ID** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login ```
-Select the specific subscription under your account using [az account set](/cli/azure/account#az_account_set) command. Make a note of the **ID** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az_account_list).
+Select the specific subscription under your account using [az account set](/cli/azure/account#az-account-set) command. Make a note of the **ID** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az-account-list).
```azurecli az account set --subscription <subscription id>
postgresql How To Manage Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/how-to-manage-server-cli.md
If you don't have an Azure subscription, create a [free](https://azure.microsoft
You'll need to be running the Azure CLI version 2.0, or later, locally. To see the version installed, run the `az --version` command. If you need to install or upgrade, see [Install the Azure CLI](/cli/azure/install-azure-cli).
-Sign in to your account by using the [az login](/cli/azure/reference-index#az_login) command.
+Sign in to your account by using the [az login](/cli/azure/reference-index#az-login) command.
```azurecli-interactive az login ```
-Select your subscription by using the [az account set](/cli/azure/account) command. Make a note of the **id** value from the **az login** output to use as the value for the **subscription** argument in the following command. If you have multiple subscriptions, choose the subscription to which the resource should be billed. To identify all your subscriptions, use the [az account list](/cli/azure/account#az_account_list) command.
+Select your subscription by using the [az account set](/cli/azure/account) command. Make a note of the **id** value from the **az login** output to use as the value for the **subscription** argument in the following command. If you have multiple subscriptions, choose the subscription to which the resource should be billed. To identify all your subscriptions, use the [az account list](/cli/azure/account#az-account-list) command.
```azurecli az account set --subscription <subscription id>
az postgres flexible-server update --resource-group myresourcegroup --name mydem
## Delete a server
-To delete the Azure Database for PostgreSQL flexible server, run the [az postgres flexible-server delete](/cli/azure/postgres/flexible-server#az_postgresql_flexible_server_delete) command.
+To delete the Azure Database for PostgreSQL flexible server, run the [az postgres flexible-server delete](/cli/azure/postgres/flexible-server#az-postgresql-flexible-server-delete) command.
```azurecli-interactive az postgres flexible-server delete --resource-group myresourcegroup --name mydemoserver
postgresql How To Manage Virtual Network Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/how-to-manage-virtual-network-cli.md
If you prefer to install and use the CLI locally, this quickstart requires Azure
## Prerequisites
-You'll need to sign in to your account using the [az login](/cli/azure/reference-index#az_login) command. Note the **ID** property, which refers to **Subscription ID** for your Azure account.
+You'll need to sign in to your account using the [az login](/cli/azure/reference-index#az-login) command. Note the **ID** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login ```
-Select the specific subscription under your account using [az account set](/cli/azure/account#az_account_set) command. Make a note of the **ID** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az_account_list).
+Select the specific subscription under your account using [az account set](/cli/azure/account#az-account-set) command. Make a note of the **ID** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az-account-list).
```azurecli az account set --subscription <subscription id>
postgresql How To Restart Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/how-to-restart-server-cli.md
This article shows you how to perform restart, start and stop flexible server us
- If you don't have an Azure subscription, create a [free](https://azure.microsoft.com/free/) account before you begin. - Install or upgrade Azure CLI to the latest version. See [Install Azure CLI](/cli/azure/install-azure-cli).-- Login to Azure account using [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+- Login to Azure account using [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login
postgresql How To Restore Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/how-to-restore-server-cli.md
This article provides step-by-step procedure to perform point-in-time recoveries
## Prerequisites - If you don't have an Azure subscription, create a [free](https://azure.microsoft.com/free/) account before you begin. - Install or upgrade Azure CLI to the latest version. See [Install Azure CLI](/cli/azure/install-azure-cli).-- Login to Azure account using [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+- Login to Azure account using [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login
postgresql How To Stop Start Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/how-to-stop-start-server-cli.md
This article shows you how to perform restart, start and stop flexible server us
- If you don't have an Azure subscription, create a [free](https://azure.microsoft.com/free/) account before you begin. - Install or upgrade Azure CLI to the latest version. See [Install Azure CLI](/cli/azure/install-azure-cli).-- Login to Azure account using [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+- Login to Azure account using [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login
postgresql How To Troubleshoot Cli Errors https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/how-to-troubleshoot-cli-errors.md
Currently, Azure CLI doesn't support turning on debug logging, but you can retri
|SubscriptionNotFound| The requested subscription was not found. Run ```az account list all``` to see all your current subscriptions.| |InvalidParameterValue| An invalid value was given to a parameter.Check the [CLI reference docs](/cli/azure/postgres/flexible-server) to see what is the correct values supported for the arguments.| |InvalidLocation| An invalid location was specified. Check availability of Azure Database for PostgreSQL Flexible Server in [Azure regions](https://azure.microsoft.com/global-infrastructure/services/?products=postgresql) |
-|InvalidServerName|Identified an invalid server name. Check the sever name. Run the command [az mysql flexible-server list](/cli/azure/mysql/flexible-server#az_mysql_flexible_server_list) to see all the list of Flexible servers available.|
+|InvalidServerName|Identified an invalid server name. Check the sever name. Run the command [az mysql flexible-server list](/cli/azure/mysql/flexible-server#az-mysql-flexible-server-list) to see all the list of Flexible servers available.|
|InvalidResourceIdSegment| A syntax error was identified in your Azure Resource Manager template. Use a JSON formatter tool to validate the JSON to identify the syntax error.| |InvalidUserName| Enter a valid username. The admin user name can't be azure_superuser, azure_pg_admin, admin, administrator, root, guest, or public. It can't start with pg_.| |BlockedUserName| The admin user name can't be azure_superuser, azure_pg_admin, admin, administrator, root, guest, or public. It can't start with pg_. Avoid using these patterns in the admin name.|
postgresql Quickstart Create Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/quickstart-create-server-cli.md
If you prefer to install and use the CLI locally, this quickstart requires Azure
## Prerequisites
-You'll need to log in to your account using the [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+You'll need to log in to your account using the [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login ```
-Select the specific subscription under your account using [az account set](/cli/azure/account#az_account_set) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az_account_list).
+Select the specific subscription under your account using [az account set](/cli/azure/account#az-account-set) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az-account-list).
```azurecli az account set --subscription <subscription id>
postgresql Tutorial Django Aks Database https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/tutorial-django-aks-database.md
In this quickstart, you deploy a Django application on Azure Kubernetes Service
## Pre-requisites [!INCLUDE [quickstarts-free-trial-note](../../../includes/quickstarts-free-trial-note.md)] -- Launch [Azure Cloud Shell](https://shell.azure.com) in new browser window. You can [install Azure CLI](/cli/azure/install-azure-cli#install) on your local machine too. If you're using a local install, login with Azure CLI by using the [az login](/cli/azure/reference-index#az_login) command. To finish the authentication process, follow the steps displayed in your terminal. -- Run [az version](/cli/azure/reference-index?#az_version) to find the version and dependent libraries that are installed. To upgrade to the latest version, run [az upgrade](/cli/azure/reference-index?#az_upgrade). This article requires the latest version of Azure CLI. If you're using Azure Cloud Shell, the latest version is already installed.
+- Launch [Azure Cloud Shell](https://shell.azure.com) in new browser window. You can [install Azure CLI](/cli/azure/install-azure-cli#install) on your local machine too. If you're using a local install, login with Azure CLI by using the [az login](/cli/azure/reference-index#az-login) command. To finish the authentication process, follow the steps displayed in your terminal.
+- Run [az version](/cli/azure/reference-index?#az-version) to find the version and dependent libraries that are installed. To upgrade to the latest version, run [az upgrade](/cli/azure/reference-index?#az-upgrade). This article requires the latest version of Azure CLI. If you're using Azure Cloud Shell, the latest version is already installed.
## Create a resource group
-An Azure resource group is a logical group in which Azure resources are deployed and managed. Let's create a resource group, *django-project* using the [az-group-create](/cli/azure/group#az_group_create) command in the *eastus* location.
+An Azure resource group is a logical group in which Azure resources are deployed and managed. Let's create a resource group, *django-project* using the [az-group-create](/cli/azure/group#az-group-create) command in the *eastus* location.
```azurecli-interactive az group create --name django-project --location eastus
The following example output shows the resource group created successfully:
## Create AKS cluster
-Use the [az aks create](/cli/azure/aks#az_aks_create) command to create an AKS cluster. The following example creates a cluster named *djangoappcluster* with one node. This will take several minutes to complete.
+Use the [az aks create](/cli/azure/aks#az-aks-create) command to create an AKS cluster. The following example creates a cluster named *djangoappcluster* with one node. This will take several minutes to complete.
```azurecli-interactive az aks create --resource-group django-project --name djangoappcluster --node-count 1 --generate-ssh-keys
After a few minutes, the command completes and returns JSON-formatted informatio
To manage a Kubernetes cluster, you use [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/), the Kubernetes command-line client. If you use Azure Cloud Shell, `kubectl` is already installed. > [!NOTE]
-> If running Azure CLI locally , please run the [az aks install-cli](/cli/azure/aks#az_aks_install_cli) command to install `kubectl`.
+> If running Azure CLI locally , please run the [az aks install-cli](/cli/azure/aks#az-aks-install-cli) command to install `kubectl`.
-To configure `kubectl` to connect to your Kubernetes cluster, use the [az aks get-credentials](/cli/azure/aks#az_aks_get_credentials) command. This command downloads credentials and configures the Kubernetes CLI to use them.
+To configure `kubectl` to connect to your Kubernetes cluster, use the [az aks get-credentials](/cli/azure/aks#az-aks-get-credentials) command. This command downloads credentials and configures the Kubernetes CLI to use them.
```azurecli-interactive az aks get-credentials --resource-group django-project --name djangoappcluster
aks-nodepool1-31718369-0 Ready agent 6m44s v1.12.8
``` ## Create an Azure Database for PostgreSQL - Flexible Server
-Create a flexible server with the [az postgreSQL flexible-server create](/cli/azure/postgres/flexible-server#az_postgres_flexible_server_create) command. The following command creates a server using service defaults and values from your Azure CLI's local context:
+Create a flexible server with the [az postgreSQL flexible-server create](/cli/azure/postgres/flexible-server#az-postgres-flexible-server-create) command. The following command creates a server using service defaults and values from your Azure CLI's local context:
```azurecli-interactive az postgres flexible-server create --public-access all
Quit the server with CONTROL-C.
## Clean up the resources
-To avoid Azure charges, you should clean up unneeded resources. When the cluster is no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, container service, and all related resources.
+To avoid Azure charges, you should clean up unneeded resources. When the cluster is no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, container service, and all related resources.
```azurecli-interactive az group delete --name django-project --yes --no-wait
postgresql Tutorial Django App Service Postgres https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/tutorial-django-app-service-postgres.md
In this section, you create app host in App Service app, connect this app to the
In the terminal, make sure you're in the repository root (`djangoapp`) that contains the app code.
-Create an App Service app (the host process) with the [`az webapp up`](/cli/azure/webapp#az_webapp_up) command:
+Create an App Service app (the host process) with the [`az webapp up`](/cli/azure/webapp#az-webapp-up) command:
```azurecli
az webapp config appsettings set --settings DJANGO_ENV="production" DBHOST="<pos
- Enable default logging for the app, if not already enabled. - Upload the repository using ZIP deployment with build automation enabled. - **az webapp vnet-integration** command adds the web app in the same virtual network as the postgres server.-- The app code expects to find database information in a number of environment variables. To set environment variables in App Service, you create "app settings" with the [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command.
+- The app code expects to find database information in a number of environment variables. To set environment variables in App Service, you create "app settings" with the [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command.
> [!TIP] > Many Azure CLI commands cache common parameters, such as the name of the resource group and App Service plan, into the file *.azure/config*. As a result, you don't need to specify all the same parameter with later commands. For example, to redeploy the app after making changes, you can just run `az webapp up` again without any parameters.
postgresql Tutorial Webapp Server Vnet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/tutorial-webapp-server-vnet.md
az webapp vnet-integration add --resource-group demoresourcegroup -n mywebapp -
``` ## Configure environment variables to connect the database
-With the code now deployed to App Service, the next step is to connect the app to the flexible server in Azure. The app code expects to find database information in a number of environment variables. To set environment variables in App Service, use [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az_webapp_config_appsettings_set) command.
+With the code now deployed to App Service, the next step is to connect the app to the flexible server in Azure. The app code expects to find database information in a number of environment variables. To set environment variables in App Service, use [az webapp config appsettings set](/cli/azure/webapp/config/appsettings#az-webapp-config-appsettings-set) command.
```azurecli
postgresql How To Deploy Github Action https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/how-to-deploy-github-action.md
The file has two sections:
## Generate deployment credentials
-You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac&preserve-view=true) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You can create a [service principal](../active-directory/develop/app-objects-and-service-principals.md) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac&preserve-view=true) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
Replace the placeholders `server-name` with the name of your PostgreSQL server hosted on Azure. Replace the `subscription-id` and `resource-group` with the subscription ID and resource group connected to your PostgreSQL server.
postgresql How To Manage Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/how-to-manage-server-cli.md
This article shows you how to manage your Single servers deployed in Azure. Mana
If you don't have an Azure subscription, create a [free](https://azure.microsoft.com/free/) account before you begin. This article requires that you're running the Azure CLI version 2.0 or later locally. To see the version installed, run the `az --version` command. If you need to install or upgrade, see [Install Azure CLI](/cli/azure/install-azure-cli).
-You'll need to log in to your account using the [az login](/cli/azure/reference-index#az_login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
+You'll need to log in to your account using the [az login](/cli/azure/reference-index#az-login) command. Note the **id** property, which refers to **Subscription ID** for your Azure account.
```azurecli-interactive az login ```
-Select the specific subscription under your account using [az account set](/cli/azure/account) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az_account_list).
+Select the specific subscription under your account using [az account set](/cli/azure/account) command. Make a note of the **id** value from the **az login** output to use as the value for **subscription** argument in the command. If you have multiple subscriptions, choose the appropriate subscription in which the resource should be billed. To get all your subscription, use [az account list](/cli/azure/account#az-account-list).
```azurecli az account set --subscription <subscription id>
You can use any of these commands to create, delete, list, and view database pro
| Cmdlet | Usage| Description | | | | |
-|[az postgres db create](/cli/azure/sql/db#az_mysql_db_create)|```az postgres db create -g myresourcegroup -s mydemoserver -n mydatabasename``` |Creates a database|
-|[az postgres db delete](/cli/azure/sql/db#az_mysql_db_delete)|```az postgres db delete -g myresourcegroup -s mydemoserver -n mydatabasename```|Delete your database from your server. This command does not delete your server. |
-|[az postgres db list](/cli/azure/sql/db#az_mysql_db_list)|```az postgres db list -g myresourcegroup -s mydemoserver```|lists all the databases on the server|
-|[az postgres db show](/cli/azure/sql/db#az_mysql_db_show)|```az postgres db show -g myresourcegroup -s mydemoserver -n mydatabasename```|Shows more details of the database|
+|[az postgres db create](/cli/azure/sql/db#az-mysql-db-create)|```az postgres db create -g myresourcegroup -s mydemoserver -n mydatabasename``` |Creates a database|
+|[az postgres db delete](/cli/azure/sql/db#az-mysql-db-delete)|```az postgres db delete -g myresourcegroup -s mydemoserver -n mydatabasename```|Delete your database from your server. This command does not delete your server. |
+|[az postgres db list](/cli/azure/sql/db#az-mysql-db-list)|```az postgres db list -g myresourcegroup -s mydemoserver```|lists all the databases on the server|
+|[az postgres db show](/cli/azure/sql/db#az-mysql-db-show)|```az postgres db show -g myresourcegroup -s mydemoserver -n mydatabasename```|Shows more details of the database|
## Update admin password You can change the administrator role's password with this command
az postgres server update --resource-group myresourcegroup --name mydemoserver -
> Password must contain characters from three of the following categories: English uppercase letters, English lowercase letters, numbers, and non-alphanumeric characters. ## Delete a server
-If you would just like to delete the PostgreSQL Single server, you can run [az postgres server delete](/cli/azure/mysql/server#az_mysql_server_delete) command.
+If you would just like to delete the PostgreSQL Single server, you can run [az postgres server delete](/cli/azure/mysql/server#az-mysql-server-delete) command.
```azurecli-interactive az postgres server delete --resource-group myresourcegroup --name mydemoserver
postgresql Howto Configure Privatelink Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/howto-configure-privatelink-cli.md
az network vnet create \
``` ## Disable subnet private endpoint policies
-Azure deploys resources to a subnet within a virtual network, so you need to create or update the subnet to disable private endpoint [network policies](../private-link/disable-private-endpoint-network-policy.md). Update a subnet configuration named *mySubnet* with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update):
+Azure deploys resources to a subnet within a virtual network, so you need to create or update the subnet to disable private endpoint [network policies](../private-link/disable-private-endpoint-network-policy.md). Update a subnet configuration named *mySubnet* with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update):
```azurecli-interactive az network vnet subnet update \
postgresql Howto Read Replicas Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/howto-read-replicas-cli.md
You can create and manage read replicas using the Azure CLI.
### Create a read replica
-The [az postgres server replica create](/cli/azure/postgres/server/replica#az_postgres_server_replica_create) command requires the following parameters:
+The [az postgres server replica create](/cli/azure/postgres/server/replica#az-postgres-server-replica-create) command requires the following parameters:
| Setting | Example value | Description | | | | |
If you haven't set the `azure.replication_support` parameter to **REPLICA** on a
> Before a primary server setting is updated to a new value, update the replica setting to an equal or greater value. This action helps the replica keep up with any changes made to the master. ### List replicas
-You can view the list of replicas of a primary server by using [az postgres server replica list](/cli/azure/postgres/server/replica#az_postgres_server_replica_list) command.
+You can view the list of replicas of a primary server by using [az postgres server replica list](/cli/azure/postgres/server/replica#az-postgres-server-replica-list) command.
```azurecli-interactive az postgres server replica list --server-name mydemoserver --resource-group myresourcegroup ``` ### Stop replication to a replica server
-You can stop replication between a primary server and a read replica by using [az postgres server replica stop](/cli/azure/postgres/server/replica#az_postgres_server_replica_stop) command.
+You can stop replication between a primary server and a read replica by using [az postgres server replica stop](/cli/azure/postgres/server/replica#az-postgres-server-replica-stop) command.
After you stop replication to a primary server and a read replica, it can't be undone. The read replica becomes a standalone server that supports both reads and writes. The standalone server can't be made into a replica again.
az postgres server replica stop --name mydemoserver-replica --resource-group myr
``` ### Delete a primary or replica server
-To delete a primary or replica server, you use the [az postgres server delete](/cli/azure/postgres/server#az_postgres_server_delete) command.
+To delete a primary or replica server, you use the [az postgres server delete](/cli/azure/postgres/server#az-postgres-server-delete) command.
When you delete a primary server, replication to all read replicas is stopped. The read replicas become standalone servers that now support both reads and writes.
postgresql Quickstart Create Server Database Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/quickstart-create-server-database-azure-cli.md
Last updated 01/26/2022
This quickstart shows how to use [Azure CLI](/cli/azure/get-started-with-azure-cli) commands in [Azure Cloud Shell](https://shell.azure.com) to create a single Azure Database for PostgreSQL server in five minutes. > [!TIP]
-> Consider using the simpler [az postgres up](/cli/azure/postgres#az_postgres_up) Azure CLI command. Try out the [quickstart](./quickstart-create-server-up-azure-cli.md).
+> Consider using the simpler [az postgres up](/cli/azure/postgres#az-postgres-up) Azure CLI command. Try out the [quickstart](./quickstart-create-server-up-azure-cli.md).
[!INCLUDE [quickstarts-free-trial-note](../../includes/quickstarts-free-trial-note.md)]
psql --host=<server_name>.postgres.database.azure.com --port=5432 --username=<ad
## Clean up resources
-Use the following command to remove the resource group and all resources associated with it using the [az group delete](/cli/azure/vm/extension#az_vm_extension_set) command - unless you have an ongoing need for these resources. Some of these resources may take a while to create, as well as to delete.
+Use the following command to remove the resource group and all resources associated with it using the [az group delete](/cli/azure/vm/extension#az-vm-extension-set) command - unless you have an ongoing need for these resources. Some of these resources may take a while to create, as well as to delete.
```azurecli az group delete --name $resourceGroup
postgresql Quickstart Create Server Up Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/quickstart-create-server-up-azure-cli.md
Last updated 01/25/2022
# Quickstart: Use the az postgres up command to create an Azure Database for PostgreSQL - Single Server
-Azure Database for PostgreSQL is a managed service that enables you to run, manage, and scale highly available PostgreSQL databases in the cloud. The Azure CLI is used to create and manage Azure resources from the command line or in scripts. This quickstart shows you how to use the [az postgres up](/cli/azure/postgres#az_postgres_up) command to create an Azure Database for PostgreSQL server using the Azure CLI. In addition to creating the server, the `az postgres up` command creates a sample database, a root user in the database, opens the firewall for Azure services, and creates default firewall rules for the client computer. These defaults help to expedite the development process.
+Azure Database for PostgreSQL is a managed service that enables you to run, manage, and scale highly available PostgreSQL databases in the cloud. The Azure CLI is used to create and manage Azure resources from the command line or in scripts. This quickstart shows you how to use the [az postgres up](/cli/azure/postgres#az-postgres-up) command to create an Azure Database for PostgreSQL server using the Azure CLI. In addition to creating the server, the `az postgres up` command creates a sample database, a root user in the database, opens the firewall for Azure services, and creates default firewall rules for the client computer. These defaults help to expedite the development process.
[!INCLUDE [quickstarts-free-trial-note](../../includes/quickstarts-free-trial-note.md)]
admin-user | System generated | The username for the administrator.
admin-password | System generated | The password of the administrator user. > [!NOTE]
-> For more information about the `az postgres up` command and its additional parameters, see the [Azure CLI documentation](/cli/azure/postgres#az_postgres_up).
+> For more information about the `az postgres up` command and its additional parameters, see the [Azure CLI documentation](/cli/azure/postgres#az-postgres-up).
Once your server is created, it comes with the following settings:
Once your server is created, it comes with the following settings:
After the `az postgres up` command is completed, a list of connection strings for popular programming languages is returned to you. These connection strings are pre-configured with the specific attributes of your newly created Azure Database for PostgreSQL server.
-You can use the [az postgres show-connection-string](/cli/azure/postgres#az_postgres_show_connection_string) command to list these connection strings again.
+You can use the [az postgres show-connection-string](/cli/azure/postgres#az-postgres-show-connection-string) command to list these connection strings again.
## Clean up resources
Clean up all resources you created in the quickstart using the following command
az postgres down --delete-group ```
-If you would just like to delete the newly created server, you can run [az postgres down](/cli/azure/postgres#az_postgres_down) command.
+If you would just like to delete the newly created server, you can run [az postgres down](/cli/azure/postgres#az-postgres-down) command.
```azurecli az postgres down
postgresql Sample Create Server With Vnet Rule https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/scripts/sample-create-server-with-vnet-rule.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
| [az postgresql server create](/cli/azure/postgres/server/vnet-rule#az-postgres-server-vnet-rule-create) | Creates a PostgreSQL server that hosts the databases. | | [az network vnet list-endpoint-services](/cli/azure/network/vnet#az-network-vnet-list-endpoint-services#az-network-vnet-list-endpoint-services) | List which services support VNET service tunneling in a given region. | | [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates a virtual network. | | [az network vnet subnet create](/cli/azure/network/vnet#az-network-vnet-subnet-create) | Create a subnet and associate an existing NSG and route table. | | [az network vnet subnet show](/cli/azure/network/vnet#az-network-vnet-subnet-show) |Shows details of a subnet. | | [az postgresql server vnet-rule create](/cli/azure/postgres/server/vnet-rule#az-postgres-server-vnet-rule-create) | Create a virtual network rule to allows access to a PostgreSQL server. |
-| [az group delete](/cli/azure/group#az_group_delete) | Deletes a resource group including all nested resources. |
+| [az group delete](/cli/azure/group#az-group-delete) | Deletes a resource group including all nested resources. |
## Next steps
postgresql Sample Point In Time Restore https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/scripts/sample-point-in-time-restore.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | ||| | [az group create](/cli/azure/group) | Creates a resource group in which all resources are stored. |
-| [az postgresql server create](/cli/azure/postgres/server#az_postgres_server_create) | Creates a PostgreSQL server that hosts the databases. |
-| [az postgresql server restore](/cli/azure/postgres/server#az_postgres_server_restore) | Restore a server from backup. |
+| [az postgresql server create](/cli/azure/postgres/server#az-postgres-server-create) | Creates a PostgreSQL server that hosts the databases. |
+| [az postgresql server restore](/cli/azure/postgres/server#az-postgres-server-restore) | Restore a server from backup. |
| [az group delete](/cli/azure/group) | Deletes a resource group including all nested resources. | ## Next steps
postgresql Sample Scale Server Up Or Down https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/scripts/sample-scale-server-up-or-down.md
This script uses the commands outlined in the following table:
| **Command** | **Notes** | ||| | [az group create](/cli/azure/group) | Creates a resource group in which all resources are stored. |
-| [az postgres server create](/cli/azure/postgres/server#az_postgres_server_create) | Creates a PostgreSQL server that hosts the databases. |
-| [az postgres server update](/cli/azure/postgres/server#az_postgres_server_update) | Updates properties of the PostgreSQL server. |
+| [az postgres server create](/cli/azure/postgres/server#az-postgres-server-create) | Creates a PostgreSQL server that hosts the databases. |
+| [az postgres server update](/cli/azure/postgres/server#az-postgres-server-update) | Updates properties of the PostgreSQL server. |
| [az monitor metrics list](/cli/azure/monitor/metrics) | List the metric value for the resources. | | [az group delete](/cli/azure/group) | Deletes a resource group including all nested resources. |
postgresql Tutorial Design Database Using Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/tutorial-design-database-using-azure-cli.md
The command is synchronous, and will return after the server is restored. Once t
## Clean up resources
-Use the following command to remove the resource group and all resources associated with it using the [az group delete](/cli/azure/vm/extension#az_vm_extension_set) command - unless you have an ongoing need for these resources. Some of these resources may take a while to create, as well as to delete.
+Use the following command to remove the resource group and all resources associated with it using the [az group delete](/cli/azure/vm/extension#az-vm-extension-set) command - unless you have an ongoing need for these resources. Some of these resources may take a while to create, as well as to delete.
```azurecli az group delete --name $resourceGroup
private-link Create Private Endpoint Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/private-link/create-private-endpoint-cli.md
You can create private endpoints for a variety of Azure services, such as Azure
An Azure resource group is a logical container where Azure resources are deployed and managed.
-First, create a resource group by using [az group create](/cli/azure/group#az_group_create):
+First, create a resource group by using [az group create](/cli/azure/group#az-group-create):
```azurecli-interactive az group create \
az group create \
Next, create a virtual network, subnet, and bastion host. You'll use the bastion host to connect securely to the VM for testing the private endpoint.
-1. Create a virtual network by using [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create):
+1. Create a virtual network by using [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create):
* Name: **myVNet** * Address prefix: **10.0.0.0/16**
Next, create a virtual network, subnet, and bastion host. You'll use the bastion
--subnet-prefixes 10.0.0.0/24 ```
-1. Update the subnet to disable private-endpoint network policies for the private endpoint by using [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update):
+1. Update the subnet to disable private-endpoint network policies for the private endpoint by using [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update):
```azurecli-interactive az network vnet subnet update \
Next, create a virtual network, subnet, and bastion host. You'll use the bastion
--disable-private-endpoint-network-policies true ```
-1. Create a public IP address for the bastion host by using [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create):
+1. Create a public IP address for the bastion host by using [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create):
* Standard zone-redundant public IP address name: **myBastionIP** * Resource group: **CreatePrivateEndpointQS-rg**
Next, create a virtual network, subnet, and bastion host. You'll use the bastion
--sku Standard ```
-1. Create a bastion subnet by using [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create):
+1. Create a bastion subnet by using [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create):
* Name: **AzureBastionSubnet** * Address prefix: **10.0.1.0/24**
Next, create a virtual network, subnet, and bastion host. You'll use the bastion
--address-prefixes 10.0.1.0/24 ```
-1. Create a bastion host by using [az network bastion create](/cli/azure/network/bastion#az_network_bastion_create):
+1. Create a bastion host by using [az network bastion create](/cli/azure/network/bastion#az-network-bastion-create):
* Name: **myBastionHost** * Resource group: **CreatePrivateEndpointQS-rg**
It can take a few minutes for the Azure Bastion host to deploy.
Next, create a VM that you can use to test the private endpoint.
-1. Create the VM by using [az vm create](/cli/azure/vm#az_vm_create).
+1. Create the VM by using [az vm create](/cli/azure/vm#az-vm-create).
1. At the prompt, provide a password to be used as the credentials for the VM:
Next, create a VM that you can use to test the private endpoint.
Next, create the private endpoint.
-1. Place the resource ID of the web app that you created earlier into a shell variable by using [az webapp list](/cli/azure/webapp#az_webapp_list).
+1. Place the resource ID of the web app that you created earlier into a shell variable by using [az webapp list](/cli/azure/webapp#az-webapp-list).
-1. Create the endpoint and connection by using [az network private-endpoint create](/cli/azure/network/private-endpoint#az_network_private_endpoint_create):
+1. Create the endpoint and connection by using [az network private-endpoint create](/cli/azure/network/private-endpoint#az-network-private-endpoint-create):
* Name: **myPrivateEndpoint** * Resource group: **CreatePrivateEndpointQS-rg**
Next, create the private endpoint.
## Configure the private DNS zone
-Next, create and configure the private DNS zone by using [az network private-dns zone create](/cli/azure/network/private-dns/zone#az_network_private_dns_zone_create).
+Next, create and configure the private DNS zone by using [az network private-dns zone create](/cli/azure/network/private-dns/zone#az-network-private-dns-zone-create).
-1. Create the virtual network link to the DNS zone by using [az network private-dns link vnet create](/cli/azure/network/private-dns/link/vnet#az_network_private_dns_link_vnet_create).
+1. Create the virtual network link to the DNS zone by using [az network private-dns link vnet create](/cli/azure/network/private-dns/link/vnet#az-network-private-dns-link-vnet-create).
-1. Create a DNS zone group by using [az network private-endpoint dns-zone-group create](/cli/azure/network/private-endpoint/dns-zone-group#az_network_private_endpoint_dns_zone_group_create).
+1. Create a DNS zone group by using [az network private-endpoint dns-zone-group create](/cli/azure/network/private-endpoint/dns-zone-group#az-network-private-endpoint-dns-zone-group-create).
* Zone name: **privatelink.azurewebsites.net** * Virtual network: **myVNet**
Finally, use the VM that you created earlier to connect to the SQL Server instan
## Clean up resources
-When you're done using the private endpoint and the VM, use [az group delete](/cli/azure/group#az_group_delete) to remove the resource group and all the resources within it:
+When you're done using the private endpoint and the VM, use [az group delete](/cli/azure/group#az-group-delete) to remove the resource group and all the resources within it:
```azurecli-interactive az group delete \
private-link Create Private Link Service Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/private-link/create-private-link-service-cli.md
Get started creating a Private Link service that refers to your service. Give P
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create):
+Create a resource group with [az group create](/cli/azure/group#az-group-create):
* Named **CreatePrivLinkService-rg**. * In the **eastus** location.
In this section, you'll create a virtual network and an internal Azure Load Bala
In this section, you create a virtual network and subnet to host the load balancer that accesses your Private Link service.
-Create a virtual network using [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create):
+Create a virtual network using [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create):
* Named **myVNet**. * Address prefix of **10.1.0.0/16**.
Create a virtual network using [az network vnet create](/cli/azure/network/vnet#
```
-To update the subnet to disable private link service network policies, use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update):
+To update the subnet to disable private link service network policies, use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update):
```azurecli-interactive az network vnet subnet update \
This section details how you can create and configure the following components o
### Create the load balancer resource
-Create a public load balancer with [az network lb create](/cli/azure/network/lb#az_network_lb_create):
+Create a public load balancer with [az network lb create](/cli/azure/network/lb#az-network-lb-create):
* Named **myLoadBalancer**. * A frontend pool named **myFrontEnd**.
A health probe checks all virtual machine instances to ensure they can send netw
A virtual machine with a failed probe check is removed from the load balancer. The virtual machine is added back into the load balancer when the failure is resolved.
-Create a health probe with [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create):
+Create a health probe with [az network lb probe create](/cli/azure/network/lb/probe#az-network-lb-probe-create):
* Monitors the health of the virtual machines. * Named **myHealthProbe**.
A load balancer rule defines:
* The backend IP pool to receive the traffic. * The required source and destination port.
-Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create):
+Create a load balancer rule with [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create):
* Named **myHTTPRule** * Listening on **Port 80** in the frontend pool **myFrontEnd**.
Create a load balancer rule with [az network lb rule create](/cli/azure/network/
In this section, create a private link service that uses the Azure Load Balancer created in the previous step.
-Create a private link service using a standard load balancer frontend IP configuration with [az network private-link-service create](/cli/azure/network/private-link-service#az_network_private_link_service_create):
+Create a private link service using a standard load balancer frontend IP configuration with [az network private-link-service create](/cli/azure/network/private-link-service#az-network-private-link-service-create):
* Named **myPrivateLinkService**. * In virtual network **myVNet**.
In this section, you'll map the private link service to a private endpoint. A vi
### Create private endpoint virtual network
-Create a virtual network using [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create):
+Create a virtual network using [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create):
* Named **myVNetPE**. * Address prefix of **11.1.0.0/16**.
Create a virtual network using [az network vnet create](/cli/azure/network/vnet#
--subnet-prefixes 11.1.0.0/24 ```
-To update the subnet to disable private endpoint network policies, use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update):
+To update the subnet to disable private endpoint network policies, use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update):
```azurecli-interactive az network vnet subnet update \
az network vnet subnet update \
### Create endpoint and connection
-* Use [az network private-link-service show](/cli/azure/network/private-link-service#az_network_private_link_service_show) to get the resource ID of the private link service. The command places the resource ID into a variable for later use.
+* Use [az network private-link-service show](/cli/azure/network/private-link-service#az-network-private-link-service-show) to get the resource ID of the private link service. The command places the resource ID into a variable for later use.
-* Use [az network private-endpoint create](/cli/azure/network/private-endpoint#az_network_private_endpoint_create) to create the private endpoint in the virtual network you created previously.
+* Use [az network private-endpoint create](/cli/azure/network/private-endpoint#az-network-private-endpoint-create) to create the private endpoint in the virtual network you created previously.
* Named **MyPrivateEndpoint**. * In the **CreatePrivLinkService-rg** resource group.
az network vnet subnet update \
## Clean up resources
-When no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, private link service, load balancer, and all related resources.
+When no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, private link service, load balancer, and all related resources.
```azurecli-interactive az group delete \
private-link Disable Private Endpoint Network Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/private-link/disable-private-endpoint-network-policy.md
$virtualNetwork | Set-AzVirtualNetwork
### Disable network policy
-This section describes how to disable subnet private endpoint policies using Azure CLI. Use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update) to disable the policy.
+This section describes how to disable subnet private endpoint policies using Azure CLI. Use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update) to disable the policy.
```azurecli az network vnet subnet update \
az network vnet subnet update \
### Enable network policy
-This section describes how to enable subnet private endpoint policies using Azure CLI. Use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update) to enable the policy.
+This section describes how to enable subnet private endpoint policies using Azure CLI. Use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update) to enable the policy.
```azurecli az network vnet subnet update \
private-link Manage Private Endpoint https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/private-link/manage-private-endpoint.md
Remove-AzPrivateEndpointConnection -Name myPrivateEndpointConnection -ResourceGr
#### Get Private Link connection states
-Use [az network private-endpoint-connection show](/cli/azure/network/private-endpoint-connection#az_network_private_endpoint_connection_show) to get the Private Endpoint connections and their states.
+Use [az network private-endpoint-connection show](/cli/azure/network/private-endpoint-connection#az-network-private-endpoint-connection-show) to get the Private Endpoint connections and their states.
```azurecli az network private-endpoint-connection show \
Use [az network private-endpoint-connection show](/cli/azure/network/private-end
#### Approve a Private Endpoint connection
-Use [az network private-endpoint-connection approve](/cli/azure/network/private-endpoint-connection#az_network_private_endpoint_connection_approve) cmdlet to approve a Private Endpoint connection.
+Use [az network private-endpoint-connection approve](/cli/azure/network/private-endpoint-connection#az-network-private-endpoint-connection-approve) cmdlet to approve a Private Endpoint connection.
```azurecli az network private-endpoint-connection approve \
Use [az network private-endpoint-connection approve](/cli/azure/network/private-
#### Deny Private Endpoint connection
-Use [az network private-endpoint-connection reject](/cli/azure/network/private-endpoint-connection#az_network_private_endpoint_connection_reject) cmdlet to reject a Private Endpoint connection.
+Use [az network private-endpoint-connection reject](/cli/azure/network/private-endpoint-connection#az-network-private-endpoint-connection-reject) cmdlet to reject a Private Endpoint connection.
```azurecli az network private-endpoint-connection reject \
Use [az network private-endpoint-connection reject](/cli/azure/network/private-e
#### Remove Private Endpoint connection
-Use [az network private-endpoint-connection delete](/cli/azure/network/private-endpoint-connection#az_network_private_endpoint_connection_delete) cmdlet to remove a Private Endpoint connection.
+Use [az network private-endpoint-connection delete](/cli/azure/network/private-endpoint-connection#az-network-private-endpoint-connection-delete) cmdlet to remove a Private Endpoint connection.
```azurecli az network private-endpoint-connection delete \
private-link Tutorial Private Endpoint Sql Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/private-link/tutorial-private-endpoint-sql-cli.md
In this tutorial, you learn how to:
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create):
+Create a resource group with [az group create](/cli/azure/group#az-group-create):
* Named **CreateSQLEndpointTutorial-rg**. * In the **eastus** location.
In this section, you'll create a virtual network, subnet, and bastion host.
The bastion host will be used to connect securely to the virtual machine for testing the private endpoint.
-Create a virtual network with [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create)
+Create a virtual network with [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create)
* Named **myVNet**. * Address prefix of **10.0.0.0/16**.
az network vnet create \
--subnet-prefixes 10.0.0.0/24 ```
-Update the subnet to disable private endpoint network policies for the private endpoint with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update):
+Update the subnet to disable private endpoint network policies for the private endpoint with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update):
```azurecli-interactive az network vnet subnet update \
az network vnet subnet update \
--disable-private-endpoint-network-policies true ```
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a public ip address for the bastion host:
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a public ip address for the bastion host:
* Create a standard zone redundant public IP address named **myBastionIP**. * In **CreateSQLEndpointTutorial-rg**.
az network public-ip create \
--sku Standard ```
-Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) to create a bastion subnet:
+Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) to create a bastion subnet:
* Named **AzureBastionSubnet**. * Address prefix of **10.0.1.0/24**.
az network vnet subnet create \
--address-prefixes 10.0.1.0/24 ```
-Use [az network bastion create](/cli/azure/network/bastion#az_network_bastion_create) to create a bastion host:
+Use [az network bastion create](/cli/azure/network/bastion#az-network-bastion-create) to create a bastion host:
* Named **myBastionHost**. * In **CreateSQLEndpointTutorial-rg**.
It can take a few minutes for the Azure Bastion host to deploy.
In this section, you'll create a virtual machine that will be used to test the private endpoint.
-Create a VM withΓÇ»[az vm create](/cli/azure/vm#az_vm_create). When prompted, provide a password to be used as the credentials for the VM:
+Create a VM withΓÇ»[az vm create](/cli/azure/vm#az-vm-create). When prompted, provide a password to be used as the credentials for the VM:
* Named **myVM**. * In **CreateSQLEndpointTutorial-rg**.
az vm create \
In this section, you'll create a SQL server and database.
-Use [az sql server create](/cli/azure/sql/server#az_sql_server_create) to create a SQL server:
+Use [az sql server create](/cli/azure/sql/server#az-sql-server-create) to create a SQL server:
* Replace **\<sql-server-name>** with your unique server name. * Replace **\<your-password>** with your password.
az sql server create \
--admin-password <your-password> ```
-Use [az sql db create](/cli/azure/sql/db#az_sql_db_create) to create a database:
+Use [az sql db create](/cli/azure/sql/db#az-sql-db-create) to create a database:
* Named **myDataBase**. * In **CreateSQLEndpointTutorial-rg**.
az sql db create \
In this section, you'll create the private endpoint.
-Use [az sql server list](/cli/azure/sql/server#az_sql_server_list) to place the resource ID of the SQL server into a shell variable.
+Use [az sql server list](/cli/azure/sql/server#az-sql-server-list) to place the resource ID of the SQL server into a shell variable.
-Use [az network private-endpoint create](/cli/azure/network/private-endpoint#az_network_private_endpoint_create) to create the endpoint and connection:
+Use [az network private-endpoint create](/cli/azure/network/private-endpoint#az-network-private-endpoint-create) to create the endpoint and connection:
* Named **myPrivateEndpoint**. * In resource group **CreateSQLEndpointTutorial-rg**.
az network private-endpoint create \
## Configure the private DNS zone
-In this section, you'll create and configure the private DNS zone using [az network private-dns zone create](/cli/azure/network/private-dns/zone#az_network_private_dns_zone_create).
+In this section, you'll create and configure the private DNS zone using [az network private-dns zone create](/cli/azure/network/private-dns/zone#az-network-private-dns-zone-create).
-You'll use [az network private-dns link vnet create](/cli/azure/network/private-dns/link/vnet#az_network_private_dns_link_vnet_create) to create the virtual network link to the dns zone.
+You'll use [az network private-dns link vnet create](/cli/azure/network/private-dns/link/vnet#az-network-private-dns-link-vnet-create) to create the virtual network link to the dns zone.
-You'll create a dns zone group with [az network private-endpoint dns-zone-group create](/cli/azure/network/private-endpoint/dns-zone-group#az_network_private_endpoint_dns_zone_group_create).
+You'll create a dns zone group with [az network private-endpoint dns-zone-group create](/cli/azure/network/private-endpoint/dns-zone-group#az-network-private-endpoint-dns-zone-group-create).
* Zone named **privatelink.database.windows.net** * In virtual network **myVNet**.
purview Deployment Best Practices https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/purview/deployment-best-practices.md
After the move, follow the below steps to clear the old identities, and create n
Alternatively, you can use the [Azure Cloud Shell](../cloud-shell/overview.md) in the Azure Portal. Direct browser link: [https://shell.azure.com](https://shell.azure.com).
-1. Obtain an access token by using [az account get-access-token](/cli/azure/account#az_account_get_access_token).
+1. Obtain an access token by using [az account get-access-token](/cli/azure/account#az-account-get-access-token).
```azurecli-interactive az account get-access-token ```
role-based-access-control Change History Report https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/change-history-report.md
Properties :
## Azure CLI
-To view activity logs with the Azure CLI, use the [az monitor activity-log list](/cli/azure/monitor/activity-log#az_monitor_activity_log_list) command.
+To view activity logs with the Azure CLI, use the [az monitor activity-log list](/cli/azure/monitor/activity-log#az-monitor-activity-log-list) command.
This command lists the activity logs in a resource group from March 1, looking forward seven days:
role-based-access-control Conditions Custom Security Attributes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/conditions-custom-security-attributes.md
You can also use Azure CLI to add role assignments conditions. The following com
### Add a condition
-1. Use the [az login](/cli/azure/reference-index#az_login) command and follow the instructions that appear to sign in to your directory as User Access Administrator or Owner.
+1. Use the [az login](/cli/azure/reference-index#az-login) command and follow the instructions that appear to sign in to your directory as User Access Administrator or Owner.
```azurecli az login ```
-1. Use [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list) to get the role assignment you assigned to the security group.
+1. Use [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list) to get the role assignment you assigned to the security group.
```azurecli az role assignment list --assignee <groupObjectId> --scope <scope>
You can also use Azure CLI to add role assignments conditions. The following com
"conditionVersion": "2.0", ```
-1. Use [az role assignment update](/cli/azure/role/assignment#az_role_assignment_update) to add the condition to the role assignment.
+1. Use [az role assignment update](/cli/azure/role/assignment#az-role-assignment-update) to add the condition to the role assignment.
```azurecli az role assignment update --role-assignment "./path/roleassignment.json"
You can also use Azure CLI to add role assignments conditions. The following com
### Test the condition
-1. In a new command window, use the [az login](/cli/azure/reference-index#az_login) command to sign in as a member of the security group.
+1. In a new command window, use the [az login](/cli/azure/reference-index#az-login) command to sign in as a member of the security group.
```azurecli az login ```
-1. Use [az storage blob show](/cli/azure/storage/blob#az_storage_blob_show) to try to read the properties for the Baker file.
+1. Use [az storage blob show](/cli/azure/storage/blob#az-storage-blob-show) to try to read the properties for the Baker file.
```azurecli az storage blob show --account-name <storageAccountName> --container-name <containerName> --name <blobNameBaker> --auth-mode login
You can also use Azure CLI to add role assignments conditions. The following com
... ```
-1. Use [az storage blob show](/cli/azure/storage/blob#az_storage_blob_show) to try to read the properties for the Cascade file.
+1. Use [az storage blob show](/cli/azure/storage/blob#az-storage-blob-show) to try to read the properties for the Cascade file.
```azurecli az storage blob show --account-name <storageAccountName> --container-name <containerName> --name <blobNameCascade> --auth-mode login
role-based-access-control Conditions Role Assignments Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/conditions-role-assignments-cli.md
For information about the prerequisites to add or edit role assignment condition
## Add a condition
-To add a role assignment condition, use [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create). The [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) command includes the following parameters related to conditions.
+To add a role assignment condition, use [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create). The [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command includes the following parameters related to conditions.
| Parameter | Type | Description | | | | |
The following shows an example of the output:
## Edit a condition
-To edit an existing role assignment condition, use [az role assignment update](/cli/azure/role/assignment#az_role_assignment_update) and a JSON file as input. The following shows an example JSON file where condition and description are updated. Only the `condition`, `conditionVersion`, and `description` properties can be edited. You must specify all the properties to update the role assignment condition.
+To edit an existing role assignment condition, use [az role assignment update](/cli/azure/role/assignment#az-role-assignment-update) and a JSON file as input. The following shows an example JSON file where condition and description are updated. Only the `condition`, `conditionVersion`, and `description` properties can be edited. You must specify all the properties to update the role assignment condition.
```json {
To edit an existing role assignment condition, use [az role assignment update](/
} ```
-Use [az role assignment update](/cli/azure/role/assignment#az_role_assignment_update) to update the condition for the role assignment.
+Use [az role assignment update](/cli/azure/role/assignment#az-role-assignment-update) to update the condition for the role assignment.
```azurecli az role assignment update --role-assignment "./path/roleassignment.json"
The following shows an example of the output:
## List a condition
-To list a role assignment condition, use [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list). For more information, see [List Azure role assignments using Azure CLI](role-assignments-list-cli.md).
+To list a role assignment condition, use [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list). For more information, see [List Azure role assignments using Azure CLI](role-assignments-list-cli.md).
## Delete a condition To delete a role assignment condition, edit the role assignment condition and set both the `condition` and `condition-version` properties to either an empty string (`""`) or `null`.
-Alternatively, if you want to delete both the role assignment and the condition, you can use the [az role assignment delete](/cli/azure/role/assignment#az_role_assignment_delete) command. For more information, see [Remove Azure role assignments](role-assignments-remove.md).
+Alternatively, if you want to delete both the role assignment and the condition, you can use the [az role assignment delete](/cli/azure/role/assignment#az-role-assignment-delete) command. For more information, see [Remove Azure role assignments](role-assignments-remove.md).
## Next steps
role-based-access-control Conditions Role Assignments Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/conditions-role-assignments-template.md
To use the template, you must specify the following input:
} ```
-The scope of the role assignment is determined from the level of the deployment. Here are example [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create) commands for how to start the deployment at a resource group scope.
+The scope of the role assignment is determined from the level of the deployment. Here are example [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create) commands for how to start the deployment at a resource group scope.
```azurepowershell New-AzResourceGroupDeployment -ResourceGroupName example-group -TemplateFile rbac-test.json -principalId $principalId -principalType "User"
role-based-access-control Custom Roles Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/custom-roles-cli.md
To create custom roles, you need:
## List custom roles
-To list custom roles that are available for assignment, use [az role definition list](/cli/azure/role/definition#az_role_definition_list). The following example lists all the custom roles in the current subscription.
+To list custom roles that are available for assignment, use [az role definition list](/cli/azure/role/definition#az-role-definition-list). The following example lists all the custom roles in the current subscription.
```azurecli az role definition list --custom-role-only true --output json --query '[].{roleName:roleName, roleType:roleType}'
az role definition list --custom-role-only true --output json --query '[].{roleN
## List a custom role definition
-To list a custom role definition, use [az role definition list](/cli/azure/role/definition#az_role_definition_list). This is the same command you would use for a built-in role.
+To list a custom role definition, use [az role definition list](/cli/azure/role/definition#az-role-definition-list). This is the same command you would use for a built-in role.
```azurecli az role definition list --name {roleName}
az role definition list --name "Virtual Machine Operator" --output json --query
## Create a custom role
-To create a custom role, use [az role definition create](/cli/azure/role/definition#az_role_definition_create). The role definition can be a JSON description or a path to a file containing a JSON description.
+To create a custom role, use [az role definition create](/cli/azure/role/definition#az-role-definition-create). The role definition can be a JSON description or a path to a file containing a JSON description.
```azurecli az role definition create --role-definition {roleDefinition}
az role definition create --role-definition ~/roles/vmoperator.json
## Update a custom role
-To update a custom role, first use [az role definition list](/cli/azure/role/definition#az_role_definition_list) to retrieve the role definition. Second, make the desired changes to the role definition. Finally, use [az role definition update](/cli/azure/role/definition#az_role_definition_update) to save the updated role definition.
+To update a custom role, first use [az role definition list](/cli/azure/role/definition#az-role-definition-list) to retrieve the role definition. Second, make the desired changes to the role definition. Finally, use [az role definition update](/cli/azure/role/definition#az-role-definition-update) to save the updated role definition.
```azurecli az role definition update --role-definition {roleDefinition}
az role definition update --role-definition ~/roles/vmoperator.json
## Delete a custom role
-To delete a custom role, use [az role definition delete](/cli/azure/role/definition#az_role_definition_delete). To specify the role to delete, use the role name or the role ID. To determine the role ID, use [az role definition list](/cli/azure/role/definition#az_role_definition_list).
+To delete a custom role, use [az role definition delete](/cli/azure/role/definition#az-role-definition-delete). To specify the role to delete, use the role name or the role ID. To determine the role ID, use [az role definition list](/cli/azure/role/definition#az-role-definition-list).
```azurecli az role definition delete --name {roleNameOrId}
role-based-access-control Elevate Access Global Admin https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/elevate-access-global-admin.md
To remove the User Access Administrator role assignment for yourself or another
Use the following basic steps to elevate access for a Global Administrator using the Azure CLI.
-1. Use the [az rest](/cli/azure/reference-index#az_rest) command to call the `elevateAccess` endpoint, which grants you the User Access Administrator role at root scope (`/`).
+1. Use the [az rest](/cli/azure/reference-index#az-rest) command to call the `elevateAccess` endpoint, which grants you the User Access Administrator role at root scope (`/`).
```azurecli az rest --method post --url "/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
Use the following basic steps to elevate access for a Global Administrator using
### List role assignment at root scope (/)
-To list the User Access Administrator role assignment for a user at root scope (`/`), use the [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list) command.
+To list the User Access Administrator role assignment for a user at root scope (`/`), use the [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list) command.
```azurecli az role assignment list --role "User Access Administrator" --scope "/"
To remove the User Access Administrator role assignment for yourself or another
1. Sign in as a user that can remove elevated access. This can be the same user that was used to elevate access or another Global Administrator with elevated access at root scope.
-1. Use the [az role assignment delete](/cli/azure/role/assignment#az_role_assignment_delete) command to remove the User Access Administrator role assignment.
+1. Use the [az role assignment delete](/cli/azure/role/assignment#az-role-assignment-delete) command to remove the User Access Administrator role assignment.
```azurecli az role assignment delete --assignee username@example.com --role "User Access Administrator" --scope "/"
When access is elevated, an entry is added to the logs. As a Global Administrato
1. Follow the steps earlier in this article to elevate your access.
-1. Use the [az login](/cli/azure/reference-index#az_login) command to sign in as Global Administrator.
+1. Use the [az login](/cli/azure/reference-index#az-login) command to sign in as Global Administrator.
-1. Use the [az rest](/cli/azure/reference-index#az_rest) command to make the following call where you will have to filter by a date as shown with the example timestamp and specify a filename where you want the logs to be stored.
+1. Use the [az rest](/cli/azure/reference-index#az-rest) command to make the following call where you will have to filter by a date as shown with the example timestamp and specify a filename where you want the logs to be stored.
The `url` calls an API to retrieve the logs in Microsoft.Insights. The output will be saved to your file.
If you want to be able to periodically get the elevate access logs, you can dele
1. Follow the steps earlier in this article to elevate your access.
-1. Use the [az login](/cli/azure/reference-index#az_login) command to sign in as Global Administrator.
+1. Use the [az login](/cli/azure/reference-index#az-login) command to sign in as Global Administrator.
-1. Use the [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) command to assign the [Reader](built-in-roles.md#reader) role to the group who can only read logs at the directory level, which are found at `Microsoft/Insights`.
+1. Use the [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command to assign the [Reader](built-in-roles.md#reader) role to the group who can only read logs at the directory level, which are found at `Microsoft/Insights`.
```azurecli az role assignment create --assignee "{groupId}" --role "Reader" --scope "/providers/Microsoft.Insights"
If you want to be able to periodically get the elevate access logs, you can dele
1. Follow the steps earlier in this article to remove elevated access.
-A user in the group can now periodically run the [az rest](/cli/azure/reference-index#az_rest) command to view elevate access logs.
+A user in the group can now periodically run the [az rest](/cli/azure/reference-index#az-rest) command to view elevate access logs.
```azurecli az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt
role-based-access-control Resource Provider Operations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/resource-provider-operations.md
# Azure resource provider operations
-This section lists the operations for Azure resource providers, which are used in built-in roles. You can use these operations in your own [Azure custom roles](custom-roles.md) to provide granular access control to resources in Azure. The resource provider operations are always evolving. To get the latest operations, use [Get-AzProviderOperation](/powershell/module/az.resources/get-azprovideroperation) or [az provider operation list](/cli/azure/provider/operation#az_provider_operation_list).
+This section lists the operations for Azure resource providers, which are used in built-in roles. You can use these operations in your own [Azure custom roles](custom-roles.md) to provide granular access control to resources in Azure. The resource provider operations are always evolving. To get the latest operations, use [Get-AzProviderOperation](/powershell/module/az.resources/get-azprovideroperation) or [az provider operation list](/cli/azure/provider/operation#az-provider-operation-list).
Click the resource provider name in the following table to see the list of operations.
Azure service: Microsoft Monitoring Insights
### Microsoft.DesktopVirtualization
-Azure service: [Windows Virtual Desktop](../virtual-desktop/index.yml)
+Azure service: [Azure Virtual Desktop](../virtual-desktop/index.yml)
> [!div class="mx-tableFixed"] > | Action | Description |
role-based-access-control Role Assignments Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/role-assignments-cli.md
You can assign a role to a user, group, service principal, or managed identity.
**User**
-For an Azure AD user, get the user principal name, such as *patlong\@contoso.com* or the user object ID. To get the object ID, you can use [az ad user show](/cli/azure/ad/user#az_ad_user_show).
+For an Azure AD user, get the user principal name, such as *patlong\@contoso.com* or the user object ID. To get the object ID, you can use [az ad user show](/cli/azure/ad/user#az-ad-user-show).
```azurecli az ad user show --id "{principalName}" --query "objectId" --output tsv
az ad user show --id "{principalName}" --query "objectId" --output tsv
**Group**
-For an Azure AD group, you need the group object ID. To get the object ID, you can use [az ad group show](/cli/azure/ad/group#az_ad_group_show) or [az ad group list](/cli/azure/ad/group#az_ad_group_list).
+For an Azure AD group, you need the group object ID. To get the object ID, you can use [az ad group show](/cli/azure/ad/group#az-ad-group-show) or [az ad group list](/cli/azure/ad/group#az-ad-group-list).
```azurecli az ad group show --group "{groupName}" --query "objectId" --output tsv
az ad group show --group "{groupName}" --query "objectId" --output tsv
**Service principal**
-For an Azure AD service principal (identity used by an application), you need the service principal object ID. To get the object ID, you can use [az ad sp list](/cli/azure/ad/sp#az_ad_sp_list). For a service principal, use the object ID and **not** the application ID.
+For an Azure AD service principal (identity used by an application), you need the service principal object ID. To get the object ID, you can use [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list). For a service principal, use the object ID and **not** the application ID.
```azurecli az ad sp list --all --query "[].{displayName:displayName, objectId:objectId}" --output tsv
az ad sp list --display-name "{displayName}"
**Managed identity**
-For a system-assigned or a user-assigned managed identity, you need the object ID. To get the object ID, you can use [az ad sp list](/cli/azure/ad/sp#az_ad_sp_list).
+For a system-assigned or a user-assigned managed identity, you need the object ID. To get the object ID, you can use [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list).
```azurecli az ad sp list --all --filter "servicePrincipalType eq 'ManagedIdentity'" ```
-To just list user-assigned managed identities, you can use [az identity list](/cli/azure/identity#az_identity_list).
+To just list user-assigned managed identities, you can use [az identity list](/cli/azure/identity#az-identity-list).
```azurecli az identity list
az identity list
Permissions are grouped together into roles. You can select from a list of several [Azure built-in roles](built-in-roles.md) or you can use your own custom roles. It's a best practice to grant access with the least privilege that is needed, so avoid assigning a broader role.
-To list roles and get the unique role ID, you can use [az role definition list](/cli/azure/role/definition#az_role_definition_list).
+To list roles and get the unique role ID, you can use [az role definition list](/cli/azure/role/definition#az-role-definition-list).
```azurecli az role definition list --query "[].{name:name, roleType:roleType, roleName:roleName}" --output tsv
For resource scope, you need the resource ID for the resource. You can find the
**Resource group scope**
-For resource group scope, you need the name of the resource group. You can find the name on the **Resource groups** page in the Azure portal or you can use [az group list](/cli/azure/group#az_group_list).
+For resource group scope, you need the name of the resource group. You can find the name on the **Resource groups** page in the Azure portal or you can use [az group list](/cli/azure/group#az-group-list).
```azurecli az group list --query "[].{name:name}" --output tsv
az group list --query "[].{name:name}" --output tsv
**Subscription scope**
-For subscription scope, you need the subscription ID. You can find the ID on the **Subscriptions** page in the Azure portal or you can use [az account list](/cli/azure/account#az_account_list).
+For subscription scope, you need the subscription ID. You can find the ID on the **Subscriptions** page in the Azure portal or you can use [az account list](/cli/azure/account#az-account-list).
```azurecli az account list --query "[].{name:name, id:id}" --output tsv
az account list --query "[].{name:name, id:id}" --output tsv
**Management group scope**
-For management group scope, you need the management group name. You can find the name on the **Management groups** page in the Azure portal or you can use [az account management-group list](/cli/azure/account/management-group#az_account_management_group_list).
+For management group scope, you need the management group name. You can find the name on the **Management groups** page in the Azure portal or you can use [az account management-group list](/cli/azure/account/management-group#az-account-management-group-list).
```azurecli az account management-group list --query "[].{name:name, id:id}" --output tsv
az account management-group list --query "[].{name:name, id:id}" --output tsv
### Step 4: Assign role
-To assign a role, use the [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) command. Depending on the scope, the command typically has one of the following formats.
+To assign a role, use the [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command. Depending on the scope, the command typically has one of the following formats.
**Resource scope**
az role assignment create --assignee "44444444-4444-4444-4444-444444444444" \
If you create a new service principal and immediately try to assign a role to that service principal, that role assignment can fail in some cases. For example, if you use a script to create a new managed identity and then try to assign a role to that service principal, the role assignment might fail. The reason for this failure is likely a replication delay. The service principal is created in one region; however, the role assignment might occur in a different region that hasn't replicated the service principal yet. To address this scenario, you should specify the principal type when creating the role assignment.
-To assign a role, use [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create), specify a value for `--assignee-object-id`, and then set `--assignee-principal-type` to `ServicePrincipal`.
+To assign a role, use [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create), specify a value for `--assignee-object-id`, and then set `--assignee-principal-type` to `ServicePrincipal`.
```azurecli az role assignment create --assignee-object-id "{assigneeObjectId}" \
role-based-access-control Role Assignments List Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/role-assignments-list-cli.md
## List role assignments for a user
-To list the role assignments for a specific user, use [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list):
+To list the role assignments for a specific user, use [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list):
```azurecli az role assignment list --assignee {assignee}
az role assignment list --all --assignee patlong@contoso.com --output json --que
## List role assignments for a resource group
-To list the role assignments that exist at a resource group scope, use [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list):
+To list the role assignments that exist at a resource group scope, use [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list):
```azurecli az role assignment list --resource-group {resourceGroup}
az role assignment list --resource-group pharma-sales --output json --query '[].
## List role assignments for a subscription
-To list all role assignments at a subscription scope, use [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list). To get the subscription ID, you can find it on the **Subscriptions** blade in the Azure portal or you can use [az account list](/cli/azure/account#az_account_list).
+To list all role assignments at a subscription scope, use [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list). To get the subscription ID, you can find it on the **Subscriptions** blade in the Azure portal or you can use [az account list](/cli/azure/account#az-account-list).
```azurecli az role assignment list --subscription {subscriptionNameOrId}
az role assignment list --subscription 00000000-0000-0000-0000-000000000000 --ou
## List role assignments for a management group
-To list all role assignments at a management group scope, use [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list). To get the management group ID, you can find it on the **Management groups** blade in the Azure portal or you can use [az account management-group list](/cli/azure/account/management-group#az_account_management_group_list).
+To list all role assignments at a management group scope, use [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list). To get the management group ID, you can find it on the **Management groups** blade in the Azure portal or you can use [az account management-group list](/cli/azure/account/management-group#az-account-management-group-list).
```azurecli az role assignment list --scope /providers/Microsoft.Management/managementGroups/{groupId}
az role assignment list --scope /providers/Microsoft.Management/managementGroups
1. Get the principal ID of the system-assigned or user-assigned managed identity.
- To get the principal ID of a user-assigned managed identity, you can use [az ad sp list](/cli/azure/ad/sp#az_ad_sp_list) or [az identity list](/cli/azure/identity#az_identity_list).
+ To get the principal ID of a user-assigned managed identity, you can use [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list) or [az identity list](/cli/azure/identity#az-identity-list).
```azurecli az ad sp list --display-name "{name}" --query [].objectId --output tsv ```
- To get the principal ID of a system-assigned managed identity, you can use [az ad sp list](/cli/azure/ad/sp#az_ad_sp_list).
+ To get the principal ID of a system-assigned managed identity, you can use [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list).
```azurecli az ad sp list --display-name "{vmname}" --query [].objectId --output tsv ```
-1. To list the role assignments, use [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list).
+1. To list the role assignments, use [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list).
By default, only role assignments for the current subscription will be displayed. To view role assignments for the current subscription and below, add the `--all` parameter. To view inherited role assignments, add the `--include-inherited` parameter.
role-based-access-control Role Assignments Remove https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/role-assignments-remove.md
If you get the error message: "The provided information does not map to a role a
## Azure CLI
-In Azure CLI, you remove a role assignment by using [az role assignment delete](/cli/azure/role/assignment#az_role_assignment_delete).
+In Azure CLI, you remove a role assignment by using [az role assignment delete](/cli/azure/role/assignment#az-role-assignment-delete).
The following example removes the [Virtual Machine Contributor](built-in-roles.md#virtual-machine-contributor) role assignment from the *patlong\@contoso.com* user on the *pharma-sales* resource group:
role-based-access-control Role Assignments Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/role-assignments-template.md
To assign a role, you need to specify the ID of the user, group, or application
### User
-To get the ID of a user, you can use the [Get-AzADUser](/powershell/module/az.resources/get-azaduser) or [az ad user show](/cli/azure/ad/user#az_ad_user_show) commands.
+To get the ID of a user, you can use the [Get-AzADUser](/powershell/module/az.resources/get-azaduser) or [az ad user show](/cli/azure/ad/user#az-ad-user-show) commands.
```azurepowershell $objectid = (Get-AzADUser -DisplayName "{name}").id
objectid=$(az ad user show --id "{email}" --query objectId --output tsv)
### Group
-To get the ID of a group, you can use the [Get-AzADGroup](/powershell/module/az.resources/get-azadgroup) or [az ad group show](/cli/azure/ad/group#az_ad_group_show) commands.
+To get the ID of a group, you can use the [Get-AzADGroup](/powershell/module/az.resources/get-azadgroup) or [az ad group show](/cli/azure/ad/group#az-ad-group-show) commands.
```azurepowershell $objectid = (Get-AzADGroup -DisplayName "{name}").id
objectid=$(az ad sp list --display-name <Azure resource name> --query [].objectI
### Application
-To get the ID of a service principal (identity used by an application), you can use the [Get-AzADServicePrincipal](/powershell/module/az.resources/get-azadserviceprincipal) or [az ad sp list](/cli/azure/ad/sp#az_ad_sp_list) commands. For a service principal, use the object ID and **not** the application ID.
+To get the ID of a service principal (identity used by an application), you can use the [Get-AzADServicePrincipal](/powershell/module/az.resources/get-azadserviceprincipal) or [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list) commands. For a service principal, use the object ID and **not** the application ID.
```azurepowershell $objectid = (Get-AzADServicePrincipal -DisplayName "{name}").id
To use the template, you must do the following:
} ```
-Here are example [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create) commands for how to start the deployment in a resource group named ExampleGroup.
+Here are example [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create) commands for how to start the deployment in a resource group named ExampleGroup.
```azurepowershell New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateFile rbac-test.json
To use the template, you must specify the following inputs:
> [!NOTE] > This template is not idempotent unless the same `roleNameGuid` value is provided as a parameter for each deployment of the template. If no `roleNameGuid` is provided, by default a new GUID is generated on each deployment and subsequent deployments will fail with a `Conflict: RoleAssignmentExists` error.
-The scope of the role assignment is determined from the level of the deployment. Here are example [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create) commands for how to start the deployment at a resource group scope.
+The scope of the role assignment is determined from the level of the deployment. Here are example [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create) commands for how to start the deployment at a resource group scope.
```azurepowershell New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateFile rbac-test.json -principalId $objectid -builtInRoleType Reader
New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateFile rbac
az deployment group create --resource-group ExampleGroup --template-file rbac-test.json --parameters principalId=$objectid builtInRoleType=Reader ```
-Here are example [New-AzDeployment](/powershell/module/az.resources/new-azdeployment) and [az deployment sub create](/cli/azure/deployment/sub#az_deployment_sub_create) commands for how to start the deployment at a subscription scope and specify the location.
+Here are example [New-AzDeployment](/powershell/module/az.resources/new-azdeployment) and [az deployment sub create](/cli/azure/deployment/sub#az-deployment-sub-create) commands for how to start the deployment at a subscription scope and specify the location.
```azurepowershell New-AzDeployment -Location centralus -TemplateFile rbac-test.json -principalId $objectid -builtInRoleType Reader
To use the template, you must specify the following inputs:
} ```
-To deploy the previous template, you use the resource group commands. Here are example [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create) commands for how to start the deployment at a resource scope.
+To deploy the previous template, you use the resource group commands. Here are example [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create) commands for how to start the deployment at a resource scope.
```azurepowershell New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateFile rbac-test.json -principalId $objectid -builtInRoleType Contributor
To use the template, you must specify the following inputs:
} ```
-Here are example [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az_deployment_group_create) commands for how to start the deployment at a resource group scope.
+Here are example [New-AzResourceGroupDeployment](/powershell/module/az.resources/new-azresourcegroupdeployment) and [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create) commands for how to start the deployment at a resource group scope.
```azurepowershell New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup2 -TemplateFile rbac-test.json
role-based-access-control Role Definitions List https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/role-definitions-list.md
Microsoft.Network/loadBalancers/backendAddressPools/join/action
### List all roles
-To list all roles in Azure CLI, use [az role definition list](/cli/azure/role/definition#az_role_definition_list).
+To list all roles in Azure CLI, use [az role definition list](/cli/azure/role/definition#az-role-definition-list).
```azurecli az role definition list
az role definition list --custom-role-only false --output json --query '[].{role
### List a role definition
-To list details of a role, use [az role definition list](/cli/azure/role/definition#az_role_definition_list).
+To list details of a role, use [az role definition list](/cli/azure/role/definition#az-role-definition-list).
```azurecli az role definition list --name {roleName}
role-based-access-control Transfer Subscription https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/transfer-subscription.md
To complete these steps, you will need:
1. Sign in to Azure as an administrator.
-1. Get a list of your subscriptions with the [az account list](/cli/azure/account#az_account_list) command.
+1. Get a list of your subscriptions with the [az account list](/cli/azure/account#az-account-list) command.
```azurecli az account list --output table ```
-1. Use [az account set](/cli/azure/account#az_account_set) to set the active subscription you want to transfer.
+1. Use [az account set](/cli/azure/account#az-account-set) to set the active subscription you want to transfer.
```azurecli az account set --subscription "Marketing"
To complete these steps, you will need:
The Azure CLI extension for [Azure Resource Graph](../governance/resource-graph/index.yml), *resource-graph*, enables you to use the [az graph](/cli/azure/graph) command to query resources managed by Azure Resource Manager. You'll use this command in later steps.
-1. Use [az extension list](/cli/azure/extension#az_extension_list) to see if you have the *resource-graph* extension installed.
+1. Use [az extension list](/cli/azure/extension#az-extension-list) to see if you have the *resource-graph* extension installed.
```azurecli az extension list
To complete these steps, you will need:
### Save all role assignments
-1. Use [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list) to list all the role assignments (including inherited role assignments).
+1. Use [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list) to list all the role assignments (including inherited role assignments).
To make it easier to review the list, you can export the output as JSON, TSV, or a table. For more information, see [List role assignments using Azure RBAC and Azure CLI](role-assignments-list-cli.md).
To complete these steps, you will need:
### Save custom roles
-1. Use the [az role definition list](/cli/azure/role/definition#az_role_definition_list) to list your custom roles. For more information, see [Create or update Azure custom roles using Azure CLI](custom-roles-cli.md).
+1. Use the [az role definition list](/cli/azure/role/definition#az-role-definition-list) to list your custom roles. For more information, see [Create or update Azure custom roles using Azure CLI](custom-roles-cli.md).
```azurecli az role definition list --custom-role-only true --output json --query '[].{roleName:roleName, roleType:roleType}'
Managed identities do not get updated when a subscription is transferred to anot
1. Review the [list of Azure services that support managed identities](../active-directory/managed-identities-azure-resources/services-support-managed-identities.md) to note where you might be using managed identities.
-1. Use [az ad sp list](/cli/azure/ad/sp#az_ad_sp_list) to list your system-assigned and user-assigned managed identities.
+1. Use [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list) to list your system-assigned and user-assigned managed identities.
```azurecli az ad sp list --all --filter "servicePrincipalType eq 'ManagedIdentity'"
Managed identities do not get updated when a subscription is transferred to anot
| `alternativeNames` property does not include `isExplicit` | System-assigned | | `alternativeNames` property includes `isExplicit=True` | User-assigned |
- You can also use [az identity list](/cli/azure/identity#az_identity_list) to just list user-assigned managed identities. For more information, see [Create, list, or delete a user-assigned managed identity using the Azure CLI](../active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli.md).
+ You can also use [az identity list](/cli/azure/identity#az-identity-list) to just list user-assigned managed identities. For more information, see [Create, list, or delete a user-assigned managed identity using the Azure CLI](../active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli.md).
```azurecli az identity list
When you create a key vault, it is automatically tied to the default Azure Activ
> [!WARNING] > If you are using encryption at rest for a resource, such as a storage account or SQL database, that has a dependency on a key vault that is **not** in the same subscription that is being transferred, it can lead to an unrecoverable scenario. If you have this situation, you should take steps to use a different key vault or temporarily disable customer-managed keys to avoid this unrecoverable scenario. -- If you have a key vault, use [az keyvault show](/cli/azure/keyvault#az_keyvault_show) to list the access policies. For more information, see [Assign a Key Vault access policy](../key-vault/general/assign-access-policy-cli.md).
+- If you have a key vault, use [az keyvault show](/cli/azure/keyvault#az-keyvault-show) to list the access policies. For more information, see [Assign a Key Vault access policy](../key-vault/general/assign-access-policy-cli.md).
```azurecli az keyvault show --name MyKeyVault
When you create a key vault, it is automatically tied to the default Azure Activ
### List Azure SQL databases with Azure AD authentication -- Use [az sql server ad-admin list](/cli/azure/sql/server/ad-admin#az_sql_server_ad_admin_list) and the [az graph](/cli/azure/graph) extension to see if you are using Azure SQL databases with Azure AD authentication integration enabled. For more information, see [Configure and manage Azure Active Directory authentication with SQL](../azure-sql/database/authentication-aad-configure.md).
+- Use [az sql server ad-admin list](/cli/azure/sql/server/ad-admin#az-sql-server-ad-admin-list) and the [az graph](/cli/azure/graph) extension to see if you are using Azure SQL databases with Azure AD authentication integration enabled. For more information, see [Configure and manage Azure Active Directory authentication with SQL](../azure-sql/database/authentication-aad-configure.md).
```azurecli az sql server ad-admin list --ids $(az graph query -q 'resources | where type == "microsoft.sql/servers" | project id' -o tsv | cut -f1)
When you create a key vault, it is automatically tied to the default Azure Activ
### List other known resources
-1. Use [az account show](/cli/azure/account#az_account_show) to get your subscription ID (in `bash`).
+1. Use [az account show](/cli/azure/account#az-account-show) to get your subscription ID (in `bash`).
```azurecli subscriptionId=$(az account show --output tsv --query id)
In this step, you transfer the subscription from the source directory to the tar
Only the user in the new account who accepted the transfer request will have access to manage the resources.
-1. Get a list of your subscriptions with the [az account list](/cli/azure/account#az_account_list) command.
+1. Get a list of your subscriptions with the [az account list](/cli/azure/account#az-account-list) command.
```azurecli az account list --output table ```
-1. Use [az account set](/cli/azure/account#az_account_set) to set the active subscription you want to use.
+1. Use [az account set](/cli/azure/account#az-account-set) to set the active subscription you want to use.
```azurecli az account set --subscription "Contoso"
In this step, you transfer the subscription from the source directory to the tar
### Create custom roles -- Use [az role definition create](/cli/azure/role/definition#az_role_definition_create) to create each custom role from the files you created earlier. For more information, see [Create or update Azure custom roles using Azure CLI](custom-roles-cli.md).
+- Use [az role definition create](/cli/azure/role/definition#az-role-definition-create) to create each custom role from the files you created earlier. For more information, see [Create or update Azure custom roles using Azure CLI](custom-roles-cli.md).
```azurecli az role definition create --role-definition <role_definition>
In this step, you transfer the subscription from the source directory to the tar
### Assign roles -- Use [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) to assign roles to users, groups, and service principals. For more information, see [Assign Azure roles using Azure CLI](role-assignments-cli.md).
+- Use [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) to assign roles to users, groups, and service principals. For more information, see [Assign Azure roles using Azure CLI](role-assignments-cli.md).
```azurecli az role assignment create --role <role_name_or_id> --assignee <assignee> --resource-group <resource_group>
In this step, you transfer the subscription from the source directory to the tar
| Virtual machine scale sets | [Configure managed identities for Azure resources on a virtual machine scale set using Azure CLI](../active-directory/managed-identities-azure-resources/qs-configure-cli-windows-vmss.md#system-assigned-managed-identity) | | Other services | [Services that support managed identities for Azure resources](../active-directory/managed-identities-azure-resources/services-support-managed-identities.md) |
-1. Use [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) to assign roles to system-assigned managed identities. For more information, see [Assign a managed identity access to a resource using Azure CLI](../active-directory/managed-identities-azure-resources/howto-assign-access-cli.md).
+1. Use [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) to assign roles to system-assigned managed identities. For more information, see [Assign a managed identity access to a resource using Azure CLI](../active-directory/managed-identities-azure-resources/howto-assign-access-cli.md).
```azurecli az role assignment create --assignee <objectid> --role '<role_name_or_id>' --scope <scope>
In this step, you transfer the subscription from the source directory to the tar
| Virtual machine scale sets | [Configure managed identities for Azure resources on a virtual machine scale set using Azure CLI](../active-directory/managed-identities-azure-resources/qs-configure-cli-windows-vmss.md#user-assigned-managed-identity) | | Other services | [Services that support managed identities for Azure resources](../active-directory/managed-identities-azure-resources/services-support-managed-identities.md)<br/>[Create, list, or delete a user-assigned managed identity using the Azure CLI](../active-directory/managed-identities-azure-resources/how-to-manage-ua-identity-cli.md) |
-1. Use [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) to assign roles to user-assigned managed identities. For more information, see [Assign a managed identity access to a resource using Azure CLI](../active-directory/managed-identities-azure-resources/howto-assign-access-cli.md).
+1. Use [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) to assign roles to user-assigned managed identities. For more information, see [Assign a managed identity access to a resource using Azure CLI](../active-directory/managed-identities-azure-resources/howto-assign-access-cli.md).
```azurecli az role assignment create --assignee <objectid> --role '<role_name_or_id>' --scope <scope>
role-based-access-control Troubleshooting https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/troubleshooting.md
ObjectType : User
CanDelegate : False ```
-Similarly, if you list this role assignment using Azure CLI, you might see an empty `principalName`. For example, [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list) returns a role assignment that is similar to the following output:
+Similarly, if you list this role assignment using Azure CLI, you might see an empty `principalName`. For example, [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list) returns a role assignment that is similar to the following output:
``` {
role-based-access-control Tutorial Custom Role Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/tutorial-custom-role-cli.md
The easiest way to create a custom role is to start with a JSON template, add yo
"Microsoft.Support/*" ```
-1. Get the ID of your subscription using the [az account list](/cli/azure/account#az_account_list) command.
+1. Get the ID of your subscription using the [az account list](/cli/azure/account#az-account-list) command.
```azurecli az account list --output table
The easiest way to create a custom role is to start with a JSON template, add yo
} ```
-1. To create the new custom role, use the [az role definition create](/cli/azure/role/definition#az_role_definition_create) command and specify the JSON role definition file.
+1. To create the new custom role, use the [az role definition create](/cli/azure/role/definition#az-role-definition-create) command and specify the JSON role definition file.
```azurecli az role definition create --role-definition "~/CustomRoles/ReaderSupportRole.json"
The easiest way to create a custom role is to start with a JSON template, add yo
## List custom roles -- To list all your custom roles, use the [az role definition list](/cli/azure/role/definition#az_role_definition_list) command with the `--custom-role-only` parameter.
+- To list all your custom roles, use the [az role definition list](/cli/azure/role/definition#az-role-definition-list) command with the `--custom-role-only` parameter.
```azurecli az role definition list --custom-role-only true
To update the custom role, update the JSON file and then update the custom role.
} ```
-1. To update the custom role, use the [az role definition update](/cli/azure/role/definition#az_role_definition_update) command and specify the updated JSON file.
+1. To update the custom role, use the [az role definition update](/cli/azure/role/definition#az-role-definition-update) command and specify the updated JSON file.
```azurecli az role definition update --role-definition "~/CustomRoles/ReaderSupportRole.json"
To update the custom role, update the JSON file and then update the custom role.
## Delete a custom role -- Use the [az role definition delete](/cli/azure/role/definition#az_role_definition_delete) command and specify the role name or role ID to delete the custom role.
+- Use the [az role definition delete](/cli/azure/role/definition#az-role-definition-delete) command and specify the role name or role ID to delete the custom role.
```azurecli az role definition delete --name "Reader Support Tickets"
route-server Quickstart Configure Route Server Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/route-server/quickstart-configure-route-server-cli.md
az account set \
### Create a resource group
-Before you can create an Azure Route Server, you have to create a resource group to host the Route Server. Create a resource group with [az group create](/cli/azure/group#az_group_create). This example creates a resource group named **myRouteServerRG** in the **westus** location:
+Before you can create an Azure Route Server, you have to create a resource group to host the Route Server. Create a resource group with [az group create](/cli/azure/group#az-group-create). This example creates a resource group named **myRouteServerRG** in the **westus** location:
```azurecli-interactive az group create \
az group create \
### Create a virtual network
-Create a virtual network with [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create). This example creates a default virtual network named **myVirtualNetwork**. If you already have a virtual network, you can skip to the next section.
+Create a virtual network with [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create). This example creates a default virtual network named **myVirtualNetwork**. If you already have a virtual network, you can skip to the next section.
```azurecli-interactive az network vnet create \
az network vnet create \
### Add a dedicated subnet
-Azure Route Server requires a dedicated subnet named *RouteServerSubnet*. The subnet size has to be at least /27 or short prefix (such as /26 or /25) or you'll receive an error message when deploying the Route Server. Create a subnet configuration named **RouteServerSubnet** with [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create):
+Azure Route Server requires a dedicated subnet named *RouteServerSubnet*. The subnet size has to be at least /27 or short prefix (such as /26 or /25) or you'll receive an error message when deploying the Route Server. Create a subnet configuration named **RouteServerSubnet** with [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create):
1. Run the follow command to add the *RouteServerSubnet* to your virtual network.
Azure Route Server requires a dedicated subnet named *RouteServerSubnet*. The su
--address-prefix 10.0.0.0/24 ```
-1. Make note of the RouteServerSubnet ID. To obtain and store the resource ID of the *RouteServerSubnet* to the `subnet_id` variable, use [az network vnet subnet show](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_show):
+1. Make note of the RouteServerSubnet ID. To obtain and store the resource ID of the *RouteServerSubnet* to the `subnet_id` variable, use [az network vnet subnet show](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-show):
```azurecli-interactive subnet_id=$(az network vnet subnet show \
Azure Route Server requires a dedicated subnet named *RouteServerSubnet*. The su
## Create the Route Server
-1. To ensure connectivity to the backend service that manages Route Server configuration, assigning a public IP address is required. Create a Standard Public IP named **RouteServerIP** with [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create):
+1. To ensure connectivity to the backend service that manages Route Server configuration, assigning a public IP address is required. Create a Standard Public IP named **RouteServerIP** with [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create):
```azurecli-interactive az network public-ip create \
Azure Route Server requires a dedicated subnet named *RouteServerSubnet*. The su
--sku Standard ```
-2. Create the Azure Route Server with [az network routeserver create](/cli/azure/network/routeserver#az_network_routeserver_create). This example creates an Azure Route Server named **myRouteServer**. The *hosted-subnet* is the resource ID of the RouteServerSubnet created in the previous section.
+2. Create the Azure Route Server with [az network routeserver create](/cli/azure/network/routeserver#az-network-routeserver-create). This example creates an Azure Route Server named **myRouteServer**. The *hosted-subnet* is the resource ID of the RouteServerSubnet created in the previous section.
```azurecli-interactive az network routeserver create \
Azure Route Server requires a dedicated subnet named *RouteServerSubnet*. The su
## Create BGP peering with an NVA
-Use [az network routeserver peering create](/cli/azure/network/routeserver/peering#az_network_routeserver_peering_create) to establish BGP peering between the Route Server and the NVA:
+Use [az network routeserver peering create](/cli/azure/network/routeserver/peering#az-network-routeserver-peering-create) to establish BGP peering between the Route Server and the NVA:
The `peer-ip` is the virtual network IP assigned to the NVA. The `peer-asn` is the Autonomous System Number (ASN) configured in the NVA. The ASN can be any 16-bit number other than the ones in the range of 65515-65520. This range of ASNs are reserved by Microsoft.
To set up peering with a different NVA or another instance of the same NVA for r
## Complete the configuration on the NVA
-To complete the configuration on the NVA and enable the BGP sessions, you need the IP and the ASN of Azure Route Server. You can get this information by using [az network routeserver show](/cli/azure/network/routeserver#az_network_routeserver_show):
+To complete the configuration on the NVA and enable the BGP sessions, you need the IP and the ASN of Azure Route Server. You can get this information by using [az network routeserver show](/cli/azure/network/routeserver#az-network-routeserver-show):
```azurecli-interactive az network routeserver show \
If you have an ExpressRoute and an Azure VPN gateway in the same virtual network
> For greenfield deployments make sure to create the Azure VPN gateway before creating Azure Route Server; otherwise the deployment of Azure VPN Gateway will fail. >
-1. To enable route exchange between Azure Route Server and the gateway(s) use [az network routerserver update](/cli/azure/network/routeserver#az_network_routeserver_update) with the `--allow-b2b-traffic`` flag set to **true**:
+1. To enable route exchange between Azure Route Server and the gateway(s) use [az network routerserver update](/cli/azure/network/routeserver#az-network-routeserver-update) with the `--allow-b2b-traffic`` flag set to **true**:
```azurecli-interactive az network routeserver update \
If you have an ExpressRoute and an Azure VPN gateway in the same virtual network
--allow-b2b-traffic true ```
-2. To disable route exchange between Azure Route Server and the gateway(s), use [az network routerserver update](/cli/azure/network/routeserver#az_network_routeserver_update) with the `--allow-b2b-traffic`` flag set to **false**:
+2. To disable route exchange between Azure Route Server and the gateway(s), use [az network routerserver update](/cli/azure/network/routeserver#az-network-routeserver-update) with the `--allow-b2b-traffic`` flag set to **false**:
```azurecli-interactive az network routeserver update \
If you have an ExpressRoute and an Azure VPN gateway in the same virtual network
## Troubleshooting
-Use the [az network routeserver peering list-advertised-routes](/cli/azure/network/routeserver/peering#az_network_routeserver_peering_list_advertised_routes) to view routes advertised by the Azure Route Server:
+Use the [az network routeserver peering list-advertised-routes](/cli/azure/network/routeserver/peering#az-network-routeserver-peering-list-advertised-routes) to view routes advertised by the Azure Route Server:
```azurecli-interactive az network routeserver peering list-advertised-routes \
az network routeserver peering list-advertised-routes \
--resource-group myRouteServerRG ```
-Use the [az network routeserver peering list-learned-routes](/cli/azure/network/routeserver/peering#az_network_routeserver_peering_list_learned_routes) to view routes learned by the Azure Route Server:
+Use the [az network routeserver peering list-learned-routes](/cli/azure/network/routeserver/peering#az-network-routeserver-peering-list-learned-routes) to view routes learned by the Azure Route Server:
```azurecli-interactive az network routeserver peering list-learned-routes \
az network routeserver peering list-learned-routes \
If you no longer need the Azure Route Server, use the first command to remove the BGP peering and then the second command to remove the Route Server.
-1. Remove the BGP peering between Azure Route Server and an NVA with [az network routeserver peering delete](/cli/azure/network/routeserver/peering#az_network_routeserver_peering_delete):
+1. Remove the BGP peering between Azure Route Server and an NVA with [az network routeserver peering delete](/cli/azure/network/routeserver/peering#az-network-routeserver-peering-delete):
```azurecli-interactive az network routeserver peering delete \
If you no longer need the Azure Route Server, use the first command to remove th
--resource-group myRouteServerRG ```
-2. Remove the Azure Route Server with [az network routeserver delete](/cli/azure/network/routeserver#az_network_routeserver_delete):
+2. Remove the Azure Route Server with [az network routeserver delete](/cli/azure/network/routeserver#az-network-routeserver-delete):
```azurecli-interactive az network routeserver delete \
search Cognitive Search Skill Custom Entity Lookup https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/cognitive-search-skill-custom-entity-lookup.md
Previously updated : 08/12/2021 Last updated : 03/22/2022+ # Custom Entity Lookup cognitive skill
search Search Create Service Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-create-service-portal.md
Previously updated : 01/17/2022 Last updated : 03/22/2022 # Create an Azure Cognitive Search service in the portal [**Azure Cognitive Search**](search-what-is-azure-search.md) is an Azure resource used for adding a full text search experience to custom apps.
-You can create search service using the [Azure portal](https://portal.azure.com/), which is covered in this article. You can also use [Azure PowerShell](search-manage-powershell.md), [Azure CLI](/cli/azure/search), the [Management REST API](/rest/api/searchmanagement/), or an [Azure Resource Manager service template](https://azure.microsoft.com/resources/templates/azure-search-create/).
+You can create search service using the [Azure portal](https://portal.azure.com/), which is covered in this article. You can also use [Azure PowerShell](search-manage-powershell.md), [Azure CLI](/cli/azure/search), the [Management REST API](/rest/api/searchmanagement/), an [Azure Resource Manager service template](https://azure.microsoft.com/resources/templates/azure-search-create/), or a [Bicep file](search-get-started-bicep.md).
[![Animated GIF](./media/search-create-service-portal/AnimatedGif-AzureSearch-small.gif)](./media/search-create-service-portal/AnimatedGif-AzureSearch.gif#lightbox) ## Before you start
-The following service properties are fixed for the lifetime of the service - changing any of them requires a new service. Because they are fixed, consider the usage implications as you fill in each property:
+The following service properties are fixed for the lifetime of the service. Because they're fixed, consider the usage implications as you fill in each property:
-+ Service name becomes part of the URL endpoint ([review tips](#name-the-service) for helpful service names).
-+ [Service tier](search-sku-tier.md) (Basic, Standard, and so forth) determines the characteristics of the underlying physical hardware. As such, your choice of tier affects billing and sets an upward limit on capacity. Some features are not available on the free tier.
-+ Service region can determine the availability of certain scenarios. If you need [high security features](search-security-overview.md) or [AI enrichment](cognitive-search-concept-intro.md), you will need to create Azure Cognitive Search in the same region as other services, or in regions that provide the feature in question.
++ Service name becomes part of the URL endpoint ([review tips for helpful service names](#name-the-service)).++ [Tier](search-sku-tier.md) (Basic, Standard, and so forth) determines the underlying physical hardware and billing. Some features are tier-constrained.++ [Service region](#choose-a-region) can determine the availability of certain scenarios. If you need high availability or [AI enrichment](cognitive-search-concept-intro.md), you'll need to create the resource in a region that provides the feature. ## Subscribe (free or paid)
Paid (or billable) search becomes effective when you choose a billable tier (Bas
1. Use the search bar to find "Azure Cognitive Search" or navigate to the resource through **Web** > **Azure Cognitive Search**. ## Choose a subscription
If you have more than one subscription, choose one for your search service. If y
## Set a resource group
-A resource group is a container that holds related resources for your Azure solution. It is required for the search service. It is also useful for managing resources all-up, including costs. A resource group can consist of one service, or multiple services used together. For example, if you are using Azure Cognitive Search to index an Azure Cosmos DB database, you could make both services part of the same resource group for management purposes.
+A resource group is a container that holds related resources for your Azure solution. It's required for the search service. It's also useful for managing resources all-up, including costs. A resource group can consist of one service, or multiple services used together. For example, if you're using Azure Cognitive Search to index an Azure Cosmos DB database, you could make both services part of the same resource group for management purposes.
If you aren't combining resources into a single group, or if existing resource groups are filled with resources used in unrelated solutions, create a new resource group just for your Azure Cognitive Search resource. Over time, you can track current and projected costs all-up or you can view charges for individual resources. The following screenshot shows the kind of cost information you can expect to see when you combine multiple resources into one group. > [!TIP] > Resource groups simplify cleanup because deleting a group deletes all of the services within it. For prototype projects utilizing multiple services, putting all of them in the same resource group makes cleanup easier after the project is over.
Service name requirements:
> [!TIP] > If you think you'll be using multiple services, we recommend including the region (or location) in the service name as a naming convention. Services within the same region can exchange data at no charge, so if Azure Cognitive Search is in West US, and you have other services also in West US, a name like `mysearchservice-westus` can save you a trip to the properties page when deciding how to combine or attach resources.
-## Choose a location
+## Choose a region
-Azure Cognitive Search is available in most regions, as documented in the [Products available by region](https://azure.microsoft.com/global-infrastructure/services/?products=search).
+Azure Cognitive Search is available in most regions, as listed in the [**Products available by region**](https://azure.microsoft.com/global-infrastructure/services/?products=search) page.
-As a general rule, if you're using multiple Azure services, choose a region that is also hosting your data or application service. Doing so minimizes or voids bandwidth charges for outbound data (there are no charges for outbound data when services are in the same region).
+As a rule, if you're using multiple Azure services, putting all of them in the same region minimizes or voids bandwidth charges. There are no charges for outbound data when services are in the same region.
-+ [AI enrichment](cognitive-search-concept-intro.md) requires Cognitive Services to be in the same physical region as Azure Cognitive Search. There are just a few regions that *don't* provide both. The [Products available by region](https://azure.microsoft.com/global-infrastructure/services/?products=search) page indicates dual availability by showing two stacked check marks. An unavailable combination has a missing check mark:
+Two notable exceptions might lead to provisioning one or more search services in a separate region:
+++ [Outbound connections from Cognitive Search to Azure Storage](search-indexer-securing-resources.md). You might want storage in a different region if you are enabling a firewall.+++ Business continuity and disaster recovery (BCDR) requirements dictate creating multiple search services in [regional pairs](../availability-zones/cross-region-replication-azure.md#azure-cross-region-replication-pairings-for-all-geographies). For example, if you are operating in North America, you might choose East US and West US, or North Central US and South Centra US, for each search service.+
+Some features are subject to regional availability. If you require any of following features, choose a region that provides them:
+++ [AI enrichment](cognitive-search-concept-intro.md) requires Cognitive Services to be in the same physical region as Azure Cognitive Search. There are just a few regions that *don't* provide both. The [Products available by region](https://azure.microsoft.com/global-infrastructure/services/?products=search) page indicates a common regional presence by showing two stacked check marks. An unavailable combination has a missing check mark. The time piece icon indicates future availability. :::image type="content" source="media/search-create-service-portal/region-availability.png" alt-text="Regional availability" border="true":::
-+ Business continuity and disaster recovery (BCDR) requirements should be met by creating multiple search services in [regional pairs](../availability-zones/cross-region-replication-azure.md#azure-cross-region-replication-pairings-for-all-geographies). For example, if you are operating in North America, you might choose East US and West US, or North Central US and South Centra US, for each search service.
++ Semantic search is [currently in preview in selected regions](https://azure.microsoft.com/global-infrastructure/services/?products=search), such as "Australia East" in the above screenshot.
-Features that have limited availability based on regions are listed below. Supported regions are listed in the feature article:
+Other features that have regional constraints:
-+ ["Availability Zones" in Scale for Performance](search-performance-optimization.md#availability-zones).
++ ["Availability Zones" in Scale for Performance](search-performance-optimization.md#availability-zones)++ [Azure roles for data plane operations](search-security-rbac.md) (Azure public cloud only)
-## Choose a pricing tier
+## Choose a tier
Azure Cognitive Search is currently offered in [multiple pricing tiers](https://azure.microsoft.com/pricing/details/search/): Free, Basic, Standard, or Storage Optimized. Each tier has its own [capacity and limits](search-limits-quotas-capacity.md). Also the tier you select may impact the availability of certain features. See [Feature availability by tier](search-sku-tier.md#feature-availability-by-tier) for guidance.
Remember, a pricing tier cannot be changed once the service is created. If you n
After you've provided the necessary inputs, go ahead and create the service. Your service is deployed within minutes. You can monitor progress through Azure notifications. Consider pinning the service to your dashboard for easy access in the future. ## Get a key and URL endpoint
-Unless you are using the portal, programmatic access to your new service requires that you provide the URL endpoint and an authentication API key.
+Unless you are using the portal, programmatic access to your new service requires that you provide the URL endpoint and an authenticated connection. [Azure role-based access control with Azure Active Directory](search-security-rbac.md) is in public preview. [Key-based authentication](search-security-api-keys.md) is the default. It's also the only generally available authentication methodology for inbound connections to a search service.
1. On the **Overview** page, locate and copy the URL endpoint on the right side of the page.
An endpoint and key are not needed for portal-based tasks. The portal is already
## Scale your service
-After your service is provisioned, you can scale it to meet your needs. If you chose the Standard tier for your Azure Cognitive Search service, you can scale your service in two dimensions: replicas and partitions. Had you chosen the Basic tier, you can only add replicas. If you provisioned the free service, scale is not available.
+After your service is provisioned, you can [scale it to meet your needs](search-limits-quotas-capacity.md). If you chose the Standard tier for your Azure Cognitive Search service, you can scale your service in two dimensions: replicas and partitions. For the Basic tier, you can only add replicas. If you provisioned the free service, scale is not available.
***Partitions*** allow your service to store and search through more documents.
Adding resources increases your monthly bill. The [pricing calculator](https://a
1. In the left-navigation pane, select **Settings** > **Scale**. 1. Use the slidebar to add resources of either type. -
-> [!Note]
-> Per-partition storage and speed increases at higher tiers. For more information, see [capacity and limits](search-limits-quotas-capacity.md).
## When to add a second service
-Most customers use just one service provisioned at a tier providing the [right balance of resources](search-sku-tier.md). One service can host multiple indexes, subject to the [maximum limits of the tier you select](search-capacity-planning.md), with each index isolated from another. In Azure Cognitive Search, requests can only be directed to one index, minimizing the chance of accidental or intentional data retrieval from other indexes in the same service.
+Most customers use just one service provisioned at a tier [sufficient for expected load](search-capacity-planning.md). One service can host multiple indexes, subject to the [maximum limits of the tier you select](search-limits-quotas-capacity.md#index-limits), with each index isolated from another. In Azure Cognitive Search, requests can only be directed to one index, minimizing the chance of accidental or intentional data retrieval from other indexes in the same service.
Although most customers use just one service, service redundancy might be necessary if operational requirements include the following:
search Search Get Started Bicep https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-get-started-bicep.md
+
+ Title: 'Quickstart: Deploy using Bicep'
+
+description: You can quickly deploy an Azure Cognitive Search service instance using Bicep.
+++++ Last updated : 03/18/2022++
+# Quickstart: Deploy Cognitive Search using Bicep
+
+This article walks you through the process for using a Bicep file to deploy an Azure Cognitive Search resource in the Azure portal.
++
+## Prerequisites
+
+If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.
+
+## Review the Bicep file
+
+The Bicep file used in this quickstart is from [Azure Quickstart Templates](https://azure.microsoft.com/resources/templates/azure-search-create/).
++
+The Azure resource defined in this Bicep file:
+
+- [Microsoft.Search/searchServices](/azure/templates/Microsoft.Search/searchServices): create an Azure Cognitive Search service
+
+## Deploy the Bicep file
+
+1. Save the Bicep file as **main.bicep** to your local computer.
+1. Deploy the Bicep file using either Azure CLI or Azure PowerShell.
+
+ # [CLI](#tab/CLI)
+
+ ```azurecli
+ az group create --name exampleRG --location eastus
+ az deployment group create --resource-group exampleRG --template-file main.bicep
+ ```
+
+ # [PowerShell](#tab/PowerShell)
+
+ ```azurepowershell
+ New-AzResourceGroup -Name exampleRG -Location eastus
+ New-AzResourceGroupDeployment -ResourceGroupName exampleRG -TemplateFile ./main.bicep
+ ```
+
+
+
+ > [!NOTE]
+ > You'll be prompted to enter a service name. The service name must only contain lowercase letters, digits, or dashes. You can't use a dash as the first two characters or the last character. The name has a minimum length of 2 characters and a maximum length of 60 characters.
+
+ When the deployment finishes, you should see a message indicating the deployment succeeded.
+
+## Review deployed resources
+
+Use the Azure portal, Azure CLI, or Azure PowerShell to list the deployed resources in the resource group.
+
+# [CLI](#tab/CLI)
+
+```azurecli-interactive
+az resource list --resource-group exampleRG
+```
+
+# [PowerShell](#tab/PowerShell)
+
+```azurepowershell-interactive
+Get-AzResource -ResourceGroupName exampleRG
+```
+++
+## Clean up resources
+
+Other Cognitive Search quickstarts and tutorials build upon this quickstart. If you plan to continue on to work with subsequent quickstarts and tutorials, you may wish to leave this resource in place. When no longer needed, use the Azure portal, Azure CLI, or Azure PowerShell to delete the resource group and its resources.
+
+# [CLI](#tab/CLI)
+
+```azurecli-interactive
+az group delete --name exampleRG
+```
+
+# [PowerShell](#tab/PowerShell)
+
+```azurepowershell-interactive
+Remove-AzResourceGroup -Name exampleRG
+```
+++
+## Next steps
+
+In this quickstart, you created a Cognitive Search service using a Bicep file, and then validated the deployment. To learn more about Cognitive Search and Azure Resource Manager, continue on to the articles below.
+
+- Read an [overview of Azure Cognitive Search](search-what-is-azure-search.md).
+- [Create an index](search-get-started-portal.md) for your search service.
+- [Create a demo app](search-create-app-portal.md) using the portal wizard.
+- [Create a skillset](cognitive-search-quickstart-blob.md) to extract information from your data.
search Search Howto Index Encrypted Blobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-index-encrypted-blobs.md
ms.devlang: rest-api
Last updated 01/28/2022-+ # Tutorial: Index and enrich encrypted blobs for full-text search in Azure Cognitive Search
search Search Manage Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-manage-azure-cli.md
az search service create --help
## Get search service information
-If you know the resource group containing your search service, run [**az search service show**](/cli/azure/search/service#az_search_service_show) to return the service definition, including name, region, tier, and replica and partition counts. For this command, provide the resource group that contains the search service.
+If you know the resource group containing your search service, run [**az search service show**](/cli/azure/search/service#az-search-service-show) to return the service definition, including name, region, tier, and replica and partition counts. For this command, provide the resource group that contains the search service.
```azurecli-interactive az search service show --name <service-name> --resource-group <search-service-resource-group-name>
az search service show --name <service-name> --resource-group <search-service-re
## Create or delete a service
-To [create a new search service](search-create-service-portal.md), use the [**az search service create**](/cli/azure/search/service#az_search_service_create) command.
+To [create a new search service](search-create-service-portal.md), use the [**az search service create**](/cli/azure/search/service#az-search-service-create) command.
```azurecli-interactive az search service create \
For more information on creating private endpoints in PowerShell, see this [Priv
In addition to creating a private endpoint connection, you can also `show`, `update`, and `delete` the connection.
-To retrieve a private endpoint connection and to see its status, use [**az search private-endpoint-connection show**](/cli/azure/search/private-endpoint-connection#az_search_private_endpoint_connection_show).
+To retrieve a private endpoint connection and to see its status, use [**az search private-endpoint-connection show**](/cli/azure/search/private-endpoint-connection#az-search-private-endpoint-connection-show).
```azurecli-interactive az search private-endpoint-connection show \
az search private-endpoint-connection show \
--resource-group <search-service-resource-group-name> ```
-To update the connection, use [**az search private-endpoint-connection update**](/cli/azure/search/private-endpoint-connection#az_search_private_endpoint_connection_update). The following example sets a private endpoint connection to rejected:
+To update the connection, use [**az search private-endpoint-connection update**](/cli/azure/search/private-endpoint-connection#az-search-private-endpoint-connection-update). The following example sets a private endpoint connection to rejected:
```azurecli-interactive az search private-endpoint-connection show \
az search private-endpoint-connection show \
--actions-required "Please fix XYZ" ```
-To delete the private endpoint connection, use [**az search private-endpoint-connection delete**](/cli/azure/search/private-endpoint-connection#az_search_private_endpoint_connection_delete).
+To delete the private endpoint connection, use [**az search private-endpoint-connection delete**](/cli/azure/search/private-endpoint-connection#az-search-private-endpoint-connection-delete).
```azurecli-interactive az search private-endpoint-connection delete \
az search private-endpoint-connection delete \
## Regenerate admin keys
-To roll over admin [API keys](search-security-api-keys.md), use [**az search admin-key renew**](/cli/azure/search/admin-key#az_search_admin_key_renew). Two admin keys are created with each service for authenticated access. Keys are required on every request. Both admin keys are functionally equivalent, granting full write access to a search service with the ability to retrieve any information, or create and delete any object. Two keys exist so that you can use one while replacing the other.
+To roll over admin [API keys](search-security-api-keys.md), use [**az search admin-key renew**](/cli/azure/search/admin-key#az-search-admin-key-renew). Two admin keys are created with each service for authenticated access. Keys are required on every request. Both admin keys are functionally equivalent, granting full write access to a search service with the ability to retrieve any information, or create and delete any object. Two keys exist so that you can use one while replacing the other.
You can only regenerate one at a time, specified as either the `primary` or `secondary` key. For uninterrupted service, remember to update all client code to use a secondary key while rolling over the primary key. Avoid changing the keys while operations are in flight.
Results should look similar to the following output. Both keys are returned even
## Create or delete query keys
-To create query [API keys](search-security-api-keys.md) for read-only access from client apps to an Azure Cognitive Search index, use [**az search query-key create**](/cli/azure/search/query-key#az_search_query_key_create). Query keys are used to authenticate to a specific index for the purpose of retrieving search results. Query keys do not grant read-only access to other items on the service, such as an index, data source, or indexer.
+To create query [API keys](search-security-api-keys.md) for read-only access from client apps to an Azure Cognitive Search index, use [**az search query-key create**](/cli/azure/search/query-key#az-search-query-key-create). Query keys are used to authenticate to a specific index for the purpose of retrieving search results. Query keys do not grant read-only access to other items on the service, such as an index, data source, or indexer.
You cannot provide a key for Azure Cognitive Search to use. API keys are generated by the service.
az search query-key create \
## Scale replicas and partitions
-To [increase or decrease replicas and partitions](search-capacity-planning.md) use [**az search service update**](/cli/azure/search/service#az_search_service_update). Increasing replicas or partitions adds to your bill, which has both fixed and variable charges. If you have a temporary need for additional processing power, you can increase replicas and partitions to handle the workload. The monitoring area in the Overview portal page has tiles on query latency, queries per second, and throttling, indicating whether current capacity is adequate.
+To [increase or decrease replicas and partitions](search-capacity-planning.md) use [**az search service update**](/cli/azure/search/service#az-search-service-update). Increasing replicas or partitions adds to your bill, which has both fixed and variable charges. If you have a temporary need for additional processing power, you can increase replicas and partitions to handle the workload. The monitoring area in the Overview portal page has tiles on query latency, queries per second, and throttling, indicating whether current capacity is adequate.
It can take a while to add or remove resourcing. Adjustments to capacity occur in the background, allowing existing workloads to continue. Additional capacity is used for incoming requests as soon as it's ready, with no additional configuration required.
If you're using an indexer to index data in Azure Cognitive Search, and your dat
A full list of the Azure Resources for which you can create outbound private endpoints from Azure Cognitive Search can be found [here](search-indexer-howto-access-private.md#group-ids) along with the related **Group ID** values.
-To create the shared private link resource, use [**az search shared-private-link-resource create**](/cli/azure/search/shared-private-link-resource#az_search_shared_private_link_resource_list). Keep in mind that some configuration may be required for the data source before running this command.
+To create the shared private link resource, use [**az search shared-private-link-resource create**](/cli/azure/search/shared-private-link-resource#az-search-shared-private-link-resource-list). Keep in mind that some configuration may be required for the data source before running this command.
```azurecli-interactive az search shared-private-link-resource create \
az search shared-private-link-resource create \
```
-To retrieve the shared private link resources and view their status, use [**az search shared-private-link-resource list**](/cli/azure/search/shared-private-link-resource#az_search_shared_private_link_resource_list).
+To retrieve the shared private link resources and view their status, use [**az search shared-private-link-resource list**](/cli/azure/search/shared-private-link-resource#az-search-shared-private-link-resource-list).
```azurecli-interactive az search shared-private-link-resource list \
id = (az storage account show -n myBlobStorage --query "privateEndpointConnectio
az network private-endpoint-connection approve --id $id ```
-To delete the shared private link resource, use [**az search shared-private-link-resource delete**](/cli/azure/search/shared-private-link-resource#az_search_shared_private_link_resource_delete).
+To delete the shared private link resource, use [**az search shared-private-link-resource delete**](/cli/azure/search/shared-private-link-resource#az-search-shared-private-link-resource-delete).
```azurecli-interactive az search shared-private-link-resource delete \
search Search Sku Manage Costs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-sku-manage-costs.md
Last updated 11/19/2021
This article explains the billing model and billable events of Azure Cognitive Search, and provides direction for managing the costs.
-As a first step, estimate your baseline costs by using the Azure pricing calculator. Alternatively, estimated costs and tier comparisons can also be found in the [Select a pricing tier](search-create-service-portal.md#choose-a-pricing-tier) page when creating a service.
+As a first step, estimate your baseline costs by using the Azure pricing calculator. Alternatively, estimated costs and tier comparisons can also be found in the [Select a pricing tier](search-create-service-portal.md#choose-a-tier) page when creating a service.
Azure provides built-in cost management that cuts across service boundaries to provide inclusive cost monitoring and the ability to set budgets and define alerts. The costs of running a search service will vary depending on capacity and which features you use. After you create your search service, optimize capacity so that you pay only for what you need.
Billing is based on capacity (SUs) and the costs of running premium features, su
|-|| | Indexer usage | Per 1000 API calls | | Image extraction (AI enrichment) <sup>1, 2</sup> | Per 1000 images. See the [pricing page](https://azure.microsoft.com/pricing/details/search/#pricing). |
-| Custom Entity extraction (AI enrichment) <sup>1</sup> | Per 1000 text records. See the [pricing page](https://azure.microsoft.com/pricing/details/search/#pricing) |
| Custom Entity Lookup skill (AI enrichment) <sup>1</sup> | Per 1000 text records. See the [pricing page](https://azure.microsoft.com/pricing/details/search/#pricing) | | Built-in skills (AI enrichment) <sup>1</sup> | Number of transactions, billed at the same rate as if you had performed the task by calling Cognitive Services directly. You can process 20 documents per indexer per day for free. Larger or more frequent workloads require a multi-resource Cognitive Services key. | | Semantic Search <sup>1</sup> | Number of queries of "queryType=semantic", billed at a progressive rate. See the [pricing page](https://azure.microsoft.com/pricing/details/search/#pricing). |
search Speller How To Add https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/speller-how-to-add.md
Last updated 09/29/2021-+ # Add spell check to queries in Cognitive Search
security Services Technologies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/security/fundamentals/services-technologies.md
Over time, this list will change and grow, just as Azure does. Make sure to chec
## General Azure security |Service|Description| |--|--|
-|[Azure&nbsp;Security&nbsp;Center](../../security-center/security-center-introduction.md)| A cloud workload protection solution that provides security management and advanced threat protection across hybrid cloud workloads.|
+|[Microsoft Defender for Cloud](../../security-center/security-center-introduction.md)| A cloud workload protection solution that provides security management and advanced threat protection across hybrid cloud workloads.|
|[Azure Key Vault](../../key-vault/general/overview.md)| A secure secrets store for the passwords, connection strings, and other information you need to keep your apps working. | |[Azure Monitor logs](../../azure-monitor/logs/log-query-overview.md)|A monitoring service that collects telemetry and other data, and provides a query language and analytics engine to deliver operational insights for your apps and resources. Can be used alone or with other services such as Defender for Cloud. | |[Azure Dev/Test Labs](../../devtest-labs/devtest-lab-overview.md)|A service that helps developers and testers quickly create environments in Azure while minimizing waste and controlling cost. |
service-bus-messaging Configure Customer Managed Key https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/configure-customer-managed-key.md
After you enable customer-managed keys, you need to associate the customer manag
> [!IMPORTANT] > Using customer-managed keys with Azure Service Bus requires that the key vault have two required properties configured. They are: **Soft Delete** and **Do Not Purge**. The Soft Delete property is enabled by default when you create a new key vault in the Azure portal whereas the Purge Protection is optional so make sure to select it when creating the Key Vault. Also, if you need to enable these properties on an existing key vault, you must use either PowerShell or Azure CLI.
-1. To turn on both soft delete and purge protection when creating a vault, use the [az keyvault create](/cli/azure/keyvault#az_keyvault_create) command.
+1. To turn on both soft delete and purge protection when creating a vault, use the [az keyvault create](/cli/azure/keyvault#az-keyvault-create) command.
```azurecli-interactive az keyvault create --name contoso-SB-BYOK-keyvault --resource-group ContosoRG --location westus --enable-soft-delete true --enable-purge-protection true ```
-1. To add purge protection to an existing vault (that already has soft delete enabled), use the [az keyvault update](/cli/azure/keyvault#az_keyvault_update) command.
+1. To add purge protection to an existing vault (that already has soft delete enabled), use the [az keyvault update](/cli/azure/keyvault#az-keyvault-update) command.
```azurecli-interactive az keyvault update --name contoso-SB-BYOK-keyvault --resource-group ContosoRG --enable-purge-protection true
service-bus-messaging Enable Auto Forward https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/enable-auto-forward.md
On the **Overview** page for your Service Bus subscription, select the current v
:::image type="content" source="./media/enable-auto-forward/subscription-auto-forward.png" alt-text="Enable auto forward for an existing subscription"::: ## Using Azure CLI
-To **create a queue with auto forwarding enabled**, use the [`az servicebus queue create`](/cli/azure/servicebus/queue#az_servicebus_queue_create) command with `--forward-to` set to the name of queue or topic to which you want the messages to be forwarded.
+To **create a queue with auto forwarding enabled**, use the [`az servicebus queue create`](/cli/azure/servicebus/queue#az-servicebus-queue-create) command with `--forward-to` set to the name of queue or topic to which you want the messages to be forwarded.
```azurecli-interactive az servicebus queue create \
az servicebus queue create \
--forward-to myqueue2 ```
-To **update the auto forward setting for an existing queue**, use the [`az servicebus queue update`](/cli/azure/servicebus/queue#az_servicebus_queue_update) command with `--forward-to` set to the name of the queue or topic to which you want the messages to be forwarded.
+To **update the auto forward setting for an existing queue**, use the [`az servicebus queue update`](/cli/azure/servicebus/queue#az-servicebus-queue-update) command with `--forward-to` set to the name of the queue or topic to which you want the messages to be forwarded.
```azurecli-interactive az servicebus queue update \
az servicebus queue update \
```
-To **create a subscription to a topic with auto forwarding enabled**, use the [`az servicebus topic subscription create`](/cli/azure/servicebus/topic/subscription#az_servicebus_topic_subscription_create) command with `--forward-to` set to the name of queue or topic to which you want the messages to be forwarded.
+To **create a subscription to a topic with auto forwarding enabled**, use the [`az servicebus topic subscription create`](/cli/azure/servicebus/topic/subscription#az-servicebus-topic-subscription-create) command with `--forward-to` set to the name of queue or topic to which you want the messages to be forwarded.
```azurecli-interactive az servicebus topic subscription create \
az servicebus topic subscription create \
--forward-to myqueue2 ```
-To **update the auto forward setting for a subscription to a topic**, use the [`az servicebus topic subscription update`](/cli/azure/servicebus/topic/subscription#az_servicebus_topic_subscription_update) command with `--forward-to` set to the name of queue or topic to which you want the messages to be forwarded.
+To **update the auto forward setting for a subscription to a topic**, use the [`az servicebus topic subscription update`](/cli/azure/servicebus/topic/subscription#az-servicebus-topic-subscription-update) command with `--forward-to` set to the name of queue or topic to which you want the messages to be forwarded.
```azurecli-interactive az servicebus topic subscription create \
service-bus-messaging Enable Dead Letter https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/enable-dead-letter.md
On the **Overview** page for your Service Bus subscription, select the current v
:::image type="content" source="./media/enable-dead-letter/subscription-configuration.png" alt-text="Enable dead-lettering on message expiration for an existing subscription"::: ## Using Azure CLI
-To **create a queue with dead lettering on message expiration enabled**, use the [`az servicebus queue create`](/cli/azure/servicebus/queue#az_servicebus_queue_create) command with `--enable-dead-lettering-on-message-expiration` set to `true`.
+To **create a queue with dead lettering on message expiration enabled**, use the [`az servicebus queue create`](/cli/azure/servicebus/queue#az-servicebus-queue-create) command with `--enable-dead-lettering-on-message-expiration` set to `true`.
```azurecli-interactive az servicebus queue create \
az servicebus queue create \
--enable-dead-lettering-on-message-expiration true ```
-To **enable the dead lettering on message expiration setting for an existing queue**, use the [`az servicebus queue update`](/cli/azure/servicebus/queue#az_servicebus_queue_update) command with `--enable-dead-lettering-on-message-expiration` set to `true`.
+To **enable the dead lettering on message expiration setting for an existing queue**, use the [`az servicebus queue update`](/cli/azure/servicebus/queue#az-servicebus-queue-update) command with `--enable-dead-lettering-on-message-expiration` set to `true`.
```azurecli-interactive az servicebus queue update \
az servicebus queue update \
```
-To **create a subscription to a topic with dead lettering on message expiration enabled**, use the [`az servicebus topic subscription create`](/cli/azure/servicebus/topic/subscription#az_servicebus_topic_subscription_create) command with `--enable-dead-lettering-on-message-expiration` set to `true`.
+To **create a subscription to a topic with dead lettering on message expiration enabled**, use the [`az servicebus topic subscription create`](/cli/azure/servicebus/topic/subscription#az-servicebus-topic-subscription-create) command with `--enable-dead-lettering-on-message-expiration` set to `true`.
```azurecli-interactive az servicebus topic subscription create \
az servicebus topic subscription create \
--enable-dead-lettering-on-message-expiration true ```
-To **enable the dead lettering on message expiration setting for a subscription to a topic**, use the [`az servicebus topic subscription update`](/cli/azure/servicebus/topic/subscription#az_servicebus_topic_subscription_update) command with `--enable-dead-lettering-on-message-expiration` set `true`.
+To **enable the dead lettering on message expiration setting for a subscription to a topic**, use the [`az servicebus topic subscription update`](/cli/azure/servicebus/topic/subscription#az-servicebus-topic-subscription-update) command with `--enable-dead-lettering-on-message-expiration` set `true`.
```azurecli-interactive az servicebus topic subscription create \
service-bus-messaging Enable Duplicate Detection https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/enable-duplicate-detection.md
To change the duplicate detection window size for an existing queue or a topic,
## Using Azure CLI
-To **create a queue with duplicate detection enabled**, use the [`az servicebus queue create`](/cli/azure/servicebus/queue#az_servicebus_queue_create) command with `--enable-duplicate-detection` set to `true`.
+To **create a queue with duplicate detection enabled**, use the [`az servicebus queue create`](/cli/azure/servicebus/queue#az-servicebus-queue-create) command with `--enable-duplicate-detection` set to `true`.
```azurecli-interactive az servicebus queue create \
az servicebus queue create \
--duplicate-detection-history-time-window P1D ```
-To **create a topic with duplicate detection enabled**, use the [`az servicebus topic create`](/cli/azure/servicebus/topic#az_servicebus_topic_create) command with `--enable-duplicate-detection` set to `true`.
+To **create a topic with duplicate detection enabled**, use the [`az servicebus topic create`](/cli/azure/servicebus/topic#az-servicebus-topic-create) command with `--enable-duplicate-detection` set to `true`.
```azurecli-interactive az servicebus topic create \
az servicebus topic create \
The above examples also set the size of the duplicate detection window by using the `--duplicate-detection-history-time-window` parameter. The window size is set to one day. The default value is 10 minutes and the maximum allowed value is seven days.
-To **update a queue with a new detection window size**, use the [`az servicebus queue update`](/cli/azure/servicebus/queue#az_servicebus_queue_update) command with the `--duplicate-detection-history-time-window` parameter. In this example, the window size is updated to seven days.
+To **update a queue with a new detection window size**, use the [`az servicebus queue update`](/cli/azure/servicebus/queue#az-servicebus-queue-update) command with the `--duplicate-detection-history-time-window` parameter. In this example, the window size is updated to seven days.
```azurecli-interactive az servicebus queue update \
az servicebus queue update \
--duplicate-detection-history-time-window P7D ```
-Similarly, to **update a topic with a new detection window size**, use the [`az servicebus topic update`](/cli/azure/servicebus/topic#az_servicebus_topic_update) command with the `--duplicate-detection-history-time-window` parameter. In this example, the window size is updated to seven days.
+Similarly, to **update a topic with a new detection window size**, use the [`az servicebus topic update`](/cli/azure/servicebus/topic#az-servicebus-topic-update) command with the `--duplicate-detection-history-time-window` parameter. In this example, the window size is updated to seven days.
```azurecli-interactive az servicebus topic update \
service-bus-messaging Enable Message Sessions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/enable-message-sessions.md
When creating a subscription for a topic in the Azure portal, select **Enable se
:::image type="content" source="./media/message-sessions/subscription-sessions.png" alt-text="Enable session at the time of the subscription creation"::: ## Using Azure CLI
-To **create a queue with message sessions enabled**, use the [`az servicebus queue create`](/cli/azure/servicebus/queue#az_servicebus_queue_create) command with `--enable-session` set to `true`.
+To **create a queue with message sessions enabled**, use the [`az servicebus queue create`](/cli/azure/servicebus/queue#az-servicebus-queue-create) command with `--enable-session` set to `true`.
```azurecli-interactive az servicebus queue create \
az servicebus queue create \
--enable-session true ```
-To **create a subscription for a topic with message sessions enabled**, use the [`az servicebus topic subscription create`](/cli/azure/servicebus/topic/subscription#az_servicebus_topic_subscription_create) command with `--enable-session` set to `true`.
+To **create a subscription for a topic with message sessions enabled**, use the [`az servicebus topic subscription create`](/cli/azure/servicebus/topic/subscription#az-servicebus-topic-subscription-create) command with `--enable-session` set to `true`.
```azurecli-interactive az servicebus topic subscription create \
service-bus-messaging Enable Partitions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/enable-partitions.md
When creating a topic in the Azure portal, select **Enable partitioning** as sho
:::image type="content" source="./media/enable-partitions/create-topic.png" alt-text="Enable partitioning at the time of the topic creation"::: ## Using Azure CLI
-To **create a queue with partitioning enabled**, use the [`az servicebus queue create`](/cli/azure/servicebus/queue#az_servicebus_queue_create) command with `--enable-partitioning` set to `true`.
+To **create a queue with partitioning enabled**, use the [`az servicebus queue create`](/cli/azure/servicebus/queue#az-servicebus-queue-create) command with `--enable-partitioning` set to `true`.
```azurecli-interactive az servicebus queue create \
az servicebus queue create \
--enable-partitioning true ```
-To **create a topic with partitioning enabled**, use the [`az servicebus topic create`](/cli/azure/servicebus/topic#az_servicebus_topic_create) command with `--enable-partitioning` set to `true`.
+To **create a topic with partitioning enabled**, use the [`az servicebus topic create`](/cli/azure/servicebus/topic#az-servicebus-topic-create) command with `--enable-partitioning` set to `true`.
```azurecli-interactive az servicebus topic create \
service-bus-messaging Message Counters https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/message-counters.md
Navigate to your namespace, select the topic, and then select the subscription f
:::image type="content" source="./media/message-counters/subscription-overview.png" alt-text="Message counters on the subscription overview page"::: ## Using Azure CLI
-Use the [`az servicebus queue show`](/cli/azure/servicebus/queue#az_servicebus_queue_show) command to get the message count details for a queue as shown in the following example.
+Use the [`az servicebus queue show`](/cli/azure/servicebus/queue#az-servicebus-queue-show) command to get the message count details for a queue as shown in the following example.
```azurecli-interactive az servicebus queue show --resource-group myresourcegroup \
ActiveMessageCount DeadLetterMessageCount ScheduledMessageCount Transfe
0 0 0 0 0 ```
-Use the [`az servicebus topic subscription show`](/cli/azure/servicebus/topic/subscription#az_servicebus_topic_subscription_show) command to get the message count details for a subscription as shown in the following example.
+Use the [`az servicebus topic subscription show`](/cli/azure/servicebus/topic/subscription#az-servicebus-topic-subscription-show) command to get the message count details for a subscription as shown in the following example.
```azurecli-interactive az servicebus topic subscription show --resource-group myresourcegroup \
service-bus-messaging Service Bus Dead Letter Queues https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/service-bus-dead-letter-queues.md
It's not possible to obtain count of messages in the dead-letter queue at the to
![DLQ message count](./media/service-bus-dead-letter-queues/dead-letter-queue-message-count.png)
-You can also get the count of DLQ messages by using Azure CLI command: [`az servicebus topic subscription show`](/cli/azure/servicebus/topic/subscription#az_servicebus_topic_subscription_show).
+You can also get the count of DLQ messages by using Azure CLI command: [`az servicebus topic subscription show`](/cli/azure/servicebus/topic/subscription#az-servicebus-topic-subscription-show).
## Moving messages to the DLQ There are several activities in Service Bus that cause messages to get pushed to the DLQ from within the messaging engine itself. An application can also explicitly move messages to the DLQ. The following two properties (dead-letter reason and dead-letter description) are added to dead-lettered messages. Applications can define their own codes for the dead-letter reason property, but the system sets the following values.
service-bus-messaging Service Bus Dotnet Get Started With Queues https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/service-bus-dotnet-get-started-with-queues.md
Title: Get started with Azure Service Bus queues (.NET)
description: This tutorial shows you how to send messages to and receive messages from Azure Service Bus queues using the .NET programming language. dotnet Previously updated : 10/11/2021 Last updated : 03/23/2022 ms.devlang: csharp
In this quickstart, you'll do the following steps:
4. Write a .NET Core console application to receive those messages from the queue. > [!NOTE]
-> This quick start provides step-by-step instructions to implement a simple scenario of sending a batch of messages to a Service Bus queue and then receiving them. For more samples on other and advanced scenarios, see [Service Bus .NET samples on GitHub](https://github.com/Azure/azure-sdk-for-net/tree/master/sdk/servicebus/Azure.Messaging.ServiceBus/samples).
+> This quick start provides step-by-step instructions to implement a simple scenario of sending a batch of messages to a Service Bus queue and then receiving them. For an overview of the .NET client library, see [Azure Service Bus client library for .NET](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/servicebus/Azure.Messaging.ServiceBus/README.md). For more samples, see [Service Bus .NET samples on GitHub](https://github.com/Azure/azure-sdk-for-net/tree/master/sdk/servicebus/Azure.Messaging.ServiceBus/samples).
## Prerequisites If you're new to the service, see [Service Bus overview](service-bus-messaging-overview.md) before you do this quickstart.
service-bus-messaging Service Bus Managed Service Identity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/service-bus-managed-service-identity.md
Before you assign an Azure role to a security principal, determine the scope of
The following list describes the levels at which you can scope access to Service Bus resources, starting with the narrowest scope: -- **Queue**, **topic**, or **subscription**: Role assignment applies to the specific Service Bus entity. Currently, the Azure portal doesn't support assigning users/groups/managed identities to Service Bus Azure roles at the subscription level. Here's an example of using the Azure CLI command: [az-role-assignment-create](/cli/azure/role/assignment?#az_role_assignment_create) to assign an identity to a Service Bus Azure role:
+- **Queue**, **topic**, or **subscription**: Role assignment applies to the specific Service Bus entity. Currently, the Azure portal doesn't support assigning users/groups/managed identities to Service Bus Azure roles at the subscription level. Here's an example of using the Azure CLI command: [az-role-assignment-create](/cli/azure/role/assignment?#az-role-assignment-create) to assign an identity to a Service Bus Azure role:
```azurecli az role assignment create \
service-bus-messaging Service Bus Messaging Sql Filter https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/service-bus-messaging-sql-filter.md
Last updated 04/30/2021
# Subscription Rule SQL Filter Syntax
-A *SQL filter* is one of the available filter types for Service Bus topic subscriptions. It's a text expression that leans on a subset of the SQL-92 standard. Filter expressions are used with the `sqlExpression` element of the 'sqlFilter' property of a Service Bus `Rule` in an [Azure Resource Manager template](service-bus-resource-manager-namespace-topic-with-rule.md), or the Azure CLI `az servicebus topic subscription rule create` command's [`--filter-sql-expression`](/cli/azure/servicebus/topic/subscription/rule#az_servicebus_topic_subscription_rule_create) argument, and several SDK functions that allow managing subscription rules.
+A *SQL filter* is one of the available filter types for Service Bus topic subscriptions. It's a text expression that leans on a subset of the SQL-92 standard. Filter expressions are used with the `sqlExpression` element of the 'sqlFilter' property of a Service Bus `Rule` in an [Azure Resource Manager template](service-bus-resource-manager-namespace-topic-with-rule.md), or the Azure CLI `az servicebus topic subscription rule create` command's [`--filter-sql-expression`](/cli/azure/servicebus/topic/subscription/rule#az-servicebus-topic-subscription-rule-create) argument, and several SDK functions that allow managing subscription rules.
Service Bus Premium also supports the [JMS SQL message selector syntax](https://docs.oracle.com/javaee/7/api/javax/jms/Message.html) through the JMS 2.0 API.
service-bus-messaging Service Bus Messaging Sql Rule Action https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-bus-messaging/service-bus-messaging-sql-rule-action.md
Last updated 09/28/2021
# Subscription Rule SQL Action Syntax
-A *SQL action* is used to manipulate message metadata after a message has been selected by a filter of a subscription rule. It's a text expression that leans on a subset of the SQL-92 standard. Action expressions are used with the `sqlExpression` element of the 'action' property of a Service Bus `Rule` in an [Azure Resource Manager template](service-bus-resource-manager-namespace-topic-with-rule.md), or the Azure CLI `az servicebus topic subscription rule create` command's [`--action-sql-expression`](/cli/azure/servicebus/topic/subscription/rule#az_servicebus_topic_subscription_rule_create) argument, and several SDK functions that allow managing subscription rules.
+A *SQL action* is used to manipulate message metadata after a message has been selected by a filter of a subscription rule. It's a text expression that leans on a subset of the SQL-92 standard. Action expressions are used with the `sqlExpression` element of the 'action' property of a Service Bus `Rule` in an [Azure Resource Manager template](service-bus-resource-manager-namespace-topic-with-rule.md), or the Azure CLI `az servicebus topic subscription rule create` command's [`--action-sql-expression`](/cli/azure/servicebus/topic/subscription/rule#az-servicebus-topic-subscription-rule-create) argument, and several SDK functions that allow managing subscription rules.
```
service-connector Tutorial Csharp Webapp Storage Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-connector/tutorial-csharp-webapp-storage-cli.md
cd serviceconnector-webapp-storageblob-dotnet
In the terminal, make sure you're in the *WebAppStorageMISample* repository folder that contains the app code.
-Create an App Service app (the host process) with the [`az webapp up`](/cli/azure/webapp#az_webapp_up) command:
+Create an App Service app (the host process) with the [`az webapp up`](/cli/azure/webapp#az-webapp-up) command:
```Azure CLI az webapp up --name <app-name> --sku B1 --location eastus --resource-group ServiceConnector-tutorial-rg
service-connector Tutorial Django Webapp Postgres Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-connector/tutorial-django-webapp-postgres-cli.md
az extension add --name db-up
If the `az` command is not recognized, be sure you have the Azure CLI installed as described in [Set up your initial environment](#1-set-up-your-initial-environment).
-Then create the Postgres database in Azure with the [`az postgres up`](/cli/azure/postgres#az_postgres_up) command:
+Then create the Postgres database in Azure with the [`az postgres up`](/cli/azure/postgres#az-postgres-up) command:
```azurecli az postgres up --resource-group ServiceConnector-tutorial-rg --location eastus --sku-name B_Gen5_1 --server-name <postgres-server-name> --database-name pollsdb --admin-user <admin-username> --admin-password <admin-password> --ssl-enforcement Enabled
When the command completes, it outputs a JSON object that contains different con
<!-- not all locations support az postgres up --> > [!TIP]
-> `-l <location-name>`, can be set to any one of the [Azure regions](https://azure.microsoft.com/global-infrastructure/regions/). You can get the regions available to your subscription with the [`az account list-locations`](/cli/azure/account#az_account_list_locations) command. For production apps, put your database and your app in the same location.
+> `-l <location-name>`, can be set to any one of the [Azure regions](https://azure.microsoft.com/global-infrastructure/regions/). You can get the regions available to your subscription with the [`az account list-locations`](/cli/azure/account#az-account-list-locations) command. For production apps, put your database and your app in the same location.
::: zone-end
When the command completes, it outputs a JSON object that contains different con
If the `az` command is not recognized, be sure you have the Azure CLI installed as described in [Set up your initial environment](#1-set-up-your-initial-environment).
- The [az postgres flexible-server create](/cli/azure/postgres/flexible-server#az_postgres_flexible_server_create) command performs the following actions, which take a few minutes:
+ The [az postgres flexible-server create](/cli/azure/postgres/flexible-server#az-postgres-flexible-server-create) command performs the following actions, which take a few minutes:
- Create a default resource group if there's not a cached name already. - Create a PostgreSQL Flexible server:
In this section, you create app host in App Service app, connect this app to the
In the terminal, make sure you're in the *djangoapp* repository folder that contains the app code.
-Create an App Service app (the host process) with the [`az webapp up`](/cli/azure/webapp#az_webapp_up) command:
+Create an App Service app (the host process) with the [`az webapp up`](/cli/azure/webapp#az-webapp-up) command:
```azurecli az webapp up --resource-group ServiceConnector-tutorial-rg --location eastus --plan ServiceConnector-tutorial-plan --sku B1 --name <app-name>
This command performs the following actions, which may take a few minutes:
git checkout flexible-server ```
-1. Run the following [`az webapp up`](/cli/azure/webapp#az_webapp_up) command to create the App Service host for the app:
+1. Run the following [`az webapp up`](/cli/azure/webapp#az-webapp-up) command to create the App Service host for the app:
```azurecli az webapp up --name <app-name> --sku B1
service-connector Tutorial Java Spring Mysql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-connector/tutorial-java-spring-mysql.md
version | 5.7 | The MySQL major version.
> [!NOTE]
-> For more information about the `az mysql up` command and its additional parameters, see the [Azure CLI documentation](/cli/azure/mysql#az_mysql_up).
+> For more information about the `az mysql up` command and its additional parameters, see the [Azure CLI documentation](/cli/azure/mysql#az-mysql-up).
Once your server is created, it comes with the following settings:
service-fabric Service Fabric Application And Service Manifests https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-fabric/service-fabric-application-and-service-manifests.md
The executable specified by **EntryPoint** is typically the long-running service
Typical scenarios for using **SetupEntryPoint** are when you run an executable before the service starts or you perform an operation with elevated privileges. For example:
-* Setting up and initializing environment variables that the service executable needs. This is not limited to only executables written via the Service Fabric programming models. For example, npm.exe needs some environment variables configured for deploying a node.js application.
+* Setting up and initializing environment variables that the service executable needs. This is not limited to only executables written via the Service Fabric programming models. For example, npm.exe needs some environment variables configured for deploying a Node.js application.
* Setting up access control by installing security certificates. For more information on how to configure the SetupEntryPoint, see [Configure the policy for a service setup entry point](service-fabric-application-runas-security.md)
service-fabric Service Fabric Cluster Security Update Certs Azure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-fabric/service-fabric-cluster-security-update-certs-azure.md
Service fabric lets you specify two cluster certificates, a primary and a second
[!INCLUDE [updated-for-az](../../includes/updated-for-az.md)] ## Add a secondary cluster certificate using the portal
-Secondary cluster certificate cannot be added through the Azure portal; use Azure PowerShell. The process is outlined later in this document.
+Secondary cluster certificate cannot be added through the Azure portal; use [Azure Resource Manager](#add-a-secondary-certificate-using-azure-resource-manager).
## Remove a cluster certificate using the portal For a secure cluster, you will always need at least one valid (not revoked and not expired) certificate. The certificate deployed with the furthest into the future expiring date will be in use, and removing it will make your cluster stop functioning; ensure to only remove the certificate that is expired, or an unused certificate that expires the soonest.
For ease of following along, sample 5-VM-1-NodeTypes-Secure_Step2.JSON contains
**Make sure to follow all the steps**
-1. Open up the Resource Manager template you used to deploy you Cluster. (If you have downloaded the sample from the preceding repo, then use 5-VM-1-NodeTypes-Secure_Step1.JSON to deploy a secure cluster and then open up that template).
+1. Open up the Resource Manager template you used to deploy your Cluster. (If you have downloaded the sample from the preceding repo, then use 5-VM-1-NodeTypes-Secure_Step1.JSON to deploy a secure cluster and then open up that template).
2. Add **two new parameters** "secCertificateThumbprint" and "secCertificateUrlValue" of type "string" to the parameter section of your template. You can copy the following code snippet and add it to the template. Depending on the source of your template, you may already have these defined, if so move to the next step.
Edit your Resource Manager Template parameter File, add the two new parameters f
### Deploy the template to Azure -- You are now ready to deploy your template to Azure. Open an Azure PS version 1+ command prompt.-- Sign in to your Azure Account and select the specific azure subscription. This is an important step for folks who have access to more than one azure subscription.
+- You are now ready to deploy your template to Azure. Open an Azure PowerShell version 1+ command prompt.
+- Sign in to your Azure Account and select the specific Azure subscription. This is an important step for folks who have access to more than one Azure subscription.
```powershell Connect-AzAccount
service-fabric Service Fabric Diagnostics Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-fabric/service-fabric-diagnostics-overview.md
Additionally, we even let users override health for entities. If your applicatio
### Watchdogs
-Generally, a watchdog is a separate service that watches health and load across services, pings endpoints, and reports unexpected health events in the cluster. This can help prevent errors that may not be detected based only on the performance of a single service. Watchdogs are also a good place to host code that performs remedial actions that don't require user interaction, such as cleaning up log files in storage at certain time intervals. If you want a fully implemented, open source SF watchdog service that includes an easy-to-use watchdog extensibility model and that runs in both Windows and Linux clusters, see the [FabricObserver](https://github.com/Azure-Samples/service-fabric-watchdog-service) project. FabricObserver is production-ready software. We encourage you to deploy FabricObserver to your test and production clusters and extend it to meet your needs either through its plug-in model or by forking it and writing your own built-in observers. The former (plug-ins) is the recommended approach.
+Generally, a watchdog is a separate service that watches health and load across services, pings endpoints, and reports unexpected health events in the cluster. This can help prevent errors that may not be detected based only on the performance of a single service. Watchdogs are also a good place to host code that performs remedial actions that don't require user interaction, such as cleaning up log files in storage at certain time intervals. If you want a fully implemented, open source SF watchdog service that includes an easy-to-use watchdog extensibility model and that runs in both Windows and Linux clusters, see the [FabricObserver](https://github.com/microsoft/service-fabric-observer) project. FabricObserver is production-ready software. We encourage you to deploy FabricObserver to your test and production clusters and extend it to meet your needs either through its plug-in model or by forking it and writing your own built-in observers. The former (plug-ins) is the recommended approach.
## Infrastructure (performance) monitoring Now that we've covered the diagnostics in your application and the platform, how do we know the hardware is functioning as expected? Monitoring your underlying infrastructure is a key part of understanding the state of your cluster and your resource utilization. Measuring system performance depends on many factors that can be subjective depending on your workloads. These factors are typically measured through performance counters. These performance counters can come from a variety of sources including the operating system, the .NET framework, or the Service Fabric platform itself. Some scenarios in which they would be useful are
service-fabric Service Fabric Health Introduction https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/service-fabric/service-fabric-health-introduction.md
Azure Service Fabric introduces a health model that provides rich, flexible, and
Service Fabric components use this rich health model to report their current state. You can use the same mechanism to report health from your applications. If you invest in high-quality health reporting that captures your custom conditions, you can detect and fix issues for your running application much more easily.
+[Check this page for a training video that describes the Service Fabric health model and how it's used:](/shows/building-microservices-applications-on-azure-service-fabric/service-fabric-health-system)
> [!NOTE] > We started the health subsystem to address a need for monitored upgrades. Service Fabric provides monitored application and cluster upgrades that ensure full availability, no downtime and minimal to no user intervention. To achieve these goals, the upgrade checks health based on configured upgrade policies. An upgrade can proceed only when health respects desired thresholds. Otherwise, the upgrade is either automatically rolled back or paused to give administrators a chance to fix the issues. To learn more about application upgrades, see [this article](service-fabric-application-upgrade.md). >
site-recovery Azure To Azure How To Enable Zone To Zone Disaster Recovery https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/site-recovery/azure-to-azure-how-to-enable-zone-to-zone-disaster-recovery.md
This article describes how to replicate, failover, and failback Azure virtual ma
>[!NOTE] >
->- Support for Zone to Zone disaster recovery is currently limited to the following regions: Southeast Asia, East Asia, Japan East, Korea Central, Australia East, India Central, China North 3, UK South, West Europe, North Europe, Norway East, France Central, Switzerland North, Sweden Central (Managed Access), South Africa North, Canada Central, US Gov Virginia, Central US, South Central US, East US, East US 2, West US 2, Brazil South and West US 3.
+>- Support for Zone to Zone disaster recovery is currently limited to the following regions: Southeast Asia, East Asia, Japan East, Korea Central, Australia East, India Central, China North 3, UK South, West Europe, North Europe, Germany West Central, Norway East, France Central, Switzerland North, Sweden Central (Managed Access), South Africa North, Canada Central, US Gov Virginia, Central US, South Central US, East US, East US 2, West US 2, Brazil South and West US 3.
>- Site Recovery does not move or store customer data out of the region in which it is deployed when the customer is using Zone to Zone Disaster Recovery. Customers may select a Recovery Services Vault from a different region if they so choose. The Recovery Services Vault contains metadata but no actual customer data. >- Zone to Zone disaster recovery is not supported for VMs having ZRS managed disks.
Log in to the Azure portal.
## FAQs **1. How does pricing work for Zone to Zone Disaster Recovery?**
-Pricing for Zone to Zone Disaster Recovery is identical to the pricing of Azure to Azure Disaster Recovery. You can find more details on the pricing page [here](https://azure.microsoft.com/pricing/details/site-recovery/) and [here](https://azure.microsoft.com/blog/know-exactly-how-much-it-will-cost-for-enabling-dr-to-your-azure-vm/). Note that the egress charges that you would see in zone to zone disaster recovery would be lower than region to region disaster recovery.
+Pricing for Zone to Zone Disaster Recovery is identical to the pricing of Azure to Azure Disaster Recovery. You can find more details on the pricing page [here](https://azure.microsoft.com/pricing/details/site-recovery/) and [here](https://azure.microsoft.com/blog/know-exactly-how-much-it-will-cost-for-enabling-dr-to-your-azure-vm/). Note that the egress charges that you would see in zone to zone disaster recovery would be lower than region to region disaster recovery. For data transfer charges between Availability Zones, check [here](https://azure.microsoft.com/pricing/details/bandwidth/).
**2. What is the SLA for RTO and RPO?** The RTO SLA is the same as that for Site Recovery overall. We promise RTO of up to 2 hours. There is no defined SLA for RPO. **3. Is capacity guaranteed in the secondary zone?**
-The Site Recovery team and Azure capacity management team plan for sufficient infrastructure capacity. When you start a failover, the teams also help ensure VM instances that are protected by Site Recovery will deploy to the target zone.
+The Site Recovery team and Azure capacity management team plan for sufficient infrastructure capacity. When you start a failover, the teams also help ensure VM instances that are protected by Site Recovery will deploy to the target zone. Check [here](https://docs.microsoft.com/azure/site-recovery/azure-to-azure-common-questions#capacity) for more FAQs on Capacity.
**4. Which operating systems are supported?** Zone to Zone Disaster Recovery supports the same operating systems as Azure to Azure Disaster Recovery. Refer to the support matrix [here](./azure-to-azure-support-matrix.md).
site-recovery Site Recovery Test Failover To Azure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/site-recovery/site-recovery-test-failover-to-azure.md
This procedure describes how to run a test failover for a recovery plan. If you
- Site Recovery attempts to create test VMs in a subnet with the same name and same IP address as that provided in the **Compute and Network** settings of the VM. - If a subnet with the same name isn't available in the Azure virtual network used for test failover, then the test VM is created in the first subnet alphabetically. - If same IP address isn't available in the subnet, then the VM receives another available IP address in the subnet. [Learn more](#create-a-network-for-test-failover).
-4. If you're failing over to Azure and data encryption is enabled, in **Encryption Key**, select the certificate that was issued when you enabled encryption during Provider installation. You can ignore this step if encryption isn't enabled.
-5. Track failover progress on the **Jobs** tab. You should be able to see the test replica machine in the Azure portal.
-6. To initiate an RDP connection to the Azure VM, you need to [add a public IP address](/archive/blogs/srinathv/how-to-add-a-public-ip-address-to-azure-vm-for-vm-failed-over-using-asr) on the network interface of the failed over VM.
+4. Track failover progress on the **Jobs** tab. You should be able to see the test replica machine in the Azure portal.
+5. To initiate an RDP connection to the Azure VM, you need to [add a public IP address](/archive/blogs/srinathv/how-to-add-a-public-ip-address-to-azure-vm-for-vm-failed-over-using-asr) on the network interface of the failed over VM.
If you don't want to add a public IP address to the virtual machine, check the recommended alternatives [here](/azure/cloud-adoption-framework/migrate/azure-best-practices/migrate-best-practices-networking#best-practice-control-public-ip-addresses).
-7. When everything is working as expected, click **Cleanup test failover**. This deletes the VMs that were created during test failover.
-8. In **Notes**, record and save any observations associated with the test failover.
+6. When everything is working as expected, click **Cleanup test failover**. This deletes the VMs that were created during test failover.
+7. In **Notes**, record and save any observations associated with the test failover.
![Screenshot of the Test failover Jobs tab.](./media/site-recovery-test-failover-to-azure/TestFailoverJob.png)
site-recovery Vmware Physical Mobility Service Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/site-recovery/vmware-physical-mobility-service-overview.md
During a push installation of the Mobility service, the following steps are perf
:::image type="content" source="./media/vmware-physical-mobility-service-install-manual/mobility3.png" alt-text="Screenshot that shows the progress of the installation and the active Proceed to Configuration button when the installation is finished.":::
-1. In **Configuration Server Details**, specify the IP address and passphrase that you configured.
+1. In **Configuration Server Details**, specify the IP address and passphrase that you configured. To generate the passphrase, follow the steps mentioned [here](https://docs.microsoft.com/azure/site-recovery/vmware-azure-mobility-install-configuration-mgr#prepare-the-installation-files).
:::image type="content" source="./media/vmware-physical-mobility-service-install-manual/mobility4.png" alt-text="Mobility service registration page.":::
spring-cloud Diagnostic Services https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/spring-cloud/diagnostic-services.md
Using the diagnostics functionality of Azure Spring Cloud, you can analyze logs
Choose the log category and metric category you want to monitor. > [!TIP]
-> Just want to stream your logs? Check out this [Azure CLI command](/cli/azure/spring-cloud/app#az_spring_cloud_app_logs)!
+> Just want to stream your logs? Check out this [Azure CLI command](/cli/azure/spring-cloud/app#az-spring-cloud-app-logs)!
## Logs
spring-cloud How To Github Actions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/spring-cloud/how-to-github-actions.md
If your action runs in error, for example, if you haven't set the Azure credenti
## Next steps * [Key Vault for Spring Cloud GitHub actions](./github-actions-key-vault.md)
-* [Azure Active Directory service principals](/cli/azure/ad/sp#az_ad_sp_create_for_rbac)
+* [Azure Active Directory service principals](/cli/azure/ad/sp#az-ad-sp-create-for-rbac)
* [GitHub Actions for Azure](https://github.com/Azure/actions/)
spring-cloud Tutorial Managed Identities Functions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/spring-cloud/tutorial-managed-identities-functions.md
Both Azure Functions and App Services have built in support for Azure Active Dir
## Create a resource group
-A resource group is a logical container into which Azure resources are deployed and managed. Create a resource group to contain both the Function app and Spring Cloud using the command [az group create](/cli/azure/group#az_group_create):
+A resource group is a logical container into which Azure resources are deployed and managed. Create a resource group to contain both the Function app and Spring Cloud using the command [az group create](/cli/azure/group#az-group-create):
```azurecli az group create --name myResourceGroup --location eastus
az group create --name myResourceGroup --location eastus
## Create a Function App
-To create a Function app you must first create a backing storage account, use the command [az storage account create](/cli/azure/storage/account#az_storage_account_create):
+To create a Function app you must first create a backing storage account, use the command [az storage account create](/cli/azure/storage/account#az-storage-account-create):
> [!Important] > Each Function app and Storage Account must have a unique name. Replace *\<your-functionapp-name>* with the name of your Function app and *\<your-storageaccount-name>* with the name of your Storage Account in the following examples.
spring-cloud Tutorial Managed Identities Key Vault https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/spring-cloud/tutorial-managed-identities-key-vault.md
The following video describes how to manage secrets using Azure Key Vault.
## Create a resource group
-A resource group is a logical container into which Azure resources are deployed and managed. Create a resource group to contain both the Key Vault and Spring Cloud using the command [az group create](/cli/azure/group#az_group_create):
+A resource group is a logical container into which Azure resources are deployed and managed. Create a resource group to contain both the Key Vault and Spring Cloud using the command [az group create](/cli/azure/group#az-group-create):
```azurecli az group create --name "myResourceGroup" -l "EastUS"
az group create --name "myResourceGroup" -l "EastUS"
## Set up your Key Vault
-To create a Key Vault, use the command [az keyvault create](/cli/azure/keyvault#az_keyvault_create):
+To create a Key Vault, use the command [az keyvault create](/cli/azure/keyvault#az-keyvault-create):
> [!Important] > Each Key Vault must have a unique name. Replace *\<your-keyvault-name>* with the name of your Key Vault in the following examples.
az keyvault create --name "<your-keyvault-name>" -g "myResourceGroup"
Make a note of the returned `vaultUri`, which will be in the format `https://<your-keyvault-name>.vault.azure.net`. It will be used in the following step.
-You can now place a secret in your Key Vault with the command [az keyvault secret set](/cli/azure/keyvault/secret#az_keyvault_secret_set):
+You can now place a secret in your Key Vault with the command [az keyvault secret set](/cli/azure/keyvault/secret#az-keyvault-secret-set):
```azurecli az keyvault secret set --vault-name "<your-keyvault-name>" \
storage Access Tiers Online Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/access-tiers-online-manage.md
Get-ChildItem -Path "C:\sample-blobs" -File -Recurse |
### [Azure CLI](#tab/azure-cli)
-To upload a blob to a specific tier with Azure CLI, call the [az storage blob upload](/cli/azure/storage/blob#az_storage_blob_upload) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values:
+To upload a blob to a specific tier with Azure CLI, call the [az storage blob upload](/cli/azure/storage/blob#az-storage-blob-upload) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values:
```azurecli az storage blob upload \
az storage blob upload \
--auth-mode login ```
-To upload a set of blobs to a specific tier with Azure CLI, call the [az storage blob upload-batch](/cli/azure/storage/blob#az_storage_blob_upload_batch) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values:
+To upload a set of blobs to a specific tier with Azure CLI, call the [az storage blob upload-batch](/cli/azure/storage/blob#az-storage-blob-upload-batch) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values:
```azurecli az storage blob upload-batch \
$blob.BlobClient.SetAccessTier("Cool", $null, "Standard")
#### [Azure CLI](#tab/azure-cli)
-To change a blob's tier from Hot to Cool with Azure CLI, call the [az storage blob set-tier](/cli/azure/storage/blob#az_storage_blob_set_tier) command. Remember to replace placeholders in angle brackets with your own values:
+To change a blob's tier from Hot to Cool with Azure CLI, call the [az storage blob set-tier](/cli/azure/storage/blob#az-storage-blob-set-tier) command. Remember to replace placeholders in angle brackets with your own values:
```azurecli az storage blob set-tier \
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
#### [Azure CLI](#tab/azure-cli)
-To copy a blob from Cool to Hot with Azure CLI, call the [az storage blob copy start](/cli/azure/storage/blob/copy#az_storage_blob_copy_start) command and specify the target tier. Remember to replace placeholders in angle brackets with your own values:
+To copy a blob from Cool to Hot with Azure CLI, call the [az storage blob copy start](/cli/azure/storage/blob/copy#az-storage-blob-copy-start) command and specify the target tier. Remember to replace placeholders in angle brackets with your own values:
```azurecli az storage blob copy start \
storage Anonymous Read Access Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/anonymous-read-access-configure.md
When public access is disallowed for the storage account, a container's public a
# [Azure CLI](#tab/azure-cli)
-To update the public access level for one or more containers with Azure CLI, call the [az storage container set permission](/cli/azure/storage/container#az_storage_container_set_permission) command. Authorize this operation by passing in your account key, a connection string, or a shared access signature (SAS). The [Set Container ACL](/rest/api/storageservices/set-container-acl) operation that sets the container's public access level does not support authorization with Azure AD. For more information, see [Permissions for calling blob and queue data operations](/rest/api/storageservices/authorize-with-azure-active-directory#permissions-for-calling-data-operations).
+To update the public access level for one or more containers with Azure CLI, call the [az storage container set permission](/cli/azure/storage/container#az-storage-container-set-permission) command. Authorize this operation by passing in your account key, a connection string, or a shared access signature (SAS). The [Set Container ACL](/rest/api/storageservices/set-container-acl) operation that sets the container's public access level does not support authorization with Azure AD. For more information, see [Permissions for calling blob and queue data operations](/rest/api/storageservices/authorize-with-azure-active-directory#permissions-for-calling-data-operations).
The following example creates a container with public access disabled, and then updates the container's public access setting to permit anonymous access to the container and its blobs. Remember to replace the placeholder values in brackets with your own values:
storage Archive Blob https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/archive-blob.md
Get-ChildItem -Path "C:\sample-blobs" -File -Recurse |
### [Azure CLI](#tab/azure-cli)
-To archive a single blob on upload with Azure CLI, call the [az storage blob upload](/cli/azure/storage/blob#az_storage_blob_upload) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values:
+To archive a single blob on upload with Azure CLI, call the [az storage blob upload](/cli/azure/storage/blob#az-storage-blob-upload) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values:
```azurecli az storage blob upload \
az storage blob upload \
--auth-mode login ```
-To archive a set of blobs on upload with Azure CLI, call the [az storage blob upload-batch](/cli/azure/storage/blob#az_storage_blob_upload_batch) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values:
+To archive a set of blobs on upload with Azure CLI, call the [az storage blob upload-batch](/cli/azure/storage/blob#az-storage-blob-upload-batch) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values:
```azurecli az storage blob upload-batch \
$blob.BlobClient.SetAccessTier("Archive", $null)
#### [Azure CLI](#tab/azure-cli)
-To change a blob's tier from Hot or Cool to Archive with Azure CLI, call the [az storage blob set-tier](/cli/azure/storage/blob#az_storage_blob_set_tier) command. Remember to replace placeholders in angle brackets with your own values:
+To change a blob's tier from Hot or Cool to Archive with Azure CLI, call the [az storage blob set-tier](/cli/azure/storage/blob#az-storage-blob-set-tier) command. Remember to replace placeholders in angle brackets with your own values:
```azurecli az storage blob set-tier \
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
#### [Azure CLI](#tab/azure-cli)
-To copy a blob from an online tier to the Archive tier with Azure CLI, call the [az storage blob copy start](/cli/azure/storage/blob/copy#az_storage_blob_copy_start) command and specify the Archive tier. Remember to replace placeholders in angle brackets with your own values:
+To copy a blob from an online tier to the Archive tier with Azure CLI, call the [az storage blob copy start](/cli/azure/storage/blob/copy#az-storage-blob-copy-start) command and specify the Archive tier. Remember to replace placeholders in angle brackets with your own values:
```azurecli az storage blob copy start \
storage Archive Rehydrate To Online Tier https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/archive-rehydrate-to-online-tier.md
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
### [Azure CLI](#tab/azure-cli)
-To copy an archived blob to an online tier with Azure CLI, call the [az storage blob copy start](/cli/azure/storage/blob/copy#az_storage_blob_copy_start) command and specify the target tier and the rehydration priority. Remember to replace placeholders in angle brackets with your own values:
+To copy an archived blob to an online tier with Azure CLI, call the [az storage blob copy start](/cli/azure/storage/blob/copy#az-storage-blob-copy-start) command and specify the target tier and the rehydration priority. Remember to replace placeholders in angle brackets with your own values:
```azurecli az storage blob copy start \
$blob.BlobClient.SetAccessTier("Hot", $null, "Standard")
### [Azure CLI](#tab/azure-cli)
-To change a blob's tier from Archive to Hot or Cool with Azure CLI, call the [az storage blob set-tier](/cli/azure/storage/blob#az_storage_blob_set_tier) command. Remember to replace placeholders in angle brackets with your own values:
+To change a blob's tier from Archive to Hot or Cool with Azure CLI, call the [az storage blob set-tier](/cli/azure/storage/blob#az-storage-blob-set-tier) command. Remember to replace placeholders in angle brackets with your own values:
```azurecli az storage blob set-tier \
$rehydratingBlob.BlobProperties.RehydratePriority
### [Azure CLI](#tab/azure-cli)
-To check the status and priority of a pending rehydration operation with Azure CLI, call the [az storage blob show](/cli/azure/storage/blob#az_storage_blob_show) command, and check the **rehydrationStatus** and **rehydratePriority** properties of the destination blob. Remember to replace placeholders in angle brackets with your own values:
+To check the status and priority of a pending rehydration operation with Azure CLI, call the [az storage blob show](/cli/azure/storage/blob#az-storage-blob-show) command, and check the **rehydrationStatus** and **rehydratePriority** properties of the destination blob. Remember to replace placeholders in angle brackets with your own values:
```azurecli az storage blob show \
if ($rehydratingBlob.BlobProperties.RehydratePriority -eq "Standard")
To change the rehydration priority for a pending operation with Azure CLI, first make sure that you have installed the Azure CLI, version 2.29.2 or later. For more information about installing the Azure CLI, see [How to install the Azure CLI](/cli/azure/install-azure-cli).
-Next, call the [az storage blob set-tier](/cli/azure/storage/blob#az_storage_blob_set_tier) command with the `--rehydrate-priority` parameter set to *High*. The target tier (Hot or Cool) must be the same tier that you originally specified for the rehydration operation. Remember to replace placeholders in angle brackets with your own values:
+Next, call the [az storage blob set-tier](/cli/azure/storage/blob#az-storage-blob-set-tier) command with the `--rehydrate-priority` parameter set to *High*. The target tier (Hot or Cool) must be the same tier that you originally specified for the rehydration operation. Remember to replace placeholders in angle brackets with your own values:
```azurecli # Update the rehydration priority for a blob moving to the Hot tier.
az storage blob show \
--auth-mode login ```
-Next, call the [az storage blob set-tier](/cli/azure/storage/blob#az_storage_blob_set_tier) command with the `--rehydrate-priority` parameter set to *High*, as described in [Change the rehydration priority for a pending Set Blob Tier operation](#change-the-rehydration-priority-for-a-pending-set-blob-tier-operation). The target tier (Hot or Cool) must be the same tier that you originally specified for the rehydration operation. Check the properties again to verify that the blob is now rehydrating with High priority.
+Next, call the [az storage blob set-tier](/cli/azure/storage/blob#az-storage-blob-set-tier) command with the `--rehydrate-priority` parameter set to *High*, as described in [Change the rehydration priority for a pending Set Blob Tier operation](#change-the-rehydration-priority-for-a-pending-set-blob-tier-operation). The target tier (Hot or Cool) must be the same tier that you originally specified for the rehydration operation. Check the properties again to verify that the blob is now rehydrating with High priority.
storage Assign Azure Role Data Access https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/assign-azure-role-data-access.md
For information about assigning roles with PowerShell at the subscription or res
# [Azure CLI](#tab/azure-cli)
-To assign an Azure role to a security principal with Azure CLI, use the [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) command. The format of the command can differ based on the scope of the assignment. The format of the command can differ based on the scope of the assignment. In order to run the command, you must have a role that includes **Microsoft.Authorization/roleAssignments/write** permissions assigned to you at the corresponding scope or above.
+To assign an Azure role to a security principal with Azure CLI, use the [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command. The format of the command can differ based on the scope of the assignment. The format of the command can differ based on the scope of the assignment. In order to run the command, you must have a role that includes **Microsoft.Authorization/roleAssignments/write** permissions assigned to you at the corresponding scope or above.
To assign a role scoped to a container, specify a string containing the scope of the container for the `--scope` parameter. The scope for a container is in the form:
storage Authorize Data Operations Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/authorize-data-operations-cli.md
The following example shows how to create a container from Azure CLI using your
> [!IMPORTANT] > Azure role assignments may take a few minutes to propagate.
-1. Call the [az storage container create](/cli/azure/storage/container#az_storage_container_create) command with the `--auth-mode` parameter set to `login` to create the container using your Azure AD credentials. Remember to replace placeholder values in angle brackets with your own values:
+1. Call the [az storage container create](/cli/azure/storage/container#az-storage-container-create) command with the `--auth-mode` parameter set to `login` to create the container using your Azure AD credentials. Remember to replace placeholder values in angle brackets with your own values:
```azurecli az storage container create \
storage Blob Containers Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/blob-containers-cli.md
az login
## Create a container
-To create a container with Azure CLI, call the [az storage container create](/cli/azure/storage/container#az_storage_container_create) command.The following example illustrates three options for the creation of blob containers with the `az storage container create` command. The first approach creates a single container, while the remaining two approaches use Bash scripting operations to automate container creation.
+To create a container with Azure CLI, call the [az storage container create](/cli/azure/storage/container#az-storage-container-create) command.The following example illustrates three options for the creation of blob containers with the `az storage container create` command. The first approach creates a single container, while the remaining two approaches use Bash scripting operations to automate container creation.
To use this example, supply values for the variables and ensure that you've logged in. Remember to replace the placeholder values in brackets with your own values.
You can also use the `--query` parameter to execute a [JMESPath query](https://j
The following example first lists the maximum number of containers (subject to the service limit). Next, it lists three containers whose names begin with the prefix *container-* by supplying values for the `--num-results` and `--prefix` parameters. Finally, a single container is listed by supplying a known container name to the `--prefix` parameter.
-Read more about the [az storage container list](/cli/azure/storage/container#az_storage_container_list).
+Read more about the [az storage container list](/cli/azure/storage/container#az-storage-container-list).
```azurecli-interactive #!/bin/bash
User-defined metadata consists of one or more name-value pairs that you specify
### Container properties
-To display the properties of a container with Azure CLI, call the [az storage container show](/cli/azure/storage/container#az_storage_container_show) command.
+To display the properties of a container with Azure CLI, call the [az storage container show](/cli/azure/storage/container#az-storage-container-show) command.
In the following example, the first approach displays the properties of a single named container. Afterward, it retrieves all containers with the **demo-container-** prefix and iterates through them, listing their properties. Remember to replace the placeholder values with your own values.
storage Blob Inventory How To https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/blob-inventory-how-to.md
You can add, edit, or remove a policy via the [Azure CLI](/cli/azure/).
```
-4. Create a blob inventory policy by using the [az storage account blob-inventory-policy](/cli/azure/storage/account/blob-inventory-policy#az_storage_account_blob_inventory_policy_create) create command. Provide the name of your JSON document by using the `--policy` parameter.
+4. Create a blob inventory policy by using the [az storage account blob-inventory-policy](/cli/azure/storage/account/blob-inventory-policy#az-storage-account-blob-inventory-policy-create) create command. Provide the name of your JSON document by using the `--policy` parameter.
```azurecli az storage account blob-inventory-policy create -g myresourcegroup --account-name mystorageaccount --policy @policy.json
storage Data Lake Storage Acl Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/data-lake-storage-acl-cli.md
ACL inheritance is already available for new child items that are created under
## Get ACLs
-Get the ACL of a **directory** by using the [az storage fs access show](/cli/azure/storage/fs#az_storage_fs_show) command.
+Get the ACL of a **directory** by using the [az storage fs access show](/cli/azure/storage/fs#az-storage-fs-show) command.
This example gets the ACL of a directory, and then prints the ACL to the console.
This example gets the ACL of a directory, and then prints the ACL to the console
az storage fs access show -p my-directory -f my-file-system --account-name mystorageaccount --auth-mode login ```
-Get the access permissions of a **file** by using the [az storage fs access show](/cli/azure/storage/fs#az_storage_fs_show) command.
+Get the access permissions of a **file** by using the [az storage fs access show](/cli/azure/storage/fs#az-storage-fs-show) command.
This example gets the ACL of a file and then prints the ACL to the console.
This section shows you how to:
### Set an ACL
-Use the [az storage fs access set](/cli/azure/storage/fs/access#az_storage_fs_access_set) command to set the ACL of a **directory**.
+Use the [az storage fs access set](/cli/azure/storage/fs/access#az-storage-fs-access-set) command to set the ACL of a **directory**.
This example sets the ACL on a directory for the owning user, owning group, or other users, and then prints the ACL to the console.
This example sets the *default* ACL on a directory for the owning user, owning g
az storage fs access set --acl "default:user::rw-,group::rw-,other::-wx" -p my-directory -f my-file-system --account-name mystorageaccount --auth-mode login ```
-Use the [az storage fs access set](/cli/azure/storage/fs/access#az_storage_fs_access_set) command to set the acl of a **file**.
+Use the [az storage fs access set](/cli/azure/storage/fs/access#az-storage-fs-access-set) command to set the acl of a **file**.
This example sets the ACL on a file for the owning user, owning group, or other users, and then prints the ACL to the console.
In this example, the owning user and owning group have only read and write permi
### Set ACLs recursively
-Set ACLs recursively by using the [az storage fs access set-recursive](/cli/azure/storage/fs/access#az_storage_fs_access_set_recursive) command.
+Set ACLs recursively by using the [az storage fs access set-recursive](/cli/azure/storage/fs/access#az-storage-fs-access-set-recursive) command.
This example sets the ACL of a directory named `my-parent-directory`. These entries give the owning user read, write, and execute permissions, gives the owning group only read and execute permissions, and gives all others no access. The last ACL entry in this example gives a specific user with the object ID "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" read and execute permissions.
This section shows you how to:
### Update an ACL
-Another way to set this permission is to use the [az storage fs access set](/cli/azure/storage/fs/access#az_storage_fs_access_set) command.
+Another way to set this permission is to use the [az storage fs access set](/cli/azure/storage/fs/access#az-storage-fs-access-set) command.
Update the ACL of a directory or file by setting the `-permissions` parameter to the short form of an ACL.
az storage fs access set --owner xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -p my-dir
### Update ACLs recursively
-Update ACLs recursively by using the [az storage fs access update-recursive](/cli/azure/storage/fs/access#az_storage_fs_access_update_recursive) command.
+Update ACLs recursively by using the [az storage fs access update-recursive](/cli/azure/storage/fs/access#az-storage-fs-access-update-recursive) command.
This example updates an ACL entry with write permission.
az storage fs access update-recursive --acl "user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx
You can remove one or more ACL entries recursively. To remove an ACL entry, create a new ACL object for ACL entry to be removed, and then use that object in remove ACL operation. Do not get the existing ACL, just provide the ACL entries to be removed.
-Remove ACL entries by using the [az storage fs access remove-recursive](/cli/azure/storage/fs/access#az_storage_fs_access_remove_recursive) command.
+Remove ACL entries by using the [az storage fs access remove-recursive](/cli/azure/storage/fs/access#az-storage-fs-access-remove-recursive) command.
This example removes an ACL entry from the root directory of the container.
storage Data Lake Storage Query Acceleration How To https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/data-lake-storage-query-acceleration-how-to.md
To use query acceleration, you must first register the query acceleration featur
Replace the `<subscription-id>` placeholder value with the ID of your subscription.
-3. Register the query acceleration feature by using the [az feature register](/cli/azure/feature#az_feature_register) command.
+3. Register the query acceleration feature by using the [az feature register](/cli/azure/feature#az-feature-register) command.
```azurecli az feature register --namespace Microsoft.Storage --name BlobQuery
Get-AzProviderFeature -ProviderNamespace Microsoft.Storage -FeatureName BlobQuer
#### [Azure CLI](#tab/azure-cli)
-To verify that the registration is complete, use the [az feature](/cli/azure/feature#az_feature_show) command.
+To verify that the registration is complete, use the [az feature](/cli/azure/feature#az-feature-show) command.
```azurecli az feature show --namespace Microsoft.Storage --name BlobQuery
Register-AzResourceProvider -ProviderNamespace 'Microsoft.Storage'
#### [Azure CLI](#tab/azure-cli)
-To register the resource provider, use the [az provider register](/cli/azure/provider#az_provider_register) command.
+To register the resource provider, use the [az provider register](/cli/azure/provider#az-provider-register) command.
```azurecli az provider register --namespace 'Microsoft.Storage'
storage Encryption Scope Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/encryption-scope-manage.md
To create an encryption scope with Azure CLI, first install Azure CLI version 2.
### Create an encryption scope protected by Microsoft-managed keys
-To create a new encryption scope that is protected by Microsoft-managed keys, call the [az storage account encryption-scope create](/cli/azure/storage/account/encryption-scope#az_storage_account_encryption_scope_create) command, specifying the `--key-source` parameter as `Microsoft.Storage`.
+To create a new encryption scope that is protected by Microsoft-managed keys, call the [az storage account encryption-scope create](/cli/azure/storage/account/encryption-scope#az-storage-account-encryption-scope-create) command, specifying the `--key-source` parameter as `Microsoft.Storage`.
If infrastructure encryption is enabled for the storage account, then it will automatically be enabled for the new encryption scope. Otherwise, you can choose whether to enable infrastructure encryption for the encryption scope. To create the new scope with infrastructure encryption enabled, include the `--require-infrastructure-encryption` parameter and set its value to `true`.
az keyvault set-policy \
--key-permissions get unwrapKey wrapKey ```
-Next, call the [az storage account encryption-scope](/cli/azure/storage/account/encryption-scope#az_storage_account_encryption_scope_create) command with the `--key-uri` parameter, and specify the key URI. Including the key version on the key URI is optional. If you omit the key version, then the encryption scope will automatically use the most recent key version. If you include the key version, then you must update the key version manually to use a different version.
+Next, call the [az storage account encryption-scope](/cli/azure/storage/account/encryption-scope#az-storage-account-encryption-scope-create) command with the `--key-uri` parameter, and specify the key URI. Including the key version on the key URI is optional. If you omit the key version, then the encryption scope will automatically use the most recent key version. If you include the key version, then you must update the key version manually to use a different version.
If infrastructure encryption is enabled for the storage account, then it will automatically be enabled for the new encryption scope. Otherwise, you can choose whether to enable infrastructure encryption for the encryption scope. To create the new scope with infrastructure encryption enabled, include the `--require-infrastructure-encryption` parameter and set its value to `true`.
Get-AzStorageAccount -ResourceGroupName $rgName | Get-AzStorageEncryptionScope
# [Azure CLI](#tab/cli)
-To list the encryption scopes available for a storage account with Azure CLI, call the [az storage account encryption-scope list](/cli/azure/storage/account/encryption-scope#az_storage_account_encryption_scope_list) command. Remember to replace the placeholder values in the example with your own values:
+To list the encryption scopes available for a storage account with Azure CLI, call the [az storage account encryption-scope list](/cli/azure/storage/account/encryption-scope#az-storage-account-encryption-scope-list) command. Remember to replace the placeholder values in the example with your own values:
```azurecli-interactive az storage account encryption-scope list \
New-AzStorageContainer -Name $containerName1 `
# [Azure CLI](#tab/cli)
-To create a container with a default encryption scope with Azure CLI, call the [az storage container create](/cli/azure/storage/container#az_storage_container_create) command, specifying the scope for the `--default-encryption-scope` parameter. To force all blobs in a container to use the container's default scope, set the `--prevent-encryption-scope-override` parameter to `true`.
+To create a container with a default encryption scope with Azure CLI, call the [az storage container create](/cli/azure/storage/container#az-storage-container-create) command, specifying the scope for the `--default-encryption-scope` parameter. To force all blobs in a container to use the container's default scope, set the `--prevent-encryption-scope-override` parameter to `true`.
The following example uses your Azure AD account to authorize the operation to create the container. You can also use the account access key. For more information, see [Authorize access to blob or queue data with Azure CLI](./authorize-data-operations-cli.md).
Set-AzStorageBlobContent -Context $ctx `
# [Azure CLI](#tab/cli)
-To upload a blob with an encryption scope via Azure CLI, call the [az storage blob upload](/cli/azure/storage/blob#az_storage_blob_upload) command and provide the encryption scope for the blob.
+To upload a blob with an encryption scope via Azure CLI, call the [az storage blob upload](/cli/azure/storage/blob#az-storage-blob-upload) command and provide the encryption scope for the blob.
If you are using Azure Cloud Shell, follow the steps described in [Upload a blob](storage-quickstart-blobs-cli.md#upload-a-blob) to create a file in the root directory. You can then upload this file to a blob using the following sample.
Update-AzStorageEncryptionScope -ResourceGroupName $rgName `
# [Azure CLI](#tab/cli)
-To change the key that protects an encryption scope from a customer-managed key to a Microsoft-managed key with Azure CLI, call the [az storage account encryption-scope update](/cli/azure/storage/account/encryption-scope#az_storage_account_encryption_scope_update) command and pass in the `--key-source` parameter with the value `Microsoft.Storage`:
+To change the key that protects an encryption scope from a customer-managed key to a Microsoft-managed key with Azure CLI, call the [az storage account encryption-scope update](/cli/azure/storage/account/encryption-scope#az-storage-account-encryption-scope-update) command and pass in the `--key-source` parameter with the value `Microsoft.Storage`:
```azurecli-interactive az storage account encryption-scope update \
Update-AzStorageEncryptionScope -ResourceGroupName $rgName `
# [Azure CLI](#tab/cli)
-To disable an encryption scope with Azure CLI, call the [az storage account encryption-scope update](/cli/azure/storage/account/encryption-scope#az_storage_account_encryption_scope_update) command and include the `--state` parameter with a value of `Disabled`, as shown in the following example. To re-enable an encryption scope, call the same command with the `--state` parameter set to `Enabled`. Remember to replace the placeholder values in the example with your own values:
+To disable an encryption scope with Azure CLI, call the [az storage account encryption-scope update](/cli/azure/storage/account/encryption-scope#az-storage-account-encryption-scope-update) command and include the `--state` parameter with a value of `Disabled`, as shown in the following example. To re-enable an encryption scope, call the same command with the `--state` parameter set to `Enabled`. Remember to replace the placeholder values in the example with your own values:
```azurecli-interactive az storage account encryption-scope update \
storage Immutable Policy Configure Container Scope https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/immutable-policy-configure-container-scope.md
Set-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
### [Azure CLI](#tab/azure-cli)
-To configure a time-based retention policy on a container with Azure CLI, call the [az storage container immutability-policy create](/cli/azure/storage/container/immutability-policy#az_storage_container_immutability_policy_create) command, providing the retention interval in days. Remember to replace placeholder values in angle brackets with your own values:
+To configure a time-based retention policy on a container with Azure CLI, call the [az storage container immutability-policy create](/cli/azure/storage/container/immutability-policy#az-storage-container-immutability-policy-create) command, providing the retention interval in days. Remember to replace placeholder values in angle brackets with your own values:
```azurecli az storage container immutability-policy create \
Remove-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group
### [Azure CLI](#tab/azure-cli)
-To modify an unlocked time-based retention policy with Azure CLI, call the [az storage container immutability-policy extend](/cli/azure/storage/container/immutability-policy#az_storage_container_immutability_policy_extend) command, providing the new retention interval in days. Remember to replace placeholder values in angle brackets with your own values:
+To modify an unlocked time-based retention policy with Azure CLI, call the [az storage container immutability-policy extend](/cli/azure/storage/container/immutability-policy#az-storage-container-immutability-policy-extend) command, providing the new retention interval in days. Remember to replace placeholder values in angle brackets with your own values:
```azurecli $etag=$(az storage container immutability-policy show \
az storage container immutability-policy extend \
--allow-protected-append-writes true ```
-To delete an unlocked policy, call the [az storage container immutability-policy delete](/cli/azure/storage/container/immutability-policy#az_storage_container_immutability_policy_delete) command.
+To delete an unlocked policy, call the [az storage container immutability-policy delete](/cli/azure/storage/container/immutability-policy#az-storage-container-immutability-policy-delete) command.
Lock-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group>
### [Azure CLI](#tab/azure-cli)
-To lock a policy with Azure CLI, first call the [az storage container immutability-policy show](/cli/azure/storage/container/immutability-policy#az_storage_container_immutability_policy_show) command to retrieve the policy's ETag. Next, call the [az storage container immutability-policy lock](/cli/azure/storage/container/immutability-policy#az_storage_container_immutability_policy_lock) command and pass in the ETag value to lock the policy. Remember to replace placeholder values in angle brackets with your own values:
+To lock a policy with Azure CLI, first call the [az storage container immutability-policy show](/cli/azure/storage/container/immutability-policy#az-storage-container-immutability-policy-show) command to retrieve the policy's ETag. Next, call the [az storage container immutability-policy lock](/cli/azure/storage/container/immutability-policy#az-storage-container-immutability-policy-lock) command and pass in the ETag value to lock the policy. Remember to replace placeholder values in angle brackets with your own values:
```azurecli $etag=$(az storage container immutability-policy show \
Remove-AzRmStorageContainerLegalHold -ResourceGroupName <resource-group> `
### [Azure CLI](#tab/azure-cli)
-To configure a legal hold on a container with PowerShell, call the [az storage container legal-hold set](/cli/azure/storage/container/legal-hold#az_storage_container_legal_hold_set) command. Remember to replace placeholder values in angle brackets with your own values:
+To configure a legal hold on a container with PowerShell, call the [az storage container legal-hold set](/cli/azure/storage/container/legal-hold#az-storage-container-legal-hold-set) command. Remember to replace placeholder values in angle brackets with your own values:
```azurecli az storage container legal-hold set \
az storage container legal-hold set \
--resource-group <resource-group> ```
-To clear a legal hold, call the [az storage container legal-hold clear](/cli/azure/storage/container/legal-hold#az_storage_container_legal_hold_clear) command:
+To clear a legal hold, call the [az storage container legal-hold clear](/cli/azure/storage/container/legal-hold#az-storage-container-legal-hold-clear) command:
```azurecli az storage container legal-hold clear \
storage Immutable Policy Configure Version Scope https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/immutable-policy-configure-version-scope.md
N/A
##### [Azure CLI](#tab/azure-cli)
-To enable support for version-level immutability when you create a storage account with Azure CLI, call the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command with the `--enable-alw` parameter specified. You can optionally specify a default policy for the storage account at the same time, as shown in the following example. Remember to replace placeholders in angle brackets with your own values:
+To enable support for version-level immutability when you create a storage account with Azure CLI, call the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command with the `--enable-alw` parameter specified. You can optionally specify a default policy for the storage account at the same time, as shown in the following example. Remember to replace placeholders in angle brackets with your own values:
```azurecli az storage account create \
$container.ImmutableStorageWithVersioning
To create a container that supports version-level immutability with Azure CLI, first install Azure CLI version 2.27 or later. For more information about installing Azure CLI, see [How to install the Azure CLI](/cli/azure/install-azure-cli).
-Next, call the [az storage container-rm create](/cli/azure/storage/container-rm#az_storage_container_rm_create) command, specifying the `--enable-vlw` parameter. Remember to replace placeholders in angle brackets with your own values:
+Next, call the [az storage container-rm create](/cli/azure/storage/container-rm#az-storage-container-rm-create) command, specifying the `--enable-vlw` parameter. Remember to replace placeholders in angle brackets with your own values:
```azurecli # Create a container with version-level immutability support.
For more information about PowerShell jobs, see [Run Azure PowerShell cmdlets in
##### [Azure CLI](#tab/azure-cli)
-To migrate a container to support version-level immutable storage with Azure CLI, first make sure that a container-level time-based retention policy exists for the container. To create one, call [az storage container immutability-policy create](/cli/azure/storage/container/immutability-policy#az_storage_container_immutability_policy_create).
+To migrate a container to support version-level immutable storage with Azure CLI, first make sure that a container-level time-based retention policy exists for the container. To create one, call [az storage container immutability-policy create](/cli/azure/storage/container/immutability-policy#az-storage-container-immutability-policy-create).
```azurecli az storage container immutability-policy create \
az storage container immutability-policy create \
--period <retention-interval-in-days> ```
-Next, call the [az storage container-rm migrate-vlw](/cli/azure/storage/container-rm#az_storage_container_rm_migrate_vlw) command to migrate the container. Include the `--no-wait` parameter to run the command asynchronously. Running the operation asynchronously is recommended, as the migration may take some time to complete.
+Next, call the [az storage container-rm migrate-vlw](/cli/azure/storage/container-rm#az-storage-container-rm-migrate-vlw) command to migrate the container. Include the `--no-wait` parameter to run the command asynchronously. Running the operation asynchronously is recommended, as the migration may take some time to complete.
```azurecli az storage container-rm migrate-vlw \
Set-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
#### [Azure CLI](#tab/azure-cli)
-To configure a default version-level immutability policy for a container with Azure CLI, call the [az storage container immutability-policy create](/cli/azure/storage/container/immutability-policy#az_storage_container_immutability_policy_create) command.
+To configure a default version-level immutability policy for a container with Azure CLI, call the [az storage container immutability-policy create](/cli/azure/storage/container/immutability-policy#az-storage-container-immutability-policy-create) command.
```azurecli az storage container immutability-policy create \
storage Monitor Blob Storage Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/monitor-blob-storage-reference.md
Title: Azure Blob Storage monitoring data reference | Microsoft Docs description: Log and metrics reference for monitoring data from Azure Blob Storage. --++ Last updated 10/02/2020 -+
storage Object Replication Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/object-replication-configure.md
Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname `
To create a replication policy with Azure CLI, first install Azure CLI version 2.11.1 or later. For more information, see [Get started with Azure CLI](/cli/azure/get-started-with-azure-cli).
-Next, enable blob versioning on the source and destination storage accounts, and enable change feed on the source account, by calling the [az storage account blob-service-properties update](/cli/azure/storage/account/blob-service-properties#az_storage_account_blob_service_properties_update) command. Remember to replace values in angle brackets with your own values:
+Next, enable blob versioning on the source and destination storage accounts, and enable change feed on the source account, by calling the [az storage account blob-service-properties update](/cli/azure/storage/account/blob-service-properties#az-storage-account-blob-service-properties-update) command. Remember to replace values in angle brackets with your own values:
```azurecli az login
az storage container create \
--auth-mode login ```
-Create a new replication policy and an associated rule on the destination account by calling the [az storage account or-policy create](/cli/azure/storage/account/or-policy#az_storage_account_or_policy_create).
+Create a new replication policy and an associated rule on the destination account by calling the [az storage account or-policy create](/cli/azure/storage/account/or-policy#az-storage-account-or-policy-create).
```azurecli az storage account or-policy create \
az storage account or-policy create \
```
-Azure Storage sets the policy ID for the new policy when it is created. To add additional rules to the policy, call the [az storage account or-policy rule add](/cli/azure/storage/account/or-policy/rule#az_storage_account_or_policy_rule_add) and provide the policy ID.
+Azure Storage sets the policy ID for the new policy when it is created. To add additional rules to the policy, call the [az storage account or-policy rule add](/cli/azure/storage/account/or-policy/rule#az-storage-account-or-policy-rule-add) and provide the policy ID.
```azurecli az storage account or-policy rule add \
Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgname `
# [Azure CLI](#tab/azure-cli)
-To write the replication policy definition for the destination account to a JSON file from Azure CLI, call the [az storage account or-policy show](/cli/azure/storage/account/or-policy#az_storage_account_or_policy_show) command and output to a file.
+To write the replication policy definition for the destination account to a JSON file from Azure CLI, call the [az storage account or-policy show](/cli/azure/storage/account/or-policy#az-storage-account-or-policy-show) command and output to a file.
The following example writes the policy definition to a JSON file named *policy.json*. Remember to replace values in angle brackets and the file path with your own values:
az storage account or-policy show \
--policy-id <policy-id> > policy.json ```
-To use the JSON file to configure the replication policy on the source account with Azure CLI, call the [az storage account or-policy create](/cli/azure/storage/account/or-policy#az_storage_account_or_policy_create) command and reference the *policy.json* file. Remember to replace values in angle brackets and the file path with your own values:
+To use the JSON file to configure the replication policy on the source account with Azure CLI, call the [az storage account or-policy create](/cli/azure/storage/account/or-policy#az-storage-account-or-policy-create) command and reference the *policy.json* file. Remember to replace values in angle brackets and the file path with your own values:
```azurecli az storage account or-policy create \
storage Object Replication Prevent Cross Tenant Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/object-replication-prevent-cross-tenant-policies.md
New-AzStorageAccount -ResourceGroupName $rgName `
#### [Azure CLI](#tab/azure-cli)
-To disallow cross-tenant object replication for a new storage account, call the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command, and include the `allow-cross-tenant-replication` parameter with a value of *false*.
+To disallow cross-tenant object replication for a new storage account, call the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command, and include the `allow-cross-tenant-replication` parameter with a value of *false*.
```azurecli # Create a storage account with cross-tenant replication disallowed.
storage Point In Time Restore Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/point-in-time-restore-manage.md
Get-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
# [Azure CLI](#tab/azure-cli)
-To configure point-in-time restore with Azure CLI, first install the Azure CLI version 2.2.0 or later. Then call the [az storage account blob-service-properties update](/cli/azure/storage/account/blob-service-properties#az_storage_account_blob_service_properties_update) command to enable point-in-time restore and the other required data protection settings for the storage account.
+To configure point-in-time restore with Azure CLI, first install the Azure CLI version 2.2.0 or later. Then call the [az storage account blob-service-properties update](/cli/azure/storage/account/blob-service-properties#az-storage-account-blob-service-properties-update) command to enable point-in-time restore and the other required data protection settings for the storage account.
The following example enables soft delete and sets the soft-delete retention period to 14 days, enables change feed and versioning, and enables point-in-time restore with a restore period of 7 days. When running the example, remember to replace the values in angle brackets with your own values:
Restore-AzStorageBlobRange -ResourceGroupName $rgName `
# [Azure CLI](#tab/azure-cli)
-To restore all containers and blobs in the storage account with Azure CLI, call the [az storage blob restore](/cli/azure/storage/blob#az_storage_blob_restore) command and provide the restore point as a UTC date/time value.
+To restore all containers and blobs in the storage account with Azure CLI, call the [az storage blob restore](/cli/azure/storage/blob#az-storage-blob-restore) command and provide the restore point as a UTC date/time value.
-The following example asynchronously restores all containers in the storage account to their state 12 hours before a specified date and time. To check the status of the restore operation, call [az storage account show](/cli/azure/storage/account#az_storage_account_show):
+The following example asynchronously restores all containers in the storage account to their state 12 hours before a specified date and time. To check the status of the restore operation, call [az storage account show](/cli/azure/storage/account#az-storage-account-show):
```azurecli az storage blob restore \
az storage blob restore \
--no-wait ```
-To check the properties of a restore operation, call [az storage account show](/cli/azure/storage/account#az_storage_account_show) and expand the **blobRestoreStatus** property. The following example shows how to check the **status** property.
+To check the properties of a restore operation, call [az storage account show](/cli/azure/storage/account#az-storage-account-show) and expand the **blobRestoreStatus** property. The following example shows how to check the **status** property.
```azurecli az storage account show \
To run the restore operation synchronously and block on execution until it is co
# [Azure CLI](#tab/azure-cli)
-To restore a range of blobs, call the [az storage blob restore](/cli/azure/storage/blob#az_storage_blob_restore) command and specify a lexicographical range of container and blob names for the `--blob-range` parameter. To specify multiple ranges, provide the `--blob-range` parameter for each distinct range.
+To restore a range of blobs, call the [az storage blob restore](/cli/azure/storage/blob#az-storage-blob-restore) command and specify a lexicographical range of container and blob names for the `--blob-range` parameter. To specify multiple ranges, provide the `--blob-range` parameter for each distinct range.
For example, to restore the blobs in a single container named *container1*, you can specify a range that starts with *container1* and ends with *container2*. There is no requirement for the containers named in the start and end ranges to exist. Because the end of the range is exclusive, even if the storage account includes a container named *container2*, only the container named *container1* will be restored.
storage Secure File Transfer Protocol Support How To https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/secure-file-transfer-protocol-support-how-to.md
Before you can enable SFTP support, you must register the SFTP feature with your
Replace the `<subscription-id>` placeholder value with the ID of your subscription.
-4. Register the `AllowSFTP` feature by using the [az feature register](/cli/azure/feature#az_feature_register) command.
+4. Register the `AllowSFTP` feature by using the [az feature register](/cli/azure/feature#az-feature-register) command.
```azurecli az feature register --namespace Microsoft.Storage --name AllowSFTP
Get-AzProviderFeature -ProviderNamespace Microsoft.Storage -FeatureName AllowSFT
#### [Azure CLI](#tab/azure-cli)
-To verify that the registration is complete, use the [az feature](/cli/azure/feature#az_feature_show) command.
+To verify that the registration is complete, use the [az feature](/cli/azure/feature#az-feature-show) command.
```azurecli az feature show --namespace Microsoft.Storage --name AllowSFTP
storage Soft Delete Blob Enable https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/soft-delete-blob-enable.md
$properties.DeleteRetentionPolicy.Days
### [Azure CLI](#tab/azure-CLI)
-To enable blob soft delete with Azure CLI, call the [az storage account blob-service-properties update](/cli/azure/storage/account/blob-service-properties#az_storage_account_blob_service_properties_update) command, specifying the retention period in days.
+To enable blob soft delete with Azure CLI, call the [az storage account blob-service-properties update](/cli/azure/storage/account/blob-service-properties#az-storage-account-blob-service-properties-update) command, specifying the retention period in days.
The following example enables blob soft delete and sets the retention period to seven days. Remember to replace the placeholder values in brackets with your own values:
az storage account blob-service-properties update --account-name <storage-accoun
--delete-retention-days 7 ```
-To check the current settings for blob soft delete, call the [az storage account blob-service-properties show](/cli/azure/storage/account/blob-service-properties#az_storage_account_blob_service_properties_show) command:
+To check the current settings for blob soft delete, call the [az storage account blob-service-properties show](/cli/azure/storage/account/blob-service-properties#az-storage-account-blob-service-properties-show) command:
```azurecli-interactive az storage account blob-service-properties show --account-name <storage-account> \
storage Soft Delete Container Enable https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/soft-delete-container-enable.md
To disable container soft delete, call the **Disable-AzStorageContainerDeleteRet
# [Azure CLI](#tab/azure-cli)
-To enable container soft delete with Azure CLI, first install Azure CLI, version 2.26.0 or later. Next, call the [az storage account blob-service-properties update](/cli/azure/storage/account/blob-service-properties#az_storage_account_blob_service_properties_update) command and specify the number of days for the retention period. Remember to replace the values in angle brackets with your own values:
+To enable container soft delete with Azure CLI, first install Azure CLI, version 2.26.0 or later. Next, call the [az storage account blob-service-properties update](/cli/azure/storage/account/blob-service-properties#az-storage-account-blob-service-properties-update) command and specify the number of days for the retention period. Remember to replace the values in angle brackets with your own values:
```azurecli-interactive az storage account blob-service-properties update \
storage Storage Blob User Delegation Sas Create Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/storage-blob-user-delegation-sas-create-cli.md
When creating a user delegation SAS, the `--auth-mode login` and `--as-user para
### Create a user delegation SAS for a container
-To create a user delegation SAS for a container with the Azure CLI, call the [az storage container generate-sas](/cli/azure/storage/container#az_storage_container_generate_sas) command.
+To create a user delegation SAS for a container with the Azure CLI, call the [az storage container generate-sas](/cli/azure/storage/container#az-storage-container-generate-sas) command.
Supported permissions for a user delegation SAS on a container include Add, Create, Delete, List, Read, and Write. Permissions can be specified singly or combined. For more information about these permissions, see [Create a user delegation SAS](/rest/api/storageservices/create-user-delegation-sas).
se=2019-07-27&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sktid=<sktid>&skt=2019-07-26
### Create a user delegation SAS for a blob
-To create a user delegation SAS for a blob with the Azure CLI, call the [az storage blob generate-sas](/cli/azure/storage/blob#az_storage_blob_generate_sas) command.
+To create a user delegation SAS for a blob with the Azure CLI, call the [az storage blob generate-sas](/cli/azure/storage/blob#az-storage-blob-generate-sas) command.
Supported permissions for a user delegation SAS on a blob include Add, Create, Delete, Read, and Write. Permissions can be specified singly or combined. For more information about these permissions, see [Create a user delegation SAS](/rest/api/storageservices/create-user-delegation-sas).
https://storagesamples.blob.core.windows.net/sample-container/blob1.txt?se=2019-
## Revoke a user delegation SAS
-To revoke a user delegation SAS from the Azure CLI, call the [az storage account revoke-delegation-keys](/cli/azure/storage/account#az_storage_account_revoke_delegation_keys) command. This command revokes all of the user delegation keys associated with the specified storage account. Any shared access signatures associated with those keys are invalidated.
+To revoke a user delegation SAS from the Azure CLI, call the [az storage account revoke-delegation-keys](/cli/azure/storage/account#az-storage-account-revoke-delegation-keys) command. This command revokes all of the user delegation keys associated with the specified storage account. Any shared access signatures associated with those keys are invalidated.
Remember to replace placeholder values in angle brackets with your own values:
storage Storage Blobs Static Site Github Actions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/storage-blobs-static-site-github-actions.md
An Azure subscription and GitHub account.
# [Service principal](#tab/userlevel)
-You can create a [service principal](../../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
+You can create a [service principal](../../active-directory/develop/app-objects-and-service-principals.md#service-principal-object) with the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command in the [Azure CLI](/cli/azure/). Run this command with [Azure Cloud Shell](https://shell.azure.com/) in the Azure portal or by selecting the **Try it** button.
Replace the placeholder `myStaticSite` with the name of your site hosted in Azure Storage.
storage Versioning Enable https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/blobs/versioning-enable.md
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
# [Azure CLI](#tab/azure-cli)
-To enable blob versioning for a storage account with Azure CLI, first install the Azure CLI version 2.2.0 or later. Then call the [az storage account blob-service-properties update](/cli/azure/storage/account/blob-service-properties#az_storage_account_blob_service_properties_update) command to enable versioning, as shown in the following example. Remember to replace the values in angle brackets with your own values:
+To enable blob versioning for a storage account with Azure CLI, first install the Azure CLI version 2.2.0 or later. Then call the [az storage account blob-service-properties update](/cli/azure/storage/account/blob-service-properties#az-storage-account-blob-service-properties-update) command to enable versioning, as shown in the following example. Remember to replace the values in angle brackets with your own values:
```azurecli az storage account blob-service-properties update \
storage Account Encryption Key Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/account-encryption-key-create.md
New-AzStorageAccount -ResourceGroupName <resource_group> `
To use Azure CLI to create a storage account that relies on the account encryption key, make sure you have installed Azure CLI version 2.0.80 or later. For more information, see [Install the Azure CLI](/cli/azure/install-azure-cli).
-Next, create a general-purpose v2 storage account by calling the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command, with the appropriate parameters:
+Next, create a general-purpose v2 storage account by calling the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command, with the appropriate parameters:
- Include the `--encryption-key-type-for-queue` option and set its value to `Account` to use the account encryption key to encrypt data in Queue storage. - Include the `--encryption-key-type-for-table` option and set its value to `Account` to use the account encryption key to encrypt data in Table storage.
$account.Encryption.Services.Table
# [Azure CLI](#tab/azure-cli)
-To verify that a service in a storage account is using the account encryption key with Azure CLI, call the [az storage account show](/cli/azure/storage/account#az_storage_account_show) command. This command returns a set of storage account properties and their values. Look for the `keyType` field for each service within the encryption property and verify that it is set to `Account`.
+To verify that a service in a storage account is using the account encryption key with Azure CLI, call the [az storage account show](/cli/azure/storage/account#az-storage-account-show) command. This command returns a set of storage account properties and their values. Look for the `keyType` field for each service within the encryption property and verify that it is set to `Account`.
```azurecli az storage account show \
storage Configure Network Routing Preference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/configure-network-routing-preference.md
To change your routing preference to Internet routing:
- To launch Azure Cloud Shell, sign in to the [Azure portal](https://portal.azure.com).
- - To log into your local installation of the CLI, run the [az login](/cli/azure/reference-index#az_login) command:
+ - To log into your local installation of the CLI, run the [az login](/cli/azure/reference-index#az-login) command:
```azurecli az login
To change your routing preference to Internet routing:
Replace the `<subscription-id>` placeholder value with the ID of your subscription.
-3. To change your routing preference to Internet routing, use the [az storage account update](/cli/azure/storage/account#az_storage_account_update) command and set the `--routing-choice` parameter to `InternetRouting`.
+3. To change your routing preference to Internet routing, use the [az storage account update](/cli/azure/storage/account#az-storage-account-update) command and set the `--routing-choice` parameter to `InternetRouting`.
```azurecli az storage account update --name <storage-account-name> --routing-choice InternetRouting
This preference affects only the route-specific endpoint. This preference doesn'
### [Azure CLI](#tab/azure-cli)
-1. To configure a route-specific endpoint, use the [az storage account update](/cli/azure/storage/account#az_storage_account_update) command.
+1. To configure a route-specific endpoint, use the [az storage account update](/cli/azure/storage/account#az-storage-account-update) command.
- To create a route-specific endpoint that uses the Microsoft network routing preference, set the `--publish-microsoft-endpoints` parameter to `true`.
If you configured a route-specific endpoint, you can find the endpoint in the pr
### [Azure CLI](#tab/azure-cli)
-1. To print the endpoints to the console, use the [az storage account show](/cli/azure/storage/account#az_storage_account_show) property of the storage account object.
+1. To print the endpoints to the console, use the [az storage account show](/cli/azure/storage/account#az-storage-account-show) property of the storage account object.
```azurecli az storage account show -g <resource-group-name> -n <storage-account-name>
storage Customer Managed Keys Configure Key Vault Hsm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/customer-managed-keys-configure-key-vault-hsm.md
This article shows how to configure encryption with customer-managed keys stored
First, assign a system-assigned managed identity to the storage account. You'll use this managed identity to grant the storage account permissions to access the managed HSM. For more information about system-assigned managed identities, see [What are managed identities for Azure resources?](../../active-directory/managed-identities-azure-resources/overview.md).
-To assign a managed identity using Azure CLI, call [az storage account update](/cli/azure/storage/account#az_storage_account_update). Remember to replace the placeholder values in brackets with your own values:
+To assign a managed identity using Azure CLI, call [az storage account update](/cli/azure/storage/account#az-storage-account-update). Remember to replace the placeholder values in brackets with your own values:
```azurecli az storage account update \
az storage account update \
Next, assign the **Managed HSM Crypto Service Encryption User** role to the storage account's managed identity so that the storage account has permissions to the managed HSM. Microsoft recommends that you scope the role assignment to the level of the individual key in order to grant the fewest possible privileges to the managed identity.
-To create the role assignment for storage account, call [az key vault role assignment create](/cli/azure/role/assignment#az_role_assignment_create). Remember to replace the placeholder values in brackets with your own values.
+To create the role assignment for storage account, call [az key vault role assignment create](/cli/azure/role/assignment#az-role-assignment-create). Remember to replace the placeholder values in brackets with your own values.
```azurecli storage_account_principal = $(az storage account show \
Finally, configure Azure Storage encryption with customer-managed keys to use a
Install Azure CLI 2.12.0 or later to configure encryption to use a customer-managed key in a managed HSM. For more information, see [Install the Azure CLI](/cli/azure/install-azure-cli).
-To automatically update the key version for a customer-managed key, omit the key version when you configure encryption with customer-managed keys for the storage account. Call [az storage account update](/cli/azure/storage/account#az_storage_account_update) to update the storage account's encryption settings, as shown in the following example. Include the `--encryption-key-source parameter` and set it to `Microsoft.Keyvault` to enable customer-managed keys for the account. Remember to replace the placeholder values in brackets with your own values.
+To automatically update the key version for a customer-managed key, omit the key version when you configure encryption with customer-managed keys for the storage account. Call [az storage account update](/cli/azure/storage/account#az-storage-account-update) to update the storage account's encryption settings, as shown in the following example. Include the `--encryption-key-source parameter` and set it to `Microsoft.Keyvault` to enable customer-managed keys for the account. Remember to replace the placeholder values in brackets with your own values.
```azurecli hsmurl = $(az keyvault show \
az storage account update
--encryption-key-vault $hsmurl ```
-When you manually update the key version, you'll need to update the storage account's encryption settings to use the new version. First, query for the key vault URI by calling [az keyvault show](/cli/azure/keyvault#az_keyvault_show), and for the key version by calling [az keyvault key list-versions](/cli/azure/keyvault/key#az_keyvault_key_list_versions). Then call [az storage account update](/cli/azure/storage/account#az_storage_account_update) to update the storage account's encryption settings to use the new version of the key, as shown in the previous example.
+When you manually update the key version, you'll need to update the storage account's encryption settings to use the new version. First, query for the key vault URI by calling [az keyvault show](/cli/azure/keyvault#az-keyvault-show), and for the key version by calling [az keyvault key list-versions](/cli/azure/keyvault/key#az-keyvault-key-list-versions). Then call [az storage account update](/cli/azure/storage/account#az-storage-account-update) to update the storage account's encryption settings to use the new version of the key, as shown in the previous example.
## Next steps
storage Customer Managed Keys Configure Key Vault https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/customer-managed-keys-configure-key-vault.md
To learn how to enable purge protection on an existing key vault with PowerShell
# [Azure CLI](#tab/azure-cli)
-To create a new key vault using Azure CLI, call [az keyvault create](/cli/azure/keyvault#az_keyvault_create). Remember to replace the placeholder values in brackets with your own values:
+To create a new key vault using Azure CLI, call [az keyvault create](/cli/azure/keyvault#az-keyvault-create). Remember to replace the placeholder values in brackets with your own values:
```azurecli az keyvault create \
$key = Add-AzKeyVaultKey -VaultName $keyVault.VaultName `
# [Azure CLI](#tab/azure-cli)
-To add a key with Azure CLI, call [az keyvault key create](/cli/azure/keyvault/key#az_keyvault_key_create). Remember to replace the placeholder values in brackets with your own values.
+To add a key with Azure CLI, call [az keyvault key create](/cli/azure/keyvault/key#az-keyvault-key-create). Remember to replace the placeholder values in brackets with your own values.
```azurecli az keyvault key create \
$principalId = $storageAccount.Identity.PrincipalId
#### [Azure CLI](#tab/azure-cli)
-To authenticate access to the key vault with a system-assigned managed identity, assign the system-assigned managed identity to the storage account by calling [az storage account update](/cli/azure/storage/account#az_storage_account_update):
+To authenticate access to the key vault with a system-assigned managed identity, assign the system-assigned managed identity to the storage account by calling [az storage account update](/cli/azure/storage/account#az-storage-account-update):
```azurecli az storage account update \
Set-AzStorageAccount -ResourceGroupName $storageAccount.ResourceGroupName `
To configure customer-managed keys for an existing account with automatic updating of the key version with Azure CLI, install [Azure CLI version 2.4.0](/cli/azure/release-notes-azure-cli#april-21-2020) or later. For more information, see [Install the Azure CLI](/cli/azure/install-azure-cli).
-Next, call [az storage account update](/cli/azure/storage/account#az_storage_account_update) to update the storage account's encryption settings, omitting the key version. Include the `--encryption-key-source` parameter and set it to `Microsoft.Keyvault` to enable customer-managed keys for the account.
+Next, call [az storage account update](/cli/azure/storage/account#az-storage-account-update) to update the storage account's encryption settings, omitting the key version. Include the `--encryption-key-source` parameter and set it to `Microsoft.Keyvault` to enable customer-managed keys for the account.
```azurecli key_vault_uri=$(az keyvault show \
When you manually update the key version, you will need to update the storage ac
# [Azure CLI](#tab/azure-cli)
-To configure customer-managed keys with manual updating of the key version, explicitly provide the key version when you configure encryption for the storage account. Call [az storage account update](/cli/azure/storage/account#az_storage_account_update) to update the storage account's encryption settings, as shown in the following example. Include the `--encryption-key-source` parameter and set it to `Microsoft.Keyvault` to enable customer-managed keys for the account.
+To configure customer-managed keys with manual updating of the key version, explicitly provide the key version when you configure encryption for the storage account. Call [az storage account update](/cli/azure/storage/account#az-storage-account-update) to update the storage account's encryption settings, as shown in the following example. Include the `--encryption-key-source` parameter and set it to `Microsoft.Keyvault` to enable customer-managed keys for the account.
Remember to replace the placeholder values in brackets with your own values.
az storage account update
--encryption-key-vault $key_vault_uri ```
-When you manually update the key version, you will need to update the storage account's encryption settings to use the new version. First, query for the key vault URI by calling [az keyvault show](/cli/azure/keyvault#az_keyvault_show), and for the key version by calling [az keyvault key list-versions](/cli/azure/keyvault/key#az_keyvault_key_list-versions). Then call [az storage account update](/cli/azure/storage/account#az_storage_account_update) to update the storage account's encryption settings to use the new version of the key, as shown in the previous example.
+When you manually update the key version, you will need to update the storage account's encryption settings to use the new version. First, query for the key vault URI by calling [az keyvault show](/cli/azure/keyvault#az-keyvault-show), and for the key version by calling [az keyvault key list-versions](/cli/azure/keyvault/key#az-keyvault-key-list-versions). Then call [az storage account update](/cli/azure/storage/account#az-storage-account-update) to update the storage account's encryption settings to use the new version of the key, as shown in the previous example.
To change the key with PowerShell, call [Set-AzStorageAccount](/powershell/modul
# [Azure CLI](#tab/azure-cli)
-To change the key with Azure CLI, call [az storage account update](/cli/azure/storage/account#az_storage_account_update) as shown in [Configure customer-managed keys for an existing account](#configure-customer-managed-keys-for-an-existing-account) and provide the new key name and version. If the new key is in a different key vault, then you must also update the key vault URI.
+To change the key with Azure CLI, call [az storage account update](/cli/azure/storage/account#az-storage-account-update) as shown in [Configure customer-managed keys for an existing account](#configure-customer-managed-keys-for-an-existing-account) and provide the new key name and version. If the new key is in a different key vault, then you must also update the key vault URI.
Remove-AzKeyVaultAccessPolicy -VaultName $keyVault.VaultName `
# [Azure CLI](#tab/azure-cli)
-You can revoke customer-managed keys by removing the key vault access policy. To revoke a customer-managed key with Azure CLI, call the [az keyvault delete-policy](/cli/azure/keyvault#az_keyvault_delete_policy) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values and to use the variables defined in the previous examples.
+You can revoke customer-managed keys by removing the key vault access policy. To revoke a customer-managed key with Azure CLI, call the [az keyvault delete-policy](/cli/azure/keyvault#az-keyvault-delete-policy) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values and to use the variables defined in the previous examples.
```azurecli az keyvault delete-policy \
Set-AzStorageAccount -ResourceGroupName $storageAccount.ResourceGroupName `
# [Azure CLI](#tab/azure-cli)
-To disable customer-managed keys with Azure CLI, call [az storage account update](/cli/azure/storage/account#az_storage_account_update) and set the `--encryption-key-source parameter` to `Microsoft.Storage`, as shown in the following example. Remember to replace the placeholder values in brackets with your own values and to use the variables defined in the previous examples.
+To disable customer-managed keys with Azure CLI, call [az storage account update](/cli/azure/storage/account#az-storage-account-update) and set the `--encryption-key-source parameter` to `Microsoft.Storage`, as shown in the following example. Remember to replace the placeholder values in brackets with your own values and to use the variables defined in the previous examples.
```azurecli az storage account update
storage Identity Library Acquire Token https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/identity-library-acquire-token.md
If your development environment does not support single sign-on or login via a w
### Create the service principal
-To create a service principal with Azure CLI and assign an Azure role, call the [az ad sp create-for-rbac](/cli/azure/ad/sp#az_ad_sp_create_for_rbac) command. Provide an Azure Storage data access role to assign to the new service principal. Additionally, provide the scope for the role assignment. For more information about the built-in roles provided for Azure Storage, see [Azure built-in roles](../../role-based-access-control/built-in-roles.md).
+To create a service principal with Azure CLI and assign an Azure role, call the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command. Provide an Azure Storage data access role to assign to the new service principal. Additionally, provide the scope for the role assignment. For more information about the built-in roles provided for Azure Storage, see [Azure built-in roles](../../role-based-access-control/built-in-roles.md).
If you do not have sufficient permissions to assign a role to the service principal, you may need to ask the account owner or administrator to perform the role assignment.
storage Lock Account Resource https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/lock-account-resource.md
New-AzResourceLock -LockLevel CanNotDelete `
# [Azure CLI](#tab/azure-cli)
-To configure a lock on a storage account with Azure CLI, call the [az lock create](/cli/azure/lock#az_lock_create) command and specify the type of lock that you want to create, as shown in the following example:
+To configure a lock on a storage account with Azure CLI, call the [az lock create](/cli/azure/lock#az-lock-create) command and specify the type of lock that you want to create, as shown in the following example:
```azurecli az lock create \
storage Redundancy Migration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/redundancy-migration.md
Set-AzStorageAccount -ResourceGroupName <resource_group> `
# [Azure CLI](#tab/azure-cli)
-To change the redundancy option for your storage account with Azure CLI, call the [az storage account update](/cli/azure/storage/account#az_storage_account_update) command and specify the `--sku` parameter:
+To change the redundancy option for your storage account with Azure CLI, call the [az storage account update](/cli/azure/storage/account#az-storage-account-update) command and specify the `--sku` parameter:
```azurecli-interactive az storage account update \
storage Sas Expiration Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/sas-expiration-policy.md
The SAS expiration period appears in the console output.
### [Azure CLI](#tab/azure-cli)
-To create a SAS expiration policy, use the [az storage account update](/cli/azure/storage/account#az_storage_account_update) command, and then set the `--key-exp-days` parameter to the number of days, hours, minutes, and seconds that a SAS token can be active from the time that a SAS is signed. The string that you provide the `--key-exp-days` parameter uses the following format: `<days>.<hours>:<minutes>:<seconds>`. For example, if you wanted the SAS to expire 1 day, 12 hours, 5 minutes, and 6 seconds after it is signed, then you would use the string `1.12:05:06`.
+To create a SAS expiration policy, use the [az storage account update](/cli/azure/storage/account#az-storage-account-update) command, and then set the `--key-exp-days` parameter to the number of days, hours, minutes, and seconds that a SAS token can be active from the time that a SAS is signed. The string that you provide the `--key-exp-days` parameter uses the following format: `<days>.<hours>:<minutes>:<seconds>`. For example, if you wanted the SAS to expire 1 day, 12 hours, 5 minutes, and 6 seconds after it is signed, then you would use the string `1.12:05:06`.
```azurecli-interactive az storage account update \
az storage account update \
``` > [!TIP]
-> You can also set the SAS expiration policy as you create a storage account by setting the `--key-exp-days` parameter of the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command.
+> You can also set the SAS expiration policy as you create a storage account by setting the `--key-exp-days` parameter of the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command.
-To verify that the policy has been applied, call the [az storage account show](/cli/azure/storage/account#az_storage_account_show) command, and use the string `{SasPolicy:sasPolicy}` for the `-query` parameter.
+To verify that the policy has been applied, call the [az storage account show](/cli/azure/storage/account#az-storage-account-show) command, and use the string `{SasPolicy:sasPolicy}` for the `-query` parameter.
```azurecli-interactive az storage account show \
storage Storage Account Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/storage-account-create.md
Connect-AzAccount
To launch Azure Cloud Shell, sign in to the [Azure portal](https://portal.azure.com).
-To log into your local installation of the CLI, run the [az login](/cli/azure/reference-index#az_login) command:
+To log into your local installation of the CLI, run the [az login](/cli/azure/reference-index#az-login) command:
```azurecli-interactive az login
The following table shows which values to use for the `SkuName` and `Kind` param
# [Azure CLI](#tab/azure-cli)
-To create a general-purpose v2 storage account with Azure CLI, first create a new resource group by calling the [az group create](/cli/azure/group#az_group_create) command.
+To create a general-purpose v2 storage account with Azure CLI, first create a new resource group by calling the [az group create](/cli/azure/group#az-group-create) command.
```azurecli-interactive az group create \
az group create \
--location westus ```
-If you're not sure which region to specify for the `--location` parameter, you can retrieve a list of supported regions for your subscription with the [az account list-locations](/cli/azure/account#az_account_list) command.
+If you're not sure which region to specify for the `--location` parameter, you can retrieve a list of supported regions for your subscription with the [az account list-locations](/cli/azure/account#az-account-list) command.
```azurecli-interactive az account list-locations \
az account list-locations \
--out table ```
-Next, create a standard general-purpose v2 storage account with read-access geo-redundant storage by using the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command. Remember that the name of your storage account must be unique across Azure, so replace the placeholder value in brackets with your own unique value:
+Next, create a standard general-purpose v2 storage account with read-access geo-redundant storage by using the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command. Remember that the name of your storage account must be unique across Azure, so replace the placeholder value in brackets with your own unique value:
```azurecli-interactive az storage account create \
Remove-AzStorageAccount -Name <storage-account> -ResourceGroupName <resource-gro
# [Azure CLI](#tab/azure-cli)
-To delete the storage account, use the [az storage account delete](/cli/azure/storage/account#az_storage_account_delete) command:
+To delete the storage account, use the [az storage account delete](/cli/azure/storage/account#az-storage-account-delete) command:
```azurecli-interactive az storage account delete --name <storage-account> --resource-group <resource-group>
storage Storage Account Get Info https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/storage-account-get-info.md
To return the Azure Resource Manager resource ID for a storage account with Powe
# [Azure CLI](#tab/azure-cli)
-To return the Azure Resource Manager resource ID for a storage account with Azure CLI, call the [az storage account show](/cli/azure/storage/account#az_storage_account_show) command and query the resource ID:
+To return the Azure Resource Manager resource ID for a storage account with Azure CLI, call the [az storage account show](/cli/azure/storage/account#az-storage-account-show) command and query the resource ID:
```azurecli az storage account show \
$account.Kind
# [Azure CLI](#tab/azure-cli)
-To view the account type, location, or replication SKU for a storage account with PowerShell, call the [az storage account show](/cli/azure/storage/account#az_storage_account_show) command and query the properties:
+To view the account type, location, or replication SKU for a storage account with PowerShell, call the [az storage account show](/cli/azure/storage/account#az-storage-account-show) command and query the properties:
```azurecli az storage account show \
storage Storage Account Keys Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/storage-account-keys-manage.md
$storageAccountKey = `
### [Azure CLI](#tab/azure-cli)
-To list your account access keys with Azure CLI, call the [az storage account keys list](/cli/azure/storage/account/keys#az_storage_account_keys_list) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values.
+To list your account access keys with Azure CLI, call the [az storage account keys list](/cli/azure/storage/account/keys#az-storage-account-keys-list) command, as shown in the following example. Remember to replace the placeholder values in brackets with your own values.
```azurecli az storage account keys list \
To rotate your storage account access keys with PowerShell:
To rotate your storage account access keys with Azure CLI: 1. Update the connection strings in your application code to reference the secondary access key for the storage account.
-1. Call the [az storage account keys renew](/cli/azure/storage/account/keys#az_storage_account_keys_renew) command to regenerate the primary access key, as shown in the following example:
+1. Call the [az storage account keys renew](/cli/azure/storage/account/keys#az-storage-account-keys-renew) command to regenerate the primary access key, as shown in the following example:
```azurecli az storage account keys renew \
$account.KeyPolicy
### [Azure CLI](#tab/azure-cli)
-To create a key expiration policy with Azure CLI, use the [az storage account update](/cli/azure/storage/account#az_storage_account_update) command and set the `--key-exp-days` parameter to the interval in days until the access key should be rotated.
+To create a key expiration policy with Azure CLI, use the [az storage account update](/cli/azure/storage/account#az-storage-account-update) command and set the `--key-exp-days` parameter to the interval in days until the access key should be rotated.
The `keyCreationTime` property indicates when the account access keys were created or last rotated. Older accounts may have a null value for the `keyCreationTime` property because it has not yet been set. If the `keyCreationTime` property is null, you cannot create a key expiration policy until you rotate the keys. For this reason, it's a good idea to check the `keyCreationTime` property for the storage account before you attempt to set the key expiration policy.
else
fi ```
-You can also set the key expiration policy as you create a storage account by setting the `--key-exp-days` parameter of the [az storage account create](/cli/azure/storage/account#az_storage_account_create) command.
+You can also set the key expiration policy as you create a storage account by setting the `--key-exp-days` parameter of the [az storage account create](/cli/azure/storage/account#az-storage-account-create) command.
-To verify that the policy has been applied, call the [az storage account show](/cli/azure/storage/account#az_storage_account_show) command, and use the string `{KeyPolicy:keyPolicy}` for the `-query` parameter.
+To verify that the policy has been applied, call the [az storage account show](/cli/azure/storage/account#az-storage-account-show) command, and use the string `{KeyPolicy:keyPolicy}` for the `-query` parameter.
```azurecli az storage account show \
storage Storage Auth Abac Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/storage-auth-abac-cli.md
Here is what the condition looks like in code:
## Step 1: Sign in to Azure
-1. Use the [az login](/cli/azure/reference-index#az_login) command and follow the instructions that appear to sign in to your directory as [User Access Administrator](../../role-based-access-control/built-in-roles.md#user-access-administrator) or [Owner](../../role-based-access-control/built-in-roles.md#owner).
+1. Use the [az login](/cli/azure/reference-index#az-login) command and follow the instructions that appear to sign in to your directory as [User Access Administrator](../../role-based-access-control/built-in-roles.md#user-access-administrator) or [Owner](../../role-based-access-control/built-in-roles.md#owner).
```azurecli az login ```
-1. Use [az account show](/cli/azure/account#az_account_show) to get the ID of your subscriptions.
+1. Use [az account show](/cli/azure/account#az-account-show) to get the ID of your subscriptions.
```azurecli az account show
Here is what the condition looks like in code:
## Step 2: Create a user
-1. Use [az ad user create](/cli/azure/ad/user#az_ad_user_create) to create a user or find an existing user. This tutorial uses Chandra as the example.
+1. Use [az ad user create](/cli/azure/ad/user#az-ad-user-create) to create a user or find an existing user. This tutorial uses Chandra as the example.
1. Initialize the variable for the object ID of the user.
You can authorize access to Blob storage from the Azure CLI either with Azure AD
1. Use [az storage container](/cli/azure/storage/container) to create a new blob container within the storage account and set the Public access level to **Private (no anonymous access)**.
-1. Use [az storage blob upload](/cli/azure/storage/blob#az_storage_blob_upload) to upload a text file to the container.
+1. Use [az storage blob upload](/cli/azure/storage/blob#az-storage-blob-upload) to upload a text file to the container.
1. Add the following blob index tag to the text file. For more information, see [Use blob index tags (preview) to manage and find data on Azure Blob Storage](../blobs/storage-blob-index-how-to.md).
You can authorize access to Blob storage from the Azure CLI either with Azure AD
description="Read access to blobs with the tag Project=Cascade" ```
-1. Use [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) to assign the [Storage Blob Data Reader](../../role-based-access-control/built-in-roles.md#storage-blob-data-reader) role with a condition to the user at a resource group scope.
+1. Use [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) to assign the [Storage Blob Data Reader](../../role-based-access-control/built-in-roles.md#storage-blob-data-reader) role with a condition to the user at a resource group scope.
```azurecli az role assignment create --assignee-object-id $userObjectId --scope $scope --role $roleDefinitionId --description "$description" --condition "$condition" --condition-version $conditionVersion
You can authorize access to Blob storage from the Azure CLI either with Azure AD
1. Open a new command window.
-1. Use [az login](/cli/azure/reference-index#az_login) to sign in as Chandra.
+1. Use [az login](/cli/azure/reference-index#az-login) to sign in as Chandra.
```azurecli az login
You can authorize access to Blob storage from the Azure CLI either with Azure AD
blobNameCascade="<blobNameCascade>" ```
-1. Use [az storage blob show](/cli/azure/storage/blob#az_storage_blob_show) to try to read the properties of the file for the Baker project.
+1. Use [az storage blob show](/cli/azure/storage/blob#az-storage-blob-show) to try to read the properties of the file for the Baker project.
```azurecli az storage blob show --account-name $storageAccountName --container-name $containerName --name $blobNameBaker --auth-mode login
You can authorize access to Blob storage from the Azure CLI either with Azure AD
## Step 7: (Optional) Edit the condition
-1. In the other command window, use [az role assignment list](/cli/azure/role/assignment#az_role_assignment_list) to get the role assignment you added.
+1. In the other command window, use [az role assignment list](/cli/azure/role/assignment#az-role-assignment-list) to get the role assignment you added.
```azurecli az role assignment list --assignee $userObjectId --resource-group $resourceGroup
You can authorize access to Blob storage from the Azure CLI either with Azure AD
} ```
-1. Use [az role assignment update](/cli/azure/role/assignment#az_role_assignment_update) to update the condition for the role assignment.
+1. Use [az role assignment update](/cli/azure/role/assignment#az-role-assignment-update) to update the condition for the role assignment.
```azurecli az role assignment update --role-assignment "./path/roleassignment.json"
You can authorize access to Blob storage from the Azure CLI either with Azure AD
## Step 8: Clean up resources
-1. Use [az role assignment delete](/cli/azure/role/assignment#az_role_assignment_delete) to remove the role assignment and condition you added.
+1. Use [az role assignment delete](/cli/azure/role/assignment#az-role-assignment-delete) to remove the role assignment and condition you added.
```azurecli az role assignment delete --assignee $userObjectId --role "$roleDefinitionName" --resource-group $resourceGroup
storage Storage Encryption Key Model Get https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/storage-encryption-key-model-get.md
If the value of the **KeySource** property is `Microsoft.Storage`, then the acco
# [Azure CLI](#tab/cli)
-To check the encryption model for the storage account by using Azure CLI, call the [az storage account show](/cli/azure/storage/account#az_storage_account_show) command, then check the **keySource** property for the account.
+To check the encryption model for the storage account by using Azure CLI, call the [az storage account show](/cli/azure/storage/account#az-storage-account-show) command, then check the **keySource** property for the account.
```azurecli-interactive key_source=$(az storage account show \
storage Storage Network Security https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/common/storage-network-security.md
During the preview you must use either PowerShell or the Azure CLI to enable thi
Replace the `<subscription-id>` placeholder value with the ID of your subscription.
-3. Register the `AllowGlobalTagsForStorage` feature by using the [az feature register](/cli/azure/feature#az_feature_register) command.
+3. Register the `AllowGlobalTagsForStorage` feature by using the [az feature register](/cli/azure/feature#az-feature-register) command.
```azurecli az feature register --namespace Microsoft.Network --name AllowGlobalTagsForStorage
During the preview you must use either PowerShell or the Azure CLI to enable thi
> [!NOTE] > The registration process might not complete immediately. Make sure to verify that the feature is registered before using it.
-4. To verify that the registration is complete, use the [az feature](/cli/azure/feature#az_feature_show) command.
+4. To verify that the registration is complete, use the [az feature](/cli/azure/feature#az-feature-show) command.
```azurecli az feature show --namespace Microsoft.Network --name AllowGlobalTagsForStorage
storage File Sync Deployment Guide https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/file-sync/file-sync-deployment-guide.md
We strongly recommend that you read [Planning for an Azure Files deployment](../
1. Sign in.
- Sign in using the [az login](/cli/azure/reference-index#az_login) command if you're using a local install of the CLI.
+ Sign in using the [az login](/cli/azure/reference-index#az-login) command if you're using a local install of the CLI.
```azurecli az login
New-AzStorageSyncCloudEndpoint `
# [Azure CLI](#tab/azure-cli)
-Use the [az storagesync sync-group](/cli/azure/storagesync/sync-group#az_storagesync_sync_group_create) command to create a new sync group. To default a resource group for all CLI commands, use [az configure](/cli/azure/reference-index#az_configure).
+Use the [az storagesync sync-group](/cli/azure/storagesync/sync-group#az-storagesync-sync-group-create) command to create a new sync group. To default a resource group for all CLI commands, use [az configure](/cli/azure/reference-index#az-configure).
```azurecli az storagesync sync-group create --resource-group myResourceGroupName \
az storagesync sync-group create --resource-group myResourceGroupName \
--storage-sync-service myStorageSyncServiceName \ ```
-Use the [az storagesync sync-group cloud-endpoint](/cli/azure/storagesync/sync-group/cloud-endpoint#az_storagesync_sync_group_cloud_endpoint_create) command to create a new cloud endpoint.
+Use the [az storagesync sync-group cloud-endpoint](/cli/azure/storagesync/sync-group/cloud-endpoint#az-storagesync-sync-group-cloud-endpoint-create) command to create a new cloud endpoint.
```azurecli az storagesync sync-group cloud-endpoint create --resource-group myResourceGroup \
storage File Sync Firewall And Proxy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/file-sync/file-sync-firewall-and-proxy.md
If you are using Azure File Sync on-premises, you can use the service tag API to
- The service tag discovery API (preview) allows programmatic retrieval of the current list of service tags. In preview, the service tag discovery API may return information that's less current than information returned from the JSON documents published on the Microsoft Download Center. You can use the API surface based on your automation preference: - [REST API](/rest/api/virtualnetwork/servicetags/list) - [Azure PowerShell](/powershell/module/az.network/Get-AzNetworkServiceTag)
- - [Azure CLI](/cli/azure/network#az_network_list_service_tags)
+ - [Azure CLI](/cli/azure/network#az-network-list-service-tags)
Because the service tag discovery API is not updated as frequently as the JSON documents published to the Microsoft Download Center, we recommend using the JSON document to update your on-premises firewall's allow list. This can be done as follows:
storage File Sync Networking Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/file-sync/file-sync-networking-overview.md
If you are using Azure File Sync on-premises, you can use the service tag API to
- The service tag discovery API (preview) allows programmatic retrieval of the current list of service tags. In preview, the service tag discovery API may return information that's less current than information returned from the JSON documents published on the Microsoft Download Center. You can use the API surface based on your automation preference: - [REST API](/rest/api/virtualnetwork/servicetags/list) - [Azure PowerShell](/powershell/module/az.network/Get-AzNetworkServiceTag)
- - [Azure CLI](/cli/azure/network#az_network_list_service_tags)
+ - [Azure CLI](/cli/azure/network#az-network-list-service-tags)
To learn more about how to use the service tag API to retrieve the addresses of your services, see [Allow list for Azure File Sync IP addresses](file-sync-firewall-and-proxy.md#allow-list-for-azure-file-sync-ip-addresses).
storage Storage Files Identity Auth Active Directory Domain Service Enable https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/files/storage-files-identity-auth-active-directory-domain-service-enable.md
Set-AzStorageAccount -ResourceGroupName "<resource-group-name>" `
To enable Azure AD authentication over SMB with Azure CLI, install the latest CLI version (Version 2.0.70 or newer). For more information about installing Azure CLI, see [Install the Azure CLI](/cli/azure/install-azure-cli).
-To create a new storage account, call [az storage account create](/cli/azure/storage/account#az_storage_account_create), and set the `--enable-files-aadds` argument. In the following example, remember to replace the placeholder values with your own values. (If you were using the previous preview module, the parameter for feature enablement is **file-aad**.)
+To create a new storage account, call [az storage account create](/cli/azure/storage/account#az-storage-account-create), and set the `--enable-files-aadds` argument. In the following example, remember to replace the placeholder values with your own values. (If you were using the previous preview module, the parameter for feature enablement is **file-aad**.)
```azurecli-interactive # Create a new storage account
storage Storage Files Identity Auth Active Directory Enable https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/files/storage-files-identity-auth-active-directory-enable.md
When you enable AD DS for Azure file shares over SMB, your AD DS-joined machines
To help you setup Azure Files AD authentication for some common use cases, we published two videos with step by step guidance for the following scenarios:
-| Replacing on-premises file servers with Azure Files (including setup on private link for files and AD authentication) | Using Azure Files as the profile container for Windows Virtual Desktop (including setup on AD authentication and FsLogix configuration) |
+| Replacing on-premises file servers with Azure Files (including setup on private link for files and AD authentication) | Using Azure Files as the profile container for Azure Virtual Desktop (including setup on AD authentication and FSLogix configuration) |
|-|-| | [![Screencast of the replacing on-premises file servers video - click to play.](./media/storage-files-identity-auth-active-directory-enable/replace-on-prem-server-thumbnail.png)](https://www.youtube.com/watch?v=jd49W33DxkQ) | [![Screencast of the Using Azure Files as the profile container video - click to play.](./media/storage-files-identity-auth-active-directory-enable/files-ad-ds-fslogix-thumbnail.png)](https://www.youtube.com/watch?v=9S5A1IJqfOQ) |
storage Storage Files Introduction https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/files/storage-files-introduction.md
Azure Files offers fully managed file shares in the cloud that are accessible vi
Here are some videos on the common use cases of Azure Files: * [Replace your file server with a serverless Azure file share](https://sec.ch9.ms/ch9/3358/0addac01-3606-4e30-ad7b-f195f3ab3358/ITOpsTalkAzureFiles_high.mp4)
-* [Getting started with FSLogix profile containers on Azure Files in Windows Virtual Desktop leveraging AD authentication](https://www.youtube.com/embed/9S5A1IJqfOQ)
+* [Getting started with FSLogix profile containers on Azure Files in Azure Virtual Desktop leveraging AD authentication](https://www.youtube.com/embed/9S5A1IJqfOQ)
## Why Azure Files is useful Azure file shares can be used to:
storage Storage Files Monitoring Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/files/storage-files-monitoring-reference.md
Title: Azure Files monitoring data reference | Microsoft Docs description: Log and metrics reference for monitoring data from Azure Files. --++ Last updated 10/02/2020 -+
storage Storage How To Create File Share https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/files/storage-how-to-create-file-share.md
New-AzRmStorageShare `
``` # [Azure CLI](#tab/azure-cli)
-You can create an Azure file share with the [`az storage share-rm create`](/cli/azure/storage/share-rm#az_storage_share_rm_create) command. The following Azure CLI commands assume you have set the variables `$resourceGroupName` and `$storageAccountName` as defined above in the creating a storage account with Azure CLI section.
+You can create an Azure file share with the [`az storage share-rm create`](/cli/azure/storage/share-rm#az-storage-share-rm-create) command. The following Azure CLI commands assume you have set the variables `$resourceGroupName` and `$storageAccountName` as defined above in the creating a storage account with Azure CLI section.
> [!Important] > For premium file shares, the `--quota` parameter refers to the provisioned size of the file share. The provisioned size of the file share is the amount you will be billed for, regardless of usage. Standard file shares are billed based on usage rather than provisioned size.
storage Storage How To Use Files Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/files/storage-how-to-use-files-portal.md
New-AzRmStorageShare `
# [Azure CLI](#tab/azure-cli)
-Now that you've created a storage account, you can create your first Azure file share. Create file shares by using the [az storage share-rm create](/cli/azure/storage/share-rm#az_storage_share_rm_create) command. This example creates an Azure file share named **myshare**:
+Now that you've created a storage account, you can create your first Azure file share. Create file shares by using the [az storage share-rm create](/cli/azure/storage/share-rm#az-storage-share-rm-create) command. This example creates an Azure file share named **myshare**:
```azurecli-interactive shareName="myshare"
storage Assign Azure Role Data Access https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/queues/assign-azure-role-data-access.md
For information about assigning roles with PowerShell at the subscription, resou
# [Azure CLI](#tab/azure-cli)
-To assign an Azure role to a security principal, use the [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) command. The format of the command can differ based on the scope of the assignment. The format of the command can differ based on the scope of the assignment. In order to run the command, you must have a role that includes **Microsoft.Authorization/roleAssignments/write** permissions assigned to you at the corresponding scope or above.
+To assign an Azure role to a security principal, use the [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command. The format of the command can differ based on the scope of the assignment. The format of the command can differ based on the scope of the assignment. In order to run the command, you must have a role that includes **Microsoft.Authorization/roleAssignments/write** permissions assigned to you at the corresponding scope or above.
To assign a role scoped to a queue, specify a string containing the scope of the queue for the `--scope` parameter. The scope for a queue is in the form:
storage Authorize Data Operations Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/queues/authorize-data-operations-cli.md
The following example shows how to create a queue from Azure CLI using your Azur
> [!IMPORTANT] > Azure role assignments may take a few minutes to propagate.
-1. Call the [`az storage queue create`](/cli/azure/storage/queue#az_storage_queue_create) command with the `--auth-mode` parameter set to `login` to create the queue using your Azure AD credentials. Remember to replace placeholder values in angle brackets with your own values:
+1. Call the [`az storage queue create`](/cli/azure/storage/queue#az-storage-queue-create) command with the `--auth-mode` parameter set to `login` to create the queue using your Azure AD credentials. Remember to replace placeholder values in angle brackets with your own values:
```azurecli az storage queue create \
storage Monitor Queue Storage Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/queues/monitor-queue-storage-reference.md
Title: Azure Queue Storage monitoring data reference description: Log and metrics reference for monitoring data from Azure Queue Storage. -+ Last updated 04/20/2021 --++
storage Monitor Queue Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/queues/monitor-queue-storage.md
For more information, see [Stream Azure resource logs to Log Analytics workspace
If you choose to archive your logs to a storage account, you'll pay for the volume of logs that are sent to the storage account. For specific pricing, see the **Platform Logs** section of the [Azure Monitor pricing](https://azure.microsoft.com/pricing/details/monitor/#platform-logs) page.
-Enable logs by using the [`az monitor diagnostic-settings create`](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create) command.
+Enable logs by using the [`az monitor diagnostic-settings create`](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create) command.
```azurecli-interactive az monitor diagnostic-settings create --name <setting-name> --storage-account <storage-account-name> --resource <storage-service-resource-id> --resource-group <resource-group> --logs '[{"category": <operations>, "enabled": true}]'
For a description of each parameter, see [Archive resource logs via the Azure CL
If you choose to stream your logs to an event hub, you'll pay for the volume of logs that are sent to the event hub. For specific pricing, see the **Platform Logs** section of the [Azure Monitor pricing](https://azure.microsoft.com/pricing/details/monitor/#platform-logs) page.
-Enable logs by using the [`az monitor diagnostic-settings create`](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create) command.
+Enable logs by using the [`az monitor diagnostic-settings create`](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create) command.
```azurecli-interactive az monitor diagnostic-settings create --name <setting-name> --event-hub <event-hub-name> --event-hub-rule <event-hub-namespace-and-key-name> --resource <storage-account-resource-id> --logs '[{"category": <operations>, "enabled": true}]'
For a description of each parameter, see [Stream data to Event Hubs via Azure CL
#### Send logs to Log Analytics
-Enable logs by using the [`az monitor diagnostic-settings create`](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create) command.
+Enable logs by using the [`az monitor diagnostic-settings create`](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create) command.
```azurecli-interactive az monitor diagnostic-settings create --name <setting-name> --workspace <log-analytics-workspace-resource-id> --resource <storage-account-resource-id> --logs '[{"category": <category name>, "enabled": true}]'
Get-AzMetric -ResourceId $resourceId -MetricName Transactions -TimeGrain 01:00:0
#### List the account-level metric definition
-You can list the metric definition of your storage account or the Queue Storage service. Use the [`az monitor metrics list-definitions`](/cli/azure/monitor/metrics#az_monitor_metrics_list_definitions) command.
+You can list the metric definition of your storage account or the Queue Storage service. Use the [`az monitor metrics list-definitions`](/cli/azure/monitor/metrics#az-monitor-metrics-list-definitions) command.
In this example, replace the `<resource-ID>` placeholder with the resource ID of the entire storage account or the resource ID of the queue. You can find these resource IDs on the **Properties** pages of your storage account in the Azure portal.
In this example, replace the `<resource-ID>` placeholder with the resource ID of
#### Read account-level metric values
-You can read the metric values of your storage account or the Queue Storage service. Use the [`az monitor metrics list`](/cli/azure/monitor/metrics#az_monitor_metrics_list) command.
+You can read the metric values of your storage account or the Queue Storage service. Use the [`az monitor metrics list`](/cli/azure/monitor/metrics#az-monitor-metrics-list) command.
```azurecli-interactive az monitor metrics list --resource <resource-ID> --metric "UsedCapacity" --interval PT1H
You can read the metric values of your storage account or the Queue Storage serv
#### Reading metric values with dimensions
-When a metric supports dimensions, you can read metric values and filter them by using dimension values. Use the [az monitor metrics list](/cli/azure/monitor/metrics#az_monitor_metrics_list) command.
+When a metric supports dimensions, you can read metric values and filter them by using dimension values. Use the [az monitor metrics list](/cli/azure/monitor/metrics#az-monitor-metrics-list) command.
```azurecli az monitor metrics list --resource <resource-ID> --metric "Transactions" --interval PT1H --filter "ApiName eq 'GetMessages' " --aggregation "Total"
storage Azure File Migration Program Solutions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/solution-integration/validated-partners/data-management/azure-file-migration-program-solutions.md
+
+ Title: Comparison of migration tools in Azure File Migration Program
+description: Basic functionality and comparison between migration tools supported by Azure File Migration Program
+++ Last updated : 03/24/2022++++
+# Comparison Matrix for Azure File Migration Program participants
+
+The following comparison matrix shows basic functionality, and comparison of migration tools that participate in [Azure File Migration Program](https://azure.microsoft.com/blog/migrating-your-files-to-azure-has-never-been-easier/).
+
+## Supported Azure services
+
+| | [Data Dynamics](https://www.datadynamicsinc.com/) | [Komprise](https://www.komprise.com/) |
+| |||
+| **Solution name** | [Data Mobility and Migration](https://azuremarketplace.microsoft.com/marketplace/apps/datadynamicsinc1581991927942.vm_4?tab=PlansAndPrice) | [Elastic Data Migration](https://azuremarketplace.microsoft.com/marketplace/apps/komprise_inc.intelligent_data_management?tab=OverviewΓÇï) |
+| **Support provided by** | [Data Dynamics](https://www.datdynsupport.com/)<sub>1</sub> | [Komprise](https://komprise.freshdesk.com/support/home)<sub>1</sub> |
+| **Azure Files support (all tiers)** | Yes | Yes |
+| **Azure NetApp Files support** | Yes | Yes |
+| **Azure Blob Hot / Cool support** | Yes | Yes |
+| **Azure Blob Archive tier support** | No | Yes |
+| **Azure Data Lake Storage support** | Yes | Yes |
+| **Supported Sources** | Any NAS, and S3 | Any NAS, Cloud File Storage, or S3 |
+
+## Supported protocols (source / destination)
+
+| | [Data Dynamics](https://www.datadynamicsinc.com/) | [Komprise](https://www.komprise.com/) |
+| |||
+| **Solution name** | [Data Mobility and Migration](https://azuremarketplace.microsoft.com/marketplace/apps/datadynamicsinc1581991927942.vm_4?tab=PlansAndPrice) | [Elastic Data Migration](https://azuremarketplace.microsoft.com/marketplace/apps/komprise_inc.intelligent_data_management?tab=OverviewΓÇï) |
+| **SMB 2.1** | Yes | Yes |
+| **SMB 3.0** | Yes | Yes |
+| **SMB 3.1** | Yes | Yes |
+| **NFS v3** | Yes | Yes |
+| **NFS v4.1** | No | Yes |
+| **Blob REST API** | Yes | Yes |
+| **S3** | Yes | Yes |
+
+## Extended features
+
+| | [Data Dynamics](https://www.datadynamicsinc.com/) | [Komprise](https://www.komprise.com/) |
+| |||
+| **Solution name** | [Data Mobility and Migration](https://azuremarketplace.microsoft.com/marketplace/apps/datadynamicsinc1581991927942.vm_4?tab=PlansAndPrice) | [Elastic Data Migration](https://azuremarketplace.microsoft.com/marketplace/apps/komprise_inc.intelligent_data_management?tab=OverviewΓÇï) |
+| **UID / SID remapping** | Yes | No |
+| **Protocol ACL remapping** | No | No |
+| **DFS Support** | Yes | Yes |
+| **Throttling support** | Yes | Yes |
+| **File pattern exclusions** | Yes | Yes |
+| **Support for selective file attributes** | Yes | Yes |
+| **Delete propagations** | Yes | Yes |
+| **Follow NTFS junctions** | No | Yes |
+| **Override SMB Owner and Group Owner** | Yes | No |
+| **Chain of custody reporting** | Yes | Yes |
+| **Support for alternate data streams** | Yes | No |
+| **Scheduling for migration** | Yes | Yes |
+| **Preserving ACL** | Yes | Yes |
+| **DACL support** | Yes | Yes |
+| **SACL support** | Yes | No |
+| **Preserving access time** | Yes | Yes |
+| **Preserving modified time** | Yes | Yes |
+| **Preserving creation time** | Yes | Yes |
+| **Azure Data Box support** | Yes | No |
+| **Migration of snapshots** | Yes | No |
+| **Symbolic link support** | No | Yes |
+| **Hard link support** | Yes | Yes |
+| **Support for open / locked files** | Yes | Yes |
+| **Incremental migration** | Yes | Yes |
+| **Switchover support** | Yes | No (manual only) |
+| **[Other features](#other-features)** | [Link](#data-dynamics-data-mobility-and-migration) | [Link](#komprise-elastic-data-migration) |
+
+## Assessment and reporting
+
+| | [Data Dynamics](https://www.datadynamicsinc.com/) | [Komprise](https://www.komprise.com/) |
+| |||
+| **Solution name** | [Data Mobility and Migration](https://azuremarketplace.microsoft.com/marketplace/apps/datadynamicsinc1581991927942.vm_4?tab=PlansAndPrice) | [Elastic Data Migration](https://azuremarketplace.microsoft.com/marketplace/apps/komprise_inc.intelligent_data_management?tab=OverviewΓÇï) |
+| **Capacity** | Yes | Yes |
+| **# of files / folders** | Yes | Yes |
+| **Age distribution over time** | Yes | Yes |
+| **Access time** | Yes | Yes |
+| **Modified time** | Yes | Yes |
+| **Creation time** | Yes | Yes |
+| **Per file / object report status** | Yes | Yes |
+
+## Licensing
+
+| | [Data Dynamics](https://www.datadynamicsinc.com/) | [Komprise](https://www.komprise.com/) |
+| |||
+| **Solution name** | [Data Mobility and Migration](https://azuremarketplace.microsoft.com/marketplace/apps/datadynamicsinc1581991927942.vm_4?tab=PlansAndPrice) | [Elastic Data Migration](https://azuremarketplace.microsoft.com/marketplace/apps/komprise_inc.intelligent_data_management?tab=OverviewΓÇï) |
+| **BYOL** | Yes | Yes |
+| **Azure Commitment** | Yes | Yes |
+
+## Other features
+
+### Data Dynamics Data Mobility and Migration
+
+- Hash validation
+
+### Komprise Elastic Data Migration
+
+- Project/directory based migrations
+- Migration pre-checks with analytics
+- Migration planning with analytics
+- Assessment / reporting: File types, file size, project based
+- Assessment / reporting: Custom metadata-based searches
+- Simple UI migration management
+- API access to automate large migration jobs
+- Automatic retry of failures
+- Access time-based analytics for Azure Blob Storage, and S3
+- Tagging support
+- Support 24 x 7 x 365
+- In-product support via chat built-in
+- Hash validation
+
+> [!NOTE]
+> List was last verified on February, 21st 2022.
+
+## Next steps
+
+- [Azure File Migration Program](https://www.microsoft.com/us-partner-blog/2022/02/23/new-azure-file-migration-program-streamlines-unstructured-data-migration/)
+- [Storage migration overview](../../../common/storage-migration-overview.md)
+- [Choose an Azure solution for data transfer](../../../common/storage-choose-data-transfer-solution.md?toc=%2fazure%2fstorage%2fblobs%2ftoc.json)
+- [Migrate to Azure file shares](../../../files/storage-files-migration-overview.md)
+- [Migrate to Data Lake Storage with WANdisco LiveData Platform for Azure](../../../blobs/migrate-gen2-wandisco-live-data-platform.md)
+- [Copy or move data to Azure Storage with AzCopy](../../../common/storage-use-azcopy-v10.md)
+- [Migrate large datasets to Azure Blob Storage with AzReplicate (sample application)](/samples/azure/azreplicate/azreplicate/)
+
+> [!IMPORTANT]
+> <sub>1</sub> Support provided by ISV, not Microsoft
+
storage Isv File Services https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/solution-integration/validated-partners/primary-secondary-storage/isv-file-services.md
This article compares several ISV solutions that provide files services in Azure
| Solution | Overview | Example use cases | | -- | -- | -- |
-| **Nasuni** | **UniFS** is an enterprise file service with a simpler, low-cost, cloud alternative built on Microsoft Azure | - Primary file storage <br> - Departmental file shares <br> - Centralized file management <br> - multi-site collaboration with global file locking <br> - Windows Virtual Desktop <br> - Remote work/VDI file shares |
+| **Nasuni** | **UniFS** is an enterprise file service with a simpler, low-cost, cloud alternative built on Microsoft Azure | - Primary file storage <br> - Departmental file shares <br> - Centralized file management <br> - multi-site collaboration with global file locking <br> - Azure Virtual Desktop <br> - Remote work/VDI file shares |
| **NetApp** | **Cloud Volumes ONTAP** optimizes your cloud storage costs, and performance while enhancing data protection, security, and compliance. Includes enterprise-grade data management, availability, and durability | - Business applications <br> - Relational and NoSQL databases <br> - Big Data & Analytics <br> - Persistent data for containers <br> - CI/CD pipelines <br> - Disaster recovery for on-premises NetApp solutions | | **Panzura**| **CloudFS** is an enterprise global file system with added resiliency and high-performance. Offers ransomware protection. | - Simplified legacy storage replacement <br> - Backup and disaster recovery, with granular recovery ability <br> - Cloud native access to unstructured data for Analytics, AI/ML. <br> - Multi-site file collaboration, with automatic file locking and real time global file consistency <br> - Global remote work with cloud VDI <br> - Accelerated cloud migration for legacy workloads | | **Qumulo** | **Qumulo** on Azure offers multiple petabytes (PiB) of storage capacity, and up to 20 GB/s of performance per file system. Windows (SMB) and Linux (NFS) are both natively supported, and Qumulo provides onboard real-time workload analytics. | ΓÇô Primary file storage for High Performance Compute, Media & Entertainment, Genomics, Electronic design, and Financial modeling. |
storage Assign Azure Role Data Access https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/tables/assign-azure-role-data-access.md
For information about assigning roles with PowerShell at the subscription, resou
# [Azure CLI](#tab/azure-cli)
-To assign an Azure role to a security principal, use the [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) command. The format of the command can differ based on the scope of the assignment. The format of the command can differ based on the scope of the assignment. In order to run the command, you must have a role that includes **Microsoft.Authorization/roleAssignments/write** permissions assigned to you at the corresponding scope or above.
+To assign an Azure role to a security principal, use the [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command. The format of the command can differ based on the scope of the assignment. The format of the command can differ based on the scope of the assignment. In order to run the command, you must have a role that includes **Microsoft.Authorization/roleAssignments/write** permissions assigned to you at the corresponding scope or above.
To assign a role scoped to a table, specify a string containing the scope of the table for the `--scope` parameter. The scope for a table is in the form:
storage Monitor Table Storage Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/tables/monitor-table-storage-reference.md
Title: Azure Table storage monitoring data reference | Microsoft Docs description: Log and metrics reference for monitoring data from Azure Table storage. --++ Last updated 10/02/2020 -+
storage Monitor Table Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/storage/tables/monitor-table-storage.md
For more information, see [Stream Azure Resource Logs to Log Analytics workspace
If you choose to archive your logs to a storage account, you'll pay for the volume of logs that are sent to the storage account. For specific pricing, see the **Platform Logs** section of the [Azure Monitor pricing](https://azure.microsoft.com/pricing/details/monitor/#platform-logs) page.
-Enable logs by using the [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create) command.
+Enable logs by using the [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create) command.
```azurecli-interactive az monitor diagnostic-settings create --name <setting-name> --storage-account <storage-account-name> --resource <storage-service-resource-id> --resource-group <resource-group> --logs '[{"category": <operations>, "enabled": true}]'
Here's an example:
If you choose to stream your logs to an event hub, you'll pay for the volume of logs that are sent to the event hub. For specific pricing, see the **Platform Logs** section of the [Azure Monitor pricing](https://azure.microsoft.com/pricing/details/monitor/#platform-logs) page.
-Enable logs by using the [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create) command.
+Enable logs by using the [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create) command.
```azurecli-interactive az monitor diagnostic-settings create --name <setting-name> --event-hub <event-hub-name> --event-hub-rule <event-hub-namespace-and-key-name> --resource <storage-account-resource-id> --logs '[{"category": <operations>, "enabled": true}]'
Here's an example:
#### Send logs to Log Analytics
-Enable logs by using the [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create) command.
+Enable logs by using the [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create) command.
```azurecli-interactive az monitor diagnostic-settings create --name <setting-name> --workspace <log-analytics-workspace-resource-id> --resource <storage-account-resource-id> --logs '[{"category": <category name>, "enabled": true}]'
Get-AzMetric -ResourceId $resourceId -MetricName Transactions -TimeGrain 01:00:0
#### List the account-level metric definition
-You can list the metric definition of your storage account or the Table storage service. Use the [az monitor metrics list-definitions](/cli/azure/monitor/metrics#az_monitor_metrics_list_definitions) command.
+You can list the metric definition of your storage account or the Table storage service. Use the [az monitor metrics list-definitions](/cli/azure/monitor/metrics#az-monitor-metrics-list-definitions) command.
In this example, replace the `<resource-ID>` placeholder with the resource ID of the entire storage account or the resource ID of the Table storage service. You can find these resource IDs on the **Properties** pages of your storage account in the Azure portal.
In this example, replace the `<resource-ID>` placeholder with the resource ID of
#### Read account-level metric values
-You can read the metric values of your storage account or the Table storage service. Use the [az monitor metrics list](/cli/azure/monitor/metrics#az_monitor_metrics_list) command.
+You can read the metric values of your storage account or the Table storage service. Use the [az monitor metrics list](/cli/azure/monitor/metrics#az-monitor-metrics-list) command.
```azurecli-interactive az monitor metrics list --resource <resource-ID> --metric "UsedCapacity" --interval PT1H
You can read the metric values of your storage account or the Table storage serv
#### Reading metric values with dimensions
-When a metric supports dimensions, you can read metric values and filter them by using dimension values. Use the [az monitor metrics list](/cli/azure/monitor/metrics#az_monitor_metrics_list) command.
+When a metric supports dimensions, you can read metric values and filter them by using dimension values. Use the [az monitor metrics list](/cli/azure/monitor/metrics#az-monitor-metrics-list) command.
```azurecli az monitor metrics list --resource <resource-ID> --metric "Transactions" --interval PT1H --filter "ApiName eq 'QueryEntities' " --aggregation "Total"
stream-analytics Machine Learning Udf https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/stream-analytics/machine-learning-udf.md
Previously updated : 03/23/2022 Last updated : 03/24/2022 # Integrate Azure Stream Analytics with Azure Machine Learning
Complete the following steps before you add a machine learning model as a functi
You can add Azure Machine Learning functions to your Stream Analytics job directly from the Azure portal or Visual Studio Code.
+> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE4RMir]
+ ### Azure portal 1. Navigate to your Stream Analytics job in the Azure portal, and select **Functions** under **Job topology**. Then, select **Azure Machine Learning Service** from the **+ Add** dropdown menu.
You can add Azure Machine Learning functions to your Stream Analytics job direct
![Configure Azure Machine Learning UDF](./media/machine-learning-udf/configure-azure-machine-learning-udf.png)
-### Visual Studio Code
-
-1. Open your Stream Analytics project in Visual Studio Code and right-click the **Functions** folder. Then, choose **Add Function**. Select **Machine Learning UDF** from the dropdown list.
-
- :::image type="content" source="media/machine-learning-udf/visual-studio-code-machine-learning-udf-add-function.png" alt-text="Add UDF in VS Code":::
-
- :::image type="content" source="media/machine-learning-udf/visual-studio-code-machine-learning-udf-add-function-2.png" alt-text="Add Azure Machine Learning UDF in VS Code":::
-
-2. Enter the function name and and fill in the settings in the configuration file by using **Select from your subscriptions** in CodeLens.
-
- :::image type="content" source="media/machine-learning-udf/visual-studio-code-machine-learning-udf-function-name.png" alt-text="Select Azure Machine Learning UDF in VS Code":::
-
- :::image type="content" source="media/machine-learning-udf/visual-studio-code-machine-learning-udf-configure-settings.png" alt-text="Configure Azure Machine Learning UDF in VS Code":::
- The following table describes each property of Azure Machine Learning Service functions in Stream Analytics. |Property|Description|
If your input data sent to the ML UDF is inconsistent with the schema that is ex
- Validate input to your ML UDF is not null - Validate the type of every field that is an input to your ML UDF to ensure it matches what the endpoint expects - ## Pass multiple input parameters to the UDF Most common examples of inputs to machine learning models are numpy arrays and DataFrames. You can create an array using a JavaScript UDF, and create a JSON-serialized DataFrame using the `WITH` clause.
stream-analytics Quick Create Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/stream-analytics/quick-create-azure-cli.md
In this quickstart, you use the Azure CLI to define a Stream Analytics job that
- Create a resource group. All Azure resources must be deployed into a resource group. Resource groups allow you to organize and manage related Azure resources.
- For this quickstart, create a resource group named *streamanalyticsrg* in the *eastus* location with the following [az group create](/cli/azure/group#az_group_create) command:
+ For this quickstart, create a resource group named *streamanalyticsrg* in the *eastus* location with the following [az group create](/cli/azure/group#az-group-create) command:
```azurecli az group create --name streamanalyticsrg --location eastus
Before you define the Stream Analytics job, prepare the data that's used for the
The following Azure CLI code blocks are commands that prepare the input data required by the job. Review the sections to understand the code.
-1. Create an IoT Hub using the [az iot hub create](/cli/azure/iot/hub#az_iot_hub_create) command. This example creates an IoT Hub called **MyASAIoTHub**. Because IoT Hub names are unique, you need to come up with your own IoT Hub name. Set the SKU to F1 to use the free tier if it is available with your subscription. If not, choose the next lowest tier.
+1. Create an IoT Hub using the [az iot hub create](/cli/azure/iot/hub#az-iot-hub-create) command. This example creates an IoT Hub called **MyASAIoTHub**. Because IoT Hub names are unique, you need to come up with your own IoT Hub name. Set the SKU to F1 to use the free tier if it is available with your subscription. If not, choose the next lowest tier.
```azurecli az iot hub create --name "MyASAIoTHub" --resource-group streamanalyticsrg --sku S1
The following Azure CLI code blocks are commands that prepare the input data req
az iot hub show-connection-string --hub-name "MyASAIoTHub" ```
-2. Add a device to IoT Hub using the [az iothub device-identity create](/cli/azure/iot/hub/device-identity#az_iot_hub_device_identity_create) command. This example creates a device called **MyASAIoTDevice**.
+2. Add a device to IoT Hub using the [az iothub device-identity create](/cli/azure/iot/hub/device-identity#az-iot-hub-device-identity-create) command. This example creates a device called **MyASAIoTDevice**.
```azurecli az iot hub device-identity create --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice" ```
-3. Get the device connection string using the [az iot hub device-identity show-connection-string](/cli/azure/iot/hub/device-identity#az_iot_hub_device_identity_show_connection_string) command. Copy the entire connection string and save it for when you create the Raspberry Pi simulator.
+3. Get the device connection string using the [az iot hub device-identity show-connection-string](/cli/azure/iot/hub/device-identity#az-iot-hub-device-identity-show-connection-string) command. Copy the entire connection string and save it for when you create the Raspberry Pi simulator.
```azurecli az iot hub device-identity show-connection-string --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice" --output table
The following Azure CLI code blocks create a blob storage account that's used fo
The following Azure CLI code blocks create a Stream Analytics job. Review the sections to understand the code
-1. Create a Stream Analytics job with the [az stream-analytics job create](/cli/azure/stream-analytics/job#az_stream_analytics_job_create) command.
+1. Create a Stream Analytics job with the [az stream-analytics job create](/cli/azure/stream-analytics/job#az-stream-analytics-job-create) command.
```azurecli az stream-analytics job create \
az stream-analytics job create \
## Configure input to the job
-Add an input to your job by using the [az stream-analytics input](/cli/azure/stream-analytics/input#az_stream_analytics_input_create) cmdlet. This cmdlet takes the job name, job input name, resource group name, and the job input definition as parameters. The job input definition is a JSON file that contains the properties required to configure the job's input. In this example, you'll create an IoT Hub as an input.
+Add an input to your job by using the [az stream-analytics input](/cli/azure/stream-analytics/input#az-stream-analytics-input-create) cmdlet. This cmdlet takes the job name, job input name, resource group name, and the job input definition as parameters. The job input definition is a JSON file that contains the properties required to configure the job's input. In this example, you'll create an IoT Hub as an input.
On your local machine, create a file named `datasource.json` and add the following JSON data to it. Make sure to replace the value for `sharedAccessPolicyKey` with the `SharedAccessKey` portion of the IoT Hub connection string you saved in a previous section.
az stream-analytics input create \
## Configure output to the job
-Add an output to your job by using the [az stream-analytics output create](/cli/azure/stream-analytics/output#az_stream_analytics_output_create) cmdlet. This cmdlet takes the job name, job output name, resource group name, and the job output definition as parameters. The job output definition is a JSON file that contains the properties required to configure job's output. This example uses blob storage as output.
+Add an output to your job by using the [az stream-analytics output create](/cli/azure/stream-analytics/output#az-stream-analytics-output-create) cmdlet. This cmdlet takes the job name, job output name, resource group name, and the job output definition as parameters. The job output definition is a JSON file that contains the properties required to configure job's output. This example uses blob storage as output.
On your local machine, create a file named `datasink.json`, and add the following JSON data to it. Make sure to replace the value for `accountKey` with your storage account's access key that is the value stored in $storageAccountKey value.
az stream-analytics output create \
## Define the transformation query
-Add a transformation your job by using the [az stream-analytics transformation create](/cli/azure/stream-analytics/transformation#az_stream_analytics_transformation_create) cmdlet. This cmdlet takes the job name, job transformation name, resource group name, and the job transformation definition as parameters.
+Add a transformation your job by using the [az stream-analytics transformation create](/cli/azure/stream-analytics/transformation#az-stream-analytics-transformation-create) cmdlet. This cmdlet takes the job name, job transformation name, resource group name, and the job transformation definition as parameters.
Run the `az stream-analytics transformation create` cmdlet.
az stream-analytics transformation create \
## Start the Stream Analytics job and check the output
-Start the job by using the [az stream-analytics job start](/cli/azure/stream-analytics/job#az_stream_analytics_job_start) cmdlet. This cmdlet takes the job name, resource group name, output start mode, and start time as parameters. `OutputStartMode` accepts values of `JobStartTime`, `CustomTime`, or `LastOutputEventTime`.
+Start the job by using the [az stream-analytics job start](/cli/azure/stream-analytics/job#az-stream-analytics-job-start) cmdlet. This cmdlet takes the job name, resource group name, output start mode, and start time as parameters. `OutputStartMode` accepts values of `JobStartTime`, `CustomTime`, or `LastOutputEventTime`.
After you run the following cmdlet, it returns `True` as output if the job starts. In the storage container, an output folder is created with the transformed data.
stream-analytics Stream Analytics Quick Create Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/stream-analytics/stream-analytics-quick-create-powershell.md
The following Azure CLI code block does many commands to prepare the input data
az account set --subscription "<your subscription>" ```
-2. Create an IoT Hub using the [az iot hub create](/cli/azure/iot/hub#az_iot_hub_create) command. This example creates an IoT Hub called **MyASAIoTHub**. Because IoT Hub names are unique, you need to come up with your own IoT Hub name. Set the SKU to F1 to use the free tier if it is available with your subscription. If not, choose the next lowest tier.
+2. Create an IoT Hub using the [az iot hub create](/cli/azure/iot/hub#az-iot-hub-create) command. This example creates an IoT Hub called **MyASAIoTHub**. Because IoT Hub names are unique, you need to come up with your own IoT Hub name. Set the SKU to F1 to use the free tier if it is available with your subscription. If not, choose the next lowest tier.
```azurecli az iot hub create --name "<your IoT Hub name>" --resource-group $resourceGroup --sku S1 ```
- Once the IoT hub has been created, get the IoT Hub connection string using the [az iot hub show-connection-string](/cli/azure/iot/hub#az_iot_hub_show_connection_string) command. Copy the entire connection string and save it for when you add the IoT Hub as input to your Stream Analytics job.
+ Once the IoT hub has been created, get the IoT Hub connection string using the [az iot hub show-connection-string](/cli/azure/iot/hub#az-iot-hub-show-connection-string) command. Copy the entire connection string and save it for when you add the IoT Hub as input to your Stream Analytics job.
```azurecli az iot hub show-connection-string --hub-name "MyASAIoTHub" ```
-3. Add a device to IoT Hub using the [az iot hub device-identity create](/cli/azure/iot/hub/device-identity#az_iot_hub_device_identity_create) command. This example creates a device called **MyASAIoTDevice**.
+3. Add a device to IoT Hub using the [az iot hub device-identity create](/cli/azure/iot/hub/device-identity#az-iot-hub-device-identity-create) command. This example creates a device called **MyASAIoTDevice**.
```azurecli az iot hub device-identity create --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice" ```
-4. Get the device connection string using the [az iot hub device-identity show-connection-string](/cli/azure/iot/hub/device-identity#az_iot_hub_device_identity_show_connection_string) command. Copy the entire connection string and save it for when you create the Raspberry Pi simulator.
+4. Get the device connection string using the [az iot hub device-identity show-connection-string](/cli/azure/iot/hub/device-identity#az-iot-hub-device-identity-show-connection-string) command. Copy the entire connection string and save it for when you create the Raspberry Pi simulator.
```azurecli az iot hub device-identity show-connection-string --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice" --output table
synapse-analytics Data Explorer Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/synapse-analytics/data-explorer/data-explorer-overview.md
Azure Synapse Data Explorer provides customers with an interactive query experie
:::image type="content" border="false" source="../media/overview-what-is/synapse-architecture.png" alt-text="Diagram showing the Azure Synapse architecture.":::
+To learn more, see the following video:
+
+>
+> [!VIDEO https://docs.microsoft.com/shows/data-exposed/azure-synapse-data-explorer-for-log--telemetry-management/player?WT.mc_id=dataexposed-c9-niner]
+ ## What makes Azure Synapse Data Explorer unique? * **Easy ingestion** - Data Explorer offers built-in integrations for no-code/low-code, high-throughput data ingestion, and caching data from real-time sources. Data can be ingested from sources such as Event Hub, Kafka, Azure Data Lake, open source agents such as Fluentd/Fluent Bit, and a wide variety of cloud and on-premises data sources.
synapse-analytics Quickstart Create Workspace https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/synapse-analytics/quickstart-create-workspace.md
Previously updated : 09/03/2020 Last updated : 03/23/2022
This quickstart describes the steps to create an Azure Synapse workspace by usin
> [!NOTE] > After creating your Azure Synapse workspace, you will not be able to move the workspace to another Azure Active Directory tenant. If you do so through subscription migration or other actions, you may lose access to the artifacts within the workspace.
-> Additionally, you currently cannot create a Synapse Analytics workspace in a [Cloud Solution Provider (CSP)](/partner-center/csp-overview) subscription.
## Open Synapse Studio
synapse-analytics Apache Spark Intelligent Cache Concept https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/synapse-analytics/spark/apache-spark-intelligent-cache-concept.md
+
+ Title: Intelligent Cache for Apache Spark 3.x in Azure Synapse Analytics
+description: This article provides an overview of the Intelligent Cache feature in Azure Synapse Analytics.
++++ Last updated : 2/17/2022+++++
+# Intelligent Cache in Azure Synapse Analytics
+
+The Intelligent Cache works seamlessly behind the scenes and caches data to help speed up the execution of Spark as it reads from your ADLS Gen2 data lake. It also automatically detects changes to the underlying files and will automatically refresh the files in the cache, providing you with the most recent data and when the cache size reaches its limit, the cache will automatically release the least read data to make space for more recent data. This feature lowers the total cost of ownership by improving performance up to 65% on subsequent reads of the files that are stored in the available cache for Parquet files and 50% for CSV files.
+
+When querying a file or table from your data lake, the Apache Spark engine in Synapse will make a call to the remote ADLS Gen2 storage to read the underlying files. With every query request to read the same data, the Spark engine must make a call to remote ADLS Gen2 storage. This redundant process adds latency to your total processing time. Spark provides a caching feature that you must manually set the cache and release the cache to minimize the latency and improve overall performance. However, this can cause results to have stale data if the underlying data changes.
+
+The Synapse Intelligent Cache simplifies this process by automatically caching each read within the allocated cache storage space on each Spark node. Each request for a file will check to see if the file exists in the cache and compare the tag from the remote storage to determine if the file is stale. If the file doesn't exist or if the file is stale, then Spark will read the file and store it in the cache. When the cache becomes full, the file with the oldest last access time will be evicted from the cache to allow for more recent files.
+
+The Synapse cache is a single cache per node. If you're using a medium size node and run with two small executors on a single medium size node, these two executors would share the same cache.
+
+> [!Note]
+> Intelligent Cache is currently in Public Preview.
+
+## Enable or Disable the cache
+
+The cache size can be adjusted based on the percent of total disk size available for each Apache Spark pool. By default, the cache is set to disabled but it's as easy as moving the **slider** bar from 0 (disabled) to the desired percentage for your cache size to enable it. We reserve a minimum of 20% of available disk space for data shuffles. For shuffle intensive workloads, you can minimize the cache size or disable the cache. We recommend starting with a 50% cache size and adjust as necessary. It's important to note that if your workload requires a lot of disk space on the local SSD for shuffle or RDD caching, then consider reducing the cache size to reduce the chance of failure due to insufficient storage. The actual size of the available storage and the cache size on each node will depend on the node family and node size.
++
+### Enabling cache for new Spark pools
+
+When creating a new Spark pool, browse under the **additional settings** tab to find the **Intelligent Cache slider** you can move to your preferred size to enable the feature.
+
+![How to enable Intelligent Cache during new Spark pools creation](./media/apache-spark-intelligent-cache-concept/inteligent-cache-creation-config.png)
+++
+### Enabling/Disabling cache for existing Spark pools
+
+For existing Spark pools, browse to the **Scale settings** of your Apache Spark pool of choice to enable, by moving the **slider** to a value more then 0, or disable it, by moving **slider** to 0.
+
+![How to enable or disable Intelligent Cache for existing Spark pools](./media/apache-spark-intelligent-cache-concept/inteligent-cache-setting-config.png)
++
+### Changing cache size for existing Spark pools
+
+To change the Intelligent Cache size of a pool, you must force a restart if the pool has active sessions. If the Spark pool has an active session, then it will show **Force new settings**. Click on the **check box** and select **Apply** to automatically restart the session.
+
+![Force restarting a session after changing Intelligent Cache setting](./media/apache-spark-intelligent-cache-concept/inteligent-cache-change-size.png)
+++
+### Enabling and disabling the cache within the session
+
+Easily disable the Intelligent Cache within a session by running the following code in your notebook:
+```scala
+ %spark
+
+ spark.conf.set("spark.synapse.vegas.useCache", "false")
+```
+
+```python
+ %pyspark
+
+ spark.conf.set('spark.synapse.vegas.useCache', 'false')
+```
+
+And enable by running:
+```scala
+ %spark
+
+ spark.conf.set("spark.synapse.vegas.useCache", "true")
+```
+
+```python
+ %pyspark
+
+ spark.conf.set('spark.synapse.vegas.useCache', 'true')
+```
++
+## When to use the Intelligent Cache and when not to?
+
+This feature will benefit you if:
+* Your workload requires reading the same file multiple times and the file size can fit into the cache.
+
+* Your workload uses Delta tables, parquet file formats and CSV files.
+
+* You're using Apache Spark v3.1 or higher on Azure Synapse.
++
+You won't see the benefit of this feature if:
+* You're reading a file that exceed the cache size because the beginning of the files could be evicted and subsequent queries will have to refetch the data from the remote storage. In this case, you won't see any benefits from the Intelligent Cache and you may want to increase your cache size and/or node size.
+
+* Your workload requires large amounts of shuffle, then disabling the Intelligent Cache will free up available space to prevent your job from failing due to insufficient storage space.
+
+* You're using a Spark 2.4 pool, you'll need to upgrade your pool to the latest version of Spark.
++
+## Learn more
+To learn more on Apache Spark, see the following articles:
+ - [What is Apache Spark](./spark/../apache-spark-concepts.md)
+ - [Apache Spark core concepts](./spark/../apache-spark-concepts.md)
+ - [Azure Synapse Runtime for Apache Spark 3.1](./spark/../apache-spark-3-runtime.md)
+ - [Apache Spark pool sizes and configurations](./spark/../apache-spark-pool-configurations.md)
+
+To learn about configuring Spark session settings
+ - [Configure Spark session settings](./spark/../apache-spark-development-using-notebooks.md)
+ - [How to set Spark / Pyspark custom configs](https://techcommunity.microsoft.com/t5/azure-synapse-analytics-blog/how-to-set-spark-pyspark-custom-configs-in-synapse-workspace/ba-p/2114434)
+++
+## Next steps
+An Apache Spark pool provides open-source big data compute capabilities where data can be loaded, modeled, processed, and distributed for faster analytic insight. To learn more about how to create one to run your Spark workloads, visit the following tutorials:
+ - [Create a new serverless Apache Spark pool using the Azure portal](./spark/../../quickstart-create-apache-spark-pool-portal.md)
+ - [Create a serverless Apache Spark pool using Synapse Studio](./spark/../../quickstart-create-apache-spark-pool-studio.md)
+++
synapse-analytics Create Data Warehouse Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/synapse-analytics/sql-data-warehouse/create-data-warehouse-azure-cli.md
Create a Synapse SQL pool (data warehouse) in Azure Synapse Analytics using the
Use these commands to sign on to Azure and set up a resource group.
-1. If you are using a local install, run the [az login](/cli/azure/reference-index#az_login) command to sign into Azure:
+1. If you are using a local install, run the [az login](/cli/azure/reference-index#az-login) command to sign into Azure:
```azurecli az login ```
-1. If needed, use the [az account set](/cli/azure/account#az_account_set) command to select your subscription:
+1. If needed, use the [az account set](/cli/azure/account#az-account-set) command to select your subscription:
```azurecli az account set --subscription 00000000-0000-0000-0000-000000000000 ```
-1. Run the [az group create](/cli/azure/group#az_group_create) command to create a resource group:
+1. Run the [az group create](/cli/azure/group#az-group-create) command to create a resource group:
```azurecli az group create --name myResourceGroup --location WestEurope ```
-1. Create a [logical SQL server](../../azure-sql/database/logical-servers.md?toc=/azure/synapse-analytics/sql-data-warehouse/toc.json&bc=/azure/synapse-analytics/sql-data-warehouse/breadcrumb/toc.json) by using the [az sql server create](/cli/azure/sql/server#az_sql_server_create) command:
+1. Create a [logical SQL server](../../azure-sql/database/logical-servers.md?toc=/azure/synapse-analytics/sql-data-warehouse/toc.json&bc=/azure/synapse-analytics/sql-data-warehouse/breadcrumb/toc.json) by using the [az sql server create](/cli/azure/sql/server#az-sql-server-create) command:
```azurecli az sql server create --resource-group myResourceGroup --name mysqlserver \
Use these commands to sign on to Azure and set up a resource group.
Create a [server-level firewall rule](../../azure-sql/database/firewall-configure.md?toc=/azure/synapse-analytics/sql-data-warehouse/toc.json&bc=/azure/synapse-analytics/sql-data-warehouse/breadcrumb/toc.json). A server-level firewall rule allows an external application, such as SQL Server Management Studio or the SQLCMD utility, to connect to a SQL pool through the SQL pool service firewall.
-Run the [az sql server firewall-rule create](/cli/azure/sql/server/firewall-rule#az_sql_server_firewall_rule_create) command to create a firewall rule:
+Run the [az sql server firewall-rule create](/cli/azure/sql/server/firewall-rule#az-sql-server-firewall-rule-create) command to create a firewall rule:
```azurecli az sql server firewall-rule create --resource-group myResourceGroup --name AllowSome \
Create the SQL pool. This example uses DW100c as the service objective, which is
> [!NOTE] > You need a previously created workspace. For more information, see [Quickstart: Create an Azure synapse workspace with Azure CLI](../quickstart-create-workspace-cli.md).
-Use the [az synapse sql pool create](/cli/azure/synapse/sql/pool#az_synapse_sql_pool_create) command to create the SQL pool:
+Use the [az synapse sql pool create](/cli/azure/synapse/sql/pool#az-synapse-sql-pool-create) command to create the SQL pool:
```azurecli az synapse sql pool create --resource-group myResourceGroup --name mySampleDataWarehouse \
az synapse sql pool create --resource-group myResourceGroup --name mySampleDataW
For more information on the parameter options, see [az synapse sql pool](/cli/azure/synapse/sql/pool).
-You can see your SQL pools by using the [az synapse sql pool list](/cli/azure/synapse/sql/pool#az_synapse_sql_pool_list) command:
+You can see your SQL pools by using the [az synapse sql pool list](/cli/azure/synapse/sql/pool#az-synapse-sql-pool-list) command:
```azurecli az synapse sql pool list --resource-group myResourceGroup --workspace-name testsynapseworkspace ```
-Use the [az synapse sql pool update](/cli/azure/synapse/sql/pool#az_synapse_sql_pool_update) command to update an existing pool:
+Use the [az synapse sql pool update](/cli/azure/synapse/sql/pool#az-synapse-sql-pool-update) command to update an existing pool:
```azurecli az synapse sql pool update --resource-group myResourceGroup --name mySampleDataWarehouse \ --workspace-name testsynapseworkspace ```
-Use the [az synapse sql pool pause](/cli/azure/synapse/sql/pool#az_synapse_sql_pool_pause) command to pause your pool:
+Use the [az synapse sql pool pause](/cli/azure/synapse/sql/pool#az-synapse-sql-pool-pause) command to pause your pool:
```azurecli az synapse sql pool pause --resource-group myResourceGroup --name mySampleDataWarehouse \ --workspace-name testsynapseworkspace ```
-Use the [az synapse sql pool resume](/cli/azure/synapse/sql/pool#az_synapse_sql_pool_resume) command to start a paused pool:
+Use the [az synapse sql pool resume](/cli/azure/synapse/sql/pool#az-synapse-sql-pool-resume) command to start a paused pool:
```azurecli az synapse sql pool resume --resource-group myResourceGroup --name mySampleDataWarehouse \ --workspace-name testsynapseworkspace ```
-To remove an existing SQL pool, use the [az synapse sql pool delete](/cli/azure/synapse/sql/pool#az_synapse_sql_pool_delete) command:
+To remove an existing SQL pool, use the [az synapse sql pool delete](/cli/azure/synapse/sql/pool#az-synapse-sql-pool-delete) command:
```azurecli az synapse sql pool delete --resource-group myResourceGroup --name mySampleDataWarehouse \
az synapse sql pool delete --resource-group myResourceGroup --name mySampleDataW
Other quickstart tutorials in this collection build upon this quickstart. > [!TIP]
-> If you plan to continue on to work with later quickstart tutorials, don't clean up the resources created in this quickstart. If you don't plan to continue, use the [az group delete](/cli/azure/group#az_group_delete) command to delete all resources created by this quickstart.
+> If you plan to continue on to work with later quickstart tutorials, don't clean up the resources created in this quickstart. If you don't plan to continue, use the [az group delete](/cli/azure/group#az-group-delete) command to delete all resources created by this quickstart.
> ```azurecli
synapse-analytics Develop Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/synapse-analytics/sql/develop-overview.md
Previously updated : 04/15/2020 Last updated : 03/23/2022
The articles below highlight concepts and design decisions for Synapse SQL devel
| [External tables](develop-tables-external-tables.md) | Yes | Yes | | [CETAS](develop-tables-cetas.md) | Yes | Yes | - ## Recommendations Below you'll find essential articles that emphasize specific coding techniques, tips, and recommendations for development:
Below you'll find essential articles that emphasize specific coding techniques,
| [Group by options](develop-group-by-options.md) | Yes | No | | [Variable assignment](develop-variable-assignment.md) | Yes | Yes |
+## Benefits & best practices
+
+* To learn more on which scenarios are suited for Serverless SQL pool, see [Serverless SQL pool benefits](on-demand-workspace-overview.md#serverless-sql-pool-benefits) article.
+
+* [Best practices for using serverless SQL pool](best-practices-serverless-sql-pool.md)
+
+* [Best practices for optimal performance using dedicated SQL pools](best-practices-dedicated-sql-pool.md)
+
+## T-SQL feature support
+
+Transact-SQL language is used in serverless SQL pool and dedicated model can reference different objects and has some differences in the set of supported features. For more information, see [Transact-SQL features supported in Azure Synapse SQL](overview-features.md) article.
+ ## Next steps For more reference information, see [SQL pool T-SQL statements](../sql-data-warehouse/sql-data-warehouse-reference-tsql-statements.md?context=/azure/synapse-analytics/context/context).
time-series-insights How To Create Environment Using Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/time-series-insights/how-to-create-environment-using-cli.md
az tsi environment gen2 create --name "my-tsi-env" --location eastus2 --resource
You can use the Azure CLI to delete an individual resource, such as a Time Series Insights Environment, or delete a Resource Group and all its resources, including any Time Series Insights Environments.
-To [delete a Time Series Insights Environments](/cli/azure/tsi/environment#az_tsi_environment_delete), run the following command:
+To [delete a Time Series Insights Environments](/cli/azure/tsi/environment#az-tsi-environment-delete), run the following command:
```azurecli-interactive az tsi environment delete --name "my-tsi-env" --resource-group $rg ```
-To [delete the storage account](/cli/azure/storage/account#az_storage_account_delete), run the following command:
+To [delete the storage account](/cli/azure/storage/account#az-storage-account-delete), run the following command:
```azurecli-interactive az storage account delete --name $storage --resource-group $rg ```
-To [delete a resource group](/cli/azure/group#az_group_delete) and all its resources, run the following command:
+To [delete a resource group](/cli/azure/group#az-group-delete) and all its resources, run the following command:
```azurecli-interactive az group delete --name $rg
traffic-manager Quickstart Create Traffic Manager Profile Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/traffic-manager/quickstart-create-traffic-manager-profile-cli.md
The following example creates a resource group named *myResourceGroup* in the *e
## Create a Traffic Manager profile
-Create a Traffic Manager profile using [az network traffic-manager profile create](/cli/azure/network/traffic-manager/profile#az_network_traffic_manager_profile_create) that directs user traffic based on endpoint priority.
+Create a Traffic Manager profile using [az network traffic-manager profile create](/cli/azure/network/traffic-manager/profile#az-network-traffic-manager-profile-create) that directs user traffic based on endpoint priority.
In the following example, replace **<profile_name>** with a unique Traffic Manager profile name.
az network traffic-manager profile create \
For this quickstart, you'll need two instances of a web application deployed in two different Azure regions (*East US* and *West Europe*). Each will serve as primary and failover endpoints for Traffic Manager. ### Create web app service plans
-Create web app service plans using [az appservice plan create](/cli/azure/appservice/plan#az_appservice_plan_create) for the two instances of the web application that you will deploy in two different Azure regions.
+Create web app service plans using [az appservice plan create](/cli/azure/appservice/plan#az-appservice-plan-create) for the two instances of the web application that you will deploy in two different Azure regions.
In the following example, replace **<appspname_eastus>** and **<appspname_westeurope>** with a unique App Service Plan Name
az appservice plan create \
``` ### Create a web app in the app service plan
-Create two instances the web application using [az webapp create](/cli/azure/webapp#az_webapp_create) in the App Service plans in the *East US* and *West Europe* Azure regions.
+Create two instances the web application using [az webapp create](/cli/azure/webapp#az-webapp-create) in the App Service plans in the *East US* and *West Europe* Azure regions.
In the following example, replace **<app1name_eastus>** and **<app2name_westeurope>** with a unique App Name, and replace **<appspname_eastus>** and **<appspname_westeurope>** with the name used to create the App Service plans in the previous section.
az webapp create \
``` ## Add Traffic Manager endpoints
-Add the two Web Apps as Traffic Manager endpoints using [az network traffic-manager endpoint create](/cli/azure/network/traffic-manager/endpoint#az_network_traffic_manager_endpoint_create) to the Traffic Manager profile as follows:
+Add the two Web Apps as Traffic Manager endpoints using [az network traffic-manager endpoint create](/cli/azure/network/traffic-manager/endpoint#az-network-traffic-manager-endpoint-create) to the Traffic Manager profile as follows:
- Determine the Web App ID and add the Web App located in the *East US* Azure region as the primary endpoint to route all the user traffic. - Determine the Web App ID and add the Web App located in the *West Europe* Azure region as the failover endpoint.
In the following example, replace **<app1name_eastus>** and **<app2name_westeuro
### Determine the DNS name
-Determine the DNS name of the Traffic Manager profile using [az network traffic-manager profile show](/cli/azure/network/traffic-manager/profile#az_network_traffic_manager_profile_show).
+Determine the DNS name of the Traffic Manager profile using [az network traffic-manager profile show](/cli/azure/network/traffic-manager/profile#az-network-traffic-manager-profile-show).
```azurecli-interactive
Copy the **RelativeDnsName** value. The DNS name of your Traffic Manager profile
> [!NOTE] > In this quickstart scenario, all requests route to the primary endpoint. It is set to **Priority 1**.
-2. To view Traffic Manager failover in action, disable your primary site using [az network traffic-manager endpoint update](/cli/azure/network/traffic-manager/endpoint#az_network_traffic_manager_endpoint_update).
+2. To view Traffic Manager failover in action, disable your primary site using [az network traffic-manager endpoint update](/cli/azure/network/traffic-manager/endpoint#az-network-traffic-manager-endpoint-update).
```azurecli-interactive
Copy the **RelativeDnsName** value. The DNS name of your Traffic Manager profile
## Clean up resources
-When you're done, delete the resource groups, web applications, and all related resources using [az group delete](/cli/azure/group#az_group_delete).
+When you're done, delete the resource groups, web applications, and all related resources using [az group delete](/cli/azure/group#az-group-delete).
```azurecli-interactive
traffic-manager Traffic Manager Cli Websites High Availability https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/traffic-manager/scripts/traffic-manager-cli-websites-high-availability.md
This script uses the following commands to create a resource group, web app, tra
||| | [az group create](/cli/azure/group) | Creates a resource group in which all resources are stored. | | [az appservice plan create](/cli/azure/appservice/plan) | Creates an App Service plan. This is like a server farm for your Azure web app. |
-| [az webapp web create](/cli/azure/webapp#az_webapp_create) | Creates an Azure web app within the App Service plan. |
+| [az webapp web create](/cli/azure/webapp#az-webapp-create) | Creates an Azure web app within the App Service plan. |
| [az network traffic-manager profile create](/cli/azure/network/traffic-manager/profile) | Creates an Azure Traffic Manager profile. | | [az network traffic-manager endpoint create](/cli/azure/network/traffic-manager/endpoint) | Adds an endpoint to an Azure Traffic Manager Profile. |
traffic-manager Traffic Manager Faqs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/traffic-manager/traffic-manager-FAQs.md
Traffic View pricing is based on the number of data points used to create the ou
Using endpoints from multiple subscriptions isnΓÇÖt possible with Azure Web Apps. Azure Web Apps requires that any custom domain name used with Web Apps is only used within a single subscription. It isnΓÇÖt possible to use Web Apps from multiple subscriptions with the same domain name.
-For other endpoint types, itΓÇÖs possible to use Traffic Manager with endpoints from more than one subscription. In Resource Manager, endpoints from any subscription can be added to Traffic Manager, as long as the person configuring the Traffic Manager profile has read access to the endpoint. These permissions can be granted using [Azure role-based access control (Azure RBAC role)](../role-based-access-control/role-assignments-portal.md). Endpoints from other subscriptions can be added using [Azure PowerShell](/powershell/module/az.trafficmanager/new-aztrafficmanagerendpoint) or the [Azure CLI](/cli/azure/network/traffic-manager/endpoint#az_network_traffic_manager_endpoint_create).
+For other endpoint types, itΓÇÖs possible to use Traffic Manager with endpoints from more than one subscription. In Resource Manager, endpoints from any subscription can be added to Traffic Manager, as long as the person configuring the Traffic Manager profile has read access to the endpoint. These permissions can be granted using [Azure role-based access control (Azure RBAC role)](../role-based-access-control/role-assignments-portal.md). Endpoints from other subscriptions can be added using [Azure PowerShell](/powershell/module/az.trafficmanager/new-aztrafficmanagerendpoint) or the [Azure CLI](/cli/azure/network/traffic-manager/endpoint#az-network-traffic-manager-endpoint-create).
### Can I use Traffic Manager with Cloud Service 'Staging' slots?
traffic-manager Traffic Manager Subnet Override Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/traffic-manager/traffic-manager-subnet-override-cli.md
To create a Traffic Manager subnet override, you can use Azure CLI to add the su
- This article requires version 2.0.28 or later of the Azure CLI. If using Azure Cloud Shell, the latest version is already installed. ## Update the Traffic Manager endpoint with subnet override.
-Use Azure CLI to update your endpoint with [az network traffic-manager endpoint update](/cli/azure/network/traffic-manager/endpoint#az_network_traffic_manager_endpoint_update).
+Use Azure CLI to update your endpoint with [az network traffic-manager endpoint update](/cli/azure/network/traffic-manager/endpoint#az-network-traffic-manager-endpoint-update).
```azurecli-interactive ### Add a range of IPs ###
az network traffic-manager endpoint update \
--type AzureEndpoints ```
-You can remove the IP address ranges by running the [az network traffic-manager endpoint update](/cli/azure/network/traffic-manager/endpoint#az_network_traffic_manager_endpoint_update) with the **--remove** option.
+You can remove the IP address ranges by running the [az network traffic-manager endpoint update](/cli/azure/network/traffic-manager/endpoint#az-network-traffic-manager-endpoint-update) with the **--remove** option.
```azurecli-interactive az network traffic-manager endpoint update \
virtual-desktop Automatic Migration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/automatic-migration.md
To prepare your PowerShell environment:
Import-Module <Full path to the location of the migration module>\Microsoft.RdInfra.RDPowershell.Migration.psd1 ```
-6. Once you're done, sign into Windows Virtual Desktop (classic) in your PowerShell window:
+6. Once you're done, sign into Azure Virtual Desktop (classic) in your PowerShell window:
```powershell Add-RdsAccount -DeploymentUrl https://rdbroker.wvd.microsoft.com
virtual-desktop Autoscale New Existing Host Pool https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/autoscale-new-existing-host-pool.md
To assign a scaling plan to an existing host pool:
1. Open the [Azure portal](https://portal.azure.com).
-2. Go to **Windows Virtual Desktop**.
+2. Go to **Azure Virtual Desktop**.
3. Select **Host pools**, then go to **Scaling plan** and select **New**.
virtual-desktop Autoscale Scaling Plan https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/autoscale-scaling-plan.md
Before you create your first scaling plan, make sure you follow these guidelines
## Create a custom RBAC role in your subscription
-To start creating a scaling plan, you'll first need to create a custom Role-based Access Control (RBAC) role in your subscription. This role will allow Windows Virtual Desktop to power manage all VMs in your subscription. It will also let the service apply actions on both host pools and VMs when there are no active user sessions. Creating this RBAC role at any level lower than your subscription, like at the host pool or VM level, will prevent the autoscale feature from working properly.
+To start creating a scaling plan, you'll first need to create a custom Role-based Access Control (RBAC) role in your subscription. This role will allow Azure Virtual Desktop to power manage all VMs in your subscription. It will also let the service apply actions on both host pools and VMs when there are no active user sessions. Creating this RBAC role at any level lower than your subscription, like at the host pool or VM level, will prevent the autoscale feature from working properly.
To create the custom role, follow the instructions in [Azure custom roles](../role-based-access-control/custom-roles.md) while using the following JSON template. This template already includes any permissions you need. For more detailed instructions, see [Assign custom roles with the Azure portal](#assign-custom-roles-with-the-azure-portal). ```json
virtual-desktop Azure Monitor https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/azure-monitor.md
To set the Log Analytics workspace where you want to collect session host data:
You'll need to install the Log Analytics agent on all session hosts in the host pool and send data from those hosts to your selected Log Analytics workspace. If Log Analytics isn't configured for all the session hosts in the host pool, you'll see a **Session hosts** section at the top of **Session host data settings** with the message "Some hosts in the host pool are not sending data to the selected Log Analytics workspace." >[!NOTE]
-> If you don't see the **Session hosts** section or error message, all session hosts are set up correctly. Skip ahead to set up instructions for [Workspace performance counters](#workspace-performance-counters).
+> If you don't see the **Session hosts** section or error message, all session hosts are set up correctly. Skip ahead to set up instructions for [Workspace performance counters](#workspace-performance-counters). Currently automated deployment is limited to 1000 session hosts or fewer.
To set up your remaining session hosts using the configuration workbook:
To set up your remaining session hosts using the configuration workbook:
2. Refresh the configuration workbook. >[!NOTE]
->The host machine needs to be running to install the Log Analytics extension. If automatic deployment doesn't work, you can install the extension on a host manually instead. To learn how to install the extension manually, see [Log Analytics virtual machine extension for Windows](../virtual-machines/extensions/oms-windows.md).
+>For larger host pools (> 1000 session hosts), or if there are deployment issues, it is recommended to install the Log Analytics agent at [time of session host creation](../virtual-machines/extensions/oms-windows.md#extension-schema) through the use of an ARM template.
#### Workspace performance counters
virtual-desktop Azure Stack Hci https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/azure-stack-hci.md
Downloading a Windows VHD without deploying a VM has several extra steps. To dow
Before you begin, make sure you're connected to Azure and are running [Azure Cloud Shell](../cloud-shell/quickstart.md) in either a command prompt or in the bash environment. You can also run CLI reference commands via the Azure CLI.
-If you're using a local installation, run the [az login](/cli/azure/reference-index#az_login) command to sign into Azure.
+If you're using a local installation, run the [az login](/cli/azure/reference-index#az-login) command to sign into Azure.
After that, follow any other prompts you see to finish signing in. For additional sign-in options, see [Sign in with the Azure CLI](/cli/azure/authenticate-azure-cli). If this is your first time using Azure CLI, install any required extensions by following the instructions in [Use extensions with the Azure CLI](/cli/azure/azure-cli-extensions-overview).
-Finally, run the [az version](/cli/azure/reference-index?#az_version) command to make sure your client is up to date. If it's out of date, run the [az upgrade](/cli/azure/reference-index?#az_upgrade) command to upgrade to the latest version.
+Finally, run the [az version](/cli/azure/reference-index?#az-version) command to make sure your client is up to date. If it's out of date, run the [az upgrade](/cli/azure/reference-index?#az-upgrade) command to upgrade to the latest version.
### Search Azure Marketplace for Azure Virtual Desktop images
virtual-desktop Create Host Pools Azure Marketplace https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/create-host-pools-azure-marketplace.md
Start by preparing your environment for the Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../includes/azure-cli-prepare-your-environment-no-header.md)]
-After you sign in, use the [az desktopvirtualization hostpool create](/cli/azure/desktopvirtualization#az_desktopvirtualization_hostpool_create) command to create the new host pool, optionally creating a registration token for session hosts to join the host pool:
+After you sign in, use the [az desktopvirtualization hostpool create](/cli/azure/desktopvirtualization#az-desktopvirtualization-hostpool-create) command to create the new host pool, optionally creating a registration token for session hosts to join the host pool:
```azurecli az desktopvirtualization hostpool create --name "MyHostPool" \
To set up your virtual machine within the Azure portal host pool setup process:
### [Azure CLI](#tab/azure-cli)
-Use the [az vm create](/cli/azure/vm#az_vm_create) command to create a new Azure virtual machine:
+Use the [az vm create](/cli/azure/vm#az-vm-create) command to create a new Azure virtual machine:
```azurecli az vm create --name "MyVMName" \
To register the desktop app group to a workspace:
### [Azure CLI](#tab/azure-cli)
-Use the [az desktopvirtualization workspace create](/cli/azure/desktopvirtualization#az_desktopvirtualization_workspace_create) command to create the new workspace:
+Use the [az desktopvirtualization workspace create](/cli/azure/desktopvirtualization#az-desktopvirtualization-workspace-create) command to create the new workspace:
```azurecli az desktopvirtualization workspace create --name "MyWorkspace" \
virtual-desktop Create Host Pools Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/create-host-pools-powershell.md
If you haven't already done so, prepare your environment for the Azure CLI:
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../includes/azure-cli-prepare-your-environment-no-header.md)]
-After you sign in, use the [az desktopvirtualization hostpool create](/cli/azure/desktopvirtualization#az_desktopvirtualization_hostpool_create) command to create the new host pool, optionally creating a registration token for session hosts to join the host pool:
+After you sign in, use the [az desktopvirtualization hostpool create](/cli/azure/desktopvirtualization#az-desktopvirtualization-hostpool-create) command to create the new host pool, optionally creating a registration token for session hosts to join the host pool:
```azurecli az desktopvirtualization hostpool create --name "MyHostPool" \
virtual-desktop Create Validation Host Pool https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/create-validation-host-pool.md
If you haven't already done so, prepare your environment for the Azure CLI and s
[!INCLUDE [azure-cli-prepare-your-environment-no-header.md](../../includes/azure-cli-prepare-your-environment-no-header.md)]
-To define the new host pool as a validation host pool, use the [az desktopvirtualization hostpool update](/cli/azure/desktopvirtualization#az_desktopvirtualization_hostpool_update) command:
+To define the new host pool as a validation host pool, use the [az desktopvirtualization hostpool update](/cli/azure/desktopvirtualization#az-desktopvirtualization-hostpool-update) command:
```azurecli az desktopvirtualization hostpool update --name "MyHostPool" \
virtual-desktop Delete Host Pool https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/delete-host-pool.md
This cmdlet removes all existing user sessions on the host pool's session host.
To delete a host pool using the Azure CLI, you first need to delete all app groups in the host pool.
-To delete all app groups, use the [az desktopvirtualization applicationgroup delete](/cli/azure/desktopvirtualization/applicationgroup#az_desktopvirtualization_applicationgroup_delete) command:
+To delete all app groups, use the [az desktopvirtualization applicationgroup delete](/cli/azure/desktopvirtualization/applicationgroup#az-desktopvirtualization-applicationgroup-delete) command:
```azurecli az desktopvirtualization applicationgroup delete --name "MyApplicationGroup" --resource-group "MyResourceGroup" ```
-Next, delete the host pool using the [az desktopvirtualization hostpool delete](/cli/azure/desktopvirtualization/hostpool#az_desktopvirtualization_hostpool_delete) command:
+Next, delete the host pool using the [az desktopvirtualization hostpool delete](/cli/azure/desktopvirtualization/hostpool#az-desktopvirtualization-hostpool-delete) command:
```azurecli az desktopvirtualization hostpool delete --force true --name "MyHostPool" --resource-group "MyResourceGroup"
virtual-desktop Language Packs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/language-packs.md
You need the following things to customize your Windows 10 Enterprise multi-sess
- If you're using Windows 10, version 1903 or 1909: - [Windows 10, version 1903 or 1909 LXP ISO](https://software-download.microsoft.com/download/pr/Win_10_1903_32_64_ARM64_MultiLng_LngPkAll_LXP_ONLY.iso) - If you're using Windows 10, version 2004, 20H2, or 21H1, use the information in [Adding languages in Windows 10: Known issues](/windows-hardware/manufacture/desktop/language-packs-known-issue) to figure out which of the following LXP ISOs is right for you:
- - [Windows 10, version 2004 or later **10C** LXP ISO](https://software-download.microsoft.com/download/pr/LanguageExperiencePack.2010C.iso)
- - [Windows 10, version 2004 or later **11C** LXP ISO](https://software-download.microsoft.com/download/pr/LanguageExperiencePack.2011C.iso)
- - [Windows 10, version 2004 or later **1C** LXP ISO](https://software-download.microsoft.com/download/pr/LanguageExperiencePack.2101C.iso)
- - [Windows 10, version 2004 or later **2C** LXP ISO](https://software-download.microsoft.com/download/pr/LanguageExperiencePack.2102C.iso)
- - [Windows 10, version 2004 or later **4B** LXP ISO](https://software-download.microsoft.com/download/sg/LanguageExperiencePack.2104B.iso)
- - [Windows 10, version 2004 or later **5C** LXP ISO](https://software-download.microsoft.com/download/sg/LanguageExperiencePack.2105C.iso)
- - [Windows 10, version 2004 or later **7C** LXP ISO](https://software-download.microsoft.com/download/pr/LanguageExperiencePack.2107C.iso)
- - [Windows 10, version 2004 or later **9C** LXP ISO](https://software-download.microsoft.com/download/db/LanguageExperiencePack.2109C.iso)
- - [Windows 10, version 2004 or later **10C** LXP ISO](https://software-download.microsoft.com/download/sg/LanguageExperiencePack.2110C.iso)
-
+ - [Windows 10, version 2004 or later 01C 2021 LXP ISO](https://software-download.microsoft.com/download/pr/LanguageExperiencePack.2101C.iso)
+ - [Windows 10, version 2004 or later 02C 2021 LXP ISO](https://software-download.microsoft.com/download/pr/LanguageExperiencePack.2102C.iso)
+ - [Windows 10, version 2004 or later 04B 2021 LXP ISO](https://software-download.microsoft.com/download/sg/LanguageExperiencePack.2104B.iso)
+ - [Windows 10, version 2004 or later 05C 2021 LXP ISO](https://software-download.microsoft.com/download/sg/LanguageExperiencePack.2105C.iso)
+ - [Windows 10, version 2004 or later 07C 2021 LXP ISO](https://software-download.microsoft.com/download/pr/LanguageExperiencePack.2107C.iso)
+ - [Windows 10, version 2004 or later 09C 2021 LXP ISO](https://software-download.microsoft.com/download/db/LanguageExperiencePack.2109C.iso)
+ - [Windows 10, version 2004 or later 10C 2021 LXP ISO](https://software-download.microsoft.com/download/sg/LanguageExperiencePack.2110C.iso)
+ - [Windows 10, version 2004 or later 11C 2021 LXP ISO](https://software-download.microsoft.com/download/sg/LanguageExperiencePack.2111C.iso)
+ - [Windows 10, version 2004 or later 01C 2022 LXP ISO](https://software-download.microsoft.com/download/sg/LanguageExperiencePack.2201C.iso)
+ - [Windows 10, version 2004 or later 02C 2022 LXP ISO](https://software-download.microsoft.com/download/sg/LanguageExperiencePack.2202C.iso)
+ - [Windows 10, version 2004 or later 03C 2022 LXP ISO](https://software-download.microsoft.com/download/sg/LanguageExperiencePack.2203C.iso)
+
- An Azure Files Share or a file share on a Windows File Server Virtual Machine >[!NOTE]
virtual-desktop Manage App Groups Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/manage-app-groups-powershell.md
To create a RemoteApp group with PowerShell:
To create a RemoteApp group with the Azure CLI:
-1. Use the [az desktopvirtualization applicationgroup create](/cli/azure/desktopvirtualization##az_desktopvirtualization_applicationgroup_create) command to create a new remote application group:
+1. Use the [az desktopvirtualization applicationgroup create](/cli/azure/desktopvirtualization##az-desktopvirtualization-applicationgroup-create) command to create a new remote application group:
```azurecli az desktopvirtualization applicationgroup create --name "MyApplicationGroup" \
virtual-desktop Total Costs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/remote-app-streaming/total-costs.md
In Azure Virtual Desktop, session host VMs use the following three Azure service
- Storage for managed disks (including OS storage per VM and any data disks for personal desktops) - Bandwidth (networking)
-These charges can be viewed at the Azure Resource Group level where the host pool-specific resources including session host VMs are assigned. If one or more host pools are also configured to use the paid Log Analytics service to send VM data to the optional Azure Virtual Desktop Insights feature, then the bill will also charge you for the Log Analytics for the corresponding Azure Resource Groups. You can view [Monitor Windows Virtual Desktop cost pricing estimates](../azure-monitor-costs.md) for more information.
+These charges can be viewed at the Azure Resource Group level where the host pool-specific resources including session host VMs are assigned. If one or more host pools are also configured to use the paid Log Analytics service to send VM data to the optional Azure Virtual Desktop Insights feature, then the bill will also charge you for the Log Analytics for the corresponding Azure Resource Groups. For more information, see [Estimate Azure Virtual Desktop monitoring costs](../azure-monitor-costs.md).
Of the three primary VM session host usage costs that are listed at the beginning of this section, compute usually costs the most. To mitigate compute costs and optimize resource demand with availability, many customers choose to [scale session hosts automatically](../set-up-scaling-script.md).
virtual-desktop Troubleshoot Set Up Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/troubleshoot-set-up-overview.md
This article provides an overview of the issues you may encounter when setting u
## Troubleshoot deployment and connection issues
-[Azure Monitor for Windows Virtual Desktop](azure-monitor.md) is a dashboard built on Azure Monitor workbooks that can quickly troubleshoot and identify issues in your Windows Virtual Desktop environment for you. If you prefer working with Kusto queries, we recommend using the built-in diagnostic feature, [Log Analytics](diagnostics-log-analytics.md), instead.
+[Azure Monitor for Azure Virtual Desktop](azure-monitor.md) is a dashboard built on Azure Monitor workbooks that can quickly troubleshoot and identify issues in your Azure Virtual Desktop environment for you. If you prefer working with Kusto queries, we recommend using the built-in diagnostic feature, [Log Analytics](diagnostics-log-analytics.md), instead.
## Report issues
virtual-desktop Create Service Principal Role Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/virtual-desktop-fall-2019/create-service-principal-role-powershell.md
After you've fulfilled the prerequisites in your PowerShell session, run the fol
```powershell Import-Module AzureAD $aadContext = Connect-AzureAD
-$svcPrincipal = New-AzureADApplication -AvailableToOtherTenants $true -DisplayName "Windows Virtual Desktop Svc Principal"
+$svcPrincipal = New-AzureADApplication -AvailableToOtherTenants $true -DisplayName "Azure Virtual Desktop Svc Principal"
$svcPrincipalCreds = New-AzureADApplicationPasswordCredential -ObjectId $svcPrincipal.ObjectId ``` ## View your credentials in PowerShell
virtual-desktop Manual Delete https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-desktop/virtual-desktop-fall-2019/manual-delete.md
Before you begin, make sure you have the following things ready:
- [Download and import the Azure Virtual Desktop module](/powershell/windows-virtual-desktop/overview/) to use in your PowerShell session if you haven't already ## Delete Azure Virtual Desktop (classic)
-1. Sign into Windows Virtual Desktop (classic) in your PowerShell window:
+1. Sign into Azure Virtual Desktop (classic) in your PowerShell window:
```powershell Add-RdsAccount -DeploymentUrl https://rdbroker.wvd.microsoft.com
virtual-machine-scale-sets Disk Encryption Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/disk-encryption-cli.md
It takes a few minutes to create and configure all the scale set resources and V
Azure Key Vault can store keys, secrets, or passwords that allow you to securely implement them in your applications and services. Cryptographic keys are stored in Azure Key Vault using software-protection, or you can import or generate your keys in Hardware Security Modules (HSMs) certified to FIPS 140-2 level 2 standards. These cryptographic keys are used to encrypt and decrypt virtual disks attached to your VM. You retain control of these cryptographic keys and can audit their use.
-Define your own unique *keyvault_name*. Then, create a KeyVault with [az keyvault create](/cli/azure/keyvault#az_keyvault_create) in the same subscription and region as the scale set, and set the *--enabled-for-disk-encryption* access policy.
+Define your own unique *keyvault_name*. Then, create a KeyVault with [az keyvault create](/cli/azure/keyvault#az-keyvault-create) in the same subscription and region as the scale set, and set the *--enabled-for-disk-encryption* access policy.
```azurecli-interactive # Provide your own unique Key Vault name
az keyvault create --resource-group myResourceGroup --name $keyvault_name --enab
This step is only required if you have an existing Key Vault that you wish to use with disk encryption. Skip this step if you created a Key Vault in the previous section.
-Define your own unique *keyvault_name*. Then, updated your KeyVault with [az keyvault update](/cli/azure/keyvault#az_keyvault_update) and set the *--enabled-for-disk-encryption* access policy.
+Define your own unique *keyvault_name*. Then, updated your KeyVault with [az keyvault update](/cli/azure/keyvault#az-keyvault-update) and set the *--enabled-for-disk-encryption* access policy.
```azurecli-interactive # Provide your own unique Key Vault name
az keyvault update --name $keyvault_name --enabled-for-disk-encryption
## Enable encryption
-To encrypt VM instances in a scale set, first get some information on the Key Vault resource ID with [az keyvault show](/cli/azure/keyvault#az_keyvault_show). These variables are used to then start the encryption process with [az vmss encryption enable](/cli/azure/vmss/encryption#az_vmss_encryption_enable):
+To encrypt VM instances in a scale set, first get some information on the Key Vault resource ID with [az keyvault show](/cli/azure/keyvault#az-keyvault-show). These variables are used to then start the encryption process with [az vmss encryption enable](/cli/azure/vmss/encryption#az-vmss-encryption-enable):
```azurecli-interactive # Get the resource ID of the Key Vault
az vmss encryption enable \
It may take a minute or two for the encryption process to start.
-As the scale set is upgrade policy on the scale set created in an earlier step is set to *automatic*, the VM instances automatically start the encryption process. On scale sets where the upgrade policy is to manual, start the encryption policy on the VM instances with [az vmss update-instances](/cli/azure/vmss#az_vmss_update_instances).
+As the scale set is upgrade policy on the scale set created in an earlier step is set to *automatic*, the VM instances automatically start the encryption process. On scale sets where the upgrade policy is to manual, start the encryption policy on the VM instances with [az vmss update-instances](/cli/azure/vmss#az-vmss-update-instances).
### Enable encryption using KEK to wrap the key
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]
## Check encryption progress
-To check on the status of disk encryption, use [az vmss encryption show](/cli/azure/vmss/encryption#az_vmss_encryption_show):
+To check on the status of disk encryption, use [az vmss encryption show](/cli/azure/vmss/encryption#az-vmss-encryption-show):
```azurecli-interactive az vmss encryption show --resource-group myResourceGroup --name myScaleSet
When VM instances are encrypted, the status code reports *EncryptionState/encryp
## Disable encryption
-If you no longer wish to use encrypted VM instances disks, you can disable encryption with [az vmss encryption disable](/cli/azure/vmss/encryption#az_vmss_encryption_disable) as follows:
+If you no longer wish to use encrypted VM instances disks, you can disable encryption with [az vmss encryption disable](/cli/azure/vmss/encryption#az-vmss-encryption-disable) as follows:
```azurecli-interactive az vmss encryption disable --resource-group myResourceGroup --name myScaleSet
virtual-machine-scale-sets Instance Generalized Image Version Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/instance-generalized-image-version-cli.md
If you choose to install and use the CLI locally, this tutorial requires that yo
Replace resource names as needed in this example.
-List the image definitions in a gallery using [az sig image-definition list](/cli/azure/sig/image-definition#az_sig_image_definition_list) to see the name and ID of the definitions.
+List the image definitions in a gallery using [az sig image-definition list](/cli/azure/sig/image-definition#az-sig-image-definition-list) to see the name and ID of the definitions.
```azurecli-interactive resourceGroup=myGalleryRG
az sig image-definition list \
--output tsv ```
-Create the scale set using [`az vmss create`](/cli/azure/vmss#az_vmss_create).
+Create the scale set using [`az vmss create`](/cli/azure/vmss#az-vmss-create).
Use the image definition ID for `--image` to create the scale set instances from the latest version of the image that is available. You can also create the scale set instances from a specific version by supplying the image version ID for `--image`. Be aware that using a specific image version means automation could fail if that specific image version isn't available because it was deleted or removed from the region. We recommend using the image definition ID for creating your new VM, unless a specific image version is required.
virtual-machine-scale-sets Instance Specialized Image Version Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/instance-specialized-image-version-cli.md
If you choose to install and use the CLI locally, this tutorial requires that yo
Replace resource names as needed in this example.
-List the image definitions in a gallery using [az sig image-definition list](/cli/azure/sig/image-definition#az_sig_image_definition_list) to see the name and ID of the definitions.
+List the image definitions in a gallery using [az sig image-definition list](/cli/azure/sig/image-definition#az-sig-image-definition-list) to see the name and ID of the definitions.
```azurecli-interactive resourceGroup=myGalleryRG
az sig image-definition list \
--output tsv ```
-Create a scale set using [`az vmss create`](/cli/azure/vmss#az_vmss_create) using the `--specialized` parameter to indicate the image is a specialized image.
+Create a scale set using [`az vmss create`](/cli/azure/vmss#az-vmss-create) using the `--specialized` parameter to indicate the image is a specialized image.
Use the image definition ID for `--image` to create the scale set instances from the latest version of the image that is available. You can also create the scale set instances from a specific version by supplying the image version ID for `--image`. Be aware that using a specific image version means automation could fail if that specific image version isn't available because it was deleted or removed from the region. We recommend using the image definition ID for creating your new VM, unless a specific image version is required.
virtual-machine-scale-sets Tutorial Autoscale Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/tutorial-autoscale-cli.md
az vmss create \
## Define an autoscale profile
-To enable autoscale on a scale set, you first define an autoscale profile. This profile defines the default, minimum, and maximum scale set capacity. These limits let you control cost by not continually creating VM instances, and balance acceptable performance with a minimum number of instances that remain in a scale-in event. Create an autoscale profile with [az monitor autoscale create](/cli/azure/monitor/autoscale#az_monitor_autoscale_create). The following example sets the default, and minimum, capacity of *2* VM instances, and a maximum of *10*:
+To enable autoscale on a scale set, you first define an autoscale profile. This profile defines the default, minimum, and maximum scale set capacity. These limits let you control cost by not continually creating VM instances, and balance acceptable performance with a minimum number of instances that remain in a scale-in event. Create an autoscale profile with [az monitor autoscale create](/cli/azure/monitor/autoscale#az-monitor-autoscale-create). The following example sets the default, and minimum, capacity of *2* VM instances, and a maximum of *10*:
```azurecli-interactive az monitor autoscale create \
az monitor autoscale create \
If your application demand increases, the load on the VM instances in your scale set increases. If this increased load is consistent, rather than just a brief demand, you can configure autoscale rules to increase the number of VM instances in the scale set. When these VM instances are created and your applications are deployed, the scale set starts to distribute traffic to them through the load balancer. You control what metrics to monitor, such as CPU or disk, how long the application load must meet a given threshold, and how many VM instances to add to the scale set.
-Let's create a rule with [az monitor autoscale rule create](/cli/azure/monitor/autoscale/rule#az_monitor_autoscale_rule_create) that increases the number of VM instances in a scale set when the average CPU load is greater than 70% over a 5-minute period. When the rule triggers, the number of VM instances is increased by three.
+Let's create a rule with [az monitor autoscale rule create](/cli/azure/monitor/autoscale/rule#az-monitor-autoscale-rule-create) that increases the number of VM instances in a scale set when the average CPU load is greater than 70% over a 5-minute period. When the rule triggers, the number of VM instances is increased by three.
```azurecli-interactive az monitor autoscale rule create \
az monitor autoscale rule create \
On an evening or weekend, your application demand may decrease. If this decreased load is consistent over a period of time, you can configure autoscale rules to decrease the number of VM instances in the scale set. This scale-in action reduces the cost to run your scale set as you only run the number of instances required to meet the current demand.
-Create another rule with [az monitor autoscale rule create](/cli/azure/monitor/autoscale/rule#az_monitor_autoscale_rule_create) that decreases the number of VM instances in a scale set when the average CPU load then drops below 30% over a 5-minute period. The following example defines the rule to scale in the number of VM instances by one:
+Create another rule with [az monitor autoscale rule create](/cli/azure/monitor/autoscale/rule#az-monitor-autoscale-rule-create) that decreases the number of VM instances in a scale set when the average CPU load then drops below 30% over a 5-minute period. The following example defines the rule to scale in the number of VM instances by one:
```azurecli-interactive az monitor autoscale rule create \
virtual-machine-scale-sets Tutorial Use Custom Image Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/tutorial-use-custom-image-cli.md
An image gallery is the primary resource used for enabling image sharing.
Allowed characters for Gallery name are uppercase or lowercase letters, digits, dots, and periods. The gallery name cannot contain dashes. Gallery names must be unique within your subscription.
-Create an image gallery using [az sig create](/cli/azure/sig#az_sig_create). The following example creates a resource group named gallery named *myGalleryRG* in *East US*, and a gallery named *myGallery*.
+Create an image gallery using [az sig create](/cli/azure/sig#az-sig-create). The following example creates a resource group named gallery named *myGalleryRG* in *East US*, and a gallery named *myGallery*.
```azurecli-interactive az group create --name myGalleryRG --location eastus
Make sure your image definition is the right type. If you have generalized the V
For more information about the values you can specify for an image definition, see [Image definitions](../virtual-machines/shared-image-galleries.md#image-definitions).
-Create an image definition in the gallery using [az sig image-definition create](/cli/azure/sig/image-definition#az_sig_image_definition_create).
+Create an image definition in the gallery using [az sig image-definition create](/cli/azure/sig/image-definition#az-sig-image-definition-create).
In this example, the image definition is named *myImageDefinition*, and is for a [specialized](../virtual-machines/shared-image-galleries.md#generalized-and-specialized-images) Linux OS image. To create a definition for images using a Windows OS, use `--os-type Windows`.
az sig image-definition create \
## Create the image version
-Create an image version from the VM using [az image gallery create-image-version](/cli/azure/sig/image-version#az_sig_image_version_create).
+Create an image version from the VM using [az image gallery create-image-version](/cli/azure/sig/image-version#az-sig-image-version-create).
Allowed characters for image version are numbers and periods. Numbers must be within the range of a 32-bit integer. Format: *MajorVersion*.*MinorVersion*.*Patch*.
az sig image-version create \
## Create a scale set from the image
-Create a scale set from the specialized image using [`az vmss create`](/cli/azure/vmss#az_vmss_create).
+Create a scale set from the specialized image using [`az vmss create`](/cli/azure/vmss#az-vmss-create).
-Create the scale set using [`az vmss create`](/cli/azure/vmss#az_vmss_create) using the --specialized parameter to indicate the the image is a specialized image.
+Create the scale set using [`az vmss create`](/cli/azure/vmss#az-vmss-create) using the --specialized parameter to indicate the the image is a specialized image.
Use the image definition ID for `--image` to create the scale set instances from the latest version of the image that is available. You can also create the scale set instances from a specific version by supplying the image version ID for `--image`.
Type the public IP address into your web browser. The default NGINX web page is
You can share images across subscriptions using Azure role-based access control (Azure RBAC). You can share images at the gallery, image definition or image version. Any user that has read permissions to an image version, even across subscriptions, will be able to deploy a VM using the image version.
-We recommend that you share with other users at the gallery level. To get the object ID of your gallery, use [az sig show](/cli/azure/sig#az_sig_show).
+We recommend that you share with other users at the gallery level. To get the object ID of your gallery, use [az sig show](/cli/azure/sig#az-sig-show).
```azurecli-interactive az sig show \
az sig show \
--query id ```
-Use the object ID as a scope, along with an email address and [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) to give a user access to the shared image gallery. Replace `<email-address>` and `<gallery iD>` with your own information.
+Use the object ID as a scope, along with an email address and [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) to give a user access to the shared image gallery. Replace `<email-address>` and `<gallery iD>` with your own information.
```azurecli-interactive az role assignment create \
virtual-machine-scale-sets Virtual Machine Scale Sets Automatic Instance Repairs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/virtual-machine-scale-sets-automatic-instance-repairs.md
New-AzVmssConfig `
### Azure CLI 2.0
-The following example enables the automatic repairs policy while creating a new scale set using *[az vmss create](/cli/azure/vmss#az_vmss_create)*. First create a resource group, then create a new scale set with automatic repairs policy grace period set to 30 minutes.
+The following example enables the automatic repairs policy while creating a new scale set using *[az vmss create](/cli/azure/vmss#az-vmss-create)*. First create a resource group, then create a new scale set with automatic repairs policy grace period set to 30 minutes.
```azurecli-interactive az group create --name <myResourceGroup> --location <VMSSLocation>
Update-AzVmss `
### Azure CLI 2.0
-The following is an example for updating the automatic instance repairs policy of an existing scale set, using *[az vmss update](/cli/azure/vmss#az_vmss_update)*.
+The following is an example for updating the automatic instance repairs policy of an existing scale set, using *[az vmss update](/cli/azure/vmss#az-vmss-update)*.
```azurecli-interactive az vmss update \
Use *setOrchestrationServiceState* API with API version 2019-12-01 or higher on
### Azure CLI
-Use [get-instance-view](/cli/azure/vmss#az_vmss_get_instance_view) cmdlet to view the *serviceState* for automatic instance repairs.
+Use [get-instance-view](/cli/azure/vmss#az-vmss-get-instance-view) cmdlet to view the *serviceState* for automatic instance repairs.
```azurecli-interactive az vmss get-instance-view \
az vmss get-instance-view \
--resource-group MyResourceGroup ```
-Use [set-orchestration-service-state](/cli/azure/vmss#az_vmss_set_orchestration_service_state) cmdlet to update the *serviceState* for automatic instance repairs. Once the scale set is opted into the automatic repair feature, then you can use this cmdlet to suspend or resume automatic repairs for you scale set.
+Use [set-orchestration-service-state](/cli/azure/vmss#az-vmss-set-orchestration-service-state) cmdlet to update the *serviceState* for automatic instance repairs. Once the scale set is opted into the automatic repair feature, then you can use this cmdlet to suspend or resume automatic repairs for you scale set.
```azurecli-interactive az vmss set-orchestration-service-state \
virtual-machine-scale-sets Virtual Machine Scale Sets Extension Sequencing https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/virtual-machine-scale-sets-extension-sequencing.md
Update-AzVmss -ResourceGroupName $vmScaleSetResourceGroup `
``` ### Azure CLI 2.0
-Use [az vmss extension set](/cli/azure/vmss/extension#az_vmss_extension_set) to add the Application Health extension to the scale set model definition. Extension sequencing requires the use of Azure CLI 2.0.55 or above.
+Use [az vmss extension set](/cli/azure/vmss/extension#az-vmss-extension-set) to add the Application Health extension to the scale set model definition. Extension sequencing requires the use of Azure CLI 2.0.55 or above.
The following example adds the [Application Health extension](virtual-machine-scale-sets-health-extension.md) to the scale set model of a Windows-based scale set. The Application Health extension will be provisioned after provisioning the [Custom Script Extension](../virtual-machines/extensions/custom-script-windows.md), already defined in the scale set.
virtual-machine-scale-sets Virtual Machine Scale Sets Health Extension https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/virtual-machine-scale-sets-health-extension.md
Update-AzVmss -ResourceGroupName $vmScaleSetResourceGroup `
### Azure CLI 2.0
-Use [az vmss extension set](/cli/azure/vmss/extension#az_vmss_extension_set) to add the Application Health extension to the scale set model definition.
+Use [az vmss extension set](/cli/azure/vmss/extension#az-vmss-extension-set) to add the Application Health extension to the scale set model definition.
The following example adds the Application Health extension to the scale set model of a Linux-based scale set.
virtual-machine-scale-sets Virtual Machine Scale Sets Instance Protection https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/virtual-machine-scale-sets-instance-protection.md
Update-AzVmssVM `
### Azure CLI 2.0
-Use [az vmss update](/cli/azure/vmss#az_vmss_update) to apply scale-in protection to your scale set instance.
+Use [az vmss update](/cli/azure/vmss#az-vmss-update) to apply scale-in protection to your scale set instance.
The following example applies scale-in protection to an instance in the scale set having instance ID 0.
Update-AzVmssVM `
### Azure CLI 2.0
-Use [az vmss update](/cli/azure/vmss#az_vmss_update) to apply protection from scale set actions to your scale set instance.
+Use [az vmss update](/cli/azure/vmss#az-vmss-update) to apply protection from scale set actions to your scale set instance.
The following example applies protection from scale set actions to an instance in the scale set having instance ID 0.
virtual-machine-scale-sets Virtual Machine Scale Sets Maintenance Notifications https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications.md
Set-AzVmssVM -ResourceGroupName rgName -VMScaleSetName vmssName -InstanceId id -
## Check maintenance status by using the CLI
-You can view planned maintenance information by using [az vmss list-instances](/cli/azure/vmss#az_vmss_list_instances).
+You can view planned maintenance information by using [az vmss list-instances](/cli/azure/vmss#az-vmss-list-instances).
Maintenance information is returned only if maintenance is planned. If no maintenance that affects the VM instance is scheduled, the command doesn't return any maintenance information.
virtual-machine-scale-sets Virtual Machine Scale Sets Manage Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/virtual-machine-scale-sets-manage-cli.md
If takes a few minutes to update the capacity of your scale set. If you decrease
## Stop and start VMs in a scale set
-To stop one or more VMs in a scale set, use [az vmss stop](/cli/azure/vmss#az_vmss_stop). The `--instance-ids` parameter allows you to specify one or more VMs to stop. If you do not specify an instance ID, all VMs in the scale set are stopped. To stop multiple VMs, separate each instance ID with a space.
+To stop one or more VMs in a scale set, use [az vmss stop](/cli/azure/vmss#az-vmss-stop). The `--instance-ids` parameter allows you to specify one or more VMs to stop. If you do not specify an instance ID, all VMs in the scale set are stopped. To stop multiple VMs, separate each instance ID with a space.
The following example stops instance *0* in the scale set named *myScaleSet* and the *myResourceGroup* resource group. Provide your own values as follows:
virtual-machine-scale-sets Virtual Machine Scale Sets Manage Fault Domains https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machine-scale-sets/virtual-machine-scale-sets-manage-fault-domains.md
You can also consider aligning the number of scale set fault domains with the nu
You can set the property `properties.platformFaultDomainCount` to 1, 2, or 3 (default of 3 if not specified). Refer to the documentation for REST API [here](/rest/api/compute/virtualmachinescalesets/createorupdate). ## Azure CLI
-You can set the parameter `--platform-fault-domain-count` to 1, 2, or 3 (default of 3 if not specified). Refer to the documentation for Azure CLI [here](/cli/azure/vmss#az_vmss_create).
+You can set the parameter `--platform-fault-domain-count` to 1, 2, or 3 (default of 3 if not specified). Refer to the documentation for Azure CLI [here](/cli/azure/vmss#az-vmss-create).
```azurecli-interactive az vmss create \
virtual-machines Automatic Extension Upgrade https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/automatic-extension-upgrade.md
Update the scale set using [Update-AzVmss](/powershell/module/az.compute/update-
### Azure CLI for Virtual Machines
-Use the [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) cmdlet:
+Use the [az vm extension set](/cli/azure/vm/extension#az-vm-extension-set) cmdlet:
```azurecli-interactive az vm extension set \
az vm extension set \
``` ### Azure CLI for Virtual Machine Scale Sets
-Use the [az vmss extension set](/cli/azure/vmss/extension#az_vmss_extension_set) cmdlet to add the extension to the scale set model:
+Use the [az vmss extension set](/cli/azure/vmss/extension#az-vmss-extension-set) cmdlet to add the extension to the scale set model:
```azurecli-interactive az vmss extension set \
virtual-machines Automatic Vm Guest Patching https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/automatic-vm-guest-patching.md
Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName
``` ### Azure CLI for Windows VMs
-Use [az vm create](/cli/azure/vm#az_vm_create) to enable automatic VM guest patching when creating a new VM. The following example configures automatic VM guest patching for a VM named *myVM* in the resource group named *myResourceGroup*:
+Use [az vm create](/cli/azure/vm#az-vm-create) to enable automatic VM guest patching when creating a new VM. The following example configures automatic VM guest patching for a VM named *myVM* in the resource group named *myResourceGroup*:
```azurecli-interactive az vm create --resource-group myResourceGroup --name myVM --image Win2019Datacenter --enable-agent --enable-auto-update --patch-mode AutomaticByPlatform ```
-To modify an existing VM, use [az vm update](/cli/azure/vm#az_vm_update)
+To modify an existing VM, use [az vm update](/cli/azure/vm#az-vm-update)
```azurecli-interactive az vm update --resource-group myResourceGroup --name myVM --set osProfile.windowsConfiguration.enableAutomaticUpdates=true osProfile.windowsConfiguration.patchSettings.patchMode=AutomaticByPlatform
Get-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM" -Status
PowerShell currently only provides information on the patch extension. Information about `patchStatus` will also be available soon through PowerShell. ### Azure CLI
-Use [az vm get-instance-view](/cli/azure/vm#az_vm_get_instance_view) to access the instance view for your VM.
+Use [az vm get-instance-view](/cli/azure/vm#az-vm-get-instance-view) to access the instance view for your VM.
```azurecli-interactive az vm get-instance-view --resource-group myResourceGroup --name myVM
Invoke-AzVmPatchAssessment -ResourceGroupName "myResourceGroup" -VMName "myVM"
``` ### Azure CLI
-Use [az vm assess-patches](/cli/azure/vm#az_vm_assess_patches) to assess available patches for your virtual machine.
+Use [az vm assess-patches](/cli/azure/vm#az-vm-assess-patches) to assess available patches for your virtual machine.
```azurecli-interactive az vm assess-patches --resource-group myResourceGroup --name myVM
Invoke-AzVmInstallPatch -ResourceGroupName "myResourceGroup" -VMName "myVM" -Max
``` ### Azure CLI
-Use [az vm install-patches](/cli/azure/vm#az_vm_install_patches) to install patches on your virtual machine.
+Use [az vm install-patches](/cli/azure/vm#az-vm-install-patches) to install patches on your virtual machine.
Example to install all Critical patches on a Linux VM: ```azurecli-interactive
virtual-machines Azure Cli Change Subscription Marketplace https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/azure-cli-change-subscription-marketplace.md
az group delete --name $destinationResourceGroup --subscription $destinationSubs
## Azure CLI references used in this article -- [az account set](/cli/azure/account#az_account_set)-- [az disk create](/cli/azure/disk#az_disk_create)-- [az group delete](/cli/azure/group#az_group_delete)-- [az resource move](/cli/azure/resource#az_resource_move)-- [az snapshot create](/cli/azure/snapshot#az_snapshot_create)-- [az vm create](/cli/azure/vm#az_vm_create)-- [az vm deallocate](/cli/azure/vm#az_vm_deallocate)-- [az vm delete](/cli/azure/vm#az_vm_delete)-- [az vm get-instance-view](/cli/azure/vm#az_vm_get_instance_view)-- [az vm image terms accept](/cli/azure/vm/image/terms#az_vm_image_terms_accept)-- [az vm image terms show](/cli/azure/vm/image/terms#az_vm_image_terms_show)-- [az vm show](/cli/azure/vm#az_vm_show)
+- [az account set](/cli/azure/account#az-account-set)
+- [az disk create](/cli/azure/disk#az-disk-create)
+- [az group delete](/cli/azure/group#az-group-delete)
+- [az resource move](/cli/azure/resource#az-resource-move)
+- [az snapshot create](/cli/azure/snapshot#az-snapshot-create)
+- [az vm create](/cli/azure/vm#az-vm-create)
+- [az vm deallocate](/cli/azure/vm#az-vm-deallocate)
+- [az vm delete](/cli/azure/vm#az-vm-delete)
+- [az vm get-instance-view](/cli/azure/vm#az-vm-get-instance-view)
+- [az vm image terms accept](/cli/azure/vm/image/terms#az-vm-image-terms-accept)
+- [az vm image terms show](/cli/azure/vm/image/terms#az-vm-image-terms-show)
+- [az vm show](/cli/azure/vm#az-vm-show)
## Next steps
virtual-machines Create Gallery https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/create-gallery.md
The following example creates a gallery named *myGallery* in the *myGalleryRG* r
### [CLI](#tab/cli)
-Create a gallery using [az sig create](/cli/azure/sig#az_sig_create). The following example creates a resource group named gallery named *myGalleryRG* in *East US*, and a gallery named *myGallery*.
+Create a gallery using [az sig create](/cli/azure/sig#az-sig-create). The following example creates a resource group named gallery named *myGalleryRG* in *East US*, and a gallery named *myGallery*.
```azurecli-interactive az group create --name myGalleryRG --location eastus
virtual-machines Custom Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/custom-data.md
Azure currently supports two provisioning agents:
## FAQ ### Can I update custom data after the VM has been created?
-For single VMs, you can't update custom data in the VM model. But for virtual machine scale sets, you can update custom data via the [REST API](/rest/api/compute/virtualmachinescalesets/update), the [Azure CLI](/cli/azure/vmss#az_vmss_update), or [Azure PowerShell](/powershell/module/az.compute/update-azvmss). When you update custom data in the model for a virtual machine scale set:
+For single VMs, you can't update custom data in the VM model. But for virtual machine scale sets, you can update custom data via the [REST API](/rest/api/compute/virtualmachinescalesets/update), the [Azure CLI](/cli/azure/vmss#az-vmss-update), or [Azure PowerShell](/powershell/module/az.compute/update-azvmss). When you update custom data in the model for a virtual machine scale set:
* Existing instances in the scale set won't get the updated custom data until they're reimaged. * Existing instances in the scale set that are upgraded won't get the updated custom data.
virtual-machines Dedicated Hosts How To https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/dedicated-hosts-how-to.md
Not all host SKUs are available in all regions, and availability zones. You can
az vm list-skus -l eastus2 -r hostGroups/hosts -o table ```
-In this example, we will use [az vm host group create](/cli/azure/vm/host/group#az_vm_host_group_create) to create a host group using both availability zones and fault domains.
+In this example, we will use [az vm host group create](/cli/azure/vm/host/group#az-vm-host-group-create) to create a host group using both availability zones and fault domains.
```azurecli-interactive az vm host group create \
Add the `--automatic-placement true` parameter to have your VMs and scale set in
**Other examples**
-You can also use [az vm host group create](/cli/azure/vm/host/group#az_vm_host_group_create) to create a host group in availability zone 1 (and no fault domains).
+You can also use [az vm host group create](/cli/azure/vm/host/group#az-vm-host-group-create) to create a host group in availability zone 1 (and no fault domains).
```azurecli-interactive az vm host group create \
az vm host group create \
--platform-fault-domain-count 1 ```
-The following uses [az vm host group create](/cli/azure/vm/host/group#az_vm_host_group_create) to create a host group by using fault domains only (to be used in regions where availability zones are not supported).
+The following uses [az vm host group create](/cli/azure/vm/host/group#az-vm-host-group-create) to create a host group by using fault domains only (to be used in regions where availability zones are not supported).
```azurecli-interactive az vm host group create \
If you set a fault domain count for your host group, you will need to specify th
### [CLI](#tab/cli)
-Use [az vm host create](/cli/azure/vm/host#az_vm_host_create) to create a host. If you set a fault domain count for your host group, you will be asked to specify the fault domain for your host.
+Use [az vm host create](/cli/azure/vm/host#az-vm-host-create) to create a host. If you set a fault domain count for your host group, you will be asked to specify the fault domain for your host.
```azurecli-interactive az vm host create \
It will take a few minutes for your VM to be deployed.
### [CLI](#tab/cli)
-Create a virtual machine within a dedicated host using [az vm create](/cli/azure/vm#az_vm_create). If you specified an availability zone when creating your host group, you are required to use the same zone when creating the virtual machine. Replace the values like image and host name with your own. If you are creating a Windows VM, remove `--generate-ssh-keys` to be prompted for a password.
+Create a virtual machine within a dedicated host using [az vm create](/cli/azure/vm#az-vm-create). If you specified an availability zone when creating your host group, you are required to use the same zone when creating the virtual machine. Replace the values like image and host name with your own. If you are creating a Windows VM, remove `--generate-ssh-keys` to be prompted for a password.
```azurecli-interactive az vm create \
When you deploy a scale set, you specify the host group.
### [CLI](#tab/cli)
-When you deploy a scale set using [az vmss create](/cli/azure/vmss#az_vmss_create), you specify the host group using `--host-group`. In this example, we are deploying the latest Ubuntu LTS image. To deploy a Windows image, replace the value of `--image` and remove `--generate-ssh-keys` to be prompted for a password.
+When you deploy a scale set using [az vmss create](/cli/azure/vmss#az-vmss-create), you specify the host group using `--host-group`. In this example, we are deploying the latest Ubuntu LTS image. To deploy a Windows image, replace the value of `--image` and remove `--generate-ssh-keys` to be prompted for a password.
```azurecli-interactive az vmss create \
If you need to know how much capacity is still available on a how, you can check
### [CLI](#tab/cli)
-You can check the host health status and how many virtual machines you can still deploy to the host using [az vm host get-instance-view](/cli/azure/vm/host#az_vm_host_get_instance_view).
+You can check the host health status and how many virtual machines you can still deploy to the host using [az vm host get-instance-view](/cli/azure/vm/host#az-vm-host-get-instance-view).
```azurecli-interactive az vm host get-instance-view \
You can only delete a host when there are no any longer virtual machines using i
### [CLI](#tab/cli)
- Delete the VMs using [az vm delete](/cli/azure/vm#az_vm_delete).
+ Delete the VMs using [az vm delete](/cli/azure/vm#az-vm-delete).
```azurecli-interactive az vm delete -n myVM -g myDHResourceGroup ```
-After deleting the VMs, you can delete the host using [az vm host delete](/cli/azure/vm/host#az_vm_host_delete).
+After deleting the VMs, you can delete the host using [az vm host delete](/cli/azure/vm/host#az-vm-host-delete).
```azurecli-interactive az vm host delete -g myDHResourceGroup --host-group myHostGroup --name myHost ```
-Once you have deleted all of your hosts, you may delete the host group using [az vm host group delete](/cli/azure/vm/host/group#az_vm_host_group_delete).
+Once you have deleted all of your hosts, you may delete the host group using [az vm host group delete](/cli/azure/vm/host/group#az-vm-host-group-delete).
```azurecli-interactive az vm host group delete -g myDHResourceGroup --host-group myHostGroup
virtual-machines Disks Pools Deploy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/disks-pools-deploy.md
To successfully deploy a disk pool, you must have:
- A set of managed disks you want to add to a disk pool. - A virtual network with a dedicated subnet deployed for your disk pool. - Outbound ports 53, 443, and 5671 must be open.
- - Ensure that your network setting don't block any of your disk pool's required outbound dependencies. You can use either the [Azure PowerShell module](/powershell/module/az.diskpool/get-azdiskpooloutboundnetworkdependencyendpoint) or [Azure CLI](/cli/azure/disk-pool#az_disk_pool_list_outbound_network_dependency_endpoint) to get the complete list of all outbound dependencies.
+ - Ensure that your network setting don't block any of your disk pool's required outbound dependencies. You can use either the [Azure PowerShell module](/powershell/module/az.diskpool/get-azdiskpooloutboundnetworkdependencyendpoint) or [Azure CLI](/cli/azure/disk-pool#az-disk-pool-list-outbound-network-dependency-endpoint) to get the complete list of all outbound dependencies.
If you're going to use the Azure PowerShell module, install [version 6.1.0 or newer](/powershell/module/az.diskpool/?view=azps-6.1.0&preserve-view=true).
targetName='<desirediSCSITargetName>'
lunName='<desiredLunName>' #You can skip this step if you have already created the disk and assigned permission in the prerequisite step. Below is an example for premium disks.
-az disk create --name $diskName --resource-group $resourceGroupName --zone $zone --location $location --sku Premium_LRS --max-shares 2 --size-gb 1024
+az disk create --name $diskName --resource-group $resourceGroupName --zone $zone --location $location --sku Premium-LRS --max-shares 2 --size-gb 1024
#You can deploy all your disks into one resource group and assign StoragePool Resource Provider permission to the group storagePoolObjectId=$(az ad sp list --filter "displayName eq 'StoragePool Resource Provider'" --query "[0].objectId" -o json)
virtual-machines Disks Shared https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/disks-shared.md
Some popular applications running on WSFC include:
Azure shared disks are supported on: - [SUSE SLE HA 15 SP1 and above](https://www.suse.com/c/azure-shared-disks-excercise-w-sles-for-sap-or-sle-ha/) - [Ubuntu 18.04 and above](https://discourse.ubuntu.com/t/ubuntu-high-availability-corosync-pacemaker-shared-disk-environments/14874)-- [RHEL 8.3 and above](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/deploying_red_hat_enterprise_linux_8_on_public_cloud_platforms/index?lb_target=production#azure-configuring-shared-block-storage_configuring-rhel-high-availability-on-azure)
+- [RHEL 8.3 and above](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/deploying_red_hat_enterprise_linux_8_on_public_cloud_platforms/index?lb_target=production#azure-configuring-shared-block-storage-configuring-rhel-high-availability-on-azure)
- It may be possible to use RHEL 7 or an older version of RHEL 8 with shared disks, contact SharedDiskFeedback @microsoft.com - [Oracle Enterprise Linux](https://docs.oracle.com/en/operating-systems/oracle-linux/8/availability/hacluster-1.html)
virtual-machines Ephemeral Os Disks Deploy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/ephemeral-os-disks-deploy.md
You can deploy a VM with an ephemeral OS disk using a template. The process to c
## CLI
-To use an ephemeral disk for a CLI VM deployment, set the `--ephemeral-os-disk` parameter in [az vm create](/cli/azure/vm#az_vm_create) to `true` and the `--ephemeral-os-disk-placement` parameter to `ResourceDisk` for temp disk placement or `CacheDisk` for cache disk placement and the `--os-disk-caching` parameter to `ReadOnly`.
+To use an ephemeral disk for a CLI VM deployment, set the `--ephemeral-os-disk` parameter in [az vm create](/cli/azure/vm#az-vm-create) to `true` and the `--ephemeral-os-disk-placement` parameter to `ResourceDisk` for temp disk placement or `CacheDisk` for cache disk placement and the `--os-disk-caching` parameter to `ReadOnly`.
```azurecli-interactive az vm create \
az vm create \
--generate-ssh-keys ```
-For scale sets, you use the same `--ephemeral-os-disk true` parameter for [az-vmss-create](/cli/azure/vmss#az_vmss_create) and set the `--os-disk-caching` parameter to `ReadOnly` and the `--ephemeral-os-disk-placement` parameter to `ResourceDisk` for temp disk placement or `CacheDisk` for cache disk placement.
+For scale sets, you use the same `--ephemeral-os-disk true` parameter for [az-vmss-create](/cli/azure/vmss#az-vmss-create) and set the `--os-disk-caching` parameter to `ReadOnly` and the `--ephemeral-os-disk-placement` parameter to `ResourceDisk` for temp disk placement or `CacheDisk` for cache disk placement.
## Reimage a VM using REST You can reimage a Virtual Machine instance with ephemeral OS disk using REST API as described below and via Azure portal by going to Overview pane of the VM. For scale sets, reimaging is already available through PowerShell, CLI, and the portal.
virtual-machines Agent Linux https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/extensions/agent-linux.md
Refer to the documentation in the [Azure Linux Agent repo on GitHub](https://git
* deprovision: Attempt to clean the system and make it suitable for reprovisioning. The following operation deletes: * All SSH host keys (if Provisioning.RegenerateSshHostKeyPair is 'y' in the configuration file)
- * Nameserver configuration in /etc/resolv.conf
- * Root password from /etc/shadow (if Provisioning.DeleteRootPassword is 'y' in the configuration file)
+ * Nameserver configuration in `/etc/resolv.conf`
+ * Root password from `/etc/shadow` (if Provisioning.DeleteRootPassword is 'y' in the configuration file)
* Cached DHCP client leases * Resets host name to localhost.localdomain
Refer to the documentation in the [Azure Linux Agent repo on GitHub](https://git
> >
-* deprovision+user: Performs everything in -deprovision (above) and also deletes the last provisioned user account (obtained from /var/lib/waagent) and associated data. This parameter is when de-provisioning an image that was previously provisioning on Azure so it may be captured and reused.
+* deprovision+user: Performs everything in -deprovision (above) and also deletes the last provisioned user account (obtained from `/var/lib/waagent`) and associated data. This parameter is when de-provisioning an image that was previously provisioning on Azure so it may be captured and reused.
* version: Displays the version of waagent * serialconsole: Configures GRUB to mark ttyS0 (the first serial port) as the boot console. This ensures that kernel bootup logs are sent to the
If set, the root password in the /etc/shadow file is erased during the provision
Type: Boolean Default: y ```
-If set, all SSH host key pairs (ecdsa, dsa, and rsa) are deleted during the provisioning process from /etc/ssh/. And a single fresh key pair is generated.
+If set, all SSH host key pairs (ecdsa, dsa, and rsa) are deleted during the provisioning process from `/etc/ssh/`. And a single fresh key pair is generated.
The encryption type for the fresh key pair is configurable by the Provisioning.SshHostKeyPairType entry. Some distributions re-create SSH key pairs for any missing encryption types when the SSH daemon is restarted (for example, upon a reboot).
The size of the swap file in megabytes.
Type: Boolean Default: n ```
-If set, log verbosity is boosted. Waagent logs to /var/log/waagent.log and utilizes the system logrotate functionality to rotate logs.
+If set, log verbosity is boosted. Waagent logs to `/var/log/waagent.log` and utilizes the system logrotate functionality to rotate logs.
**OS.EnableRDMA** ```txt
Ubuntu Cloud Images utilize [cloud-init](https://launchpad.net/ubuntu/+source/cl
* For more information, see the following resources to configure the resource disk mount point and swap space on Ubuntu Cloud Images during provisioning: * [Ubuntu Wiki: Configure Swap Partitions](https://go.microsoft.com/fwlink/?LinkID=532955&clcid=0x409)
- * [Injecting Custom Data into an Azure Virtual Machine](../windows/tutorial-automate-vm-deployment.md)
+ * [Injecting Custom Data into an Azure Virtual Machine](../windows/tutorial-automate-vm-deployment.md)
virtual-machines Azure Disk Enc Linux https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/extensions/azure-disk-enc-linux.md
For an example of template deployment based on schema v0.1, see the Azure Quicks
>[!WARNING] > - If you have previously used Azure Disk Encryption with Azure AD to encrypt a VM, you must continue use this option to encrypt your VM.
-> - When encrypting Linux OS volumes, the VM should be considered unavailable. We strongly recommend to avoid SSH logins while the encryption is in progress to avoid issues blocking any open files that will need to be accessed during the encryption process. To check progress, use the [Get-AzVMDiskEncryptionStatus](/powershell/module/az.compute/get-azvmdiskencryptionstatus) PowerShell cmdlet or the [vm encryption show](/cli/azure/vm/encryption#az_vm_encryption_show) CLI command. This process can be expected to take a few hours for a 30GB OS volume, plus additional time for encrypting data volumes. Data volume encryption time will be proportional to the size and quantity of the data volumes unless the encrypt format all option is used.
+> - When encrypting Linux OS volumes, the VM should be considered unavailable. We strongly recommend to avoid SSH logins while the encryption is in progress to avoid issues blocking any open files that will need to be accessed during the encryption process. To check progress, use the [Get-AzVMDiskEncryptionStatus](/powershell/module/az.compute/get-azvmdiskencryptionstatus) PowerShell cmdlet or the [vm encryption show](/cli/azure/vm/encryption#az-vm-encryption-show) CLI command. This process can be expected to take a few hours for a 30GB OS volume, plus additional time for encrypting data volumes. Data volume encryption time will be proportional to the size and quantity of the data volumes unless the encrypt format all option is used.
> - Disabling encryption on Linux VMs is only supported for data volumes. It is not supported on data or OS volumes if the OS volume has been encrypted. >[!NOTE]
virtual-machines Features Linux https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/extensions/features-linux.md
To redirect agent traffic requests, the Azure Linux Agent has proxy server suppo
## Discover VM extensions
-Many VM extensions are available for use with Azure VMs. To see a complete list, use [az vm extension image list](/cli/azure/vm/extension/image#az_vm_extension_image_list). The following example lists all available extensions in the *westus* location:
+Many VM extensions are available for use with Azure VMs. To see a complete list, use [az vm extension image list](/cli/azure/vm/extension/image#az-vm-extension-image-list). The following example lists all available extensions in the *westus* location:
```azurecli az vm extension image list --location westus --output table
You can use the following methods to run an extension against an existing VM.
### Azure CLI
-You can run Azure VM extensions against an existing VM by using the [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) command. The following example runs the Custom Script extension against a VM named *myVM* in a resource group named *myResourceGroup*. Replace the example resource group name, VM name, and script to run (https:\//raw.githubusercontent.com/me/project/hello.sh) with your own information.
+You can run Azure VM extensions against an existing VM by using the [az vm extension set](/cli/azure/vm/extension#az-vm-extension-set) command. The following example runs the Custom Script extension against a VM named *myVM* in a resource group named *myResourceGroup*. Replace the example resource group name, VM name, and script to run (https:\//raw.githubusercontent.com/me/project/hello.sh) with your own information.
```azurecli az vm extension set \
Automatic extension updates are either *minor* or *hotfix*. You can opt in or op
To get the latest minor-release bug fixes, we highly recommend that you always select automatic update in your extension deployments. You can't opt out of hotfix updates that carry security or key bug fixes.
-If you disable automatic updates or you need to upgrade a major version, use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) and specify the target version.
+If you disable automatic updates or you need to upgrade a major version, use [az vm extension set](/cli/azure/vm/extension#az-vm-extension-set) and specify the target version.
### How to identify extension updates #### Identify if the extension is set with autoUpgradeMinorVersion on a VM
-You can see from the VM model if the extension was provisioned with `autoUpgradeMinorVersion`. To check, use [az vm show](/cli/azure/vm#az_vm_show) and provide the resource group and VM name as follows:
+You can see from the VM model if the extension was provisioned with `autoUpgradeMinorVersion`. To check, use [az vm show](/cli/azure/vm#az-vm-show) and provide the resource group and VM name as follows:
```azurecli az vm show --resource-group myResourceGroup --name myVM
The following troubleshooting actions apply to all VM extensions:
### View extension status
-After a VM extension has been run against a VM, use [az vm get-instance-view](/cli/azure/vm#az_vm_get_instance_view) to return extension status as follows:
+After a VM extension has been run against a VM, use [az vm get-instance-view](/cli/azure/vm#az-vm-get-instance-view) to return extension status as follows:
```azurecli az vm get-instance-view \
You can also find extension execution status in the Azure portal. Select the VM,
### Rerun a VM extension
-There might be cases in which a VM extension needs to be rerun. You can rerun an extension by removing it, and then rerunning the extension with an execution method of your choice. To remove an extension, use [az vm extension delete](/cli/azure/vm/extension#az_vm_extension_delete) as follows:
+There might be cases in which a VM extension needs to be rerun. You can rerun an extension by removing it, and then rerunning the extension with an execution method of your choice. To remove an extension, use [az vm extension delete](/cli/azure/vm/extension#az-vm-extension-delete) as follows:
```azurecli az vm extension delete \
virtual-machines How To Enable Write Accelerator https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/how-to-enable-write-accelerator.md
You can enable Write Accelerator via the portal where you specify your disk cach
You can use the [Azure CLI](/cli/azure/) to enable Write Accelerator.
-To enable Write Accelerator on an existing disk, use [az vm update](/cli/azure/vm#az_vm_update), you may use the following examples if you replace the diskName, VMName, and ResourceGroup with your own values: `az vm update -g group1 -n vm1 -write-accelerator 1=true`
+To enable Write Accelerator on an existing disk, use [az vm update](/cli/azure/vm#az-vm-update), you may use the following examples if you replace the diskName, VMName, and ResourceGroup with your own values: `az vm update -g group1 -n vm1 -write-accelerator 1=true`
-To attach a disk with Write Accelerator enabled use [az vm disk attach](/cli/azure/vm/disk#az_vm_disk_attach), you may use the following example if you substitute in your own values: `az vm disk attach -g group1 -vm-name vm1 -disk d1 --enable-write-accelerator`
+To attach a disk with Write Accelerator enabled use [az vm disk attach](/cli/azure/vm/disk#az-vm-disk-attach), you may use the following example if you substitute in your own values: `az vm disk attach -g group1 -vm-name vm1 -disk d1 --enable-write-accelerator`
-To disable Write Accelerator, use [az vm update](/cli/azure/vm#az_vm_update), setting the properties to false: `az vm update -g group1 -n vm1 -write-accelerator 0=false 1=false`
+To disable Write Accelerator, use [az vm update](/cli/azure/vm#az-vm-update), setting the properties to false: `az vm update -g group1 -n vm1 -write-accelerator 0=false 1=false`
## Enabling Write Accelerator using REST APIs
virtual-machines Image Version Encryption https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/image-version-encryption.md
For data disks, add the `-DiskEncryptionSetId $setID` parameter when you use [Ad
## CLI
-To specify a disk encryption set for an image version, use [az image gallery create-image-version](/cli/azure/sig/image-version#az_sig_image_version_create) with the `--target-region-encryption` parameter. The format for `--target-region-encryption` is a comma-separated list of keys for encrypting the OS and data disks. It should look like this: `<encryption set for the OS disk>,<Lun number of the data disk>,<encryption set for the data disk>,<Lun number for the second data disk>,<encryption set for the second data disk>`.
+To specify a disk encryption set for an image version, use [az image gallery create-image-version](/cli/azure/sig/image-version#az-sig-image-version-create) with the `--target-region-encryption` parameter. The format for `--target-region-encryption` is a comma-separated list of keys for encrypting the OS and data disks. It should look like this: `<encryption set for the OS disk>,<Lun number of the data disk>,<encryption set for the data disk>,<Lun number for the second data disk>,<encryption set for the second data disk>`.
If the source for the OS disk is a managed disk or a VM, use `--managed-image` to specify the source for the image version. In this example, the source is a managed image that has an OS disk and a data disk at LUN 0. The OS disk will be encrypted with DiskEncryptionSet1, and the data disk will be encrypted with DiskEncryptionSet2.
virtual-machines Image Version https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/image-version.md
You can also capture an existing VM as an image, from the portal. For more infor
Image definitions create a logical grouping for images. They are used to manage information about the image versions that are created within them.
-Create an image definition in a gallery using [az sig image-definition create](/cli/azure/sig/image-definition#az_sig_image_definition_create). Make sure your image definition is the right type. If you have generalized the VM (using Sysprep for Windows, or waagent -deprovision for Linux) then you should create a generalized image definition using `--os-state generalized`. If you want to use the VM without removing existing user accounts, create a specialized image definition using `--os-state specialized`.
+Create an image definition in a gallery using [az sig image-definition create](/cli/azure/sig/image-definition#az-sig-image-definition-create). Make sure your image definition is the right type. If you have generalized the VM (using Sysprep for Windows, or waagent -deprovision for Linux) then you should create a generalized image definition using `--os-state generalized`. If you want to use the VM without removing existing user accounts, create a specialized image definition using `--os-state specialized`.
For more information about the parameters you can specify for an image definition, see [Image definitions](shared-image-galleries.md#image-definitions).
az sig image-definition create \
**Create the image version**
-Create an image version using [az sig image version create](/cli/azure/sig/image-version#az_sig_image_version_create).
+Create an image version using [az sig image version create](/cli/azure/sig/image-version#az-sig-image-version-create).
The syntax for creating the image will change, depending on what you are using as your source. You can mix the source types, as long as you only have one OS source. You can also have different sources for each data disk.
The syntax for creating the image will change, depending on what you are using a
| Snapshot or managed disk | `--data-snapshots <Resource ID of the snapshot or managed disk> --data-snapshot-luns <LUN number>` | | VHD in a storage account | `--data-vhds-sa <storageaccountname> --data-vhds-uris <URI> --data-vhds-luns <LUN number>` |
-For detailed examples of how to specify different sources for your image, see the [az sig image-version create examples](/cli/azure/sig/image-version#az_sig_image_version_create-examples).
+For detailed examples of how to specify different sources for your image, see the [az sig image-version create examples](/cli/azure/sig/image-version#az-sig-image-version-create-examples).
In the example below, we are creating an image from a **VM**. The version of our image is *1.0.0* and we are going to create 2 replicas in the *West Central US* region, 1 replica in the *South Central US* region and 1 replica in the *East US 2* region using zone-redundant storage. The replication regions must include the region the source VM is located.
virtual-machines Build Image With Packer https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/build-image-with-packer.md
az vm create \
--generate-ssh-keys ```
-If you wish to create VMs in a different resource group or region than your Packer image, specify the image ID rather than image name. You can obtain the image ID with [az image show](/cli/azure/image#az_image_show).
+If you wish to create VMs in a different resource group or region than your Packer image, specify the image ID rather than image name. You can obtain the image ID with [az image show](/cli/azure/image#az-image-show).
It takes a few minutes to create the VM. Once the VM has been created, take note of the `publicIpAddress` displayed by the Azure CLI. This address is used to access the NGINX site via a web browser.
virtual-machines Capture Image https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/capture-image.md
You'll need the following items before creating an image:
* An Azure VM created in the Resource Manager deployment model that uses managed disks. If you haven't yet created a Linux VM, you can use the [portal](quick-create-portal.md), the [Azure CLI](quick-create-cli.md), or [Resource Manager templates](create-ssh-secured-vm-from-template.md). Configure the VM as needed. For example, [add data disks](add-disk.md), apply updates, and install applications.
-* The latest [Azure CLI](/cli/azure/install-az-cli2) installed and be logged in to an Azure account with [az login](/cli/azure/reference-index#az_login).
+* The latest [Azure CLI](/cli/azure/install-az-cli2) installed and be logged in to an Azure account with [az login](/cli/azure/reference-index#az-login).
## Prefer a tutorial instead?
Use the Azure CLI to mark the VM as generalized and capture the image. In the fo
A VM that has been generalized can no longer be restarted.
-3. Create an image of the VM resource with [az image create](/cli/azure/image#az_image_create). The following example creates an image named *myImage* in the resource group named *myResourceGroup* using the VM resource named *myVM*.
+3. Create an image of the VM resource with [az image create](/cli/azure/image#az-image-create). The following example creates an image named *myImage* in the resource group named *myResourceGroup* using the VM resource named *myVM*.
```azurecli az image create \
az vm create \
### Creating the VM in another resource group
-You can create VMs from an image in any resource group within your subscription. To create a VM in a different resource group than the image, specify the full resource ID to your image. Use [az image list](/cli/azure/image#az_image_list) to view a list of images. The output is similar to the following example.
+You can create VMs from an image in any resource group within your subscription. To create a VM in a different resource group than the image, specify the full resource ID to your image. Use [az image list](/cli/azure/image#az-image-list) to view a list of images. The output is similar to the following example.
```json "id": "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage",
You can create VMs from an image in any resource group within your subscription.
"name": "myImage", ```
-The following example uses [az vm create](/cli/azure/vm#az_vm_create) to create a VM in a resource group other than the source image, by specifying the image resource ID.
+The following example uses [az vm create](/cli/azure/vm#az-vm-create) to create a VM in a resource group other than the source image, by specifying the image resource ID.
```azurecli az vm create \
az vm create \
## Step 4: Verify the deployment
-SSH into the virtual machine you created to verify the deployment and start using the new VM. To connect via SSH, find the IP address or FQDN of your VM with [az vm show](/cli/azure/vm#az_vm_show).
+SSH into the virtual machine you created to verify the deployment and start using the new VM. To connect via SSH, find the IP address or FQDN of your VM with [az vm show](/cli/azure/vm#az-vm-show).
```azurecli az vm show \
virtual-machines Cli Ps Findimage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/cli-ps-findimage.md
If you get a message about accepting the terms of the image, review section [Acc
If you have an existing VHD from a VM that was created using a paid Azure Marketplace image, you might need to supply the purchase plan information when you create a new VM from that VHD.
-If you still have the original VM, or another VM created using the same marketplace image, you can get the plan name, publisher, and product information from it using [az vm get-instance-view](/cli/azure/vm#az_vm_get_instance_view). This example gets a VM named *myVM* in the *myResourceGroup* resource group and then displays the purchase plan information.
+If you still have the original VM, or another VM created using the same marketplace image, you can get the plan name, publisher, and product information from it using [az vm get-instance-view](/cli/azure/vm#az-vm-get-instance-view). This example gets a VM named *myVM* in the *myResourceGroup* resource group and then displays the purchase plan information.
```azurepowershell-interactive az vm get-instance-view -g myResourceGroup -n myVM --query plan
virtual-machines Create Ssh Keys Detailed https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/create-ssh-keys-detailed.md
To create the keys, a preferred command is `ssh-keygen`, which is available with
SSH keys are by default kept in the `~/.ssh` directory. If you do not have a `~/.ssh` directory, the `ssh-keygen` command creates it for you with the correct permissions. An SSH key is created as a resource and stored in Azure for later use. > [!NOTE]
-> You can also create keys with the [Azure CLI](/cli/azure) with the [az sshkey create](/cli/azure/sshkey#az_sshkey_create) command, as described in [Generate and store SSH keys](../ssh-keys-azure-cli.md).
+> You can also create keys with the [Azure CLI](/cli/azure) with the [az sshkey create](/cli/azure/sshkey#az-sshkey-create) command, as described in [Generate and store SSH keys](../ssh-keys-azure-cli.md).
### Basic example
virtual-machines Disable Provisioning https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/disable-provisioning.md
The Azure platform hosts many extensions that range from VM configuration, monit
## Disabling extension processing
-There are several ways to disable extension processing, depending on your needs, but before you continue, you **MUST** remove all extensions deployed to the VM, for example using the Azure CLI, you can [list](/cli/azure/vm/extension#az_vm_extension_list) and [delete](/cli/azure/vm/extension#az_vm_extension_delete):
+There are several ways to disable extension processing, depending on your needs, but before you continue, you **MUST** remove all extensions deployed to the VM, for example using the Azure CLI, you can [list](/cli/azure/vm/extension#az-vm-extension-list) and [delete](/cli/azure/vm/extension#az-vm-extension-delete):
```azurecli az vm extension delete -g MyResourceGroup --vm-name MyVm -n extension_name
When you create the VM from the image with no Linux Agent, you need to ensure th
> > If you do not do the above, the platform will try to send the extension configuration and timeout after 40min.
-To deploy the VM with extensions disabled, you can use the Azure CLI with [--enable-agent](/cli/azure/vm#az_vm_create).
+To deploy the VM with extensions disabled, you can use the Azure CLI with [--enable-agent](/cli/azure/vm#az-vm-create).
```azurecli az vm create \
virtual-machines Disk Encryption Cli Quickstart https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/disk-encryption-cli-quickstart.md
If you choose to install and use the Azure CLI locally, this quickstart requires
## Create a resource group
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command. An Azure resource group is a logical container into which Azure resources are deployed and managed. The following example creates a resource group named *myResourceGroup* in the *eastus* location:
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command. An Azure resource group is a logical container into which Azure resources are deployed and managed. The following example creates a resource group named *myResourceGroup* in the *eastus* location:
```azurecli-interactive az group create --name "myResourceGroup" --location "eastus"
az group create --name "myResourceGroup" --location "eastus"
## Create a virtual machine
-Create a VM with [az vm create](/cli/azure/vm#az_vm_create). The following example creates a VM named *myVM*.
+Create a VM with [az vm create](/cli/azure/vm#az-vm-create). The following example creates a VM named *myVM*.
```azurecli-interactive az vm create \
It takes a few minutes to create the VM and supporting resources. The following
## Create a Key Vault configured for encryption keys
-Azure disk encryption stores its encryption key in an Azure Key Vault. Create a Key Vault with [az keyvault create](/cli/azure/keyvault#az_keyvault_create). To enable the Key Vault to store encryption keys, use the --enabled-for-disk-encryption parameter.
+Azure disk encryption stores its encryption key in an Azure Key Vault. Create a Key Vault with [az keyvault create](/cli/azure/keyvault#az-keyvault-create). To enable the Key Vault to store encryption keys, use the --enabled-for-disk-encryption parameter.
> [!Important] > Every key vault must have a name that is unique across Azure. In the examples below, replace \<your-unique-keyvault-name\> with the name you choose.
Encrypt your VM with [az vm encryption](/cli/azure/vm/encryption), providing you
az vm encryption enable -g "MyResourceGroup" --name "myVM" --disk-encryption-keyvault "<your-unique-keyvault-name>" ```
-After a moment the process will return, "The encryption request was accepted. Please use 'show' command to monitor the progress.". The "show" command is [az vm show](/cli/azure/vm/encryption#az_vm_encryption_show).
+After a moment the process will return, "The encryption request was accepted. Please use 'show' command to monitor the progress.". The "show" command is [az vm show](/cli/azure/vm/encryption#az-vm-encryption-show).
```azurecli-interactive az vm encryption show --name "myVM" -g "MyResourceGroup"
virtual-machines Disk Encryption Key Vault Aad https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/disk-encryption-key-vault-aad.md
You can create a key vault with Azure PowerShell using the [New-AzKeyVault](/pow
### <a name="bkmk_KVCLI"></a> Create a key vault with Azure CLI
-You can manage your key vault with Azure CLI using the [az keyvault](/cli/azure/keyvault#commands) commands. To create a key vault, use [az keyvault create](/cli/azure/keyvault#az_keyvault_create).
+You can manage your key vault with Azure CLI using the [az keyvault](/cli/azure/keyvault#commands) commands. To create a key vault, use [az keyvault create](/cli/azure/keyvault#az-keyvault-create).
-1. Create a new resource group, if needed, with [az group create](/cli/azure/group#az_group_create). To list locations, use [az account list-locations](/cli/azure/account#az_account_list)
+1. Create a new resource group, if needed, with [az group create](/cli/azure/group#az-group-create). To list locations, use [az account list-locations](/cli/azure/account#az-account-list)
```azurecli-interactive # To list locations: az account list-locations --output table az group create -n "MyKeyVaultResourceGroup" -l "East US" ```
-3. Create a new key vault using [az keyvault create](/cli/azure/keyvault#az_keyvault_create).
+3. Create a new key vault using [az keyvault create](/cli/azure/keyvault#az-keyvault-create).
```azurecli-interactive az keyvault create --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --location "East US"
Your Azure AD application needs rights to access the keys or secrets in the vaul
``` ### <a name="bkmk_KVAPCLI"></a> Set the key vault access policy for the Azure AD app with Azure CLI
-Use [az keyvault set-policy](/cli/azure/keyvault#az_keyvault_set_policy) to set the access policy. For more information, see [Manage Key Vault using CLI 2.0](../../key-vault/general/manage-with-cli2.md#authorizing-an-application-to-use-a-key-or-secret).
+Use [az keyvault set-policy](/cli/azure/keyvault#az-keyvault-set-policy) to set the access policy. For more information, see [Manage Key Vault using CLI 2.0](../../key-vault/general/manage-with-cli2.md#authorizing-an-application-to-use-a-key-or-secret).
Give the service principal you created via the Azure CLI access to get secrets and wrap keys with the following command:
The Azure platform needs access to the encryption keys or secrets in your key va
``` ### <a name="bkmk_KVperCLI"></a> Set key vault advanced access policies using the Azure CLI
-Use [az keyvault update](/cli/azure/keyvault#az_keyvault_update) to enable disk encryption for the key vault.
+Use [az keyvault update](/cli/azure/keyvault#az-keyvault-update) to enable disk encryption for the key vault.
- **Enable Key Vault for disk encryption:** Enabled-for-disk-encryption is required.
virtual-machines Disk Encryption Linux Aad https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/disk-encryption-linux-aad.md
Take a [snapshot](snapshot-copy-managed-disk.md), make a backup, or both before
> - If you previously used [Azure Disk Encryption with the Azure AD app](disk-encryption-overview-aad.md) to encrypt this VM, you must continue to use this option to encrypt your VM. You can't use [Azure Disk Encryption](disk-encryption-overview.md) on this encrypted VM because this isn't a supported scenario, which means switching away from the Azure AD application for this encrypted VM isn't supported yet. > - To make sure the encryption secrets don't cross regional boundaries, Azure Disk Encryption needs the key vault and the VMs to be co-located in the same region. Create and use a key vault that's in the same region as the VM to be encrypted. > - When you encrypt Linux OS volumes, the process can take a few hours. It's normal for Linux OS volumes to take longer than data volumes to encrypt.
-> - When you encrypt Linux OS volumes, the VM should be considered unavailable. We strongly recommend that you avoid SSH logins while the encryption is in progress to avoid blocking any open files that need to be accessed during the encryption process. To check progress, use the [Get-AzVMDiskEncryptionStatus](/powershell/module/az.compute/get-azvmdiskencryptionstatus) or [vm encryption show](/cli/azure/vm/encryption#az_vm_encryption_show) commands. You can expect this process to take a few hours for a 30-GB OS volume, plus additional time for encrypting data volumes. Data volume encryption time is proportional to the size and quantity of the data volumes unless the **encrypt format all** option is used.
+> - When you encrypt Linux OS volumes, the VM should be considered unavailable. We strongly recommend that you avoid SSH logins while the encryption is in progress to avoid blocking any open files that need to be accessed during the encryption process. To check progress, use the [Get-AzVMDiskEncryptionStatus](/powershell/module/az.compute/get-azvmdiskencryptionstatus) or [vm encryption show](/cli/azure/vm/encryption#az-vm-encryption-show) commands. You can expect this process to take a few hours for a 30-GB OS volume, plus additional time for encrypting data volumes. Data volume encryption time is proportional to the size and quantity of the data volumes unless the **encrypt format all** option is used.
> - Disabling encryption on Linux VMs is only supported for data volumes. It's not supported on data or OS volumes if the OS volume has been encrypted.
In this scenario, you can enable encryption by using the Azure Resource Manager
### <a name="bkmk_RunningLinuxCLI"> </a>Enable encryption on an existing or running Linux VM by using the Azure CLI You can enable disk encryption on your encrypted VHD by installing and using the [Azure CLI 2.0](/cli/azure) command-line tool. You can use it in your browser with [Azure Cloud Shell](../../cloud-shell/overview.md), or you can install it on your local machine and use it in any PowerShell session. To enable encryption on existing or running IaaS Linux VMs in Azure, use the following CLI commands:
-Use the [az vm encryption enable](/cli/azure/vm/encryption#az_vm_encryption_enable) command to enable encryption on a running IaaS virtual machine in Azure.
+Use the [az vm encryption enable](/cli/azure/vm/encryption#az-vm-encryption-enable) command to enable encryption on a running IaaS virtual machine in Azure.
- **Encrypt a running VM by using a client secret:**
Use the [az vm encryption enable](/cli/azure/vm/encryption#az_vm_encryption_enab
/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name].</br> </br> The syntax for the value of the key-encryption-key parameter is the full URI to the KEK as in: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]. -- **Verify that the disks are encrypted:** To check on the encryption status of an IaaS VM, use the [az vm encryption show](/cli/azure/vm/encryption#az_vm_encryption_show) command.
+- **Verify that the disks are encrypted:** To check on the encryption status of an IaaS VM, use the [az vm encryption show](/cli/azure/vm/encryption#az-vm-encryption-show) command.
```azurecli-interactive az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" ``` -- **Disable encryption:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az_vm_encryption_disable) command. Disabling encryption is only allowed on data volumes for Linux VMs.
+- **Disable encryption:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az-vm-encryption-disable) command. Disabling encryption is only allowed on data volumes for Linux VMs.
```azurecli-interactive az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type DATA
You can disable encryption by using Azure PowerShell, the Azure CLI, or a Resour
Disable-AzVMDiskEncryption -ResourceGroupName 'MyVirtualMachineResourceGroup' -VMName 'MySecureVM' [--volume-type {ALL, DATA, OS}] ``` -- **Disable encryption with the Azure CLI:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az_vm_encryption_disable) command.
+- **Disable encryption with the Azure CLI:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az-vm-encryption-disable) command.
```azurecli-interactive az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type [ALL, DATA, OS] ```
virtual-machines Disk Encryption Linux https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/disk-encryption-linux.md
In all cases, you should [take a snapshot](snapshot-copy-managed-disk.md) and/or
>[!WARNING] > - If you have previously used Azure Disk Encryption with Azure AD to encrypt a VM, you must continue use this option to encrypt your VM. See [Azure Disk Encryption with Azure AD (previous release)](disk-encryption-overview-aad.md) for details. >
-> - When encrypting Linux OS volumes, the VM should be considered unavailable. We strongly recommend to avoid SSH logins while the encryption is in progress to avoid issues blocking any open files that will need to be accessed during the encryption process. To check progress, use the the [Get-AzVMDiskEncryptionStatus](/powershell/module/az.compute/get-azvmdiskencryptionstatus) PowerShell cmdlet or the [vm encryption show](/cli/azure/vm/encryption#az_vm_encryption_show) CLI command. This process can be expected to take a few hours for a 30GB OS volume, plus additional time for encrypting data volumes. Data volume encryption time will be proportional to the size and quantity of the data volumes unless the encrypt format all option is used.
+> - When encrypting Linux OS volumes, the VM should be considered unavailable. We strongly recommend to avoid SSH logins while the encryption is in progress to avoid issues blocking any open files that will need to be accessed during the encryption process. To check progress, use the the [Get-AzVMDiskEncryptionStatus](/powershell/module/az.compute/get-azvmdiskencryptionstatus) PowerShell cmdlet or the [vm encryption show](/cli/azure/vm/encryption#az-vm-encryption-show) CLI command. This process can be expected to take a few hours for a 30GB OS volume, plus additional time for encrypting data volumes. Data volume encryption time will be proportional to the size and quantity of the data volumes unless the encrypt format all option is used.
> - Disabling encryption on Linux VMs is only supported for data volumes. It is not supported on data or OS volumes if the OS volume has been encrypted. ## Install tools and connect to Azure
The [Azure CLI 2.0](/cli/azure) is a command-line tool for managing Azure resour
-To [Sign in to your Azure account with the Azure CLI](/cli/azure/authenticate-azure-cli), use the [az login](/cli/azure/reference-index#az_login) command.
+To [Sign in to your Azure account with the Azure CLI](/cli/azure/authenticate-azure-cli), use the [az login](/cli/azure/reference-index#az-login) command.
```azurecli az login
If you would like to select a tenant to sign in under, use:
az login --tenant <tenant> ```
-If you have multiple subscriptions and want to specify a specific one, get your subscription list with [az account list](/cli/azure/account#az_account_list) and specify with [az account set](/cli/azure/account#az_account_set).
+If you have multiple subscriptions and want to specify a specific one, get your subscription list with [az account list](/cli/azure/account#az-account-list) and specify with [az account set](/cli/azure/account#az-account-set).
```azurecli az account list
To disable the encryption, see [Disable encryption and remove the encryption ext
You can enable disk encryption on your encrypted VHD by installing and using the [Azure CLI](/cli/azure/) command-line tool. You can use it in your browser with [Azure Cloud Shell](../../cloud-shell/overview.md), or you can install it on your local machine and use it in any PowerShell session. To enable encryption on existing or running Linux VMs in Azure, use the following CLI commands:
-Use the [az vm encryption enable](/cli/azure/vm/encryption#az_vm_encryption_show) command to enable encryption on a running virtual machine in Azure.
+Use the [az vm encryption enable](/cli/azure/vm/encryption#az-vm-encryption-show) command to enable encryption on a running virtual machine in Azure.
- **Encrypt a running VM:**
Use the [az vm encryption enable](/cli/azure/vm/encryption#az_vm_encryption_show
> The syntax for the value of the key-encryption-key parameter is the full URI to the KEK as in: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id] -- **Verify the disks are encrypted:** To check on the encryption status of a VM, use the [az vm encryption show](/cli/azure/vm/encryption#az_vm_encryption_show) command.
+- **Verify the disks are encrypted:** To check on the encryption status of a VM, use the [az vm encryption show](/cli/azure/vm/encryption#az-vm-encryption-show) command.
```azurecli-interactive az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
The parameter goes though all partitions and encrypts them as long as they meet
Encrypt the disks that compose the RAID or LVM volume rather than the RAID or LVM volume. ### Use the EncryptFormatAll parameter with Azure CLI
-Use the [az vm encryption enable](/cli/azure/vm/encryption#az_vm_encryption_enable) command to enable encryption on a running virtual machine in Azure.
+Use the [az vm encryption enable](/cli/azure/vm/encryption#az-vm-encryption-enable) command to enable encryption on a running virtual machine in Azure.
- **Encrypt a running VM using EncryptFormatAll:**
You can disable encryption using Azure PowerShell, the Azure CLI, or with a Reso
Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "all" ``` -- **Disable encryption with the Azure CLI:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az_vm_encryption_disable) command.
+- **Disable encryption with the Azure CLI:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az-vm-encryption-disable) command.
```azurecli-interactive az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "all"
You can remove the encryption extension using Azure PowerShell or the Azure CLI.
Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" ``` -- **Disable encryption with the Azure CLI:** To remove encryption, use the [az vm extension delete](/cli/azure/vm/extension#az_vm_extension_delete) command.
+- **Disable encryption with the Azure CLI:** To remove encryption, use the [az vm extension delete](/cli/azure/vm/extension#az-vm-extension-delete) command.
```azurecli-interactive az vm extension delete -g "MyVirtualMachineResourceGroup" --vm-name "MySecureVM" -n "AzureDiskEncryptionForLinux"
virtual-machines Disk Encryption Upgrade https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/disk-encryption-upgrade.md
You can determine the version of ADE with which a VM was encrypted via Azure CLI
# [CLI](#tab/CLI)
-To determine the ADE version, run the Azure CLI [az vm get-instance-view](/cli/azure/vm#az_vm_get_instance_view) command.
+To determine the ADE version, run the Azure CLI [az vm get-instance-view](/cli/azure/vm#az-vm-get-instance-view) command.
```azurecli-interactive az vm get-instance-view --resource-group <ResourceGroupName> --name <VMName>
virtual-machines Disks Upload Vhd To Managed Disk Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/disks-upload-vhd-to-managed-disk-cli.md
This kind of managed disk has two unique states:
Before you can create an empty standard HDD for uploading, you'll need the file size of the VHD you want to upload, in bytes. To get that, you can use either `wc -c <yourFileName>.vhd` or `ls -al <yourFileName>.vhd`. This value is used when specifying the **--upload-size-bytes** parameter.
-Create an empty standard HDD for uploading by specifying both the **-ΓÇôfor-upload** parameter and the **--upload-size-bytes** parameter in a [disk create](/cli/azure/disk#az_disk_create) cmdlet:
+Create an empty standard HDD for uploading by specifying both the **-ΓÇôfor-upload** parameter and the **--upload-size-bytes** parameter in a [disk create](/cli/azure/disk#az-disk-create) cmdlet:
Replace `<yourdiskname>`, `<yourresourcegroupname>`, `<yourregion>` with values of your choosing. The `--upload-size-bytes` parameter contains an example value of `34359738880`, replace it with a value appropriate for you.
virtual-machines Expand Disks https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/expand-disks.md
az feature show --namespace Microsoft.Compute --name LiveResize
### Get started
-Make sure that you have the latest [Azure CLI](/cli/azure/install-az-cli2) installed and are signed in to an Azure account by using [az login](/cli/azure/reference-index#az_login).
+Make sure that you have the latest [Azure CLI](/cli/azure/install-az-cli2) installed and are signed in to an Azure account by using [az login](/cli/azure/reference-index#az-login).
This article requires an existing VM in Azure with at least one data disk attached and prepared. If you do not already have a VM that you can use, see [Create and prepare a VM with data disks](tutorial-manage-disks.md#create-and-attach-disks).
In the following samples, replace example parameter names such as *myResourceGro
> [!IMPORTANT] > If you've enabled **LiveResize** and your disk meets the requirements in [Resize without downtime (preview)](#resize-without-downtime-preview), you can skip step 1 and 3.
-1. Operations on virtual hard disks can't be performed with the VM running. Deallocate your VM with [az vm deallocate](/cli/azure/vm#az_vm_deallocate). The following example deallocates the VM named *myVM* in the resource group named *myResourceGroup*:
+1. Operations on virtual hard disks can't be performed with the VM running. Deallocate your VM with [az vm deallocate](/cli/azure/vm#az-vm-deallocate). The following example deallocates the VM named *myVM* in the resource group named *myResourceGroup*:
```azurecli az vm deallocate --resource-group myResourceGroup --name myVM
In the following samples, replace example parameter names such as *myResourceGro
> [!NOTE] > The VM must be deallocated to expand the virtual hard disk. Stopping the VM with `az vm stop` does not release the compute resources. To release compute resources, use `az vm deallocate`.
-1. View a list of managed disks in a resource group with [az disk list](/cli/azure/disk#az_disk_list). The following example displays a list of managed disks in the resource group named *myResourceGroup*:
+1. View a list of managed disks in a resource group with [az disk list](/cli/azure/disk#az-disk-list). The following example displays a list of managed disks in the resource group named *myResourceGroup*:
```azurecli az disk list \
In the following samples, replace example parameter names such as *myResourceGro
--output table ```
- Expand the required disk with [az disk update](/cli/azure/disk#az_disk_update). The following example expands the managed disk named *myDataDisk* to *200* GB:
+ Expand the required disk with [az disk update](/cli/azure/disk#az-disk-update). The following example expands the managed disk named *myDataDisk* to *200* GB:
```azurecli az disk update \
In the following samples, replace example parameter names such as *myResourceGro
> [!NOTE] > When you expand a managed disk, the updated size is rounded up to the nearest managed disk size. For a table of the available managed disk sizes and tiers, see [Azure Managed Disks Overview - Pricing and Billing](../managed-disks-overview.md).
-1. Start your VM with [az vm start](/cli/azure/vm#az_vm_start). The following example starts the VM named *myVM* in the resource group named *myResourceGroup*:
+1. Start your VM with [az vm start](/cli/azure/vm#az-vm-start). The following example starts the VM named *myVM* in the resource group named *myResourceGroup*:
```azurecli az vm start --resource-group myResourceGroup --name myVM
In the following samples, replace example parameter names such as *myResourceGro
## Expand a disk partition and filesystem To use an expanded disk, expand the underlying partition and filesystem.
-1. SSH to your VM with the appropriate credentials. You can see the public IP address of your VM with [az vm show](/cli/azure/vm#az_vm_show):
+1. SSH to your VM with the appropriate credentials. You can see the public IP address of your VM with [az vm show](/cli/azure/vm#az-vm-show):
```azurecli az vm show --resource-group myResourceGroup --name myVM -d --query [publicIps] --output tsv
virtual-machines Image Builder Devops Task https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/image-builder-devops-task.md
There are two Azure VM Image Builder (AIB) DevOps Tasks:
## Prerequisites > [!NOTE]
-> The AIB task does not currently support Windows Restarts, running elevated commands as Administrator, which means it is not suitable for Windows Virtual Desktop scenarios or Windows customizations that require the above. If you wish to use DevOps with Image Builder, you should nest the template into an Azure Resource Manager task, use AZ CLI or PowerShell tasks.
+> The AIB task does not currently support Windows Restarts, running elevated commands as Administrator, which means it is not suitable for Azure Virtual Desktop scenarios or Windows customizations that require the above. If you wish to use DevOps with Image Builder, you should nest the template into an Azure Resource Manager task, use AZ CLI or PowerShell tasks.
* Install the [Stable DevOps Task from Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=AzureImageBuilder.devOps-task-for-azure-image-builder). * You must have a VSTS DevOps account, and a Build Pipeline created
virtual-machines Image Builder Json https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/image-builder-json.md
Sets the source image an existing image version in an Azure Compute Gallery.
} ```
-The `imageVersionId` should be the ResourceId of the image version. Use [az sig image-version list](/cli/azure/sig/image-version#az_sig_image_version_list) to list image versions.
+The `imageVersionId` should be the ResourceId of the image version. Use [az sig image-version list](/cli/azure/sig/image-version#az-sig-image-version-list) to list image versions.
## Properties: buildTimeoutInMinutes
virtual-machines Mac Create Ssh Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/mac-create-ssh-keys.md
ssh-keygen -m PEM -t rsa -b 4096
``` > [!NOTE]
-> You can also create key pairs with the [Azure CLI](/cli/azure) with the [az sshkey create](/cli/azure/sshkey#az_sshkey_create) command, as described in [Generate and store SSH keys](../ssh-keys-azure-cli.md).
+> You can also create key pairs with the [Azure CLI](/cli/azure) with the [az sshkey create](/cli/azure/sshkey#az-sshkey-create) command, as described in [Generate and store SSH keys](../ssh-keys-azure-cli.md).
-If you use the [Azure CLI](/cli/azure) to create your VM with the [az vm create](/cli/azure/vm#az_vm_create) command, you can optionally generate SSH public and private key files using the `--generate-ssh-keys` option. The key files are stored in the ~/.ssh directory unless specified otherwise with the `--ssh-dest-key-path` option. If an ssh key pair already exists and the `--generate-ssh-keys` option is used, a new key pair will not be generated but instead the existing key pair will be used. In the following command, replace *VMname* and *RGname* with your own values:
+If you use the [Azure CLI](/cli/azure) to create your VM with the [az vm create](/cli/azure/vm#az-vm-create) command, you can optionally generate SSH public and private key files using the `--generate-ssh-keys` option. The key files are stored in the ~/.ssh directory unless specified otherwise with the `--ssh-dest-key-path` option. If an ssh key pair already exists and the `--generate-ssh-keys` option is used, a new key pair will not be generated but instead the existing key pair will be used. In the following command, replace *VMname* and *RGname* with your own values:
```azurecli az vm create --name VMname --resource-group RGname --image UbuntuLTS --generate-ssh-keys
ssh-rsa AAAAB3NzaC1yc2EAABADAQABAAACAQC1/KanayNr+Q7ogR5mKnGpKWRBQU7F3Jjhn7utdf7Z
If you copy and paste the contents of the public key file to use in the Azure portal or a Resource Manager template, make sure you don't copy any trailing whitespace. To copy a public key in macOS, you can pipe the public key file to `pbcopy`. Similarly in Linux, you can pipe the public key file to programs such as `xclip`.
-The public key that you place on your Linux VM in Azure is by default stored in ~/.ssh/id_rsa.pub, unless you specified a different location when you created the key pair. To use the [Azure CLI 2.0](/cli/azure) to create your VM with an existing public key, specify the value and optionally the location of this public key using the [az vm create](/cli/azure/vm#az_vm_create) command with the `--ssh-key-values` option. In the following command, replace *myVM*, *myResourceGroup*, *UbuntuLTS*, *azureuser*, and *mysshkey.pub* with your own values:
+The public key that you place on your Linux VM in Azure is by default stored in ~/.ssh/id_rsa.pub, unless you specified a different location when you created the key pair. To use the [Azure CLI 2.0](/cli/azure) to create your VM with an existing public key, specify the value and optionally the location of this public key using the [az vm create](/cli/azure/vm#az-vm-create) command with the `--ssh-key-values` option. In the following command, replace *myVM*, *myResourceGroup*, *UbuntuLTS*, *azureuser*, and *mysshkey.pub* with your own values:
```azurecli
virtual-machines Multiple Nics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/multiple-nics.md
Add routing tables to the guest OS by completing the steps in [Configure the gue
The previous steps created a virtual network and subnet, attached NICs, then created a VM. A public IP address and network security group rules that allow SSH traffic were not created. To configure the guest OS for multiple NICs, you need to allow remote connections and run commands locally on the VM.
-To allow SSH traffic, create a network security group rule with [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create) as follows:
+To allow SSH traffic, create a network security group rule with [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create) as follows:
```azurecli az network nsg rule create \
az network nsg rule create \
--destination-port-ranges 22 ```
-Create a public IP address with [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) and assign it to the first NIC with [az network nic ip-config update](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_update):
+Create a public IP address with [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) and assign it to the first NIC with [az network nic ip-config update](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-update):
```azurecli az network public-ip create --resource-group myResourceGroup --name myPublicIP
az network nic ip-config update \
--public-ip myPublicIP ```
-To view the public IP address of the VM, use [az vm show](/cli/azure/vm#az_vm_show) as follows::
+To view the public IP address of the VM, use [az vm show](/cli/azure/vm#az-vm-show) as follows::
```azurecli az vm show --resource-group myResourceGroup --name myVM -d --query publicIps -o tsv
virtual-machines Os Disk Swap https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/os-disk-swap.md
az vm stop \
```
-Use [az vm update](/cli/azure/vm#az_vm_update) with the full resource ID of the new disk for the `--osdisk` parameter
+Use [az vm update](/cli/azure/vm#az-vm-update) with the full resource ID of the new disk for the `--osdisk` parameter
```azurecli-interactive az vm update \
virtual-machines Proximity Placement Groups https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/proximity-placement-groups.md
A proximity placement group is a logical grouping used to make sure that Azure c
## Create the proximity placement group
-Create a proximity placement group using [`az ppg create`](/cli/azure/ppg#az_ppg_create).
+Create a proximity placement group using [`az ppg create`](/cli/azure/ppg#az-ppg-create).
```azurecli-interactive az group create --name myPPGGroup --location westus
az ppg create \
## List proximity placement groups
-You can list all of your proximity placement groups using [az ppg list](/cli/azure/ppg#az_ppg_list).
+You can list all of your proximity placement groups using [az ppg list](/cli/azure/ppg#az-ppg-list).
```azurecli-interactive az ppg list -o table
az ppg list -o table
## Create a VM
-Create a VM within the proximity placement group using [new az vm](/cli/azure/vm#az_vm_create).
+Create a VM within the proximity placement group using [new az vm](/cli/azure/vm#az-vm-create).
```azurecli-interactive az vm create \
az vm create \
-l westus ```
-You can see the VM in the proximity placement group using [az ppg show](/cli/azure/ppg#az_ppg_show).
+You can see the VM in the proximity placement group using [az ppg show](/cli/azure/ppg#az-ppg-show).
```azurecli-interactive az ppg show --name myppg --resource-group myppggroup --query "virtualMachines" ``` ## Availability Sets
-You can also create an availability set in your proximity placement group. Use the same `--ppg` parameter with [az vm availability-set create](/cli/azure/vm/availability-set#az_vm_availability_set_create) to create an availability set and all of the VMs in the availability set will also be created in the same proximity placement group.
+You can also create an availability set in your proximity placement group. Use the same `--ppg` parameter with [az vm availability-set create](/cli/azure/vm/availability-set#az-vm-availability-set-create) to create an availability set and all of the VMs in the availability set will also be created in the same proximity placement group.
## Scale sets
-You can also create a scale set in your proximity placement group. Use the same `--ppg` parameter with [az vmss create](/cli/azure/vmss#az_vmss_create) to create a scale set and all of the instances will be created in the same proximity placement group.
+You can also create a scale set in your proximity placement group. Use the same `--ppg` parameter with [az vmss create](/cli/azure/vmss#az-vmss-create) to create a scale set and all of the instances will be created in the same proximity placement group.
## Next steps
virtual-machines Run Command https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/run-command.md
The Run Command feature uses the virtual machine (VM) agent to run shell scripts
## Benefits
-You can access your virtual machines in multiple ways. Run Command can run scripts on your virtual machines remotely by using the VM agent. You use Run Command through the Azure portal, [REST API](/rest/api/compute/virtual-machines-run-commands/run-command), or [Azure CLI](/cli/azure/vm/run-command#az_vm_run_command_invoke) for Linux VMs.
+You can access your virtual machines in multiple ways. Run Command can run scripts on your virtual machines remotely by using the VM agent. You use Run Command through the Azure portal, [REST API](/rest/api/compute/virtual-machines-run-commands/run-command), or [Azure CLI](/cli/azure/vm/run-command#az-vm-run-command-invoke) for Linux VMs.
This capability is useful in all scenarios where you want to run a script within a virtual machine. It's one of the only ways to troubleshoot and remediate a virtual machine that doesn't have the RDP or SSH port open because of network or administrative user configuration.
The entity was not found in this Azure location
## Azure CLI
-The following example uses the [az vm run-command](/cli/azure/vm/run-command#az_vm_run_command_invoke) command to run a shell script on an Azure Linux VM.
+The following example uses the [az vm run-command](/cli/azure/vm/run-command#az-vm-run-command-invoke) command to run a shell script on an Azure Linux VM.
```azurecli-interactive az vm run-command invoke -g myResourceGroup -n myVm --command-id RunShellScript --scripts "apt-get update && apt-get install -y nginx"
virtual-machines Run Scripts In Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/run-scripts-in-vm.md
The [Custom Script Extension](../extensions/custom-script-linux.md) is primarily
The [Run Command](run-command.md) feature enables virtual machine and application management and troubleshooting using scripts, and is available even when the machine is not reachable, for example if the guest firewall doesn't have the RDP or SSH port open. * Run scripts in Azure virtual machines.
-* Can be run using [Azure portal](run-command.md), [REST API](/rest/api/compute/virtual-machines-run-commands/run-command), [Azure CLI](/cli/azure/vm/run-command#az_vm_run_command_invoke), or [PowerShell](/powershell/module/az.compute/invoke-azvmruncommand)
+* Can be run using [Azure portal](run-command.md), [REST API](/rest/api/compute/virtual-machines-run-commands/run-command), [Azure CLI](/cli/azure/vm/run-command#az-vm-run-command-invoke), or [PowerShell](/powershell/module/az.compute/invoke-azvmruncommand)
* Quickly run a script and view output and repeat as needed in the Azure portal. * Script can be typed directly or you can run one of the built-in scripts. * Run PowerShell script in Windows machines and Bash script in Linux machines.
virtual-machines Spot Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/spot-cli.md
The process to create an Azure Spot Virtual Machine using the Azure CLI is the s
To create Azure Spot Virtual Machines, you need to be running the Azure CLI version 2.0.74 or later. Run **az --version** to find the version. If you need to install or upgrade, see [Install the Azure CLI](/cli/azure/install-azure-cli).
-Sign in to Azure using [az login](/cli/azure/reference-index#az_login).
+Sign in to Azure using [az login](/cli/azure/reference-index#az-login).
```azurecli-interactive az login
curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-versio
This first response could take up to 2 minutes. From now on, they should display output almost immediately.
-From a computer that has the Azure CLI installed (like your local machine), simulate an eviction using [az vm simulate-eviction](/cli/azure/vm#az_vm_simulate_eviction). Replace the resource group name and VM name with your own.
+From a computer that has the Azure CLI installed (like your local machine), simulate an eviction using [az vm simulate-eviction](/cli/azure/vm#az-vm-simulate-eviction). Replace the resource group name and VM name with your own.
```azurecli-interactive az vm simulate-eviction --resource-group mySpotRG --name mySpot
virtual-machines Ssh From Windows https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/ssh-from-windows.md
You can also install the [Windows Subsystem for Linux](/windows/wsl/about) to co
The easiest way to create and manage your SSH keys is to [use the portal to create and store them](../ssh-keys-portal.md) for reuse.
-You can also create key pairs with the [Azure CLI](/cli/azure) with the [az sshkey create](/cli/azure/sshkey#az_sshkey_create) command, as described in [Generate and store SSH keys](../ssh-keys-azure-cli.md).
+You can also create key pairs with the [Azure CLI](/cli/azure) with the [az sshkey create](/cli/azure/sshkey#az-sshkey-create) command, as described in [Generate and store SSH keys](../ssh-keys-azure-cli.md).
To create an SSH key pair on your local computer using the `ssh-keygen` command from PowerShell or a command prompt, type the following:
virtual-machines Tutorial Automate Vm Deployment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/tutorial-automate-vm-deployment.md
runcmd:
For more information about cloud-init configuration options, see [cloud-init config examples](https://cloudinit.readthedocs.io/en/latest/topics/examples.html). ## Create virtual machine
-Before you can create a VM, create a resource group with [az group create](/cli/azure/group#az_group_create). The following example creates a resource group named *myResourceGroupAutomate* in the *eastus* location:
+Before you can create a VM, create a resource group with [az group create](/cli/azure/group#az-group-create). The following example creates a resource group named *myResourceGroupAutomate* in the *eastus* location:
```azurecli-interactive az group create --name myResourceGroupAutomate --location eastus ```
-Now create a VM with [az vm create](/cli/azure/vm#az_vm_create). Use the `--custom-data` parameter to pass in your cloud-init config file. Provide the full path to the *cloud-init.txt* config if you saved the file outside of your present working directory. The following example creates a VM named *myVM*:
+Now create a VM with [az vm create](/cli/azure/vm#az-vm-create). Use the `--custom-data` parameter to pass in your cloud-init config file. Provide the full path to the *cloud-init.txt* config if you saved the file outside of your present working directory. The following example creates a VM named *myVM*:
```azurecli-interactive az vm create \
az vm create \
It takes a few minutes for the VM to be created, the packages to install, and the app to start. There are background tasks that continue to run after the Azure CLI returns you to the prompt. It may be another couple of minutes before you can access the app. When the VM has been created, take note of the `publicIpAddress` displayed by the Azure CLI. This address is used to access the Node.js app via a web browser.
-To allow web traffic to reach your VM, open port 80 from the Internet with [az vm open-port](/cli/azure/vm#az_vm_open_port):
+To allow web traffic to reach your VM, open port 80 from the Internet with [az vm open-port](/cli/azure/vm#az-vm-open-port):
```azurecli-interactive az vm open-port --port 80 --resource-group myResourceGroupAutomate --name myAutomatedVM
The following steps show how you can:
- Create a VM and inject the certificate ### Create an Azure Key Vault
-First, create a Key Vault with [az keyvault create](/cli/azure/keyvault#az_keyvault_create) and enable it for use when you deploy a VM. Each Key Vault requires a unique name, and should be all lower case. Replace `mykeyvault` in the following example with your own unique Key Vault name:
+First, create a Key Vault with [az keyvault create](/cli/azure/keyvault#az-keyvault-create) and enable it for use when you deploy a VM. Each Key Vault requires a unique name, and should be all lower case. Replace `mykeyvault` in the following example with your own unique Key Vault name:
```azurecli-interactive keyvault_name=mykeyvault
az keyvault create \
``` ### Generate certificate and store in Key Vault
-For production use, you should import a valid certificate signed by trusted provider with [az keyvault certificate import](/cli/azure/keyvault/certificate#az_keyvault_certificate_import). For this tutorial, the following example shows how you can generate a self-signed certificate with [az keyvault certificate create](/cli/azure/keyvault/certificate#az_keyvault_certificate_create) that uses the default certificate policy:
+For production use, you should import a valid certificate signed by trusted provider with [az keyvault certificate import](/cli/azure/keyvault/certificate#az-keyvault-certificate-import). For this tutorial, the following example shows how you can generate a self-signed certificate with [az keyvault certificate create](/cli/azure/keyvault/certificate#az-keyvault-certificate-create) that uses the default certificate policy:
```azurecli-interactive az keyvault certificate create \
az keyvault certificate create \
### Prepare certificate for use with VM
-To use the certificate during the VM create process, obtain the ID of your certificate with [az keyvault secret list-versions](/cli/azure/keyvault/secret#az_keyvault_secret_list_versions). The VM needs the certificate in a certain format to inject it on boot, so convert the certificate with [az vm secret format](/cli/azure/vm). The following example assigns the output of these commands to variables for ease of use in the next steps:
+To use the certificate during the VM create process, obtain the ID of your certificate with [az keyvault secret list-versions](/cli/azure/keyvault/secret#az-keyvault-secret-list-versions). The VM needs the certificate in a certain format to inject it on boot, so convert the certificate with [az vm secret format](/cli/azure/vm). The following example assigns the output of these commands to variables for ease of use in the next steps:
```azurecli-interactive secret=$(az keyvault secret list-versions \
runcmd:
``` ### Create secure VM
-Now create a VM with [az vm create](/cli/azure/vm#az_vm_create). The certificate data is injected from Key Vault with the `--secrets` parameter. As in the previous example, you also pass in the cloud-init config with the `--custom-data` parameter:
+Now create a VM with [az vm create](/cli/azure/vm#az-vm-create). The certificate data is injected from Key Vault with the `--secrets` parameter. As in the previous example, you also pass in the cloud-init config with the `--custom-data` parameter:
```azurecli-interactive az vm create \
az vm create \
It takes a few minutes for the VM to be created, the packages to install, and the app to start. There are background tasks that continue to run after the Azure CLI returns you to the prompt. It may be another couple of minutes before you can access the app. When the VM has been created, take note of the `publicIpAddress` displayed by the Azure CLI. This address is used to access the Node.js app via a web browser.
-To allow secure web traffic to reach your VM, open port 443 from the Internet with [az vm open-port](/cli/azure/vm#az_vm_open_port):
+To allow secure web traffic to reach your VM, open port 443 from the Internet with [az vm open-port](/cli/azure/vm#az-vm-open-port):
```azurecli-interactive az vm open-port \
virtual-machines Tutorial Availability Sets https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/tutorial-availability-sets.md
If you choose to install and use the CLI locally, this tutorial requires that yo
You can create an availability set using [az vm availability-set create](/cli/azure/vm/availability-set). In this example, the number of update and fault domains is set to *2* for the availability set named *myAvailabilitySet* in the *myResourceGroupAvailability* resource group.
-First, create a resource group with [az group create](/cli/azure/group#az_group_create), then create the availability set:
+First, create a resource group with [az group create](/cli/azure/group#az-group-create), then create the availability set:
```azurecli-interactive az group create --name myResourceGroupAvailability --location eastus
The availability set distribution can be viewed in the portal by going to Resour
## Check for available VM sizes
-Additional VMs can be added to the availability set later, where VM sizes are available on the hardware. Use [az vm availability-set list-sizes](/cli/azure/vm/availability-set#az_vm_availability_set_list_sizes) to list all the available sizes on the hardware cluster for the availability set:
+Additional VMs can be added to the availability set later, where VM sizes are available on the hardware. Use [az vm availability-set list-sizes](/cli/azure/vm/availability-set#az-vm-availability-set-list-sizes) to list all the available sizes on the hardware cluster for the availability set:
```azurecli-interactive az vm availability-set list-sizes \
virtual-machines Tutorial Config Management https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/tutorial-config-management.md
In this tutorial, you learn how to:
## Create VM
-To see diagnostics and metrics in action, you need a VM. First, create a resource group with [az group create](/cli/azure/group#az_group_create). The following example creates a resource group named *myResourceGroupMonitor* in the *eastus* location.
+To see diagnostics and metrics in action, you need a VM. First, create a resource group with [az group create](/cli/azure/group#az-group-create). The following example creates a resource group named *myResourceGroupMonitor* in the *eastus* location.
```azurecli-interactive az group create --name myResourceGroupMonitor --location eastus ```
-Now create a VM with [az vm create](/cli/azure/vm#az_vm_create). The following example creates a VM named *myVM* and generates SSH keys if they do not already exist in *~/.ssh/*:
+Now create a VM with [az vm create](/cli/azure/vm#az-vm-create). The following example creates a VM named *myVM* and generates SSH keys if they do not already exist in *~/.ssh/*:
```azurecli-interactive az vm create \
virtual-machines Tutorial Custom Images https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/tutorial-custom-images.md
A gallery is the primary resource used for enabling image sharing.
Allowed characters for gallery name are uppercase or lowercase letters, digits, dots, and periods. The gallery name cannot contain dashes. Gallery names must be unique within your subscription.
-Create an gallery using [az sig create](/cli/azure/sig#az_sig_create). The following example creates a resource group named gallery named *myGalleryRG* in *East US*, and a gallery named *myGallery*.
+Create an gallery using [az sig create](/cli/azure/sig#az-sig-create). The following example creates a resource group named gallery named *myGalleryRG* in *East US*, and a gallery named *myGallery*.
```azurecli-interactive az group create --name myGalleryRG --location eastus
az sig create --resource-group myGalleryRG --gallery-name myGallery
## Get information about the VM
-You can see a list of VMs that are available using [az vm list](/cli/azure/vm#az_vm_list).
+You can see a list of VMs that are available using [az vm list](/cli/azure/vm#az-vm-list).
```azurecli-interactive az vm list --output table ```
-Once you know the VM name and what resource group it is in, get the ID of the VM using [az vm get-instance-view](/cli/azure/vm#az_vm_get_instance_view).
+Once you know the VM name and what resource group it is in, get the ID of the VM using [az vm get-instance-view](/cli/azure/vm#az-vm-get-instance-view).
```azurecli-interactive az vm get-instance-view -g MyResourceGroup -n MyVm --query id
Image definition names can be made up of uppercase or lowercase letters, digits,
For more information about the values you can specify for an image definition, see [Image definitions](../shared-image-galleries.md#image-definitions).
-Create an image definition in the gallery using [az sig image-definition create](/cli/azure/sig/image-definition#az_sig_image_definition_create).
+Create an image definition in the gallery using [az sig image-definition create](/cli/azure/sig/image-definition#az-sig-image-definition-create).
In this example, the image definition is named *myImageDefinition*, and is for a [specialized](../shared-image-galleries.md#generalized-and-specialized-images) Linux OS image.
Copy the ID of the image definition from the output to use later.
## Create the image version
-Create an image version from the VM using [az image gallery create-image-version](/cli/azure/sig/image-version#az_sig_image_version_create).
+Create an image version from the VM using [az image gallery create-image-version](/cli/azure/sig/image-version#az-sig-image-version-create).
Allowed characters for image version are numbers and periods. Numbers must be within the range of a 32-bit integer. Format: *MajorVersion*.*MinorVersion*.*Patch*.
az sig image-version create \
## Create the VM
-Create the VM using [az vm create](/cli/azure/vm#az_vm_create) using the --specialized parameter to indicate the the image is a specialized image.
+Create the VM using [az vm create](/cli/azure/vm#az-vm-create) using the --specialized parameter to indicate the the image is a specialized image.
Use the image definition ID for `--image` to create the VM from the latest version of the image that is available. You can also create the VM from a specific version by supplying the image version ID for `--image`.
az vm create --resource-group myResourceGroup \
You can share images across subscriptions using Azure role-based access control (Azure RBAC). You can share images at the gallery, image definition or image version level. Any user that has read permissions to an image version, even across subscriptions, will be able to deploy a VM using the image version.
-We recommend that you share with other users at the gallery level. To get the object ID of your gallery, use [az sig show](/cli/azure/sig#az_sig_show).
+We recommend that you share with other users at the gallery level. To get the object ID of your gallery, use [az sig show](/cli/azure/sig#az-sig-show).
```azurecli-interactive az sig show \
az sig show \
--query id ```
-Use the object ID as a scope, along with an email address and [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) to give a user access to the Azure Compute Gallery. Replace `<email-address>` and `<gallery iD>` with your own information.
+Use the object ID as a scope, along with an email address and [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) to give a user access to the Azure Compute Gallery. Replace `<email-address>` and `<gallery iD>` with your own information.
```azurecli-interactive az role assignment create \
virtual-machines Tutorial Manage Disks https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/tutorial-manage-disks.md
Data disks can be created and attached at VM creation time or to an existing VM.
### Attach disk at VM creation
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command.
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command.
```azurecli-interactive az group create --name myResourceGroupDisk --location eastus ```
-Create a VM using the [az vm create](/cli/azure/vm#az_vm_create) command. The following example creates a VM named *myVM*, adds a user account named *azureuser*, and generates SSH keys if they do not exist. The `--datadisk-sizes-gb` argument is used to specify that an additional disk should be created and attached to the virtual machine. To create and attach more than one disk, use a space-delimited list of disk size values. In the following example, a VM is created with two data disks, both 128 GB. Because the disk sizes are 128 GB, these disks are both configured as P10s, which provide maximum 500 IOPS per disk.
+Create a VM using the [az vm create](/cli/azure/vm#az-vm-create) command. The following example creates a VM named *myVM*, adds a user account named *azureuser*, and generates SSH keys if they do not exist. The `--datadisk-sizes-gb` argument is used to specify that an additional disk should be created and attached to the virtual machine. To create and attach more than one disk, use a space-delimited list of disk size values. In the following example, a VM is created with two data disks, both 128 GB. Because the disk sizes are 128 GB, these disks are both configured as P10s, which provide maximum 500 IOPS per disk.
```azurecli-interactive az vm create \
az vm create \
### Attach disk to existing VM
-To create and attach a new disk to an existing virtual machine, use the [az vm disk attach](/cli/azure/vm/disk#az_vm_disk_attach) command. The following example creates a premium disk, 128 gigabytes in size, and attaches it to the VM created in the last step.
+To create and attach a new disk to an existing virtual machine, use the [az vm disk attach](/cli/azure/vm/disk#az-vm-disk-attach) command. The following example creates a premium disk, 128 gigabytes in size, and attaches it to the VM created in the last step.
```azurecli-interactive az vm disk attach \
When you take a disk snapshot, Azure creates a read only, point-in-time copy of
### Create snapshot
-Before you create a snapshot, you need the ID or name of the disk. Use [az vm show](/cli/azure/vm#az_vm_show) to shot the disk ID. In this example, the disk ID is stored in a variable so that it can be used in a later step.
+Before you create a snapshot, you need the ID or name of the disk. Use [az vm show](/cli/azure/vm#az-vm-show) to shot the disk ID. In this example, the disk ID is stored in a variable so that it can be used in a later step.
```azurecli-interactive osdiskid=$(az vm show \
osdiskid=$(az vm show \
-o tsv) ```
-Now that you have the ID, use [az snapshot create](/cli/azure/snapshot#az_snapshot_create) to create a snapshot of the disk.
+Now that you have the ID, use [az snapshot create](/cli/azure/snapshot#az-snapshot-create) to create a snapshot of the disk.
```azurecli-interactive az snapshot create \
az snapshot create \
### Create disk from snapshot
-This snapshot can then be converted into a disk using [az disk create](/cli/azure/disk#az_disk_create), which can be used to recreate the virtual machine.
+This snapshot can then be converted into a disk using [az disk create](/cli/azure/disk#az-disk-create), which can be used to recreate the virtual machine.
```azurecli-interactive az disk create \
az disk create \
### Restore virtual machine from snapshot
-To demonstrate virtual machine recovery, delete the existing virtual machine using [az vm delete](/cli/azure/vm#az_vm_delete).
+To demonstrate virtual machine recovery, delete the existing virtual machine using [az vm delete](/cli/azure/vm#az-vm-delete).
```azurecli-interactive az vm delete \
az vm create \
All data disks need to be reattached to the virtual machine.
-Find the data disk name using the [az disk list](/cli/azure/disk#az_disk_list) command. This example places the name of the disk in a variable named `datadisk`, which is used in the next step.
+Find the data disk name using the [az disk list](/cli/azure/disk#az-disk-list) command. This example places the name of the disk in a variable named `datadisk`, which is used in the next step.
```azurecli-interactive datadisk=$(az disk list \
datadisk=$(az disk list \
-o tsv) ```
-Use the [az vm disk attach](/cli/azure/vm/disk#az_vm_disk_attach) command to attach the disk.
+Use the [az vm disk attach](/cli/azure/vm/disk#az-vm-disk-attach) command to attach the disk.
```azurecli-interactive az vm disk attach \
virtual-machines Tutorial Secure Web Server https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/tutorial-secure-web-server.md
az keyvault certificate create \
``` ### Prepare a certificate for use with a VM
-To use the certificate during the VM create process, obtain the ID of your certificate with [az keyvault secret list-versions](/cli/azure/keyvault/secret). Convert the certificate with [az vm secret format](/cli/azure/vm/secret#az_vm_secret_format). The following example assigns the output of these commands to variables for ease of use in the next steps:
+To use the certificate during the VM create process, obtain the ID of your certificate with [az keyvault secret list-versions](/cli/azure/keyvault/secret). Convert the certificate with [az vm secret format](/cli/azure/vm/secret#az-vm-secret-format). The following example assigns the output of these commands to variables for ease of use in the next steps:
```azurecli-interactive secret=$(az keyvault secret list-versions \
virtual-machines Upload Vhd https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/upload-vhd.md
To complete the following steps, you'll need:
> -- Make sure that you have the latest [Azure CLI](/cli/azure/install-az-cli2) installed and you are signed in to an Azure account with [az login](/cli/azure/reference-index#az_login).
+- Make sure that you have the latest [Azure CLI](/cli/azure/install-az-cli2) installed and you are signed in to an Azure account with [az login](/cli/azure/reference-index#az-login).
In the following examples, replace example parameter names with your own values, such as `myResourceGroup`, `mystorageaccount`, and `mydisks`.
az disk create \
## Create the VM
-Create your VM with [az vm create](/cli/azure/vm#az_vm_create) and attach (--attach-os-disk) the managed disk as the OS disk. The following example creates a VM named *myNewVM* using the managed disk you created from your uploaded VHD:
+Create your VM with [az vm create](/cli/azure/vm#az-vm-create) and attach (--attach-os-disk) the managed disk as the OS disk. The following example creates a VM named *myNewVM* using the managed disk you created from your uploaded VHD:
```azurecli az vm create \
virtual-machines Use Remote Desktop https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/use-remote-desktop.md
sudo passwd azureuser
## Create a Network Security Group rule for Remote Desktop traffic To allow Remote Desktop traffic to reach your Linux VM, a network security group rule needs to be created that allows TCP on port 3389 to reach your VM. For more information about network security group rules, see [What is a network security group?](../../virtual-network/network-security-groups-overview.md) You can also [use the Azure portal to create a network security group rule](../windows/nsg-quickstart-portal.md).
-The following example creates a network security group rule with [az vm open-port](/cli/azure/vm#az_vm_open_port) on port *3389*. From the Azure CLI, not the SSH session to your VM, open the following network security group rule:
+The following example creates a network security group rule with [az vm open-port](/cli/azure/vm#az-vm-open-port) on port *3389*. From the Azure CLI, not the SSH session to your VM, open the following network security group rule:
```azurecli az vm open-port --resource-group myResourceGroup --name myVM --port 3389
virtual-machines Maintenance Control Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/maintenance-control-cli.md
az maintenance assignment create \
To apply a configuration to a dedicated host, you need to include `--resource-type hosts`, `--resource-parent-name` with the name of the host group, and `--resource-parent-type hostGroups`.
-The parameter `--resource-id` is the ID of the host. You can use [az vm host get-instance-view](/cli/azure/vm/host#az_vm_host_get_instance_view) to get the ID of your dedicated host.
+The parameter `--resource-id` is the ID of the host. You can use [az vm host get-instance-view](/cli/azure/vm/host#az-vm-host-get-instance-view) to get the ID of your dedicated host.
```azurecli-interactive az maintenance assignment create \
virtual-machines Maintenance Notifications Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/maintenance-notifications-cli.md
Last updated 11/19/2019
**Applies to:** :heavy_check_mark: Linux VMs :heavy_check_mark: Windows VMs :heavy_check_mark: Flexible scale sets :heavy_check_mark: Uniform scale sets
-You can use the CLI to see when VMs are scheduled for [maintenance](maintenance-notifications.md). Planned maintenance information is available from [az vm get-instance-view](/cli/azure/vm#az_vm_get_instance_view).
+You can use the CLI to see when VMs are scheduled for [maintenance](maintenance-notifications.md). Planned maintenance information is available from [az vm get-instance-view](/cli/azure/vm#az-vm-get-instance-view).
Maintenance information is returned only if there is maintenance planned.
virtual-machines Managed Disk From Image Version https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/managed-disk-from-image-version.md
You can export the OS or a single data disk from an image version as a managed d
## CLI
-List the image versions in a gallery using [az sig image-version list](/cli/azure/sig/image-version#az_sig_image_version_list). In this example, we are looking for all of the image versions that are part of the *myImageDefinition* image definition in the *myGallery* gallery.
+List the image versions in a gallery using [az sig image-version list](/cli/azure/sig/image-version#az-sig-image-version-list). In this example, we are looking for all of the image versions that are part of the *myImageDefinition* image definition in the *myGallery* gallery.
```azurecli-interactive az sig image-version list \
az sig image-version list \
-o table ```
-Set the `source` variable to the ID of the image version, then use [az disk create](/cli/azure/disk#az_disk_create) to create the managed disk.
+Set the `source` variable to the ID of the image version, then use [az disk create](/cli/azure/disk#az-disk-create) to create the managed disk.
In this example, we export the OS disk of the image version to create a managed disk named *myManagedOSDisk*, in the *EastUS* region, in a resource group named *myResourceGroup*.
virtual-machines Move Region Maintenance Configuration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/move-region-maintenance-configuration.md
Before you begin moving a maintenance control configuration:
## Prepare and move
-1. Retrieve all of the maintenance configurations in each subscription. Run the CLI [az maintenance configuration list](/cli/azure/maintenance/configuration#az_maintenance_configuration_list) command to do this, replacing $subId with your subscription ID.
+1. Retrieve all of the maintenance configurations in each subscription. Run the CLI [az maintenance configuration list](/cli/azure/maintenance/configuration#az-maintenance-configuration-list) command to do this, replacing $subId with your subscription ID.
``` az maintenance configuration list --subscription $subId --query "[*].{Name:name, Location:location, ResGroup:resourceGroup}" --output table
virtual-machines Share Gallery https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/share-gallery.md
If the user is outside of your organization, they will get an email invitation t
### [CLI](#tab/cli)
-To get the object ID of your gallery, use [az sig show](/cli/azure/sig#az_sig_show).
+To get the object ID of your gallery, use [az sig show](/cli/azure/sig#az-sig-show).
```azurecli-interactive az sig show \
az sig show \
--query id ```
-Use the object ID as a scope, along with an email address and [az role assignment create](/cli/azure/role/assignment#az_role_assignment_create) to give a user access to the Azure Compute Gallery. Replace `<email-address>` and `<gallery iD>` with your own information.
+Use the object ID as a scope, along with an email address and [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) to give a user access to the Azure Compute Gallery. Replace `<email-address>` and `<gallery iD>` with your own information.
```azurecli-interactive az role assignment create \
virtual-machines Snapshot Copy Managed Disk https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/snapshot-copy-managed-disk.md
This example requires that you use [Cloud Shell](https://shell.azure.com/bash) o
Follow these steps to take a snapshot with the `az snapshot create` command and the `--source-disk` parameter. This example assumes that you have a VM called *myVM* in the *myResourceGroup* resource group. The code sample provided creates a snapshot in the same resource group and within the same region as your source VM.
-1. Get the disk ID with [az vm show](/cli/azure/vm#az_vm_show).
+1. Get the disk ID with [az vm show](/cli/azure/vm#az-vm-show).
```azurecli-interactive osDiskId=$(az vm show \
Follow these steps to take a snapshot with the `az snapshot create` command and
-o tsv) ```
-1. Take a snapshot named *osDisk-backup* using [az snapshot create](/cli/azure/snapshot#az_snapshot_create). In the example, the snapshot is of the OS disk. By default, the snapshot uses locally redundant standard storage. We recommend that you store your snapshots in standard storage instead of premium storage whatever the storage type of the parent disk or target disk. Premium snapshots incur additional cost.
+1. Take a snapshot named *osDisk-backup* using [az snapshot create](/cli/azure/snapshot#az-snapshot-create). In the example, the snapshot is of the OS disk. By default, the snapshot uses locally redundant standard storage. We recommend that you store your snapshots in standard storage instead of premium storage whatever the storage type of the parent disk or target disk. Premium snapshots incur additional cost.
```azurecli-interactive az snapshot create \
Follow these steps to take a snapshot with the `az snapshot create` command and
If you would like to store your snapshot in zone-resilient storage, you need to create it in a region that supports [availability zones](../availability-zones/az-overview.md) and include the optional `--sku Standard_ZRS` parameter. A list of [availability zones](../availability-zones/az-region.md#azure-regions-with-availability-zones) can be found here.
-1. Use [az snapshot list](/cli/azure/snapshot#az_snapshot_list) to verify that your snapshot exists.
+1. Use [az snapshot list](/cli/azure/snapshot#az-snapshot-list) to verify that your snapshot exists.
```azurecli-interactive az snapshot list \
virtual-machines Ssh Keys Azure Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/ssh-keys-azure-cli.md
For more detailed information about creating and using SSH keys with Linux VMs,
## Generate new keys
-1. After you sign in, use the [az sshkey create](/cli/azure/sshkey#az_sshkey_create) command to create the new SSH key:
+1. After you sign in, use the [az sshkey create](/cli/azure/sshkey#az-sshkey-create) command to create the new SSH key:
```azurecli az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"
For example, enter: `ssh -i /home/user/.ssh/mySSHKey azureuser@123.45.67.890`
You can upload a public SSH key to store in Azure.
-Use the [az sshkey create](/cli/azure/sshkey#az_sshkey_create) command to upload an SSH public key by specifying its file:
+Use the [az sshkey create](/cli/azure/sshkey#az-sshkey-create) command to upload an SSH public key by specifying its file:
```azurecli az sshkey create --name "mySSHKey" --public-key "@/home/user/.ssh/7777777777_9999999.pub" --resource-group "myResourceGroup"
az sshkey create --name "mySSHKey" --public-key "@/home/user/.ssh/7777777777_999
## List keys
-Use the [az sshkey list](/cli/azure/sshkey#az_sshkey_list) command to list all public SSH keys, optionally specifying a resource group:
+Use the [az sshkey list](/cli/azure/sshkey#az-sshkey-list) command to list all public SSH keys, optionally specifying a resource group:
```azurecli az sshkey list --resource-group "myResourceGroup"
az sshkey list --resource-group "myResourceGroup"
## Get the public key
-Use the [az sshkey show](/cli/azure/sshkey#az_sshkey_show) command to show the values of a public SSH key:
+Use the [az sshkey show](/cli/azure/sshkey#az-sshkey-show) command to show the values of a public SSH key:
```azurecli az sshkey show --name "mySSHKey" --resource-group "myResourceGroup"
virtual-machines Update Image Resources https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/update-image-resources.md
You can manage your Azure Compute Gallery (formerly known as Shared Image Galler
### [CLI](#tab/cli)
-Get the location, status and other information about the available image galleries using [az sig list](/cli/azure/sig#az_sig_list).
+Get the location, status and other information about the available image galleries using [az sig list](/cli/azure/sig#az-sig-list).
```azurecli-interactive az sig list -o table ```
-List the image definitions in a gallery, including information about OS type and status, using [az sig image-definition list](/cli/azure/sig/image-definition#az_sig_image_definition_list).
+List the image definitions in a gallery, including information about OS type and status, using [az sig image-definition list](/cli/azure/sig/image-definition#az-sig-image-definition-list).
```azurecli-interactive az sig image-definition list --resource-group myGalleryRG --gallery-name myGallery -o table ```
-List the image versions in a gallery, using [az sig image-version list](/cli/azure/sig/image-version#az_sig_image_version_list).
+List the image versions in a gallery, using [az sig image-version list](/cli/azure/sig/image-version#az-sig-image-version-list).
```azurecli-interactive az sig image-version list --resource-group myGalleryRG --gallery-name myGallery --gallery-image-definition myImageDefinition -o table ```
-Get the ID of an image version using [az sig image-version show](/cli/azure/sig/image-version#az_sig_image_version_show).
+Get the ID of an image version using [az sig image-version show](/cli/azure/sig/image-version#az-sig-image-version-show).
```azurecli-interactive az sig image-version show \
Image version:
If you plan on adding replica regions, do not delete the source managed image. The source managed image is needed for replicating the image version to additional regions.
-Update the description of a gallery using ([az sig update](/cli/azure/sig#az_sig_update).
+Update the description of a gallery using ([az sig update](/cli/azure/sig#az-sig-update).
```azurecli-interactive az sig update \
az sig update \
```
-Update the description of an image definition using [az sig image-definition update](/cli/azure/sig/image-definition#az_sig_image_definition_update).
+Update the description of an image definition using [az sig image-definition update](/cli/azure/sig/image-definition#az-sig-image-definition-update).
```azurecli-interactive az sig image-definition update \
az sig image-definition update \
--set description="My updated description." ```
-Update an image version to add a region to replicate to using [az sig image-version update](/cli/azure/sig/image-definition#az_sig_image_definition_update). This change will take a while as the image gets replicated to the new region.
+Update an image version to add a region to replicate to using [az sig image-version update](/cli/azure/sig/image-definition#az-sig-image-definition-update). This change will take a while as the image gets replicated to the new region.
```azurecli-interactive az sig image-version update \
az sig image-version update \
--add publishingProfile.targetRegions name=eastus ```
-This example shows how to use [az sig image-version update](/cli/azure/sig/image-definition#az_sig_image_definition_update) to exclude this image version from being used as the *latest* image.
+This example shows how to use [az sig image-version update](/cli/azure/sig/image-definition#az-sig-image-definition-update) to exclude this image version from being used as the *latest* image.
```azurecli-interactive az sig image-version update \
az sig image-version update \
--set publishingProfile.excludeFromLatest=true ```
-This example shows how to use [az sig image-version update](/cli/azure/sig/image-definition#az_sig_image_definition_update) to include this image version in being considered for *latest* image.
+This example shows how to use [az sig image-version update](/cli/azure/sig/image-definition#az-sig-image-definition-update) to include this image version in being considered for *latest* image.
```azurecli-interactive az sig image-version update \
You have to delete resources in reverse order, by deleting the image version fir
### [CLI](#tab/cli)
-Delete an image version using [az sig image-version delete](/cli/azure/sig/image-version#az_sig_image_version_delete).
+Delete an image version using [az sig image-version delete](/cli/azure/sig/image-version#az-sig-image-version-delete).
```azurecli-interactive az sig image-version delete \
az sig image-version delete \
--gallery-image-version 1.0.0 ```
-Delete an image definition using [az sig image-definition delete](/cli/azure/sig/image-definition#az_sig_image_definition_delete).
+Delete an image definition using [az sig image-definition delete](/cli/azure/sig/image-definition#az-sig-image-definition-delete).
```azurecli-interactive az sig image-definition delete \
az sig image-definition delete \
```
-Delete a gallery using [az sig delete](/cli/azure/sig#az_sig_delete).
+Delete a gallery using [az sig delete](/cli/azure/sig#az-sig-delete).
```azurecli-interactive az sig delete \
virtual-machines Vm Applications How To https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/vm-applications-how-to.md
If you have more than one VM application to install, you can set the install ord
VM applications require [Azure CLI](/cli/azure/install-azure-cli) version 2.30.0 or later.
-Crate the VM application definition using [az sig gallery-application create](/cli/azure/sig/gallery-application#az_sig_gallery_application_create). In this example we are creating a VM application definition named *myApp* for Linux-based VMs.
+Crate the VM application definition using [az sig gallery-application create](/cli/azure/sig/gallery-application#az-sig-gallery-application-create). In this example we are creating a VM application definition named *myApp* for Linux-based VMs.
```azurecli-interactive az sig gallery-application create \
az sig gallery-application create \
--location "East US" ```
-Create a VM application version using [az sig gallery-application version create](/cli/azure/sig/gallery-application/version#az_sig_gallery_application_version_create). Allowed characters for version are numbers and periods. Numbers must be within the range of a 32-bit integer. Format: *MajorVersion*.*MinorVersion*.*Patch*.
+Create a VM application version using [az sig gallery-application version create](/cli/azure/sig/gallery-application/version#az-sig-gallery-application-version-create). Allowed characters for version are numbers and periods. Numbers must be within the range of a 32-bit integer. Format: *MajorVersion*.*MinorVersion*.*Patch*.
Replace the values of the parameters with your own.
virtual-machines Vm Generalized Image Version https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/vm-generalized-image-version.md
Now you can create one or more new VMs. This example creates a VM named *myVM*,
### [CLI](#tab/cli)
-List the image definitions in a gallery using [az sig image-definition list](/cli/azure/sig/image-definition#az_sig_image_definition_list) to see the name and ID of the definitions.
+List the image definitions in a gallery using [az sig image-definition list](/cli/azure/sig/image-definition#az-sig-image-definition-list) to see the name and ID of the definitions.
```azurecli-interactive resourceGroup=myGalleryRG
gallery=myGallery
az sig image-definition list --resource-group $resourceGroup --gallery-name $gallery --query "[].[name, id]" --output tsv ```
-Create a VM using [az vm create](/cli/azure/vm#az_vm_create). To use the latest version of the image, set `--image` to the ID of the image definition.
+Create a VM using [az vm create](/cli/azure/vm#az-vm-create). To use the latest version of the image, set `--image` to the ID of the image definition.
The example below is for creating a Linux VMsecured with SSH. For Windows or to secure a Linux VM with a password, remove `--generate-ssh-keys` to be prompted for a password. If you want to supply a password directly, replace `--generate-ssh-keys` with `--admin-password`. Replace resource names as needed in this example.
virtual-machines Vm Specialized Image Version https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/vm-specialized-image-version.md
Now you can create one or more new VMs. This example creates a VM named *myVM*,
### [CLI](#tab/cli)
-List the image definitions in a gallery using [az sig image-definition list](/cli/azure/sig/image-definition#az_sig_image_definition_list) to see the name and ID of the definitions.
+List the image definitions in a gallery using [az sig image-definition list](/cli/azure/sig/image-definition#az-sig-image-definition-list) to see the name and ID of the definitions.
```azurecli-interactive resourceGroup=myGalleryRG
az sig image-definition list \
--output tsv ```
-Create the VM using [az vm create](/cli/azure/vm#az_vm_create) using the --specialized parameter to indicate the the image is a specialized image.
+Create the VM using [az vm create](/cli/azure/vm#az-vm-create) using the --specialized parameter to indicate the the image is a specialized image.
Use the image definition ID for `--image` to create the VM from the latest version of the image that is available. You can also create the VM from a specific version by supplying the image version ID for `--image`.
virtual-machines Disk Encryption Cli Quickstart https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/windows/disk-encryption-cli-quickstart.md
The Azure CLI is used to create and manage Azure resources from the command line
## Create a resource group
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command. An Azure resource group is a logical container into which Azure resources are deployed and managed. The following example creates a resource group named *myResourceGroup* in the *eastus* location:
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command. An Azure resource group is a logical container into which Azure resources are deployed and managed. The following example creates a resource group named *myResourceGroup* in the *eastus* location:
```azurecli-interactive az group create --name myResourceGroup --location eastus
az group create --name myResourceGroup --location eastus
## Create a virtual machine
-Create a VM with [az vm create](/cli/azure/vm#az_vm_create). The following example creates a VM named *myVM*. This example uses *azureuser* for an administrative user name and *myPassword12* as the password.
+Create a VM with [az vm create](/cli/azure/vm#az-vm-create). The following example creates a VM named *myVM*. This example uses *azureuser* for an administrative user name and *myPassword12* as the password.
```azurecli-interactive az vm create \
It takes a few minutes to create the VM and supporting resources. The following
## Create a Key Vault configured for encryption keys
-Azure disk encryption stores its encryption key in an Azure Key Vault. Create a Key Vault with [az keyvault create](/cli/azure/keyvault#az_keyvault_create). To enable the Key Vault to store encryption keys, use the --enabled-for-disk-encryption parameter.
+Azure disk encryption stores its encryption key in an Azure Key Vault. Create a Key Vault with [az keyvault create](/cli/azure/keyvault#az-keyvault-create). To enable the Key Vault to store encryption keys, use the --enabled-for-disk-encryption parameter.
> [!Important] > Each Key Vault must have a unique name. The following example creates a Key Vault named *myKV*, but you must name yours something different.
Encrypt your VM with [az vm encryption](/cli/azure/vm/encryption), providing you
az vm encryption enable -g MyResourceGroup --name MyVM --disk-encryption-keyvault myKV ```
-You can verify that encryption is enabled on your VM with [az vm show](/cli/azure/vm/encryption#az_vm_encryption_show)
+You can verify that encryption is enabled on your VM with [az vm show](/cli/azure/vm/encryption#az-vm-encryption-show)
```azurecli-interactive az vm encryption show --name MyVM -g MyResourceGroup
virtual-machines Disk Encryption Key Vault Aad https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/windows/disk-encryption-key-vault-aad.md
You can create a key vault with Azure PowerShell using the [New-AzKeyVault](/pow
### Create a key vault with Azure CLI
-You can manage your key vault with Azure CLI using the [az keyvault](/cli/azure/keyvault#commands) commands. To create a key vault, use [az keyvault create](/cli/azure/keyvault#az_keyvault_create).
+You can manage your key vault with Azure CLI using the [az keyvault](/cli/azure/keyvault#commands) commands. To create a key vault, use [az keyvault create](/cli/azure/keyvault#az-keyvault-create).
-1. Create a new resource group, if needed, with [az group create](/cli/azure/group#az_group_create). To list locations, use [az account list-locations](/cli/azure/account#az_account_list)
+1. Create a new resource group, if needed, with [az group create](/cli/azure/group#az-group-create). To list locations, use [az account list-locations](/cli/azure/account#az-account-list)
```azurecli-interactive # To list locations: az account list-locations --output table az group create -n "MyKeyVaultResourceGroup" -l "East US" ```
-3. Create a new key vault using [az keyvault create](/cli/azure/keyvault#az_keyvault_create).
+3. Create a new key vault using [az keyvault create](/cli/azure/keyvault#az-keyvault-create).
```azurecli-interactive az keyvault create --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --location "East US"
Your Azure AD application needs rights to access the keys or secrets in the vaul
``` ### Set the key vault access policy for the Azure AD app with Azure CLI
-Use [az keyvault set-policy](/cli/azure/keyvault#az_keyvault_set_policy) to set the access policy. For more information, see [Manage Key Vault using CLI 2.0](../../key-vault/general/manage-with-cli2.md#authorizing-an-application-to-use-a-key-or-secret).
+Use [az keyvault set-policy](/cli/azure/keyvault#az-keyvault-set-policy) to set the access policy. For more information, see [Manage Key Vault using CLI 2.0](../../key-vault/general/manage-with-cli2.md#authorizing-an-application-to-use-a-key-or-secret).
Give the service principal you created via the Azure CLI access to get secrets and wrap keys with the following command:
The Azure platform needs access to the encryption keys or secrets in your key va
``` ### Set key vault advanced access policies using the Azure CLI
-Use [az keyvault update](/cli/azure/keyvault#az_keyvault_update) to enable disk encryption for the key vault.
+Use [az keyvault update](/cli/azure/keyvault#az-keyvault-update) to enable disk encryption for the key vault.
- **Enable Key Vault for disk encryption:** Enabled-for-disk-encryption is required.
virtual-machines Disk Encryption Windows Aad https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/windows/disk-encryption-windows-aad.md
You can enable disk encryption on new IaaS Windows VM from the Marketplace in Az
2. Select the subscription, resource group, resource group location, parameters, legal terms, and agreement. Click **Purchase** to deploy a new IaaS VM where encryption is enabled. 3. After you deploy the template, verify the VM encryption status using your preferred method:
- - Verify with the Azure CLI by using the [az vm encryption show](/cli/azure/vm/encryption#az_vm_encryption_show) command.
+ - Verify with the Azure CLI by using the [az vm encryption show](/cli/azure/vm/encryption#az-vm-encryption-show) command.
```azurecli-interactive az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]
``` ### <a name="bkmk_RunningWinVMCLI"></a>Enable encryption on existing or running VMs with Azure CLI
-Use the [az vm encryption enable](/cli/azure/vm/encryption#az_vm_encryption_enable) command to enable encryption on a running IaaS virtual machine in Azure.
+Use the [az vm encryption enable](/cli/azure/vm/encryption#az-vm-encryption-enable) command to enable encryption on a running IaaS virtual machine in Azure.
- **Encrypt a running VM using a client secret:**
Use the [az vm encryption enable](/cli/azure/vm/encryption#az_vm_encryption_enab
> The syntax for the value of the key-encryption-key parameter is the full URI to the KEK as in: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id] -- **Verify the disks are encrypted:** To check on the encryption status of an IaaS VM, use the [az vm encryption show](/cli/azure/vm/encryption#az_vm_encryption_show) command.
+- **Verify the disks are encrypted:** To check on the encryption status of an IaaS VM, use the [az vm encryption show](/cli/azure/vm/encryption#az-vm-encryption-show) command.
```azurecli-interactive az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" ``` -- **Disable encryption:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az_vm_encryption_disable) command.
+- **Disable encryption:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az-vm-encryption-disable) command.
```azurecli-interactive az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type [ALL, DATA, OS] ```
You can disable encryption using Azure PowerShell, the Azure CLI, or with a Reso
Disable-AzVMDiskEncryption -ResourceGroupName 'MyVirtualMachineResourceGroup' -VMName 'MySecureVM' ``` -- **Disable encryption with the Azure CLI:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az_vm_encryption_disable) command.
+- **Disable encryption with the Azure CLI:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az-vm-encryption-disable) command.
```azurecli-interactive az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type [ALL, DATA, OS] ```
virtual-machines Disk Encryption Windows https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/windows/disk-encryption-windows.md
To disable the encryption, see [Disable encryption and remove the encryption ext
### Enable encryption on existing or running VMs with the Azure CLI
-Use the [az vm encryption enable](/cli/azure/vm/encryption#az_vm_encryption_enable) command to enable encryption on a running IaaS virtual machine in Azure.
+Use the [az vm encryption enable](/cli/azure/vm/encryption#az-vm-encryption-enable) command to enable encryption on a running IaaS virtual machine in Azure.
- **Encrypt a running VM:**
Use the [az vm encryption enable](/cli/azure/vm/encryption#az_vm_encryption_enab
> The syntax for the value of the key-encryption-key parameter is the full URI to the KEK as in: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id] -- **Verify the disks are encrypted:** To check on the encryption status of an IaaS VM, use the [az vm encryption show](/cli/azure/vm/encryption#az_vm_encryption_show) command.
+- **Verify the disks are encrypted:** To check on the encryption status of an IaaS VM, use the [az vm encryption show](/cli/azure/vm/encryption#az-vm-encryption-show) command.
```azurecli-interactive az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
You can disable encryption using Azure PowerShell, the Azure CLI, or with a Reso
Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "all" ``` -- **Disable encryption with the Azure CLI:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az_vm_encryption_disable) command.
+- **Disable encryption with the Azure CLI:** To disable encryption, use the [az vm encryption disable](/cli/azure/vm/encryption#az-vm-encryption-disable) command.
```azurecli-interactive az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "all"
You can remove the encryption extension using Azure PowerShell or the Azure CLI.
Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" ``` -- **Disable encryption with the Azure CLI:** To remove encryption, use the [az vm extension delete](/cli/azure/vm/extension#az_vm_extension_delete) command.
+- **Disable encryption with the Azure CLI:** To remove encryption, use the [az vm extension delete](/cli/azure/vm/extension#az-vm-extension-delete) command.
```azurecli-interactive az vm extension delete -g "MyVirtualMachineResourceGroup" --vm-name "MySecureVM" -n "AzureDiskEncryptionForWindows"
virtual-machines Image Builder https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/windows/image-builder.md
az resource delete \
``` ## Start the image build
-Start the image building process using [az resource invoke-action](/cli/azure/resource#az_resource_invoke_action).
+Start the image building process using [az resource invoke-action](/cli/azure/resource#az-resource-invoke-action).
```azurecli-interactive az resource invoke-action \
virtual-machines Run Command https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/windows/run-command.md
The entity was not found in this Azure location
## Azure CLI
-The following example uses the [az vm run-command](/cli/azure/vm/run-command#az_vm_run_command_invoke) command to run a shell script on an Azure Windows VM.
+The following example uses the [az vm run-command](/cli/azure/vm/run-command#az-vm-run-command-invoke) command to run a shell script on an Azure Windows VM.
```azurecli-interactive # script.ps1
virtual-machines Run Scripts In Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/windows/run-scripts-in-vm.md
The [Custom Script Extension](../extensions/custom-script-windows.md) is primari
The [Run Command](run-command.md) feature enables virtual machine and application management and troubleshooting using scripts, and is available even when the machine is not reachable, for example if the guest firewall doesn't have the RDP or SSH port open. * Run scripts in Azure virtual machines.
-* Can be run using [Azure portal](run-command.md), [REST API](/rest/api/compute/virtual-machines-run-commands/run-command), [Azure CLI](/cli/azure/vm/run-command#az_vm_run_command_invoke), or [PowerShell](/powershell/module/az.compute/invoke-azvmruncommand)
+* Can be run using [Azure portal](run-command.md), [REST API](/rest/api/compute/virtual-machines-run-commands/run-command), [Azure CLI](/cli/azure/vm/run-command#az-vm-run-command-invoke), or [PowerShell](/powershell/module/az.compute/invoke-azvmruncommand)
* Quickly run a script and view output and repeat as needed in the Azure portal. * Script can be typed directly or you can run one of the built-in scripts. * Run PowerShell script in Windows machines and Bash script in Linux machines.
virtual-machines Windows Desktop Multitenant Hosting Deployment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/windows/windows-desktop-multitenant-hosting-deployment.md
# How to deploy Windows 10 on Azure **Applies to:** :heavy_check_mark: Windows VMs :heavy_check_mark: Flexible scale sets
-For customers with Windows 10 Enterprise E3/E5 per user or Windows Virtual Desktop Access per user (User Subscription Licenses or Add-on User Subscription Licenses), Multitenant Hosting Rights for Windows 10 allows you to bring your Windows 10 Licenses to the cloud and run Windows 10 Virtual Machines on Azure without paying for another license. Multitenant Hosting Rights are only available for Windows 10 (version 1703 or later).
+For customers with Windows 10 Enterprise E3/E5 per user or Azure Virtual Desktop Access per user (User Subscription Licenses or Add-on User Subscription Licenses), Multitenant Hosting Rights for Windows 10 allows you to bring your Windows 10 Licenses to the cloud and run Windows 10 Virtual Machines on Azure without paying for another license. Multitenant Hosting Rights are only available for Windows 10 (version 1703 or later).
For more information, see [Multitenant Hosting for Windows 10](https://www.microsoft.com/en-us/CloudandHosting).
virtual-machines Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/workloads/hpc/configure.md
All of the VM sizes in the N-series support [Gen 2 VMs](../../generation-2.md),
#### SR-IOV enabled VMs For SR-IOV enabled [RDMA capable VMs](../../sizes-hpc.md#rdma-capable-instances), CentOS-HPC VM images version 7.6 and later are suitable. These VM images come optimized and pre-loaded with the Mellanox OFED drivers for RDMA and various commonly used MPI libraries and scientific computing packages. Refer to the [VM size support matrix](#vm-sizes-supported-by-the-hpc-vm-images) above.-- The available or latest versions of the VM images can be listed with the following information using [CLI](/cli/azure/vm/image#az_vm_image_list) or [Marketplace](https://azuremarketplace.microsoft.com/marketplace/apps/openlogic.centos-hpc?tab=Overview).
+- The available or latest versions of the VM images can be listed with the following information using [CLI](/cli/azure/vm/image#az-vm-image-list) or [Marketplace](https://azuremarketplace.microsoft.com/marketplace/apps/openlogic.centos-hpc?tab=Overview).
```bash "publisher": "OpenLogic", "offer": "CentOS-HPC",
For non-SR-IOV enabled [RDMA capable VMs](../../sizes-hpc.md#rdma-capable-instan
### Ubuntu-HPC VM images For SR-IOV enabled [RDMA capable VMs](../../sizes-hpc.md#rdma-capable-instances), Ubuntu-HPC VM images versions 18.04 and 20.04 are suitable. These VM images come optimized and pre-loaded with the Mellanox OFED drivers for RDMA, Nvidia GPU drivers, GPU compute software stack (CUDA, NCCL), and various commonly used MPI libraries and scientific computing packages. Refer to the [VM size support matrix](#vm-sizes-supported-by-the-hpc-vm-images) above.-- The available or latest versions of the VM images can be listed with the following information using [CLI](/cli/azure/vm/image#az_vm_image_list) or [Marketplace](https://azuremarketplace.microsoft.com/marketplace/apps/microsoft-dsvm.ubuntu-hpc?tab=overview).
+- The available or latest versions of the VM images can be listed with the following information using [CLI](/cli/azure/vm/image#az-vm-image-list) or [Marketplace](https://azuremarketplace.microsoft.com/marketplace/apps/microsoft-dsvm.ubuntu-hpc?tab=overview).
```bash "publisher": "Microsoft-DSVM", "offer": "Ubuntu-HPC",
virtual-machines Planning Guide https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/workloads/sap/planning-guide.md
az network nic create --resource-group $rgName --location "North Europe" --name
# Create virtual machines using storage accounts ##### az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest --admin-username <username> --admin-password <password> --size Standard_D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os
-#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image SUSE:SLES-SAP:12-SP1:latest --admin-username <username> --admin-password <password> --size Standard_D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os --authentication-type password
-#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image RedHat:RHEL:7.2:latest --admin-username <username> --admin-password <password> --size Standard_D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os --authentication-type password
-#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image "Oracle:Oracle-Linux:7.2:latest" --admin-username <username> --admin-password <password> --size Standard_D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os --authentication-type password
+#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image SUSE:SLES-SAP:12-SP1:latest --admin-username <username> --admin-password <password> --size Standard-D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os --authentication-type password
+#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image RedHat:RHEL:7.2:latest --admin-username <username> --admin-password <password> --size Standard-D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os --authentication-type password
+#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image "Oracle:Oracle-Linux:7.2:latest" --admin-username <username> --admin-password <password> --size Standard-D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os --authentication-type password
##### # Create virtual machines using Managed Disks #####
-az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest --admin-username <username> --admin-password <password> --size Standard_DS11_v2 --os-disk-name os
-#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image SUSE:SLES-SAP:12-SP1:latest --admin-username <username> --admin-password <password> --size Standard_DS11_v2 --os-disk-name os --authentication-type password
-#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image RedHat:RHEL:7.2:latest --admin-username <username> --admin-password <password> --size Standard_DS11_v2 --os-disk-name os --authentication-type password
-#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image "Oracle:Oracle-Linux:7.2:latest" --admin-username <username> --admin-password <password> --size Standard_DS11_v2 --os-disk-name os --authentication-type password
+az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest --admin-username <username> --admin-password <password> --size Standard-DS11-v2 --os-disk-name os
+#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image SUSE:SLES-SAP:12-SP1:latest --admin-username <username> --admin-password <password> --size Standard-DS11-v2 --os-disk-name os --authentication-type password
+#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image RedHat:RHEL:7.2:latest --admin-username <username> --admin-password <password> --size Standard-DS11-v2 --os-disk-name os --authentication-type password
+#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --image "Oracle:Oracle-Linux:7.2:latest" --admin-username <username> --admin-password <password> --size Standard-DS11-v2 --os-disk-name os --authentication-type password
``` ```azurecli ##### # Create a new virtual machine with a VHD that contains the private image that you want to use #####
-az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --os-type Windows --admin-username <username> --admin-password <password> --size Standard_D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os --image <path to image vhd>
-#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --os-type Linux --admin-username <username> --admin-password <password> --size Standard_D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os --image <path to image vhd> --authentication-type password
+az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --os-type Windows --admin-username <username> --admin-password <password> --size Standard-D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os --image <path to image vhd>
+#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --os-type Linux --admin-username <username> --admin-password <password> --size Standard-D11 --use-unmanaged-disk --storage-account $rgNameLower --storage-container-name vhds --os-disk-name os --image <path to image vhd> --authentication-type password
##### # Create a new virtual machine with a Managed Disk Image #####
-az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --admin-username <username> --admin-password <password> --size Standard_DS11_v2 --os-disk-name os --image <managed disk image id>
-#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --admin-username <username> --admin-password <password> --size Standard_DS11_v2 --os-disk-name os --image <managed disk image id> --authentication-type password
+az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --admin-username <username> --admin-password <password> --size Standard-DS11-v2 --os-disk-name os --image <managed disk image id>
+#az vm create --resource-group $rgName --location "North Europe" --name SAPERPDemo --nics SAPERPDemoNIC --admin-username <username> --admin-password <password> --size Standard-DS11-v2 --os-disk-name os --image <managed disk image id> --authentication-type password
``` * Optionally add additional disks and restore necessary content. All blob names (URLs to the blobs) must be unique within Azure.
virtual-network-manager Create Virtual Network Manager Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network-manager/create-virtual-network-manager-cli.md
az account set \
## Create a resource group
-Before you can create an Azure Route Server, you have to create a resource group to host the Route Server. Create a resource group with [az group create](/cli/azure/group#az_group_create). This example creates a resource group named **myAVNMResourceGroup** in the **westus** location:
+Before you can create an Azure Route Server, you have to create a resource group to host the Route Server. Create a resource group with [az group create](/cli/azure/group#az-group-create). This example creates a resource group named **myAVNMResourceGroup** in the **westus** location:
```azurecli-interactive az group create \
az group create \
## Create a Virtual Network Manager
-Define the scope and access type this Network Manager instance will have. Create the scope by using [az network manager create](/cli/azure/network/manager#az_network_manager_create). Replace the value *{mgName}* with management group name or *{subscriptionId}* with subscriptions you want Virtual Network Manager to manage virtual networks for.
+Define the scope and access type this Network Manager instance will have. Create the scope by using [az network manager create](/cli/azure/network/manager#az-network-manager-create). Replace the value *{mgName}* with management group name or *{subscriptionId}* with subscriptions you want Virtual Network Manager to manage virtual networks for.
```azurecli-interactive az network manager create \
az network manager create \
## Create three virtual networks
-Create three virtual networks with [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create). This example creates virtual networks named **VNetA**, **VNetB** and **VNetC** in the **westus** location. If you already have virtual networks you want create a mesh network with, you can skip to the next section.
+Create three virtual networks with [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create). This example creates virtual networks named **VNetA**, **VNetB** and **VNetC** in the **westus** location. If you already have virtual networks you want create a mesh network with, you can skip to the next section.
```azurecli-interactive az network vnet create \
az network vnet create \
### Add a subnet to each virtual network
-To complete the configuration of the virtual networks add a /24 subnet to each one. Create a subnet configuration named **default** with [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create):
+To complete the configuration of the virtual networks add a /24 subnet to each one. Create a subnet configuration named **default** with [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create):
```azurecli-interactive az network vnet subnet create \
az network vnet subnet create \
## Create a network group
-Create a network group using static membership with [az network manager group create](/cli/azure/network/manager/group#az_network_manager_group_create). Replace the value *{subscriptionId}* with the subscription the virtual network is in.
+Create a network group using static membership with [az network manager group create](/cli/azure/network/manager/group#az-network-manager-group-create). Replace the value *{subscriptionId}* with the subscription the virtual network is in.
```azurecli-interactive az network manager group create \
az network manager group create \
## Create a configuration
-Create a mesh network topology configuration with [az network manager connect-config create](/cli/azure/network/manager/connect-config#az_network_manager_connect_config_create):
+Create a mesh network topology configuration with [az network manager connect-config create](/cli/azure/network/manager/connect-config#az-network-manager-connect-config-create):
```azurecli-interactive az network manager connect-config create \
az network manager connect-config create \
## Commit deployment
-Commit a connectivity configuration with [az network manager post-commit](/cli/azure/network/manager#az_network_manager_post_commit):
+Commit a connectivity configuration with [az network manager post-commit](/cli/azure/network/manager#az-network-manager-post-commit):
```azurecli-interactive az network manager post-commit \
If you no longer need the Azure Virtual Network Manager, you'll need to make sur
* All configurations have been deleted. * All network groups have been deleted.
-1. Remove the connectivity deployment by committing no configurations with [az network manager post-commit](/cli/azure/network/manager#az_network_manager_post_commit):
+1. Remove the connectivity deployment by committing no configurations with [az network manager post-commit](/cli/azure/network/manager#az-network-manager-post-commit):
```azurecli-interactive az network manager post-commit \
If you no longer need the Azure Virtual Network Manager, you'll need to make sur
--resource-group "myAVNMResourceGroup" ```
-1. Remove the connectivity configuration with [az network manager connect-config delete](/cli/azure/network/manager/connect-config#az_network_manager_connect_config_delete):
+1. Remove the connectivity configuration with [az network manager connect-config delete](/cli/azure/network/manager/connect-config#az-network-manager-connect-config-delete):
```azurecli-interactive az network manager connect-config delete \
If you no longer need the Azure Virtual Network Manager, you'll need to make sur
--resource-group "myAVNMResourceGroup" ```
-1. Remove the network group with [az network manager group delete](/cli/azure/network/manager/group#az_network_manager_group_delete):
+1. Remove the network group with [az network manager group delete](/cli/azure/network/manager/group#az-network-manager-group-delete):
```azurecli-interactive az network manager group delete \
If you no longer need the Azure Virtual Network Manager, you'll need to make sur
--resource-group "myAVNMResourceGroup" ```
-1. Delete the network manager instance with [az network manager delete](/cli/azure/network/manager#az_network_manager_delete):
+1. Delete the network manager instance with [az network manager delete](/cli/azure/network/manager#az-network-manager-delete):
```azurecli-interactive az network manager delete \
If you no longer need the Azure Virtual Network Manager, you'll need to make sur
--resource-group "myAVNMResourceGroup" ```
-1. If you no longer need the resource created, delete the resource group with [az group delete](/cli/azure/group#az_group_delete):
+1. If you no longer need the resource created, delete the resource group with [az group delete](/cli/azure/group#az-group-delete):
```azurecli-interactive az group delete \
virtual-network Diagnose Network Routing Problem https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/diagnose-network-routing-problem.md
In the previous output, the network interface name is *myVMNic1*.
You can run the commands that follow in the [Azure Cloud Shell](https://shell.azure.com/bash), or by running the CLI from your computer. This article requires the Azure CLI version 2.0.32 or later. Run `az --version` to find the installed version. If you need to install or upgrade, see [Install Azure CLI](/cli/azure/install-azure-cli). If you are running the Azure CLI locally, you also need to run `az login` and log into Azure with an account that has the [necessary permissions](virtual-network-network-interface.md#permissions).
-Get the effective routes for a network interface with [az network nic show-effective-route-table](/cli/azure/network/nic#az_network_nic_show_effective_route_table). The following example gets the effective routes for a network interface named *myVMNic1* that is in a resource group named *myResourceGroup*:
+Get the effective routes for a network interface with [az network nic show-effective-route-table](/cli/azure/network/nic#az-network-nic-show-effective-route-table). The following example gets the effective routes for a network interface named *myVMNic1* that is in a resource group named *myResourceGroup*:
```azurecli-interactive az network nic show-effective-route-table \
virtual-network Diagnose Network Traffic Filter Problem https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/diagnose-network-traffic-filter-problem.md
In the previous output, the network interface name is *myVMVMNic*.
If using Azure CLI commands to complete tasks in this article, either run the commands in the [Azure Cloud Shell](https://shell.azure.com/bash), or by running the Azure CLI from your computer. This article requires the Azure CLI version 2.0.32 or later. Run `az --version` to find the installed version. If you need to install or upgrade, see [Install Azure CLI](/cli/azure/install-azure-cli). If you're running the Azure CLI locally, you also need to run `az login` and log into Azure with an account that has the [necessary permissions](virtual-network-network-interface.md#permissions).
-Get the effective security rules for a network interface with [az network nic list-effective-nsg](/cli/azure/network/nic#az_network_nic_list_effective_nsg). The following example gets the effective security rules for a network interface named *myVMVMNic* that is in a resource group named *myResourceGroup*:
+Get the effective security rules for a network interface with [az network nic list-effective-nsg](/cli/azure/network/nic#az-network-nic-list-effective-nsg). The following example gets the effective security rules for a network interface named *myVMVMNic* that is in a resource group named *myResourceGroup*:
```azurecli-interactive az network nic list-effective-nsg \
virtual-network Associate Public Ip Address Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/associate-public-ip-address-vm.md
You can use the [Azure portal](#azure-portal), the [Azure CLI](#azure-cli), or [
Install the [Azure CLI](/cli/azure/install-azure-cli?toc=%2fazure%2fvirtual-network%2ftoc.json), or use the Azure Cloud Shell. The Azure Cloud Shell is a free Bash shell that you can run directly within the Azure portal. It has the Azure CLI preinstalled and configured to use with your account. Select the **Try it** button in the CLI commands that follow. Selecting **Try it** invokes a Cloud Shell that you can sign in to your Azure account with. 1. If using the CLI locally in Bash, sign in to Azure with `az login`.
-2. A public IP address is associated to an IP configuration of a network interface attached to a VM. Use the [az network nic-ip-config update](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_update) command to associate a public IP address to an IP configuration. The following example associates an existing public IP address named *myVMPublicIP* to the IP configuration named *ipconfigmyVM* of an existing network interface named *myVMVMNic* that exists in a resource group named *myResourceGroup*.
+2. A public IP address is associated to an IP configuration of a network interface attached to a VM. Use the [az network nic-ip-config update](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-update) command to associate a public IP address to an IP configuration. The following example associates an existing public IP address named *myVMPublicIP* to the IP configuration named *ipconfigmyVM* of an existing network interface named *myVMVMNic* that exists in a resource group named *myResourceGroup*.
```azurecli-interactive az network nic ip-config update \
Install the [Azure CLI](/cli/azure/install-azure-cli?toc=%2fazure%2fvirtual-netw
--public-ip-address myVMPublicIP ```
- - If you don't have an existing public IP address, use the [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) command to create one. For example, the following command creates a public IP address named *myVMPublicIP* in a resource group named *myResourceGroup*.
+ - If you don't have an existing public IP address, use the [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) command to create one. For example, the following command creates a public IP address named *myVMPublicIP* in a resource group named *myResourceGroup*.
```azurecli-interactive az network public-ip create --name myVMPublicIP --resource-group myResourceGroup
Install the [Azure CLI](/cli/azure/install-azure-cli?toc=%2fazure%2fvirtual-netw
> [!NOTE] > The previous command creates a public IP address with default values for several settings that you may want to customize. To learn more about all public IP address settings, see [Create a public IP address](virtual-network-public-ip-address.md#create-a-public-ip-address). The address is assigned from a pool of public IP addresses used for each Azure region. To see a list of address pools used in each region, see [Microsoft Azure Datacenter IP Ranges](https://www.microsoft.com/download/details.aspx?id=41653).
- - If you don't know the name of a network interface attached to your VM, use the [az vm nic list](/cli/azure/vm/nic#az_vm_nic_list) command to view them. For example, the following command lists the names of the network interfaces attached to a VM named *myVM* in a resource group named *myResourceGroup*:
+ - If you don't know the name of a network interface attached to your VM, use the [az vm nic list](/cli/azure/vm/nic#az-vm-nic-list) command to view them. For example, the following command lists the names of the network interfaces attached to a VM named *myVM* in a resource group named *myResourceGroup*:
```azurecli-interactive az vm nic list --vm-name myVM --resource-group myResourceGroup
Install the [Azure CLI](/cli/azure/install-azure-cli?toc=%2fazure%2fvirtual-netw
In the previous example, *myVMVMNic* is the name of the network interface.
- - If you don't know the name of an IP configuration for a network interface, use the [az network nic ip-config list](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_list) command to retrieve them. For example, the following command lists the names of the IP configurations for a network interface named *myVMVMNic* in a resource group named *myResourceGroup*:
+ - If you don't know the name of an IP configuration for a network interface, use the [az network nic ip-config list](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-list) command to retrieve them. For example, the following command lists the names of the IP configurations for a network interface named *myVMVMNic* in a resource group named *myResourceGroup*:
```azurecli-interactive az network nic ip-config list --nic-name myVMVMNic --resource-group myResourceGroup --out table ```
-3. View the public IP address assigned to the IP configuration with the [az vm list-ip-addresses](/cli/azure/vm#az_vm_list_ip_addresses) command. The following example shows the IP addresses assigned to an existing VM named *myVM* in a resource group named *myResourceGroup*.
+3. View the public IP address assigned to the IP configuration with the [az vm list-ip-addresses](/cli/azure/vm#az-vm-list-ip-addresses) command. The following example shows the IP addresses assigned to an existing VM named *myVM* in a resource group named *myResourceGroup*.
```azurecli-interactive az vm list-ip-addresses --name myVM --resource-group myResourceGroup --out table
virtual-network Configure Routing Preference Virtual Machine Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/configure-routing-preference-virtual-machine-cli.md
In this tutorial, you learn how to:
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create) named **TutorVMRoutePref-rg** in the **westus2** location.
+Create a resource group with [az group create](/cli/azure/group#az-group-create) named **TutorVMRoutePref-rg** in the **westus2** location.
```azurecli-interactive az group create \
Create a resource group with [az group create](/cli/azure/group#az_group_create)
## Create a public IP address
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a standard zone-redundant public IPv4 address named **myPublicIP** in **TutorVMRoutePref-rg**. The **Tag** of **Internet** is applied to the public IP address as a parameter in the CLI command enabling the **Internet** routing preference.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a standard zone-redundant public IPv4 address named **myPublicIP** in **TutorVMRoutePref-rg**. The **Tag** of **Internet** is applied to the public IP address as a parameter in the CLI command enabling the **Internet** routing preference.
```azurecli-interactive az network public-ip create \
az network public-ip create \
## Create virtual machine
-Use [az vm create](/cli/azure/vm#az_vm_create) to create a virtual machine. The public IP address created in the previous section is added as part of the CLI command and is attached to the VM during creation.
+Use [az vm create](/cli/azure/vm#az-vm-create) to create a virtual machine. The public IP address created in the previous section is added as part of the CLI command and is attached to the VM during creation.
```azurecli-interactive az vm create \
az vm create \
## Verify internet routing preference
-Use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show) to verify that **Internet** routing preference is configured for the public IP address.
+Use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show) to verify that **Internet** routing preference is configured for the public IP address.
```azurecli-interactive az network public-ip show \
az network public-ip show \
## Clean up resources
-When you're done with the virtual machine and public IP address, delete the resource group and all of the resources it contains with [az group delete](/cli/azure/group#az_group_delete).
+When you're done with the virtual machine and public IP address, delete the resource group and all of the resources it contains with [az group delete](/cli/azure/group#az-group-delete).
```azurecli-interactive az group delete \
virtual-network Create Public Ip Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/create-public-ip-cli.md
In this quickstart, you'll learn how to create an Azure public IP address. Publi
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create) named **QuickStartCreateIP-rg** in the **eastus2** location.
+Create a resource group with [az group create](/cli/azure/group#az-group-create) named **QuickStartCreateIP-rg** in the **eastus2** location.
```azurecli-interactive az group create \
Create a resource group with [az group create](/cli/azure/group#az_group_create)
> >The following command works for API version **2020-08-01** or **later**. For more information about the API version currently being used, please refer to [Resource Providers and Types](../../azure-resource-manager/management/resource-providers-and-types.md).
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a standard zone-redundant public IPv4 address named **myStandardPublicIP** in **QuickStartCreateIP-rg**.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a standard zone-redundant public IPv4 address named **myStandardPublicIP** in **QuickStartCreateIP-rg**.
To create an IPv6 address, modify the **`--version`** parameter to **IPv6**.
To create an IPv6 address, modify the **`--version`** parameter to **IPv6**.
In this section, you'll create a basic IP. Basic public IPs don't support availability zones.
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a basic static public IPv4 address named **myBasicPublicIP** in **QuickStartCreateIP-rg**.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a basic static public IPv4 address named **myBasicPublicIP** in **QuickStartCreateIP-rg**.
To create an IPv6 address, modify the **`--version`** parameter to **IPv6**.
In this section, you'll create a non-zonal IP address.
>[!NOTE] >The following command works for API version 2020-08-01 or later. For more information about the API version currently being used, please refer to [Resource Providers and Types](../../azure-resource-manager/management/resource-providers-and-types.md).
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a standard public IPv4 address as a non-zonal resource named **myStandardPublicIP-nozone** in **QuickStartCreateIP-rg**.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a standard public IPv4 address as a non-zonal resource named **myStandardPublicIP-nozone** in **QuickStartCreateIP-rg**.
To create an IPv6 address, modify the **`--version`** parameter to **IPv6**.
virtual-network Create Public Ip Prefix Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/create-public-ip-prefix-cli.md
When you create a public IP address resource, you can assign a static public IP
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create) named **QuickStartCreateIPPrefix-rg** in the **eastus2** location.
+Create a resource group with [az group create](/cli/azure/group#az-group-create) named **QuickStartCreateIPPrefix-rg** in the **eastus2** location.
```azurecli-interactive az group create \
The prefixes in the examples are:
For more information on available prefix sizes, see [Prefix sizes](public-ip-address-prefix.md#prefix-sizes).
-Create a public IP prefix with [az network public-ip prefix create](/cli/azure/network/public-ip/prefix#az_network_public_ip_prefix_create) named **myPublicIpPrefix** in the **eastus2** location.
+Create a public IP prefix with [az network public-ip prefix create](/cli/azure/network/public-ip/prefix#az-network-public-ip-prefix-create) named **myPublicIpPrefix** in the **eastus2** location.
## IPv4
The removal of the **`--zone`** parameter is the default selection for standard
Once you create a prefix, you must create static IP addresses from the prefix. In this section, you'll create a static IP address from the prefix you created earlier.
-Create a public IP address with [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) in the **myPublicIpPrefix** prefix.
+Create a public IP address with [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) in the **myPublicIpPrefix** prefix.
# [**IPv4 address**](#tab/ipv4-address)
To create a IPv6 public IP prefix, enter **IPv6** in the **`--version`** paramet
In this section, you'll learn how to delete a prefix.
-To delete a public IP prefix, use [az network public-ip prefix delete](/cli/azure/network/public-ip/prefix#az_network_public_ip_prefix_delete).
+To delete a public IP prefix, use [az network public-ip prefix delete](/cli/azure/network/public-ip/prefix#az-network-public-ip-prefix-delete).
```azurecli-interactive az network public-ip prefix delete \
To delete a public IP prefix, use [az network public-ip prefix delete](/cli/azur
In this article, you created a public IP prefix and a public IP from that prefix.
-When you're done with the public IP prefix, delete the resource group and all of the resources it contains with [az group delete](/cli/azure/group#az_group_delete).
+When you're done with the public IP prefix, delete the resource group and all of the resources it contains with [az group delete](/cli/azure/group#az-group-delete).
```azurecli-interactive az group delete \
virtual-network Create Vm Dual Stack Ipv6 Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/create-vm-dual-stack-ipv6-cli.md
In this article, you'll create a virtual machine in Azure with the Azure CLI. Th
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create) named **myResourceGroup** in the **eastus2** location.
+Create a resource group with [az group create](/cli/azure/group#az-group-create) named **myResourceGroup** in the **eastus2** location.
```azurecli-interactive az group create \
Create a resource group with [az group create](/cli/azure/group#az_group_create)
In this section, you'll create a dual-stack virtual network for the virtual machine.
-Use [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) to create a virtual network.
+Use [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) to create a virtual network.
```azurecli-interactive az network vnet create \
Use [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) to
You'll create two public IP addresses in this section, IPv4 and IPv6.
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create the public IP addresses.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create the public IP addresses.
```azurecli-interactive az network public-ip create \
Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public
In this section, you'll create a network security group for the virtual machine and virtual network.
-Use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) to create the network security group.
+Use [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create) to create the network security group.
```azurecli-interactive az network nsg create \
Use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) to cre
You'll create a rule to allow connections to the virtual machine on port 22 for SSH. An extra rule is created to allow all ports for outbound connections.
-Use [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create) to create the network security group rules.
+Use [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create) to create the network security group rules.
```azurecli-interactive az network nsg rule create \
In this section, you'll create the virtual machine and its supporting resources.
### Create network interface
-You'll use [az network nic create](/cli/azure/network/nic#az_network_nic_create) to create the network interface for the virtual machine. The public IP addresses and the NSG created previously are associated with the NIC. The network interface is attached to the virtual network you created previously.
+You'll use [az network nic create](/cli/azure/network/nic#az-network-nic-create) to create the network interface for the virtual machine. The public IP addresses and the NSG created previously are associated with the NIC. The network interface is attached to the virtual network you created previously.
```azurecli-interactive az network nic create \
You'll use [az network nic create](/cli/azure/network/nic#az_network_nic_create)
### Create IPv6 IP configuration
-Use [az network nic ip-config create](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_create) to create the IPv6 configuration for the NIC.
+Use [az network nic ip-config create](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-create) to create the IPv6 configuration for the NIC.
```azurecli-interactive az network nic ip-config create \
Use [az network nic ip-config create](/cli/azure/network/nic/ip-config#az_networ
### Create VM
-Use [az vm create](/cli/azure/vm#az_vm_create) to create the virtual machine.
+Use [az vm create](/cli/azure/vm#az-vm-create) to create the virtual machine.
```azurecli-interactive az vm create \
Use [az vm create](/cli/azure/vm#az_vm_create) to create the virtual machine.
## Test SSH connection
-Use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show) to display the IP addresses of the virtual machine.
+Use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show) to display the IP addresses of the virtual machine.
```azurecli-interactive az network public-ip show \
Open an SSH connection to the virtual machine by using the following command. Re
## Clean up resources
-When no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, virtual machine, and all related resources.
+When no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, virtual machine, and all related resources.
```azurecli-interactive az group delete \
virtual-network Manage Public Ip Address Prefix https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/manage-public-ip-address-prefix.md
Alternatively, you may use the CLI and PowerShell commands below to create a pub
|Tool|Command| |||
-|CLI|[az network public-ip prefix create](/cli/azure/network/public-ip/prefix#az_network_public_ip_prefix_create)|
+|CLI|[az network public-ip prefix create](/cli/azure/network/public-ip/prefix#az-network-public-ip-prefix-create)|
|PowerShell|[New-AzPublicIpPrefix](/powershell/module/az.network/new-azpublicipprefix)| >[!NOTE]
Alternatively, you may use the CLI and PowerShell commands below with the **--pu
|Tool|Command| |||
-|CLI|[az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create)|
+|CLI|[az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create)|
|PowerShell|[New-AzPublicIpAddress](/powershell/module/az.network/new-azpublicipaddress)| >[!NOTE]
To view or delete a prefix, the following commands can be used in Azure CLI and
|Tool|Command| |||
-|CLI|[az network public-ip prefix list](/cli/azure/network/public-ip/prefix#az_network_public_ip_prefix_list) to list public IP addresses<br>[az network public-ip prefix show](/cli/azure/network/public-ip/prefix#az_network_public_ip_prefix_show) to show settings<br> [az network public-ip prefix update](/cli/azure/network/public-ip/prefix#az_network_public_ip_prefix_update) to update<br>[az network public-ip prefix delete](/cli/azure/network/public-ip/prefix#az_network_public_ip_prefix_delete) to delete|
+|CLI|[az network public-ip prefix list](/cli/azure/network/public-ip/prefix#az-network-public-ip-prefix-list) to list public IP addresses<br>[az network public-ip prefix show](/cli/azure/network/public-ip/prefix#az-network-public-ip-prefix-show) to show settings<br> [az network public-ip prefix update](/cli/azure/network/public-ip/prefix#az-network-public-ip-prefix-update) to update<br>[az network public-ip prefix delete](/cli/azure/network/public-ip/prefix#az-network-public-ip-prefix-delete) to delete|
|PowerShell|[Get-AzPublicIpPrefix](/powershell/module/az.network/get-azpublicipprefix) to retrieve a public IP address object and view its settings<br>[Set-AzPublicIpPrefix](/powershell/module/az.network/set-azpublicipprefix) to update settings<br> [Remove-AzPublicIpPrefix](/powershell/module/az.network/remove-azpublicipprefix) to delete| ## Permissions
virtual-network Remove Public Ip Address Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/remove-public-ip-address-vm.md
You can use the [Azure portal](#azure-portal), the [Azure CLI](#azure-cli), or [
Install the [Azure CLI](/cli/azure/install-azure-cli?toc=%2fazure%2fvirtual-network%2ftoc.json), or use the Azure Cloud Shell. The Azure Cloud Shell is a free Bash shell that you can run directly within the Azure portal. It has the Azure CLI preinstalled and configured to use with your account. Select the **Try it** button in the CLI commands that follow. Selecting **Try it** invokes a Cloud Shell that you can sign in to your Azure account with. 1. If using the CLI locally in Bash, sign in to Azure with `az login`.
-2. A public IP address is associated to an IP configuration of a network interface attached to a VM. Use the [az network nic-ip-config update](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_update) command to dissociate a public IP address from an IP configuration. The following example dissociates a public IP address named *myVMPublicIP* from the IP configuration named *ipconfigmyVM* of an existing network interface named *myVMVMNic* that is attached to a VM named *myVM* in a resource group named *myResourceGroup*.
+2. A public IP address is associated to an IP configuration of a network interface attached to a VM. Use the [az network nic-ip-config update](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-update) command to dissociate a public IP address from an IP configuration. The following example dissociates a public IP address named *myVMPublicIP* from the IP configuration named *ipconfigmyVM* of an existing network interface named *myVMVMNic* that is attached to a VM named *myVM* in a resource group named *myResourceGroup*.
```azurecli-interactive az network nic ip-config update \
Install the [Azure CLI](/cli/azure/install-azure-cli?toc=%2fazure%2fvirtual-netw
--remove PublicIpAddress ```
- If you don't know the name of a network interface attached to your VM, use the [az vm nic list](/cli/azure/vm/nic#az_vm_nic_list) command to view them. For example, the following command lists the names of the network interfaces attached to a VM named *myVM* in a resource group named *myResourceGroup*:
+ If you don't know the name of a network interface attached to your VM, use the [az vm nic list](/cli/azure/vm/nic#az-vm-nic-list) command to view them. For example, the following command lists the names of the network interfaces attached to a VM named *myVM* in a resource group named *myResourceGroup*:
```azurecli-interactive az vm nic list --vm-name myVM --resource-group myResourceGroup
Install the [Azure CLI](/cli/azure/install-azure-cli?toc=%2fazure%2fvirtual-netw
In the previous example, *myVMVMNic* is the name of the network interface.
- - If you don't know the name of an IP configuration for a network interface, use the [az network nic ip-config list](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_list) command to retrieve them. For example, the following command lists the names of the public IP configurations for a network interface named *myVMVMNic* in a resource group named *myResourceGroup*:
+ - If you don't know the name of an IP configuration for a network interface, use the [az network nic ip-config list](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-list) command to retrieve them. For example, the following command lists the names of the public IP configurations for a network interface named *myVMVMNic* in a resource group named *myResourceGroup*:
```azurecli-interactive az network nic ip-config list --nic-name myVMVMNic --resource-group myResourceGroup --out table ```
- - If you don't know the name of a public IP configuration for a network interface, use the [az network nic ip-config show](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_show) command to retrieve them. For example, the following command lists the names of the public IP configurations for a network interface named *myVMVMNic* in a resource group named *myResourceGroup*:
+ - If you don't know the name of a public IP configuration for a network interface, use the [az network nic ip-config show](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-show) command to retrieve them. For example, the following command lists the names of the public IP configurations for a network interface named *myVMVMNic* in a resource group named *myResourceGroup*:
```azurecli-interactive az network nic ip-config show --name ipconfigmyVM --nic-name myVMVMNic --resource-group myResourceGroup --query publicIPAddress.id
virtual-network Routing Preference Azure Kubernetes Service Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/routing-preference-azure-kubernetes-service-cli.md
In this tutorial, you learn how to:
## Create a resource group
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command. The following example creates a resource group in the **East US** Azure region:
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command. The following example creates a resource group in the **East US** Azure region:
```azurecli-interactive az group create \
Create a resource group with the [az group create](/cli/azure/group#az_group_cre
## Create public IP with Internet routing preference
-Create a public IP address with routing preference of **Internet** type using command [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create).
+Create a public IP address with routing preference of **Internet** type using command [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create).
The following command creates a new public IP with **Internet** routing preference in the **East US** Azure region.
The following command creates a new public IP with **Internet** routing preferen
## Create Kubernetes cluster with public IP
-Place the ID of the public IP created previously into a variable for later use. Use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show) to retrieve the public IP ID.
+Place the ID of the public IP created previously into a variable for later use. Use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show) to retrieve the public IP ID.
The following command retrieves the public IP ID and places it in a variable to use in the next command.
The following command retrieves the public IP ID and places it in a variable to
--output tsv) ```
-Use [az aks create](/cli/azure/aks#az_aks_create) to create the Kubernetes cluster.
+Use [az aks create](/cli/azure/aks#az-aks-create) to create the Kubernetes cluster.
The following command creates the Kubernetes cluster and uses the variable for the public IP created in the previous step.
To validate, search for the public IP created in the earlier step in Azure porta
## Clean up resources
-When no longer needed, use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group, public IP, AKS cluster, and all related resources.
+When no longer needed, use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group, public IP, AKS cluster, and all related resources.
```azurecli-interactive az group delete \
virtual-network Routing Preference Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/routing-preference-cli.md
By default, the routing preference for public IP address is set to the Microsoft
- This article requires version 2.0.49 or later of the Azure CLI. If using Azure Cloud Shell, the latest version is already installed. ## Create a resource group
-Create a resource group with the [az group create](/cli/azure/group#az_group_create) command. The following example creates a resource group in the **East US** Azure region:
+Create a resource group with the [az group create](/cli/azure/group#az-group-create) command. The following example creates a resource group in the **East US** Azure region:
```azurecli az group create --name myResourceGroup --location eastus ``` ## Create a public IP address
-Create a Public IP Address with routing preference of **Internet** type using command [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create), with the format as shown below.
+Create a Public IP Address with routing preference of **Internet** type using command [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create), with the format as shown below.
The following command creates a new public IP with **Internet** routing preference in the **East US** Azure region.
virtual-network Virtual Network Deploy Static Pip Arm Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/virtual-network-deploy-static-pip-arm-cli.md
Public IP addresses have a [nominal charge](https://azure.microsoft.com/pricing/
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create) named **myResourceGroup** in the **eastus2** location.
+Create a resource group with [az group create](/cli/azure/group#az-group-create) named **myResourceGroup** in the **eastus2** location.
```azurecli-interactive az group create \
Create a resource group with [az group create](/cli/azure/group#az_group_create)
## Create a public IP address
-Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a standard public IPv4 address.
+Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a standard public IPv4 address.
The following command creates a zone-redundant public IP address named **myPublicIP** in **myResourceGroup**.
az network public-ip create \
``` ## Create a virtual machine
-Create a virtual machine with [az vm create](/cli/azure/vm#az_vm_create).
+Create a virtual machine with [az vm create](/cli/azure/vm#az-vm-create).
The following command creates a Windows Server virtual machine. You'll enter the name of the public IP address created previously in the **`-PublicIPAddressName`** parameter. When prompted, provide a username and password to be used as the credentials for the virtual machine:
The following command creates a Windows Server virtual machine. You'll enter the
For more information on public IP SKUs, see [Public IP address SKUs](public-ip-addresses.md#sku). A virtual machine can be added to the backend pool of an Azure Load Balancer. The SKU of the public IP address must match the SKU of a load balancer's public IP. For more information, see [Azure Load Balancer](../../load-balancer/skus.md).
-View the public IP address assigned and confirm that it was created as a static address, with [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show):
+View the public IP address assigned and confirm that it was created as a static address, with [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show):
```azurecli-interactive az network public-ip show \
View the public IP address assigned and confirm that it was created as a static
## Clean up resources
-When no longer needed, you can use [az group delete](/cli/azure/group#az_group_delete) to remove the resource group and all of the resources it contains:
+When no longer needed, you can use [az group delete](/cli/azure/group#az-group-delete) to remove the resource group and all of the resources it contains:
```azurecli-interactive az group delete --name myResourceGroup --yes
virtual-network Virtual Networks Static Private Ip Arm Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/ip-services/virtual-networks-static-private-ip-arm-cli.md
A virtual machine (VM) is automatically assigned a private IP address from a ran
An Azure resource group is a logical container into which Azure resources are deployed and managed.
-Create a resource group with [az group create](/cli/azure/group#az_group_create) named **myResourceGroup** in the **eastus2** location.
+Create a resource group with [az group create](/cli/azure/group#az-group-create) named **myResourceGroup** in the **eastus2** location.
```azurecli-interactive az group create \
Create a resource group with [az group create](/cli/azure/group#az_group_create)
## Create a virtual machine
-Create a virtual machine with [az vm create](/cli/azure/vm#az_vm_create).
+Create a virtual machine with [az vm create](/cli/azure/vm#az-vm-create).
The following command creates a Windows Server virtual machine. When prompted, provide a username and password to be used as the credentials for the virtual machine:
The following command creates a Windows Server virtual machine. When prompted, p
In this section, you'll change the private IP address from **dynamic** to **static** for the virtual machine you created previously.
-Use [az network nic ip-config update](/cli/azure/network/nic/ip-config#az_network_nic_ip_config_update) to update the network interface configuration.
+Use [az network nic ip-config update](/cli/azure/network/nic/ip-config#az-network-nic-ip-config-update) to update the network interface configuration.
The following command changes the private IP address of the virtual machine to static:
The following command changes the private IP address of the virtual machine to s
## Clean up resources
-When no longer needed, you can use [az group delete](/cli/azure/group#az_group_delete) to remove the resource group and all of the resources it contains:
+When no longer needed, you can use [az group delete](/cli/azure/group#az-group-delete) to remove the resource group and all of the resources it contains:
```azurecli-interactive az group delete --name myResourceGroup --yes
virtual-network Manage Network Security Group https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/manage-network-security-group.md
There's a limit to how many network security groups you can create for each Azur
| Tool | Command | | - | - |
-| Azure CLI | [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) |
+| Azure CLI | [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create) |
| PowerShell | [New-AzNetworkSecurityGroup](/powershell/module/az.network/new-aznetworksecuritygroup) | ### View all network security groups
Go to the [Azure portal](https://portal.azure.com) to view your network security
| Tool | Command | | - | - |
-| Azure CLI | [az network nsg list](/cli/azure/network/nsg#az_network_nsg_list) |
+| Azure CLI | [az network nsg list](/cli/azure/network/nsg#az-network-nsg-list) |
| PowerShell | [Get-AzNetworkSecurityGroup](/powershell/module/az.network/get-aznetworksecuritygroup) | ### View details of a network security group
To learn more about the common Azure settings listed, see the following articles
| Tool | Command | | - | - |
-| Azure CLI | [az network nsg show](/cli/azure/network/nsg#az_network_nsg_show) |
+| Azure CLI | [az network nsg show](/cli/azure/network/nsg#az-network-nsg-show) |
| PowerShell | [Get-AzNetworkSecurityGroup](/powershell/module/az.network/get-aznetworksecuritygroup) | ### Change a network security group
The most common changes are to [add a security rule](#create-a-security-rule), [
| Tool | Command | | - | - |
-| Azure CLI | [az network nsg update](/cli/azure/network/nsg#az_network_nsg_update) |
+| Azure CLI | [az network nsg update](/cli/azure/network/nsg#az-network-nsg-update) |
| PowerShell | [Set-AzNetworkSecurityGroup](/powershell/module/az.network/set-aznetworksecuritygroup) | ### Associate or dissociate a network security group to or from a subnet or network interface
If a network security group is associated to any subnets or network interfaces,
| Tool | Command | | - | - |
-| Azure CLI | [az network nsg delete](/cli/azure/network/nsg#az_network_nsg_delete) |
+| Azure CLI | [az network nsg delete](/cli/azure/network/nsg#az-network-nsg-delete) |
| PowerShell | [Remove-AzNetworkSecurityGroup](/powershell/module/az.network/remove-aznetworksecuritygroup) | ## Work with security rules
There's a limit to how many rules per network security group you can create for
| Tool | Command | | - | - |
-| Azure CLI | [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create) |
+| Azure CLI | [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create) |
| PowerShell | [New-AzNetworkSecurityRuleConfig](/powershell/module/az.network/new-aznetworksecurityruleconfig) | ### View all security rules
The list contains any rules you've created and the network security group's [def
| Tool | Command | | - | - |
-| Azure CLI | [az network nsg rule list](/cli/azure/network/nsg/rule#az_network_nsg_rule_list) |
+| Azure CLI | [az network nsg rule list](/cli/azure/network/nsg/rule#az-network-nsg-rule-list) |
| PowerShell | [Get-AzNetworkSecurityRuleConfig](/powershell/module/az.network/get-aznetworksecurityruleconfig) | ### View details of a security rule
The list contains any rules you've created and the network security group's [def
| Tool | Command | | - | - |
-| Azure CLI | [az network nsg rule show](/cli/azure/network/nsg/rule#az_network_nsg_rule_show) |
+| Azure CLI | [az network nsg rule show](/cli/azure/network/nsg/rule#az-network-nsg-rule-show) |
| PowerShell | [Get-AzNetworkSecurityRuleConfig](/powershell/module/az.network/get-aznetworksecurityruleconfig) | ### Change a security rule
The list contains any rules you've created and the network security group's [def
| Tool | Command | | - | - |
-| Azure CLI | [az network nsg rule update](/cli/azure/network/nsg/rule#az_network_nsg_rule_update) |
+| Azure CLI | [az network nsg rule update](/cli/azure/network/nsg/rule#az-network-nsg-rule-update) |
| PowerShell | [Set-AzNetworkSecurityRuleConfig](/powershell/module/az.network/set-aznetworksecurityruleconfig) | ### Delete a security rule
The list contains any rules you've created and the network security group's [def
| Tool | Command | | - | - |
-| Azure CLI | [az network nsg rule delete](/cli/azure/network/nsg/rule#az_network_nsg_rule_delete) |
+| Azure CLI | [az network nsg rule delete](/cli/azure/network/nsg/rule#az-network-nsg-rule-delete) |
| PowerShell | [Remove-AzNetworkSecurityRuleConfig](/powershell/module/az.network/remove-aznetworksecurityruleconfig) | ## Work with application security groups
An application security group contains zero or more network interfaces. To learn
| Tool | Command | | - | - |
-| Azure CLI | [az network asg create](/cli/azure/network/asg#az_network_asg_create) |
+| Azure CLI | [az network asg create](/cli/azure/network/asg#az-network-asg-create) |
| PowerShell | [New-AzApplicationSecurityGroup](/powershell/module/az.network/new-azapplicationsecuritygroup) | ### View all application security groups
Go to the [Azure portal](https://portal.azure.com) to view your application secu
| Tool | Command | | - | - |
-| Azure CLI | [az network asg list](/cli/azure/network/asg#az_network_asg_list) |
+| Azure CLI | [az network asg list](/cli/azure/network/asg#az-network-asg-list) |
| PowerShell | [Get-AzApplicationSecurityGroup](/powershell/module/az.network/get-azapplicationsecuritygroup) | ### View details of a specific application security group
Go to the [Azure portal](https://portal.azure.com) to view your application secu
| Tool | Command | | - | - |
-| Azure CLI | [az network asg show](/cli/azure/network/asg#az_network_asg_show) |
+| Azure CLI | [az network asg show](/cli/azure/network/asg#az-network-asg-show) |
| PowerShell | [Get-AzApplicationSecurityGroup](/powershell/module/az.network/get-azapplicationsecuritygroup) | ### Change an application security group
Go to the [Azure portal](https://portal.azure.com) to view your application secu
| Tool | Command | | - | - |
-| Azure CLI | [az network asg update](/cli/azure/network/asg#az_network_asg_update) |
+| Azure CLI | [az network asg update](/cli/azure/network/asg#az-network-asg-update) |
| PowerShell | No PowerShell cmdlet | ### Delete an application security group
You can't delete an application security group if it contains any network interf
| Tool | Command | | - | - |
-| Azure CLI | [az network asg delete](/cli/azure/network/asg#az_network_asg_delete) |
+| Azure CLI | [az network asg delete](/cli/azure/network/asg#az-network-asg-delete) |
| PowerShell | [Remove-AzApplicationSecurityGroup](/powershell/module/az.network/remove-azapplicationsecuritygroup) | ## Permissions
virtual-network Manage Route Table https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/manage-route-table.md
There's a limit to how many route tables you can create per Azure location and s
| Tool | Command | | - | - |
-| Azure CLI | [az network route-table create](/cli/azure/network/route-table#az_network_route_table_create) |
+| Azure CLI | [az network route-table create](/cli/azure/network/route-table#az-network-route-table-create) |
| PowerShell | [New-AzRouteTable](/powershell/module/az.network/new-azroutetable) | ## View route tables
Go to the [Azure portal](https://portal.azure.com) to manage your virtual networ
| Tool | Command | | - | - |
-| Azure CLI | [az network route-table list](/cli/azure/network/route-table#az_network_route_table_list) |
+| Azure CLI | [az network route-table list](/cli/azure/network/route-table#az-network-route-table-list) |
| PowerShell | [Get-AzRouteTable](/powershell/module/az.network/get-azroutetable) | ## View details of a route table
To learn more about common Azure settings, see the following information:
| Tool | Command | | - | - |
-| Azure CLI | [az network route-table show](/cli/azure/network/route-table#az_network_route_table_show) |
+| Azure CLI | [az network route-table show](/cli/azure/network/route-table#az-network-route-table-show) |
| PowerShell | [Get-AzRouteTable](/powershell/module/az.network/get-azroutetable) | ## Change a route table
The most common changes are to [add](#create-a-route) routes, [remove](#delete-a
| Tool | Command | | - | - |
-| Azure CLI | [az network route-table update](/cli/azure/network/route-table#az_network_route_table_update) |
+| Azure CLI | [az network route-table update](/cli/azure/network/route-table#az-network-route-table-update) |
| PowerShell | [Set-AzRouteTable](/powershell/module/az.network/set-azroutetable) | ## Associate a route table to a subnet
If your virtual network is connected to an Azure VPN gateway, don't associate a
| Tool | Command | | - | - |
-| Azure CLI | [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update) |
+| Azure CLI | [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update) |
| PowerShell | [Set-AzVirtualNetworkSubnetConfig](/powershell/module/az.network/set-azvirtualnetworksubnetconfig) | ## Dissociate a route table from a subnet
When you dissociate a route table from a subnet, Azure routes traffic based on i
| Tool | Command | | - | - |
-| Azure CLI | [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update) |
+| Azure CLI | [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update) |
| PowerShell | [Set-AzVirtualNetworkSubnetConfig](/powershell/module/az.network/set-azvirtualnetworksubnetconfig) | ## Delete a route table
You can't delete a route table that's associated to any subnets. [Dissociate](#d
| Tool | Command | | - | - |
-| Azure CLI | [az network route-table delete](/cli/azure/network/route-table#az_network_route_table_delete) |
+| Azure CLI | [az network route-table delete](/cli/azure/network/route-table#az-network-route-table-delete) |
| PowerShell | [Remove-AzRouteTable](/powershell/module/az.network/remove-azroutetable) | ## Create a route
There's a limit to how many routes per route table can create per Azure location
| Tool | Command | | - | - |
-| Azure CLI | [az network route-table route create](/cli/azure/network/route-table/route#az_network_route_table_route_create) |
+| Azure CLI | [az network route-table route create](/cli/azure/network/route-table/route#az-network-route-table-route-create) |
| PowerShell | [New-AzRouteConfig](/powershell/module/az.network/new-azrouteconfig) | ## View routes
A route table contains zero or more routes. To learn more about the information
| Tool | Command | | - | - |
-| Azure CLI | [az network route-table route list](/cli/azure/network/route-table/route#az_network_route_table_route_list) |
+| Azure CLI | [az network route-table route list](/cli/azure/network/route-table/route#az-network-route-table-route-list) |
| PowerShell | [Get-AzRouteConfig](/powershell/module/az.network/get-azrouteconfig) | ## View details of a route
A route table contains zero or more routes. To learn more about the information
| Tool | Command | | - | - |
-| Azure CLI | [az network route-table route show](/cli/azure/network/route-table/route#az_network_route_table_route_show) |
+| Azure CLI | [az network route-table route show](/cli/azure/network/route-table/route#az-network-route-table-route-show) |
| PowerShell | [Get-AzRouteConfig](/powershell/module/az.network/get-azrouteconfig) | ## Change a route
A route table contains zero or more routes. To learn more about the information
| Tool | Command | | - | - |
-| Azure CLI | [az network route-table route update](/cli/azure/network/route-table/route#az_network_route_table_route_update) |
+| Azure CLI | [az network route-table route update](/cli/azure/network/route-table/route#az-network-route-table-route-update) |
| PowerShell | [Set-AzRouteConfig](/powershell/module/az.network/set-azrouteconfig) | ## Delete a route
A route table contains zero or more routes. To learn more about the information
| Tool | Command | | - | - |
-| Azure CLI | [az network route-table route delete](/cli/azure/network/route-table/route#az_network_route_table_route_delete) |
+| Azure CLI | [az network route-table route delete](/cli/azure/network/route-table/route#az-network-route-table-route-delete) |
| PowerShell | [Remove-AzRouteConfig](/powershell/module/az.network/remove-azrouteconfig) | ## View effective routes
The effective routes for each VM-attached network interface are a combination of
| Tool | Command | | - | - |
-| Azure CLI | [az network nic show-effective-route-table](/cli/azure/network/nic#az_network_nic_show_effective_route_table) |
+| Azure CLI | [az network nic show-effective-route-table](/cli/azure/network/nic#az-network-nic-show-effective-route-table) |
| PowerShell | [Get-AzEffectiveRouteTable](/powershell/module/az.network/get-azeffectiveroutetable) | ## Validate routing between two endpoints
After a short wait, Azure tells you the next hop type and the ID of the route th
| Tool | Command | | - | - |
-| Azure CLI | [az network watcher show-next-hop](/cli/azure/network/watcher#az_network_watcher_show_next_hop) |
+| Azure CLI | [az network watcher show-next-hop](/cli/azure/network/watcher#az-network-watcher-show-next-hop) |
| PowerShell | [Get-AzNetworkWatcherNextHop](/powershell/module/az.network/get-aznetworkwatchernexthop) | ## Permissions
virtual-network Manage Subnet Delegation https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/manage-subnet-delegation.md
The built-in [Network Contributor](../role-based-access-control/built-in-roles.m
In this section, you delegate the subnet that you created in the preceding section to an Azure service.
-Use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update) to update the subnet named **mySubnet** with a delegation to an Azure service. In this example **Microsoft.DBforPostgreSQL/serversv2** is used for the example delegation:
+Use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update) to update the subnet named **mySubnet** with a delegation to an Azure service. In this example **Microsoft.DBforPostgreSQL/serversv2** is used for the example delegation:
```azurecli-interactive az network vnet subnet update \
Use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vn
--delegations Microsoft.DBforPostgreSQL/serversv2 ```
-To verify the delegation was applied, use [az network vnet subnet show](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_show). Verify the service is delegated to the subnet under the property **serviceName**:
+To verify the delegation was applied, use [az network vnet subnet show](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-show). Verify the service is delegated to the subnet under the property **serviceName**:
```azurecli-interactive az network vnet subnet show \
To verify the delegation was applied, use [az network vnet subnet show](/cli/azu
### Remove subnet delegation from an Azure service
-Use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update) to remove the delegation from the subnet named **mySubnet**:
+Use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update) to remove the delegation from the subnet named **mySubnet**:
```azurecli-interactive az network vnet subnet update \
Use [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vn
--vnet-name myVnet \ --remove delegations ```
-To verify the delegation was removed, use [az network vnet subnet show](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_show). Verify the service is removed from the subnet under the property **serviceName**:
+To verify the delegation was removed, use [az network vnet subnet show](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-show). Verify the service is removed from the subnet under the property **serviceName**:
```azurecli-interactive az network vnet subnet show \
virtual-network Quickstart Create Nat Gateway Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/nat-gateway/quickstart-create-nat-gateway-template.md
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri
**Azure CLI**
-When no longer needed, you can use the [az group delete](/cli/azure/group#az_group_delete) command to remove the resource group and all resources contained within.
+When no longer needed, you can use the [az group delete](/cli/azure/group#az-group-delete) command to remove the resource group and all resources contained within.
```azurecli-interactive az group delete \
virtual-network Tutorial Create Nat Gateway Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/nat-gateway/tutorial-create-nat-gateway-cli.md
Set the parameter values for use in creating the required resources. The $RANDOM
## Create a resource group
-Create a resource group with [az group create](/cli/azure/group#az_group_create). An Azure resource group is a logical container into which Azure resources are deployed and managed.
+Create a resource group with [az group create](/cli/azure/group#az-group-create). An Azure resource group is a logical container into which Azure resources are deployed and managed.
:::code language="azurecli" source="~/azure_cli_scripts/virtual-network/create-nat-gateway/create-nat-gateway-cli.sh" id="ResourceGroup":::
In this section we create the NAT gateway and supporting resources.
### Create public IP address
-To access the Internet, you need one or more public IP addresses for the NAT gateway. Use [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) to create a public IP address resource.
+To access the Internet, you need one or more public IP addresses for the NAT gateway. Use [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) to create a public IP address resource.
:::code language="azurecli" source="~/azure_cli_scripts/virtual-network/create-nat-gateway/create-nat-gateway-cli.sh" id="ip"::: ### Create NAT gateway resource
-Create a global Azure NAT gateway with [az network nat gateway create](/cli/azure/network/nat#az_network_nat_gateway_create). The result of this command will create a gateway resource that uses the public IP address defined in the previous step. The idle timeout is set to 10 minutes.
+Create a global Azure NAT gateway with [az network nat gateway create](/cli/azure/network/nat#az-network-nat-gateway-create). The result of this command will create a gateway resource that uses the public IP address defined in the previous step. The idle timeout is set to 10 minutes.
:::code language="azurecli" source="~/azure_cli_scripts/virtual-network/create-nat-gateway/create-nat-gateway-cli.sh" id="nat"::: ### Create virtual network
-Create a virtual network with a subnet with [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create). The IP address space for the virtual network is **10.1.0.0/16**. The subnet within the virtual network is **10.1.0.0/24**.
+Create a virtual network with a subnet with [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create). The IP address space for the virtual network is **10.1.0.0/16**. The subnet within the virtual network is **10.1.0.0/24**.
:::code language="azurecli" source="~/azure_cli_scripts/virtual-network/create-nat-gateway/create-nat-gateway-cli.sh" id="vnet":::
Create a virtual network with a subnet with [az network vnet create](/cli/azure/
Create an Azure Bastion host to access the virtual machine.
-Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) to create a Azure Bastion subnet.
+Use [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) to create a Azure Bastion subnet.
:::code language="azurecli" source="~/azure_cli_scripts/virtual-network/create-nat-gateway/create-nat-gateway-cli.sh" id="subnet"::: ### Create public IP address for the bastion host
-Create a public IP address for the bastion host with [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create).
+Create a public IP address for the bastion host with [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create).
:::code language="azurecli" source="~/azure_cli_scripts/virtual-network/create-nat-gateway/create-nat-gateway-cli.sh" id="bastionIP"::: ### Create the bastion host
-Use [az network bastion create](/cli/azure/network/bastion#az_network_bastion_create) to create the bastion host.
+Use [az network bastion create](/cli/azure/network/bastion#az-network-bastion-create) to create the bastion host.
:::code language="azurecli" source="~/azure_cli_scripts/virtual-network/create-nat-gateway/create-nat-gateway-cli.sh" id="bastionHost"::: ### Configure NAT service for source subnet
-Configure the source subnet in virtual network to use a specific NAT gateway resource with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update). This command will activate the NAT service on the specified subnet.
+Configure the source subnet in virtual network to use a specific NAT gateway resource with [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update). This command will activate the NAT service on the specified subnet.
:::code language="azurecli" source="~/azure_cli_scripts/virtual-network/create-nat-gateway/create-nat-gateway-cli.sh" id="NATservice":::
All outbound traffic to Internet destinations is now using the NAT gateway. It'
Create a virtual machine to test the NAT gateway to verify the public IP address of the outbound connection.
-Create the virtual machine with [az vm create](/cli/azure/vm#az_vm_create).
+Create the virtual machine with [az vm create](/cli/azure/vm#az-vm-create).
:::code language="azurecli" source="~/azure_cli_scripts/virtual-network/create-nat-gateway/create-nat-gateway-cli.sh" id="vm":::
virtual-network Quick Create Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/quick-create-cli.md
In this quickstart, you learn how to create a virtual network. After creating a
## Create a resource group and a virtual network
-Before you can create a virtual network, you have to create a resource group to host the virtual network. Create a resource group with [az group create](/cli/azure/group#az_group_create). This example creates a resource group named **CreateVNetQS-rg** in the **Eastus** location:
+Before you can create a virtual network, you have to create a resource group to host the virtual network. Create a resource group with [az group create](/cli/azure/group#az-group-create). This example creates a resource group named **CreateVNetQS-rg** in the **Eastus** location:
```azurecli-interactive az group create \
az group create \
--location eastus ```
-Create a virtual network with [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create). This example creates a default virtual network named **myVNet** with one subnet named **default**:
+Create a virtual network with [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create). This example creates a default virtual network named **myVNet** with one subnet named **default**:
```azurecli-interactive az network vnet create \
Create two VMs in the virtual network.
### Create the first VM
-Create a VM with [az vm create](/cli/azure/vm#az_vm_create).
+Create a VM with [az vm create](/cli/azure/vm#az-vm-create).
If SSH keys don't already exist in a default key location, the command creates them. To use a specific set of keys, use the `--ssh-key-value` option.
The VMs take a few minutes to create. After Azure creates the VMs, the Azure CLI
## VM public IP
-To get the public IP address **myVM2**, use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show):
+To get the public IP address **myVM2**, use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show):
```azurecli-interactive az network public-ip show \
Exit the SSH session with the **myVM2** VM.
## Clean up resources
-When no longer needed, you can use [az group delete](/cli/azure/group#az_group_delete) to remove the resource group and all the resources it has:
+When no longer needed, you can use [az group delete](/cli/azure/group#az-group-delete) to remove the resource group and all the resources it has:
```azurecli-interactive az group delete \
virtual-network Virtual Network Cli Sample Ipv6 Dual Stack Standard Load Balancer https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/scripts/virtual-network-cli-sample-ipv6-dual-stack-standard-load-balancer.md
This script uses the following commands to create a resource group, virtual mach
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) | Creates an Azure virtual network and subnet. |
-| [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) | Creates a public IP address with a static IP address and an associated DNS name. |
-| [az network lb create](/cli/azure/network/lb#az_network_lb_create) | Creates an Azure load balancer. |
-| [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
-| [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 one of the VMs in the LB set. |
-| [az network lb inbound-nat-rule create](/cli/azure/network/lb/inbound-nat-rule#az_network_lb_inbound_nat_rule_create) | Creates load balancer Network Address Translation (NAT) rule. NAT rules map a port of the load balancer to a port on a VM. In this sample, a NAT rule is created for SSH traffic to each VM in the load balancer set. |
-| [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) | Creates a network security group (NSG), which is a security boundary between the internet and the virtual machine. |
-| [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create) | Creates an NSG rule to allow inbound traffic. In this sample, port 22 is opened for SSH traffic. |
-| [az network nic create](/cli/azure/network/nic#az_network_nic_create) | Creates a virtual network card and attaches it to the virtual network, subnet, and NSG. |
-| [az vm availability-set create](/cli/azure/network/lb/rule#az_network_lb_rule_create) | Creates an availability set. Availability sets ensure application uptime by spreading the virtual machines across physical resources such that if failure occurs, the entire set isn't affected. |
-| [az vm create](/cli/azure/vm#az_vm_create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
-| [az group delete](/cli/azure/vm/extension#az_vm_extension_set) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates an Azure virtual network and subnet. |
+| [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) | Creates a public IP address with a static IP address and an associated DNS name. |
+| [az network lb create](/cli/azure/network/lb#az-network-lb-create) | Creates an Azure load balancer. |
+| [az network lb probe create](/cli/azure/network/lb/probe#az-network-lb-probe-create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
+| [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 one of the VMs in the LB set. |
+| [az network lb inbound-nat-rule create](/cli/azure/network/lb/inbound-nat-rule#az-network-lb-inbound-nat-rule-create) | Creates load balancer Network Address Translation (NAT) rule. NAT rules map a port of the load balancer to a port on a VM. In this sample, a NAT rule is created for SSH traffic to each VM in the load balancer set. |
+| [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create) | Creates a network security group (NSG), which is a security boundary between the internet and the virtual machine. |
+| [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create) | Creates an NSG rule to allow inbound traffic. In this sample, port 22 is opened for SSH traffic. |
+| [az network nic create](/cli/azure/network/nic#az-network-nic-create) | Creates a virtual network card and attaches it to the virtual network, subnet, and NSG. |
+| [az vm availability-set create](/cli/azure/network/lb/rule#az-network-lb-rule-create) | Creates an availability set. Availability sets ensure application uptime by spreading the virtual machines across physical resources such that if failure occurs, the entire set isn't affected. |
+| [az vm create](/cli/azure/vm#az-vm-create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
+| [az group delete](/cli/azure/vm/extension#az-vm-extension-set) | Deletes a resource group including all nested resources. |
## Next steps
virtual-network Virtual Network Cli Sample Ipv6 Dual Stack https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/scripts/virtual-network-cli-sample-ipv6-dual-stack.md
This script uses the following commands to create a resource group, virtual mach
| Command | Notes | |||
-| [az group create](/cli/azure/group#az_group_create) | Creates a resource group in which all resources are stored. |
-| [az network vnet create](/cli/azure/network/vnet#az_network_vnet_create) | Creates an Azure virtual network and subnet. |
-| [az network public-ip create](/cli/azure/network/public-ip#az_network_public_ip_create) | Creates a public IP address with a static IP address and an associated DNS name. |
-| [az network lb create](/cli/azure/network/lb#az_network_lb_create) | Creates an Azure load balancer. |
-| [az network lb probe create](/cli/azure/network/lb/probe#az_network_lb_probe_create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
-| [az network lb rule create](/cli/azure/network/lb/rule#az_network_lb_rule_create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 one of the VMs in the LB set. |
-| [az network lb inbound-nat-rule create](/cli/azure/network/lb/inbound-nat-rule#az_network_lb_inbound_nat_rule_create) | Creates load balancer Network Address Translation (NAT) rule. NAT rules map a port of the load balancer to a port on a VM. In this sample, a NAT rule is created for SSH traffic to each VM in the load balancer set. |
-| [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) | Creates a network security group (NSG), which is a security boundary between the internet and the virtual machine. |
-| [az network nsg rule create](/cli/azure/network/nsg/rule#az_network_nsg_rule_create) | Creates an NSG rule to allow inbound traffic. In this sample, port 22 is opened for SSH traffic. |
-| [az network nic create](/cli/azure/network/nic#az_network_nic_create) | Creates a virtual network card and attaches it to the virtual network, subnet, and NSG. |
-| [az vm availability-set create](/cli/azure/network/lb/rule#az_network_lb_rule_create) | Creates an availability set. Availability sets ensure application uptime by spreading the virtual machines across physical resources such that if failure occurs, the entire set isn't affected. |
-| [az vm create](/cli/azure/vm#az_vm_create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
-| [az group delete](/cli/azure/vm/extension#az_vm_extension_set) | Deletes a resource group including all nested resources. |
+| [az group create](/cli/azure/group#az-group-create) | Creates a resource group in which all resources are stored. |
+| [az network vnet create](/cli/azure/network/vnet#az-network-vnet-create) | Creates an Azure virtual network and subnet. |
+| [az network public-ip create](/cli/azure/network/public-ip#az-network-public-ip-create) | Creates a public IP address with a static IP address and an associated DNS name. |
+| [az network lb create](/cli/azure/network/lb#az-network-lb-create) | Creates an Azure load balancer. |
+| [az network lb probe create](/cli/azure/network/lb/probe#az-network-lb-probe-create) | Creates a load balancer probe. A load balancer probe is used to monitor each VM in the load balancer set. If any VM becomes inaccessible, traffic is not routed to the VM. |
+| [az network lb rule create](/cli/azure/network/lb/rule#az-network-lb-rule-create) | Creates a load balancer rule. In this sample, a rule is created for port 80. As HTTP traffic arrives at the load balancer, it is routed to port 80 one of the VMs in the LB set. |
+| [az network lb inbound-nat-rule create](/cli/azure/network/lb/inbound-nat-rule#az-network-lb-inbound-nat-rule-create) | Creates load balancer Network Address Translation (NAT) rule. NAT rules map a port of the load balancer to a port on a VM. In this sample, a NAT rule is created for SSH traffic to each VM in the load balancer set. |
+| [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create) | Creates a network security group (NSG), which is a security boundary between the internet and the virtual machine. |
+| [az network nsg rule create](/cli/azure/network/nsg/rule#az-network-nsg-rule-create) | Creates an NSG rule to allow inbound traffic. In this sample, port 22 is opened for SSH traffic. |
+| [az network nic create](/cli/azure/network/nic#az-network-nic-create) | Creates a virtual network card and attaches it to the virtual network, subnet, and NSG. |
+| [az vm availability-set create](/cli/azure/network/lb/rule#az-network-lb-rule-create) | Creates an availability set. Availability sets ensure application uptime by spreading the virtual machines across physical resources such that if failure occurs, the entire set isn't affected. |
+| [az vm create](/cli/azure/vm#az-vm-create) | Creates the virtual machine and connects it to the network card, virtual network, subnet, and NSG. This command also specifies the virtual machine image to be used and administrative credentials. |
+| [az group delete](/cli/azure/vm/extension#az-vm-extension-set) | Deletes a resource group including all nested resources. |
## Next steps
virtual-network Virtual Network Cli Sample Route Traffic Through Nva https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/scripts/virtual-network-cli-sample-route-traffic-through-nva.md
This script uses the following commands to create a resource group, virtual netw
| [az network nsg create](/cli/azure/network/nsg) | Creates a network security group (NSG). | | [az network nsg rule create](/cli/azure/network/nsg/rule) | Creates NSG rules that allow HTTP and HTTPS ports inbound to the VM. | | [az network vnet subnet update](/cli/azure/network/vnet/subnet)| Associates the NSGs and route tables to subnets. |
-| [az network route-table create](/cli/azure/network/route-table#az_network_route_table_create)| Creates a route table for all routes. |
-| [az network route-table route create](/cli/azure/network/route-table/route#az_network_route_table_route_create)| Creates routes to route traffic between subnets and the internet through the VM. |
+| [az network route-table create](/cli/azure/network/route-table#az-network-route-table-create)| Creates a route table for all routes. |
+| [az network route-table route create](/cli/azure/network/route-table/route#az-network-route-table-route-create)| Creates routes to route traffic between subnets and the internet through the VM. |
| [az vm create](/cli/azure/vm) | Creates a virtual machine and attaches the NIC to it. This command also specifies the virtual machine image to use and administrative credentials. | | [az group delete](/cli/azure/group) | Deletes a resource group and all resources it contains. |
virtual-network Service Tags Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/service-tags-overview.md
By default, service tags reflect the ranges for the entire cloud. Some service t
| **Storage** | Azure Storage. <br/><br/>**Note**: This tag represents the service, but not specific instances of the service. For example, the tag represents the Azure Storage service, but not a specific Azure Storage account. | Outbound | Yes | Yes | | **StorageSyncService** | Storage Sync Service. | Both | No | No | | **WindowsAdminCenter** | Allow the Windows Admin Center backend service to communicate with customers' installation of Windows Admin Center. | Outbound | No | Yes |
-| **WindowsVirtualDesktop** | Windows Virtual Desktop. | Both | No | Yes |
+| **WindowsVirtualDesktop** | Azure Virtual Desktop (formerly Windows Virtual Desktop). | Both | No | Yes |
| **VirtualNetwork** | The virtual network address space (all IP address ranges defined for the virtual network), all connected on-premises address spaces, [peered](virtual-network-peering-overview.md) virtual networks, virtual networks connected to a [virtual network gateway](../vpn-gateway/vpn-gateway-about-vpngateways.md?toc=%2fazure%2fvirtual-network%3ftoc.json), the [virtual IP address of the host](./network-security-groups-overview.md#azure-platform-considerations), and address prefixes used on [user-defined routes](virtual-networks-udr-overview.md). This tag might also contain default routes. | Both | No | No | > [!NOTE]
virtual-network Tutorial Create Route Table Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/tutorial-create-route-table-cli.md
az group create \
--location eastus ```
-Create a route table with [az network route-table create](/cli/azure/network/route-table#az_network_route_table_create). The following example creates a route table named *myRouteTablePublic*.
+Create a route table with [az network route-table create](/cli/azure/network/route-table#az-network-route-table-create). The following example creates a route table named *myRouteTablePublic*.
```azurecli-interactive # Create a route table
az network route-table create \
## Create a route
-Create a route in the route table with [az network route-table route create](/cli/azure/network/route-table/route#az_network_route_table_route_create).
+Create a route in the route table with [az network route-table route create](/cli/azure/network/route-table/route#az-network-route-table-route-create).
```azurecli-interactive az network route-table route create \
virtual-network Virtual Network Manage Subnet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/virtual-network-manage-subnet.md
The account you sign in to, or connect to Azure with, must be assigned to the [N
| Tool | Command | | - | - |
-| Azure CLI | [az network vnet subnet create](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_create) |
+| Azure CLI | [az network vnet subnet create](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-create) |
| PowerShell | [Add-AzVirtualNetworkSubnetConfig](/powershell/module/az.network/add-azvirtualnetworksubnetconfig) | ## Change subnet settings
The account you sign in to, or connect to Azure with, must be assigned to the [N
| Tool | Command | | - | - |
-| Azure CLI | [az network vnet subnet update](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_update) |
+| Azure CLI | [az network vnet subnet update](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-update) |
| PowerShell | [Set-AzVirtualNetworkSubnetConfig](/powershell/module/az.network/set-azvirtualnetworksubnetconfig) | ## Delete a subnet
You can delete a subnet only if there are no resources in the subnet. If resourc
| Tool | Command | | - | - |
-| Azure CLI | [az network vnet subnet delete](/cli/azure/network/vnet/subnet#az_network_vnet_subnet_delete) |
+| Azure CLI | [az network vnet subnet delete](/cli/azure/network/vnet/subnet#az-network-vnet-subnet-delete) |
| PowerShell | [Remove-AzVirtualNetworkSubnetConfig](/powershell/module/az.network/remove-azvirtualnetworksubnetconfig?toc=%2fazure%2fvirtual-network%2ftoc.json) | ## Permissions
virtual-network Virtual Network Network Interface Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/virtual-network-network-interface-vm.md
Before you create the VM, [Create a network interface](virtual-network-network-i
|Tool|Command| |||
-|CLI|[az network nic create](/cli/azure/network/nic?toc=%2fazure%2fvirtual-network%2ftoc.json#az_network_nic_create)|
+|CLI|[az network nic create](/cli/azure/network/nic?toc=%2fazure%2fvirtual-network%2ftoc.json#az-network-nic-create)|
|PowerShell|[New-AzNetworkInterface](/powershell/module/az.network/new-aznetworkinterface?toc=%2fazure%2fvirtual-network%2ftoc.json)| ## Add a network interface to an existing VM
Now you can configure the VM operating system to use multiple network interfaces
|Tool|Command| |||
-|CLI|[az vm nic add](/cli/azure/vm/nic?toc=%2fazure%2fvirtual-network%2ftoc.json#az_vm_nic_add) (reference); [detailed steps](../virtual-machines/linux/multiple-nics.md?toc=%2fazure%2fvirtual-network%2ftoc.json#add-a-nic-to-a-vm)|
+|CLI|[az vm nic add](/cli/azure/vm/nic?toc=%2fazure%2fvirtual-network%2ftoc.json#az-vm-nic-add) (reference); [detailed steps](../virtual-machines/linux/multiple-nics.md?toc=%2fazure%2fvirtual-network%2ftoc.json#add-a-nic-to-a-vm)|
|PowerShell|[Add-AzVMNetworkInterface](/powershell/module/az.compute/add-azvmnetworkinterface?toc=%2fazure%2fvirtual-network%2ftoc.json) (reference); [detailed steps](../virtual-machines/windows/multiple-nics.md?toc=%2fazure%2fvirtual-network%2ftoc.json#add-a-nic-to-an-existing-vm)| ## View network interfaces for a VM
To learn about network interface settings and how to change them, see [Manage ne
|Tool|Command| |||
-|CLI|[az vm nic list](/cli/azure/vm/nic?toc=%2fazure%2fvirtual-network%2ftoc.json#az_vm_nic_list)|
+|CLI|[az vm nic list](/cli/azure/vm/nic?toc=%2fazure%2fvirtual-network%2ftoc.json#az-vm-nic-list)|
|PowerShell|[Get-AzVM](/powershell/module/az.compute/get-azvm?toc=%2fazure%2fvirtual-network%2ftoc.json)| ## Remove a network interface from a VM
To learn about network interface settings and how to change them, see [Manage ne
|Tool|Command| |||
-|CLI|[az vm nic remove](/cli/azure/vm/nic?toc=%2fazure%2fvirtual-network%2ftoc.json#az_vm_nic_remove) (reference); [detailed steps](../virtual-machines/linux/multiple-nics.md?toc=%2fazure%2fvirtual-network%2ftoc.json#remove-a-nic-from-a-vm)|
+|CLI|[az vm nic remove](/cli/azure/vm/nic?toc=%2fazure%2fvirtual-network%2ftoc.json#az-vm-nic-remove) (reference); [detailed steps](../virtual-machines/linux/multiple-nics.md?toc=%2fazure%2fvirtual-network%2ftoc.json#remove-a-nic-from-a-vm)|
|PowerShell|[Remove-AzVMNetworkInterface](/powershell/module/az.compute/remove-azvmnetworkinterface?toc=%2fazure%2fvirtual-network%2ftoc.json) (reference); [detailed steps](../virtual-machines/windows/multiple-nics.md?toc=%2fazure%2fvirtual-network%2ftoc.json#remove-a-nic-from-an-existing-vm)| ## Constraints
virtual-network Virtual Network Network Interface https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/virtual-network-network-interface.md
You can only add a network interface to, or remove a network interface from an a
**Commands** -- Azure CLI: [az network nic update](/cli/azure/network/nic#az_network_nic_update)
+- Azure CLI: [az network nic update](/cli/azure/network/nic#az-network-nic-update)
- PowerShell: [Set-AzNetworkInterface](/powershell/module/az.network/set-aznetworkinterface) ## Delete a network interface
The IP flow verify feature of Azure Network Watcher can also help you determine
**Commands** -- Azure CLI: [az network nic list-effective-nsg](/cli/azure/network/nic#az_network_nic_list_effective_nsg)
+- Azure CLI: [az network nic list-effective-nsg](/cli/azure/network/nic#az-network-nic-list-effective-nsg)
- PowerShell: [Get-AzEffectiveNetworkSecurityGroup](/powershell/module/az.network/get-azeffectivenetworksecuritygroup) ### View effective routes
The next hop feature of Azure Network Watcher can also help you determine if rou
**Commands** -- Azure CLI: [az network nic show-effective-route-table](/cli/azure/network/nic#az_network_nic_show_effective_route_table)
+- Azure CLI: [az network nic show-effective-route-table](/cli/azure/network/nic#az-network-nic-show-effective-route-table)
- PowerShell: [Get-AzEffectiveRouteTable](/powershell/module/az.network/get-azeffectiveroutetable) ## Permissions
virtual-network Virtual Network Nsg Manage Log https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/virtual-network-nsg-manage-log.md
View and analyze logs. For more information, see [View and analyze logs](#view-a
You can run the commands that follow in the [Azure Cloud Shell](https://shell.azure.com/bash), or by running the Azure CLI from your computer. The Azure Cloud Shell is a free interactive shell. It has common Azure tools preinstalled and configured to use with your account. If you run the CLI from your computer, you need version 2.0.38 or later. Run `az --version` on your computer, to find the installed version. If you need to upgrade, see [Install Azure CLI](/cli/azure/install-azure-cli). If you are running the CLI locally, you also need to run `az login` to sign in to Azure with an account that has the [necessary permissions](virtual-network-network-interface.md#permissions).
-To enable resource logging, you need the Id of an existing NSG. If you don't have an existing NSG, you can create one with [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create).
+To enable resource logging, you need the Id of an existing NSG. If you don't have an existing NSG, you can create one with [az network nsg create](/cli/azure/network/nsg#az-network-nsg-create).
-Retrieve the network security group that you want to enable resource logging for with [az network nsg show](/cli/azure/network/nsg#az_network_nsg_show). For example, to retrieve an NSG named *myNsg* that exists in a resource group named *myResourceGroup*, enter the following command:
+Retrieve the network security group that you want to enable resource logging for with [az network nsg show](/cli/azure/network/nsg#az-network-nsg-show). For example, to retrieve an NSG named *myNsg* that exists in a resource group named *myResourceGroup*, enter the following command:
```azurecli-interactive nsgId=$(az network nsg show \
nsgId=$(az network nsg show \
You can write resource logs to three destination types. For more information, see [Log destinations](#log-destinations). In this article, logs are sent to the *Log Analytics* destination, as an example. For more information, see [Log categories](#log-categories).
-Enable resource logging for the NSG with [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create). The following example logs both event and counter category data to an existing workspace named *myWorkspace*, which exists in a resource group named *myWorkspaces*, and the ID of the NSG you retrieved previously:
+Enable resource logging for the NSG with [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create). The following example logs both event and counter category data to an existing workspace named *myWorkspace*, which exists in a resource group named *myWorkspaces*, and the ID of the NSG you retrieved previously:
```azurecli-interactive az monitor diagnostic-settings create \
virtual-network Virtual Networks Name Resolution For Vms And Role Instances https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-network/virtual-networks-name-resolution-for-vms-and-role-instances.md
When you are using Azure-provided name resolution, Azure Dynamic Host Configurat
If necessary, you can determine the internal DNS suffix by using PowerShell or the API:
-* For virtual networks in Azure Resource Manager deployment models, the suffix is available via the [network interface REST API](/rest/api/virtualnetwork/networkinterfaces), the [Get-AzNetworkInterface](/powershell/module/az.network/get-aznetworkinterface) PowerShell cmdlet, and the [az network nic show](/cli/azure/network/nic#az_network_nic_show) Azure CLI command.
+* For virtual networks in Azure Resource Manager deployment models, the suffix is available via the [network interface REST API](/rest/api/virtualnetwork/networkinterfaces), the [Get-AzNetworkInterface](/powershell/module/az.network/get-aznetworkinterface) PowerShell cmdlet, and the [az network nic show](/cli/azure/network/nic#az-network-nic-show) Azure CLI command.
* In classic deployment models, the suffix is available via the [Get Deployment API](/previous-versions/azure/reference/ee460804(v=azure.100)) call or the [Get-AzureVM -Debug](/powershell/module/servicemanagement/azure.service/get-azurevm) cmdlet. If forwarding queries to Azure doesn't suit your needs, you should provide your own DNS solution. Your DNS solution needs to:
virtual-wan How To Routing Policies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-wan/how-to-routing-policies.md
While Private Traffic includes both branch and Virtual Network address prefixes
8. Select **Inter-hub** to be **Enabled**. Enabling this option ensures your Routing Policies are applied to the Routing Intent of this Virtual WAN Hub. 9. Select **Save**. This operation will take around 10 minutes to complete. 10. Repeat steps 2-8 for other Secured Virtual WAN hubs that you want to configure Routing policies for.-
+11. At this point, you are ready to send test traffic. Please make sure your Firewall Policies are configured appropriately to allow/deny traffic based on your desired security configurations.
## <a name="nva"></a> Configure routing policies (through Virtual WAN portal)
While Private Traffic includes both branch and Virtual Network address prefixes
7. Repeat for all hubs you would like to configure routing policies for.
+8. At this point, you are ready to send test traffic. Please make sure your Firewall Policies are configured appropriately to allow/deny traffic based on your desired security configurations.
+ ## Routing policy configuration examples The following section describes two common scenarios customers of applying Routing Policies to Secured Virtual WAN hubs.
The following section describes common issues encountered when you configure Rou
* Ensure that your Virtual Hubs do not have any Custom Route Tables or any static routes in the defaultRouteTable. You will **not** be able to select **Enable interhub** from Firewall Manager on your Virtual WAN Hub if there are Custom Route tables configured or if there are static routes in your defaultRouteTable. + ### Troubleshooting data path * Currently, using Azure Firewall to inspect inter-hub traffic is only available for Virtual WAN hubs that are deployed in the **same** Azure Region. * Currently, Private Traffic Routing Policies are not supported in Hubs with Encrypted ExpressRoute connections (Site-to-site VPN Tunnel running over ExpressRoute Private connectivity). * You can verify that the Routing Policies have been applied properly by checking the Effective Routes of the DefaultRouteTable. If Private Routing Policies are configured, you should see routes in the DefaultRouteTable for private traffic prefixes with next hop Azure Firewall. If Internet Traffic Routing Policies are configured, you should see a default (0.0.0.0/0) route in the DefaultRouteTable with next hop Azure Firewall. * If there are any Site-to-site VPN gateways or Point-to-site VPN gateways created **after** the feature has been confirmed to be enabled on your deployment, you will have to reach out again to previewinterhub@microsoft.com to get the feature enabled.
+* If you are using Private Routing Policies to faciliate ExpressRoute to ExpressRoute transit, please note that your ExpressRoute circuit cannot advertise exact address ranges for the RFC1918 address ranges (cannot advertise 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) or any exact CIDR range that is specified in the Private Traffic prefixes text box. Please ensure you are advertising more specific subnets (within RFC1918 ranges) as opposed to aggregate supernets.
### Troubleshooting Azure Firewall
As part of the gated public preview of Routing Policies, your Virtual WAN hub ro
However, you can still view the Effective Routes of the DefaultRouteTable by navigating to the **Effective Routes** Tab.
+If you have configured private traffic routing policies on your Virtual WAN hub, the Effective Route Table will only contain routes for RFC1918 supernets as well as any additional address prefixes that were specified in the Additional Private Traffic Prefixes text box.
+ ### Can I configure a Routing Policy for Private Traffic and also send Internet Traffic (0.0.0.0/0) via a Network Virtual Appliance in a Spoke Virtual Network? This scenario is not supported in the gated public preview. However, reach out to previewinterhub@microsoft.com to express interest in implementing this scenario.
No. Currently, branches and Virtual Networks will egress to the internet using a
When Private Traffic Routing Policies are configured, Virtual WAN Gateways will automatically advertise static routes that are in the default route table (RFC1918 prefixes: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) in addition to the explicit branch and Virtual Network prefixes.
+### Why are my Gateways (Site-to-site VPN, Point-to-site VPN, ExpressRoute) in a failed state?
+
+There is currently a limitation where if Internet and private routing policies are configured concurrently on the same hub, Gateways go into a failed state, meaning your branches cannot communicate with Azure. For more information on when this limitation will be lifted, please contact previewinterhub@microsoft.com.
## Next steps For more information about virtual hub routing, see [About virtual hub routing](about-virtual-hub-routing.md).
vpn-gateway Openvpn Azure Ad Client Mac https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/vpn-gateway/openvpn-azure-ad-client-mac.md
Last updated 09/30/2021
-# Azure Active Directory authentication: Configure a VPN client for P2S OpenVPN protocol connections - macOS
+# Configure a VPN client for P2S OpenVPN protocol connections - Azure AD authentication - macOS
This article helps you configure a VPN client for a computer running macOS 10.15 and later to connect to a virtual network using Point-to-Site VPN and Azure Active Directory authentication. Before you can connect and authenticate using Azure AD, you must first configure your Azure AD tenant. For more information, see [Configure an Azure AD tenant](openvpn-azure-ad-tenant.md). For more information about Point-to-Site connections, see [About Point-to-Site connections](point-to-site-about.md).
You can remove the VPN connection profile from your computer.
## Next steps
-For more information, see [Create an Azure Active Directory tenant for P2S Open VPN connections that use Azure AD authentication](openvpn-azure-ad-tenant.md).
+For more information, see [Create an Azure AD tenant for P2S Open VPN connections that use Azure AD authentication](openvpn-azure-ad-tenant.md).
vpn-gateway Openvpn Azure Ad Client https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/vpn-gateway/openvpn-azure-ad-client.md
Title: 'Configure VPN clients for P2S OpenVPN protocol connections: Azure AD authentication'
-description: Learn how to configure a VPN client to connect to a virtual network using VPN Gateway Point-to-Site VPN and Azure Active Directory authentication.
+description: Learn how to configure VPN clients to connect to a VNet using VPN Gateway Point-to-Site VPN, OpenVPN protocol connections, and Azure AD authentication.
Last updated 08/20/2021
-# Azure Active Directory authentication: Configure a VPN client for P2S OpenVPN protocol connections
+# Configure VPN clients for P2S OpenVPN protocol connections - Azure AD authentication
This article helps you configure a VPN client to connect to a virtual network using Point-to-Site VPN and Azure Active Directory authentication. Before you can connect and authenticate using Azure AD, you must first configure your Azure AD tenant. For more information, see [Configure an Azure AD tenant](openvpn-azure-ad-tenant.md). For more information about Point-to-Site, see [About Point-to-Site VPN](point-to-site-about.md).
To force the import, use the **-f** switch.
## Next steps
-For more information, see [Create an Azure Active Directory tenant for P2S Open VPN connections that use Azure AD authentication](openvpn-azure-ad-tenant.md).
+For more information, see [Create an Azure AD tenant for P2S Open VPN connections that use Azure AD authentication](openvpn-azure-ad-tenant.md).
vpn-gateway Openvpn Azure Ad Tenant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/vpn-gateway/openvpn-azure-ad-tenant.md
Last updated 05/27/2021
-# Create an Azure Active Directory tenant for P2S OpenVPN protocol connections
+# Create an Azure AD tenant for P2S OpenVPN protocol connections
When you connect to your VNet using Point-to-Site, you have a choice of which protocol to use. The protocol you use determines the authentication options that are available to you. If you want to use Azure Active Directory authentication, you can do so when using the OpenVPN protocol. This article helps you set up an Azure AD tenant. For more information about Point-to-Site protocols and authentication, see [About Point-to-Site VPN](point-to-site-about.md).
web-application-firewall Waf Front Door Configure Ip Restriction https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/web-application-firewall/afds/waf-front-door-configure-ip-restriction.md
Create an Azure Front Door profile by following the instructions described in [Q
### Create a WAF policy
-Create a WAF policy by using the [az network front-door waf-policy create](/cli/azure/network/front-door/waf-policy#az_network_front_door_waf_policy_create) command.
+Create a WAF policy by using the [az network front-door waf-policy create](/cli/azure/network/front-door/waf-policy#az-network-front-door-waf-policy-create) command.
In the example that follows, replace the policy name *IPAllowPolicyExampleCLI* with a unique policy name. ```azurecli-interactive
az network front-door waf-policy create \
``` ### Add a custom IP access control rule
-Use the [az network front-door waf-policy custom-rule create](/cli/azure/network/front-door/waf-policy/rule#az_network_front_door_waf_policy_rule_create) command to add a custom IP access control rule for the WAF policy you just created.
+Use the [az network front-door waf-policy custom-rule create](/cli/azure/network/front-door/waf-policy/rule#az-network-front-door-waf-policy-rule-create) command to add a custom IP access control rule for the WAF policy you just created.
In the following examples: - Replace *IPAllowPolicyExampleCLI* with your unique policy created earlier.
az network front-door waf-policy rule match-condition add \
``` ### Find the ID of a WAF policy
-Find a WAF policy's ID by using the [az network front-door waf-policy show](/cli/azure/network/front-door/waf-policy#az_network_front_door_waf_policy_show) command. Replace *IPAllowPolicyExampleCLI* in the following example with your unique policy that you created earlier.
+Find a WAF policy's ID by using the [az network front-door waf-policy show](/cli/azure/network/front-door/waf-policy#az-network-front-door-waf-policy-show) command. Replace *IPAllowPolicyExampleCLI* in the following example with your unique policy that you created earlier.
```azurecli az network front-door waf-policy show \
Find a WAF policy's ID by using the [az network front-door waf-policy show](/cli
### Link a WAF policy to an Azure Front Door front-end host
-Set the Azure Front Door *WebApplicationFirewallPolicyLink* ID to the policy ID by using the [az network front-door update](/cli/azure/network/front-door#az_network_front_door_update) command. Replace *IPAllowPolicyExampleCLI* with your unique policy that you created earlier.
+Set the Azure Front Door *WebApplicationFirewallPolicyLink* ID to the policy ID by using the [az network front-door update](/cli/azure/network/front-door#az-network-front-door-update) command. Replace *IPAllowPolicyExampleCLI* with your unique policy that you created earlier.
```azurecli az network front-door update \
web-application-firewall Waf Front Door Exclusion https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/web-application-firewall/afds/waf-front-door-exclusion.md
Sometimes Web Application Firewall (WAF) might block a request that you want to
For example, Active Directory inserts tokens that are used for authentication. When used in a request header, these tokens can contain special characters that may trigger a false positive from the WAF rules. By adding the header to an exclusion list, you can configure WAF to ignore the header, but WAF still evaluates the rest of the request.
-An exclusion list can be configured using [PowerShell](/powershell/module/az.frontdoor/New-AzFrontDoorWafManagedRuleExclusionObject), [Azure CLI](/cli/azure/network/front-door/waf-policy/managed-rules/exclusion#az_network_front_door_waf_policy_managed_rules_exclusion_add), [REST API](/rest/api/frontdoorservice/webapplicationfirewall/policies/createorupdate), or the Azure portal. The following example shows the Azure portal configuration.
+An exclusion list can be configured using [PowerShell](/powershell/module/az.frontdoor/New-AzFrontDoorWafManagedRuleExclusionObject), [Azure CLI](/cli/azure/network/front-door/waf-policy/managed-rules/exclusion#az-network-front-door-waf-policy-managed-rules-exclusion-add), [REST API](/rest/api/frontdoorservice/webapplicationfirewall/policies/createorupdate), or the Azure portal. The following example shows the Azure portal configuration.
## Configure exclusion lists using the Azure portal
web-application-firewall Waf Front Door Tuning https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/web-application-firewall/afds/waf-front-door-tuning.md
# Tuning Web Application Firewall (WAF) for Azure Front Door
-The Microsoft-managed Default Rule Set is based on the [OWASP Core Rule Set (CRS)](https://github.com/SpiderLabs/owasp-modsecurity-crs/tree/v3.1/dev) and includes Microsoft Thread Intelligence Collection rules. It is often expected that WAF rules need to be tuned to suit the specific needs of the application or organization using the WAF. This is commonly achieved by defining rule exclusions, creating custom rules, and even disabling rules that may be causing issues or false positives. There are a few things you can do if requests that should pass through your Web Application Firewall (WAF) are blocked.
+The Microsoft-managed Default Rule Set is based on the [OWASP Core Rule Set (CRS)](https://github.com/SpiderLabs/owasp-modsecurity-crs/tree/v3.1/dev) and includes Microsoft Threat Intelligence Collection rules. It is often expected that WAF rules need to be tuned to suit the specific needs of the application or organization using the WAF. This is commonly achieved by defining rule exclusions, creating custom rules, and even disabling rules that may be causing issues or false positives. There are a few things you can do if requests that should pass through your Web Application Firewall (WAF) are blocked.
First, ensure youΓÇÖve read the [Front Door WAF overview](afds-overview.md) and the [WAF Policy for Front Door](waf-front-door-create-portal.md) documents. Also, make sure youΓÇÖve enabled [WAF monitoring and logging](waf-front-door-monitor.md). These articles explain how the WAF functions, how the WAF rule sets work, and how to access WAF logs.
web-application-firewall Tutorial Restrict Web Traffic Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/web-application-firewall/ag/tutorial-restrict-web-traffic-cli.md
If you prefer, you can complete this procedure using [Azure PowerShell](tutorial
## Create a resource group
-A resource group is a logical container into which Azure resources are deployed and managed. Create an Azure resource group named *myResourceGroupAG* with [az group create](/cli/azure/group#az_group_create).
+A resource group is a logical container into which Azure resources are deployed and managed. Create an Azure resource group named *myResourceGroupAG* with [az group create](/cli/azure/group#az-group-create).
```azurecli-interactive az group create --name myResourceGroupAG --location eastus
It may take several minutes for the application gateway to be created. After the
## Create a virtual machine scale set
-In this example, you create a virtual machine scale set that provides two servers for the backend pool in the application gateway. The virtual machines in the scale set are associated with the *myBackendSubnet* subnet. To create the scale set, you can use [az vmss create](/cli/azure/vmss#az_vmss_create).
+In this example, you create a virtual machine scale set that provides two servers for the backend pool in the application gateway. The virtual machines in the scale set are associated with the *myBackendSubnet* subnet. To create the scale set, you can use [az vmss create](/cli/azure/vmss#az-vmss-create).
Replace \<username> and \<password> with your values before you run this.
In this article, the application gateway uses a storage account to store data fo
### Create a storage account
-Create a storage account named *myagstore1* with [az storage account create](/cli/azure/storage/account#az_storage_account_create).
+Create a storage account named *myagstore1* with [az storage account create](/cli/azure/storage/account#az-storage-account-create).
```azurecli-interactive az storage account create \
az storage account create \
### Configure diagnostics
-Configure diagnostics to record data into the ApplicationGatewayAccessLog, ApplicationGatewayPerformanceLog, and ApplicationGatewayFirewallLog logs. Replace `<subscriptionId>` with your subscription identifier and then configure diagnostics with [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az_monitor_diagnostic_settings_create).
+Configure diagnostics to record data into the ApplicationGatewayAccessLog, ApplicationGatewayPerformanceLog, and ApplicationGatewayFirewallLog logs. Replace `<subscriptionId>` with your subscription identifier and then configure diagnostics with [az monitor diagnostic-settings create](/cli/azure/monitor/diagnostic-settings#az-monitor-diagnostic-settings-create).
```azurecli-interactive appgwid=$(az network application-gateway show --name myAppGateway --resource-group myResourceGroupAG --query id -o tsv)
az monitor diagnostic-settings create --name appgwdiag --resource $appgwid \
## Test the application gateway
-To get the public IP address of the application gateway, use [az network public-ip show](/cli/azure/network/public-ip#az_network_public_ip_show). Copy the public IP address, and then paste it into the address bar of your browser.
+To get the public IP address of the application gateway, use [az network public-ip show](/cli/azure/network/public-ip#az-network-public-ip-show). Copy the public IP address, and then paste it into the address bar of your browser.
```azurecli-interactive az network public-ip show \