Updates from: 04/03/2023 01:08:51
Service Microsoft Docs article Related commit history on GitHub Change details
active-directory-b2c Tutorial Create Tenant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory-b2c/tutorial-create-tenant.md
Before you create your Azure AD B2C tenant, you need to take the following consi
## Create an Azure AD B2C tenant >[!NOTE]
->If you're unable to create Azure AD B2C tenant, [review your user settings page](tenant-management-check-tenant-creation-permission.md) to ensure that tenant creation isn't switched off. If tenant creation is switched off, ask your _Global Administrator_ to assign you a _Tenant Creator_ role.
+>If you're unable to create Azure AD B2C tenant, [review your user settings page](tenant-management-check-tenant-creation-permission.md) to ensure that tenant creation isn't switched off. If tenant creation is switched on, ask your _Global Administrator_ to assign you a _Tenant Creator_ role.
1. Sign in to the [Azure portal](https://portal.azure.com/).
active-directory Domains Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/enterprise-users/domains-manage.md
Previously updated : 11/11/2022 Last updated : 03/31/2023
# Managing custom domain names in your Azure Active Directory
-A domain name is an important part of the identifier for resources in many Azure Active Directory (Azure AD) deployments. It is part of a user name or email address for a user, part of the address for a group, and is sometimes part of the app ID URI for an application. A resource in Azure AD can include a domain name that's owned by the Azure AD organization (sometimes called a tenant) that contains the resource. Only a Global Administrator can manage domains in Azure AD.
+A domain name is an important part of the identifier for resources in many Azure Active Directory (Azure AD) deployments. It's part of a user name or email address for a user, part of the address for a group, and is sometimes part of the app ID URI for an application. A resource in Azure AD can include a domain name that's owned by the Azure AD organization (sometimes called a tenant) that contains the resource. [Global Administrators](../roles/permissions-reference.md#global-administrator) and [Domain name administrators](../roles/permissions-reference.md#domain-name-administrator) can manage domains in Azure AD.
## Set the primary domain name for your Azure AD organization
active-directory Tutorial Linux Vm Access Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-storage.md
na Previously updated : 01/11/2022 Last updated : 03/30/2023
To run the CLI script examples in this tutorial, you have two options:
In this section, you create a storage account.
-1. Click the **+ Create a resource** button found on the upper left-hand corner of the Azure portal.
-2. Click **Storage**, then **Storage account - blob, file, table, queue**.
+1. Select the **+ Create a resource** button found on the upper left-hand corner of the Azure portal.
+2. Select **Storage**, then **Storage account - blob, file, table, queue**.
3. Under **Name**, enter a name for the storage account. 4. **Deployment model** and **Account kind** should be set to **Resource manager** and **Storage (general purpose v1)**. 5. Ensure the **Subscription** and **Resource Group** match the ones you specified when you created your VM in the previous step.
-6. Click **Create**.
+6. Select **Create**.
![Create new storage account](./media/msi-tutorial-linux-vm-access-storage/msi-storage-create.png)
In this section, you create a storage account.
Files require blob storage so you need to create a blob container in which to store the file. You then upload a file to the blob container in the new storage account. 1. Navigate back to your newly created storage account.
-2. Under **Blob Service**, click **Containers**.
-3. Click **+ Container** on the top of the page.
+2. Under **Blob Service**, select **Containers**.
+3. Select **+ Container** on the top of the page.
4. Under **New container**, enter a name for the container and under **Public access level** keep the default value. ![Create storage container](./media/msi-tutorial-linux-vm-access-storage/create-blob-container.png)
Files require blob storage so you need to create a blob container in which to st
5. Using an editor of your choice, create a file titled *hello world.txt* on your local machine. Open the file and add the text (without the quotes) "Hello world! :)" and then save it. 6. Upload the file to the newly created container by clicking on the container name, then **Upload**
-7. In the **Upload blob** pane, under **Files**, click the folder icon and browse to the file **hello_world.txt** on your local machine, select the file, then click **Upload**.
+7. In the **Upload blob** pane, under **Files**, select the folder icon and browse to the file **hello_world.txt** on your local machine, select the file, then select **Upload**.
![Upload text file](./media/msi-tutorial-linux-vm-access-storage/upload-text-file.png)
Azure Storage natively supports Azure AD authentication, so it can directly acce
To complete the following steps, you need to work from the VM created earlier and you need an SSH client to connect to it. If you are using Windows, you can use the SSH client in the [Windows Subsystem for Linux](/windows/wsl/about). If you need assistance configuring your SSH client's keys, see [How to Use SSH keys with Windows on Azure](~/articles/virtual-machines/linux/ssh-from-windows.md), or [How to create and use an SSH public and private key pair for Linux VMs in Azure](~/articles/virtual-machines/linux/mac-create-ssh-keys.md).
-1. In the Azure portal, navigate to **Virtual Machines**, go to your Linux virtual machine, then from the **Overview** page click **Connect**. Copy the string to connect to your VM.
+1. In the Azure portal, navigate to **Virtual Machines**, go to your Linux virtual machine, then from the **Overview** page select **Connect**. Copy the string to connect to your VM.
2. **Connect** to the VM with the SSH client of your choice. 3. In the terminal window, use CURL to make a request to the local Managed Identity endpoint to get an access token for Azure Storage.
To complete the following steps, you need to work from the VM created earlier an
Hello world! :) ```
+Alternatively, you could also store the token in a variable and pass it to the second command as shown:
+
+```bash
+# Run the first curl command and capture its output in a variable
+access_token=$(curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F' -H Metadata:true | jq -r '.access_token')
+
+# Run the second curl command with the access token
+curl "https://<STORAGE ACCOUNT>.blob.core.windows.net/<CONTAINER NAME>/<FILE NAME>" \
+ -H "x-ms-version: 2017-11-09" \
+ -H "Authorization: Bearer $access_token"
+
+```
++ ## Next steps In this tutorial, you learned how enable a Linux VM system-assigned managed identity to access Azure Storage. To learn more about Azure Storage see:
active-directory Cross Tenant Synchronization Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/multi-tenant-organizations/cross-tenant-synchronization-configure.md
This setting also applies to B2B collaboration and B2B direct connect, so if you
## Troubleshooting tips
+#### Delete a configuration
+
+Follows these steps to delete a configuration on the **Configurations** page.
+
+1. In the source tenant, select **Azure Active Directory** > **Cross-tenant synchronization (Preview)**.
+
+1. On the **Configurations** page, add a check mark next to the configuration you want to delete.
+
+1. Select **Delete** and then **OK** to delete the configuration.
+
+ :::image type="content" source="./media/cross-tenant-synchronization-configure/configurations-delete.png" alt-text="Screenshot of the Configurations page showing how to delete a configuration." lightbox="./media/cross-tenant-synchronization-configure/configurations-delete.png":::
+ #### Symptom - Test connection fails with AzureDirectoryB2BManagementPolicyCheckFailure When configuring cross-tenant synchronization in the source tenant and you test the connection, it fails with the following error message:
Restoring a previously soft-deleted user in the target tenant isn't supported.
Manually restore the soft-deleted user in the target tenant. For more information, see [Restore or remove a recently deleted user using Azure Active Directory](../fundamentals/active-directory-users-restore.md).
-#### Symptom - Unable to delete a configuration
-
-On the **Configurations** page, there isn't a way to delete a configuration.
-
-**Cause**
-
-Currently, there isn't a way to delete a configuration on the **Configurations** page. Instead, you must delete the configuration in **Enterprise applications**.
-
-**Solution**
-
-1. In the source tenant, select **Azure Active Directory** > **Enterprise applications**.
-
-1. In the list of all applications, find the name of your configuration. If necessary, you can search by the configuration name.
-
-1. Select the configuration and then select **Properties**.
-
-1. Select **Delete** and then **Yes** to delete the configuration.
-
- :::image type="content" source="./media/cross-tenant-synchronization-configure/enterprise-applications-configuration-delete.png" alt-text="Screenshot of the Enterprise applications Properties page showing how to delete a configuration." lightbox="./media/cross-tenant-synchronization-configure/enterprise-applications-configuration-delete.png":::
- #### Symptom - Users are skipped because SMS sign-in is enabled on the user Users are skipped from synchronization. The scoping step includes the following filter with status false: "Filter external users.alternativeSecurityIds EQUALS 'None'"
If SMS sign-in is enabled for a user, they will be skipped by the provisioning s
Disable SMS Sign-in for the users. The script below shows how you can disable SMS Sign-in using PowerShell.
-```
+```powershell
##### Disable SMS Sign-in options for the users #### Import module
Import-Module Microsoft.Graph.Users.Actions
Connect-MgGraph -Scopes "User.Read.All", "Group.ReadWrite.All", "UserAuthenticationMethod.Read.All","UserAuthenticationMethod.ReadWrite","UserAuthenticationMethod.ReadWrite.All" - ##### The value for phoneAuthenticationMethodId is 3179e48a-750b-4051-897c-87b9720928f7 $phoneAuthenticationMethodId = "3179e48a-750b-4051-897c-87b9720928f7"
$smssignin = Get-MgUserAuthenticationPhoneMethod -UserId $userId
} -- ##### End the script ``` - ## Next steps - [Tutorial: Reporting on automatic user account provisioning](../app-provisioning/check-status-user-account-provisioning.md)
app-service Overview Vnet Integration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/overview-vnet-integration.md
Title: Integrate your app with an Azure virtual network
description: Integrate your app in Azure App Service with Azure virtual networks. Previously updated : 03/16/2023 Last updated : 03/31/2023
The feature supports two virtual interfaces per worker. Two virtual interfaces p
## Subnet requirements
-Virtual network integration depends on a dedicated subnet. When you create a subnet, the Azure subnet consumes five IPs from the start. One address is used from the integration subnet for each plan instance. If you scale your app to four instances, then four addresses are used.
+Virtual network integration depends on a dedicated subnet. When you create a subnet, the Azure subnet consumes five IPs from the start. One address is used from the integration subnet for each App Service plan instance. If you scale your app to four instances, then four addresses are used.
-When you scale up or down in size, the required address space is doubled for a short period of time. The scale operation affects the real, available supported instances for a given subnet size. The following table shows both the maximum available addresses per CIDR block and the effect the available addresses has on horizontal scale.
+When you scale up or down in size, the required address space is doubled for a short period of time. The scale operation affects the real, available supported instances for a given subnet size. Platform upgrades need free IP addresses to ensure upgrade can happen without interruptions to outbound traffic. Finally, after scale up, down or in operations complete, there might be a short period of time before IP addresses are released.
-| CIDR block size | Maximum available addresses | Maximum horizontal scale (instances)<sup>*</sup> |
-|--|-||
-| /28 | 11 | 5 |
-| /27 | 27 | 13 |
-| /26 | 59 | 29 |
-
-<sup>*</sup>Assumes that you need to scale up or down in either size or SKU at some point.
-
-Because subnet size can't be changed after assignment, use a subnet that's large enough to accommodate whatever scale your app might reach. To avoid any issues with subnet capacity, use a `/26` with 64 addresses. When you're creating subnets in Azure portal as part of integrating with the virtual network, a minimum size of /27 is required. If the subnet already exists before integrating through the portal, you can use a /28 subnet.
+Because subnet size can't be changed after assignment, use a subnet that's large enough to accommodate whatever scale your app might reach. You should also reserve IP addresses for platform upgrades. To avoid any issues with subnet capacity, use a `/26` with 64 addresses. When you're creating subnets in Azure portal as part of integrating with the virtual network, a minimum size of /27 is required. If the subnet already exists before integrating through the portal, you can use a /28 subnet.
>[!NOTE] > Windows Containers uses an additional IP address per app for each App Service plan instance, and you need to size the subnet accordingly. If you have for example 10 Windows Container App Service plan instances with 4 apps running, you will need 50 IP addresses and additional addresses to support horizontal (up/down) scale.
applied-ai-services How To Create Immersive Reader https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/applied-ai-services/immersive-reader/how-to-create-immersive-reader.md
Title: "Create an Immersive Reader Resource"
-description: This article will show you how to create a new Immersive Reader resource with a custom subdomain and then configure Azure AD in your Azure tenant.
+description: This article shows you how to create a new Immersive Reader resource with a custom subdomain and then configure Azure AD in your Azure tenant.
- Previously updated : 7/1/2022 Last updated : 03/31/2023 # Create an Immersive Reader resource and configure Azure Active Directory authentication
-In this article, we provide a script that will create an Immersive Reader resource and configure Azure Active Directory (Azure AD) authentication. Each time an Immersive Reader resource is created, whether with this script or in the portal, it must also be configured with Azure AD permissions. This script will help you with that.
+In this article, we provide a script that creates an Immersive Reader resource and configure Azure Active Directory (Azure AD) authentication. Each time an Immersive Reader resource is created, whether with this script or in the portal, it must also be configured with Azure AD permissions.
The script is designed to create and configure all the necessary Immersive Reader and Azure AD resources for you all in one step. However, you can also just configure Azure AD authentication for an existing Immersive Reader resource, if for instance, you happen to have already created one in the Azure portal. For some customers, it may be necessary to create multiple Immersive Reader resources, for development vs. production, or perhaps for multiple different regions your service is deployed in. For those cases, you can come back and use the script multiple times to create different Immersive Reader resources and get them configured with the Azure AD permissions.
-The script is designed to be flexible. It will first look for existing Immersive Reader and Azure AD resources in your subscription, and create them only as necessary if they don't already exist. If it's your first time creating an Immersive Reader resource, the script will do everything you need. If you want to use it just to configure Azure AD for an existing Immersive Reader resource that was created in the portal, it will do that too. It can also be used to create and configure multiple Immersive Reader resources.
+The script is designed to be flexible. It first looks for existing Immersive Reader and Azure AD resources in your subscription, and creates them only as necessary if they don't already exist. If it's your first time creating an Immersive Reader resource, the script does everything you need. If you want to use it just to configure Azure AD for an existing Immersive Reader resource that was created in the portal, it does that too.
+It can also be used to create and configure multiple Immersive Reader resources.
+
+## Permissions
+
+The listed **Owner** of your Azure subscription has all the required permissions to create an Immersive Reader resource and configure Azure AD authentication.
+
+If you aren't an owner, the following scope-specific permissions are required:
+
+* **Contributor**. You need to have at least a Contributor role associated with the Azure subscription:
+
+ :::image type="content" source="media/contributor-role.png" alt-text="Screenshot of contributor built-in role description.":::
+
+* **Application Developer**. You need to have at least an Application Developer role associated in Azure AD:
+
+ :::image type="content" source="media/application-developer-role.png" alt-text="{alt-text}":::
+
+For more information, _see_ [Azure AD built-in roles](../../active-directory/roles/permissions-reference.md#application-developer)
## Set up PowerShell environment
The script is designed to be flexible. It will first look for existing Immersive
throw "Error: Failed to create Azure Active Directory application client secret" } Write-Host "Azure Active Directory application client secret created successfully."
-
+ Write-Host "NOTE: To manage your Active Directory application client secrets after this Immersive Reader Resource has been created please visit https://portal.azure.com and go to Home -> Azure Active Directory -> App Registrations -> (your app) '$AADAppDisplayName' -> Certificates and Secrets blade -> Client Secrets section" -ForegroundColor Yellow }
The script is designed to be flexible. It will first look for existing Immersive
Write-Host "Save the following JSON object to a text file for future reference." Write-Host "*****" if($clientSecret -ne $null) {
-
+ Write-Host "This function has created a client secret (password) for you. This secret is used when calling Azure Active Directory to fetch access tokens." Write-Host "This is the only time you will ever see the client secret for your Azure Active Directory application, so save it now." -ForegroundColor Yellow }
The script is designed to be flexible. It will first look for existing Immersive
} ```
-1. Run the function `Create-ImmersiveReaderResource`, supplying the '<PARAMETER_VALUES>' placeholders below with your own values as appropriate.
+1. Run the function `Create-ImmersiveReaderResource`, supplying the '<PARAMETER_VALUES>' placeholders with your own values as appropriate.
```azurepowershell-interactive Create-ImmersiveReaderResource -SubscriptionName '<SUBSCRIPTION_NAME>' -ResourceName '<RESOURCE_NAME>' -ResourceSubdomain '<RESOURCE_SUBDOMAIN>' -ResourceSKU '<RESOURCE_SKU>' -ResourceLocation '<RESOURCE_LOCATION>' -ResourceGroupName '<RESOURCE_GROUP_NAME>' -ResourceGroupLocation '<RESOURCE_GROUP_LOCATION>' -AADAppDisplayName '<AAD_APP_DISPLAY_NAME>' -AADAppIdentifierUri '<AAD_APP_IDENTIFIER_URI>' -AADAppClientSecretExpiration '<AAD_APP_CLIENT_SECRET_EXPIRATION>' ```
- The full command will look something like the following. Here we have put each parameter on its own line for clarity, so you can see the whole command. __Do not copy or use this command as-is.__ Copy and use the command above with your own values. This example has dummy values for the '<PARAMETER_VALUES>' above. Yours will be different, as you will come up with your own names for these values.
+ The full command looks something like the following. Here we have put each parameter on its own line for clarity, so you can see the whole command. __Do not copy or use this command as-is.__ Copy and use the command with your own values. This example has dummy values for the '<PARAMETER_VALUES>'. Yours may be different, as you come up with your own names for these values.
``` Create-ImmersiveReaderResource
The script is designed to be flexible. It will first look for existing Immersive
| Parameter | Comments | | | | | SubscriptionName |Name of the Azure subscription to use for your Immersive Reader resource. You must have a subscription in order to create a resource. |
- | ResourceName | Must be alphanumeric, and may contain '-', as long as the '-' is not the first or last character. Length may not exceed 63 characters.|
- | ResourceSubdomain |A custom subdomain is needed for your Immersive Reader resource. The subdomain is used by the SDK when calling the Immersive Reader service to launch the Reader. The subdomain must be globally unique. The subdomain must be alphanumeric, and may contain '-', as long as the '-' is not the first or last character. Length may not exceed 63 characters. This parameter is optional if the resource already exists. |
+ | ResourceName | Must be alphanumeric, and may contain '-', as long as the '-' isn't the first or last character. Length may not exceed 63 characters.|
+ | ResourceSubdomain |A custom subdomain is needed for your Immersive Reader resource. The subdomain is used by the SDK when calling the Immersive Reader service to launch the Reader. The subdomain must be globally unique. The subdomain must be alphanumeric, and may contain '-', as long as the '-' isn't the first or last character. Length may not exceed 63 characters. This parameter is optional if the resource already exists. |
| ResourceSKU |Options: `S0` (Standard tier) or `S1` (Education/Nonprofit organizations). Visit our [Cognitive Services pricing page](https://azure.microsoft.com/pricing/details/cognitive-services/immersive-reader/) to learn more about each available SKU. This parameter is optional if the resource already exists. | | ResourceLocation |Options: `australiaeast`, `brazilsouth`, `canadacentral`, `centralindia`, `centralus`, `eastasia`, `eastus`, `eastus2`, `francecentral`, `germanywestcentral`, `japaneast`, `japanwest`, `jioindiawest`, `koreacentral`, `northcentralus`, `northeurope`, `norwayeast`, `southafricanorth`, `southcentralus`, `southeastasia`, `swedencentral`, `switzerlandnorth`, `switzerlandwest`, `uaenorth`, `uksouth`, `westcentralus`, `westeurope`, `westus`, `westus2`, `westus3`. This parameter is optional if the resource already exists. |
- | ResourceGroupName |Resources are created in resource groups within subscriptions. Supply the name of an existing resource group. If the resource group does not already exist, a new one with this name will be created. |
+ | ResourceGroupName |Resources are created in resource groups within subscriptions. Supply the name of an existing resource group. If the resource group doesn't already exist, a new one with this name is created. |
| ResourceGroupLocation |If your resource group doesn't exist, you need to supply a location in which to create the group. To find a list of locations, run `az account list-locations`. Use the *name* property (without spaces) of the returned result. This parameter is optional if your resource group already exists. |
- | AADAppDisplayName |The Azure Active Directory application display name. If an existing Azure AD application is not found, a new one with this name will be created. This parameter is optional if the Azure AD application already exists. |
- | AADAppIdentifierUri |The URI for the Azure AD application. If an existing Azure AD application is not found, a new one with this URI will be created. For example, `api://MyOrganizationImmersiveReaderAADApp`. Here we are using the default Azure AD URI scheme prefix of `api://` for compatibility with the [Azure AD policy of using verified domains](../../active-directory/develop/reference-breaking-changes.md#appid-uri-in-single-tenant-applications-will-require-use-of-default-scheme-or-verified-domains). |
- | AADAppClientSecretExpiration |The date or datetime after which your AAD Application Client Secret (password) will expire (e.g. '2020-12-31T11:59:59+00:00' or '2020-12-31'). This function will create a client secret for you. To manage Azure AD application client secrets after you've created this resource, please visit https://portal.azure.com and go to Home -> Azure Active Directory -> App Registrations -> (your app) `[AADAppDisplayName]` -> Certificates and Secrets blade -> Client Secrets section (as shown in the "Manage your Azure AD application secrets" screenshot below).|
+ | AADAppDisplayName |The Azure Active Directory application display name. If an existing Azure AD application isn't found, a new one with this name is created. This parameter is optional if the Azure AD application already exists. |
+ | AADAppIdentifierUri |The URI for the Azure AD application. If an existing Azure AD application isn't found, a new one with this URI is created. For example, `api://MyOrganizationImmersiveReaderAADApp`. Here we're using the default Azure AD URI scheme prefix of `api://` for compatibility with the [Azure AD policy of using verified domains](../../active-directory/develop/reference-breaking-changes.md#appid-uri-in-single-tenant-applications-will-require-use-of-default-scheme-or-verified-domains). |
+ | AADAppClientSecretExpiration |The date or datetime after which your Azure AD Application Client Secret (password) will expire (for example, '2020-12-31T11:59:59+00:00' or '2020-12-31'). This function creates a client secret for you. To manage Azure AD application client secrets after you've created this resource, visit https://portal.azure.com and go to Home -> Azure Active Directory -> App Registrations -> (your app) `[AADAppDisplayName]` -> Certificates and Secrets section -> Client Secrets section (as shown in the "Manage your Azure AD application secrets" screenshot).|
Manage your Azure AD application secrets
automation Automation Windows Hrw Install https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/automation-windows-hrw-install.md
Title: Deploy an agent-based Windows Hybrid Runbook Worker in Automation
description: This article tells how to deploy an agent-based Hybrid Runbook Worker that you can use to run runbooks on Windows-based machines in your local datacenter or cloud environment. Previously updated : 03/15/2023 Last updated : 04/01/2023
The Hybrid Runbook Worker role requires the [Log Analytics agent](../azure-monit
The Hybrid Runbook Worker feature supports the following operating systems:
+* Windows Server 2022 (including Server Core)
* Windows Server 2019 (including Server Core) * Windows Server 2016, version 1709 and 1803 (excluding Server Core) * Windows Server 2012, 2012 R2
azure-functions Functions Create Vnet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-create-vnet.md
You create a C# function app in an [Elastic Premium plan](./functions-premium-pl
| **Function App name** | Globally unique name | Name that identifies your new function app. Valid characters are `a-z` (case insensitive), `0-9`, and `-`. | |**Publish**| Code | Choose to publish code files or a Docker container. | | **Runtime stack** | .NET | This tutorial uses .NET. |
- | **Version** | 6 | This tutorial uses .NET 6.0 running [in the same process as the Functions host](./functions-dotnet-class-library.md). |
+ | **Version** | 6 (LTS) | This tutorial uses .NET 6.0 running [in the same process as the Functions host](./functions-dotnet-class-library.md). |
|**Region**| Preferred region | Choose a [region](https://azure.microsoft.com/regions/) near you or near other services that your functions access. | |**Operating system**| Windows | This tutorial uses Windows but also works for Linux. |
- | **[Plan](./functions-scale.md)** | Premium | Hosting plan that defines how resources are allocated to your function app. By default, when you select **Premium**, a new App Service plan is created. The default **Sku and size** is **EP1**, where *EP* stands for _elastic premium_. For more information, see the list of [Premium SKUs](./functions-premium-plan.md#available-instance-skus).<br/><br/>When you run JavaScript functions on a Premium plan, choose an instance that has fewer vCPUs. For more information, see [Choose single-core Premium plans](./functions-reference-node.md#considerations-for-javascript-functions). |
+ | **[Plan](./functions-scale.md)** | Functions Premium | Hosting plan that defines how resources are allocated to your function app. By default, when you select **Premium**, a new App Service plan is created. The default **Sku and size** is **EP1**, where *EP* stands for _elastic premium_. For more information, see the list of [Premium SKUs](./functions-premium-plan.md#available-instance-skus).<br/><br/>When you run JavaScript functions on a Premium plan, choose an instance that has fewer vCPUs. For more information, see [Choose single-core Premium plans](./functions-reference-node.md#considerations-for-javascript-functions). |
-1. Select **Next: Hosting**. On the **Hosting** page, enter the following settings.
+1. Select **Next: Storage**. On the **Storage** page, enter the following settings.
| Setting | Suggested value | Description | | | - | -- |
You create a C# function app in an [Elastic Premium plan](./functions-premium-pl
| Setting | Suggested value | Description | | | - | -- |
+ | **Enable public access** | Off | Deny public network access will block all incoming traffic except that comes from private endpoints.|
| **Enable network injection** | On | The ability to configure your application with VNet integration at creation appears in the portal window after this option is switched to **On**. | | **Virtual Network** | Create New | Select the **Create New** field. In the pop-out screen, provide a name for your virtual network and select **Ok**. Options to restrict inbound and outbound access to your function app on create are displayed. You must explicitly enable VNet integration in the **Outbound access** portion of the window to restrict outbound access. |
azure-monitor Azure Monitor Agent Extension Versions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/agents/azure-monitor-agent-extension-versions.md
Title: Azure Monitor agent extension versions description: This article describes the version details for the Azure Monitor agent virtual machine extension. Previously updated : 2/22/2023++ Last updated : 3/7/2023
We strongly recommended to update to the latest version at all times, or opt in
## Version details | Release Date | Release notes | Windows | Linux | |:|:|:|:|
+| Feb 2023 | **Windows** <ul><li>Reliability improvements in fluentbit buffering to handle larger text files</li></ul> | 1.13.1.0 | Coming soon |
| Jan 2023 | **Linux** <ul><li>RHEL 9 and Amazon Linux 2 support</li><li>Update to OpenSSL 1.1.1s and require TLS 1.2 or higher</li><li>Performance improvements</li><li>Improvements in Garbage Collection for persisted disk cache and handling corrupted cache files better</li><li>**Fixes** <ul><li>Set agent service memory limit for CentOS/RedHat 7 distros. Resolved MemoryMax parsing error</li><li>Fixed modifying rsyslog system-wide log format caused by installer on RedHat/Centos 7.3</li><li>Fixed permissions to config directory</li><li>Installation reliability improvements</li><li>Fixed permissions on default file so rpm verification doesn't fail</li><li>Added traceFlags setting to enable trace logs for agent</li></ul></li></ul> **Windows** <ul><li>Fixed issue related to incorrect *EventLevel* and *Task* values for Log Analytics *Event* table, to match Windows Event Viewer values</li><li>Added missing columns for IIS logs - *TimeGenerated, Time, Date, Computer, SourceSystem, AMA, W3SVC, SiteName*</li><li>Reliability improvements for metrics collection</li><li>Fixed machine restart issues on for Arc-enabled servers related to repeated calls to HIMDS service</li></ul> | 1.12.0.0 | 1.25.1 | | Nov-Dec 2022 | <ul><li>Support for air-gapped clouds added for [Windows MSI installer for clients](./azure-monitor-agent-windows-client.md) </li><li>Reliability improvements for using AMA with Custom Metrics destination</li><li>Performance and internal logging improvements</li></ul> | 1.11.0.0 | None | | Oct 2022 | **Windows** <ul><li>Increased reliability of data uploads</li><li>Data quality improvements</li></ul> **Linux** <ul><li>Support for `http_proxy` and `https_proxy` environment variables for [network proxy configurations](./azure-monitor-agent-data-collection-endpoint.md#proxy-configuration) for the agent</li><li>[Text logs](./data-collection-text-log.md) <ul><li>Network proxy support enabled</li><li>Fixed missing `_ResourceId`</li><li>Increased maximum line size support to 1MB</li></ul></li><li>Support ingestion of syslog events whose timestamp is in the future</li><li>Performance improvements</li><li>Fixed `diskio` metrics instance name dimension to use the disk mount path(s) instead of the device name(s)</li><li>Fixed world writable file issue to lockdown write access to certain agent logs and configuration files stored locally on the machine</li></ul> | 1.10.0.0 | 1.24.2 |
azure-monitor Azure Monitor Agent Migration Tools https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/agents/azure-monitor-agent-migration-tools.md
To install DCR Config Generator, you need:
1. PowerShell version 5.1 or higher. We recommend using PowerShell version 7.1.3 or higher. 1. Read access for the specified workspace resources.
-1. The `Az Powershell` module to pull workspace agent configuration information.
+1. The `Az Powershell` module to pull workspace agent configuration information. Make sure `Az.Accounts` and `Az.OperationalInsights` modules are installed.
1. The Azure credentials for running `Connect-AzAccount` and `Select-AzContext`, which set the context for the script to run. To install DCR Config Generator:
azure-monitor Azure Monitor Agent Windows Client https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/agents/azure-monitor-agent-windows-client.md
Title: Set up the Azure Monitor agent on Windows client devices description: This article describes the instructions to install the agent on Windows 10, 11 client OS devices, configure data collection, manage and troubleshoot the agent. Previously updated : 3/30/2023 Last updated : 4/2/2023
Here is a comparison between client installer and VM extension for Azure Monitor
## Limitations 1. The Windows client installer supports latest Windows machines only that are **Azure AD joined** or hybrid Azure AD joined. More information under [prerequisites](#prerequisites) below
-2. The Data Collection rules need can only target the Azure AD tenant scope, i.e. all DCRs associated to the tenant (via Monitored Object) will apply to all Windows client machines within that tenant with the agent installed using this client installer. **Granular targeting using DCRs is not supported** for Windows client devices yet
+2. The Data Collection rules can only target the Azure AD tenant scope, i.e. all DCRs associated to the tenant (via Monitored Object) will apply to all Windows client machines within that tenant with the agent installed using this client installer. **Granular targeting using DCRs is not supported** for Windows client devices yet
3. No support for Windows machines connected via **Azure private links** 4. The agent installed using the Windows client installer is designed mainly for Windows desktops or workstations that are **always connected**. While the agent can be installed via this method on laptops, it is not optimized for battery consumption and network limitations on a laptop.
azure-monitor Alerts Smart Detections Migration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/alerts/alerts-smart-detections-migration.md
To migrate a single Application Insights resource, *body.txt* should include:
```json { "scope": [
-"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName} /providers/microsoft.insights/components/{resourceName} "
+"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/components/{resourceName}"
], "actionGroupCreationPolicy" : "{Auto/Custom}", "customActionGroupName" : "{actionGroupName}"
azure-monitor Java Spring Boot https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/java-spring-boot.md
Title: Configure Azure Monitor Application Insights for Spring Boot description: How to configure Azure Monitor Application Insights for Spring Boot applications Previously updated : 02/22/2023 Last updated : 03/31/2023 ms.devlang: java
There are two options for enabling Application Insights Java with Spring Boot: J
## Enabling with JVM argument
-Add the JVM arg `-javaagent:"path/to/applicationinsights-agent-3.4.10.jar"` somewhere before `-jar`, for example:
+Add the JVM arg `-javaagent:"path/to/applicationinsights-agent-3.4.11.jar"` somewhere before `-jar`, for example:
```
-java -javaagent:"path/to/applicationinsights-agent-3.4.10.jar" -jar <myapp.jar>
+java -javaagent:"path/to/applicationinsights-agent-3.4.11.jar" -jar <myapp.jar>
``` ### Spring Boot via Docker entry point
-If you're using the *exec* form, add the parameter `-javaagent:"path/to/applicationinsights-agent-3.4.10.jar"` to the parameter list somewhere before the `"-jar"` parameter, for example:
+If you're using the *exec* form, add the parameter `-javaagent:"path/to/applicationinsights-agent-3.4.11.jar"` to the parameter list somewhere before the `"-jar"` parameter, for example:
```
-ENTRYPOINT ["java", "-javaagent:path/to/applicationinsights-agent-3.4.10.jar", "-jar", "<myapp.jar>"]
+ENTRYPOINT ["java", "-javaagent:path/to/applicationinsights-agent-3.4.11.jar", "-jar", "<myapp.jar>"]
```
-If you're using the *shell* form, add the JVM arg `-javaagent:"path/to/applicationinsights-agent-3.4.10.jar"` somewhere before `-jar`, for example:
+If you're using the *shell* form, add the JVM arg `-javaagent:"path/to/applicationinsights-agent-3.4.11.jar"` somewhere before `-jar`, for example:
```
-ENTRYPOINT java -javaagent:"path/to/applicationinsights-agent-3.4.10.jar" -jar <myapp.jar>
+ENTRYPOINT java -javaagent:"path/to/applicationinsights-agent-3.4.11.jar" -jar <myapp.jar>
``` ### Configuration
To enable Application Insights Java programmatically, you must add the following
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>applicationinsights-runtime-attach</artifactId>
- <version>3.4.10</version>
+ <version>3.4.11</version>
</dependency> ```
azure-monitor Java Standalone Arguments https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/java-standalone-arguments.md
Title: Add the JVM arg - Application Insights for Java description: Learn how to add the JVM arg that enables Application Insights for Java. Previously updated : 02/22/2023 Last updated : 03/31/2023 ms.devlang: java
If you're using a third-party container image that you can't modify, mount the A
If you installed Tomcat via `apt-get` or `yum`, you should have a file `/etc/tomcat8/tomcat8.conf`. Add this line to the end of that file: ```
-JAVA_OPTS="$JAVA_OPTS -javaagent:path/to/applicationinsights-agent-3.4.10.jar"
+JAVA_OPTS="$JAVA_OPTS -javaagent:path/to/applicationinsights-agent-3.4.11.jar"
``` ### Tomcat installed via download and unzip
JAVA_OPTS="$JAVA_OPTS -javaagent:path/to/applicationinsights-agent-3.4.10.jar"
If you installed Tomcat via download and unzip from [https://tomcat.apache.org](https://tomcat.apache.org), you should have a file `<tomcat>/bin/catalina.sh`. Create a new file in the same directory named `<tomcat>/bin/setenv.sh` with the following content: ```
-CATALINA_OPTS="$CATALINA_OPTS -javaagent:path/to/applicationinsights-agent-3.4.10.jar"
+CATALINA_OPTS="$CATALINA_OPTS -javaagent:path/to/applicationinsights-agent-3.4.11.jar"
```
-If the file `<tomcat>/bin/setenv.sh` already exists, modify that file and add `-javaagent:path/to/applicationinsights-agent-3.4.10.jar` to `CATALINA_OPTS`.
+If the file `<tomcat>/bin/setenv.sh` already exists, modify that file and add `-javaagent:path/to/applicationinsights-agent-3.4.11.jar` to `CATALINA_OPTS`.
## Tomcat 8 (Windows)
If the file `<tomcat>/bin/setenv.sh` already exists, modify that file and add `-
Locate the file `<tomcat>/bin/catalina.bat`. Create a new file in the same directory named `<tomcat>/bin/setenv.bat` with the following content: ```
-set CATALINA_OPTS=%CATALINA_OPTS% -javaagent:path/to/applicationinsights-agent-3.4.10.jar
+set CATALINA_OPTS=%CATALINA_OPTS% -javaagent:path/to/applicationinsights-agent-3.4.11.jar
``` Quotes aren't necessary, but if you want to include them, the proper placement is: ```
-set "CATALINA_OPTS=%CATALINA_OPTS% -javaagent:path/to/applicationinsights-agent-3.4.10.jar"
+set "CATALINA_OPTS=%CATALINA_OPTS% -javaagent:path/to/applicationinsights-agent-3.4.11.jar"
```
-If the file `<tomcat>/bin/setenv.bat` already exists, modify that file and add `-javaagent:path/to/applicationinsights-agent-3.4.10.jar` to `CATALINA_OPTS`.
+If the file `<tomcat>/bin/setenv.bat` already exists, modify that file and add `-javaagent:path/to/applicationinsights-agent-3.4.11.jar` to `CATALINA_OPTS`.
### Run Tomcat as a Windows service
-Locate the file `<tomcat>/bin/tomcat8w.exe`. Run that executable and add `-javaagent:path/to/applicationinsights-agent-3.4.10.jar` to the `Java Options` under the `Java` tab.
+Locate the file `<tomcat>/bin/tomcat8w.exe`. Run that executable and add `-javaagent:path/to/applicationinsights-agent-3.4.11.jar` to the `Java Options` under the `Java` tab.
## JBoss EAP 7 ### Standalone server
-Add `-javaagent:path/to/applicationinsights-agent-3.4.10.jar` to the existing `JAVA_OPTS` environment variable in the file `JBOSS_HOME/bin/standalone.conf` (Linux) or `JBOSS_HOME/bin/standalone.conf.bat` (Windows):
+Add `-javaagent:path/to/applicationinsights-agent-3.4.11.jar` to the existing `JAVA_OPTS` environment variable in the file `JBOSS_HOME/bin/standalone.conf` (Linux) or `JBOSS_HOME/bin/standalone.conf.bat` (Windows):
```java ...
- JAVA_OPTS="-javaagent:path/to/applicationinsights-agent-3.4.10.jar -Xms1303m -Xmx1303m ..."
+ JAVA_OPTS="-javaagent:path/to/applicationinsights-agent-3.4.11.jar -Xms1303m -Xmx1303m ..."
... ``` ### Domain server
-Add `-javaagent:path/to/applicationinsights-agent-3.4.10.jar` to the existing `jvm-options` in `JBOSS_HOME/domain/configuration/host.xml`:
+Add `-javaagent:path/to/applicationinsights-agent-3.4.11.jar` to the existing `jvm-options` in `JBOSS_HOME/domain/configuration/host.xml`:
```xml ...
Add `-javaagent:path/to/applicationinsights-agent-3.4.10.jar` to the existing `j
<jvm-options> <option value="-server"/> <!--Add Java agent jar file here-->
- <option value="-javaagent:path/to/applicationinsights-agent-3.4.10.jar"/>
+ <option value="-javaagent:path/to/applicationinsights-agent-3.4.11.jar"/>
<option value="-XX:MetaspaceSize=96m"/> <option value="-XX:MaxMetaspaceSize=256m"/> </jvm-options>
Add these lines to `start.ini`:
``` --exec--javaagent:path/to/applicationinsights-agent-3.4.10.jar
+-javaagent:path/to/applicationinsights-agent-3.4.11.jar
``` ## Payara 5
-Add `-javaagent:path/to/applicationinsights-agent-3.4.10.jar` to the existing `jvm-options` in `glassfish/domains/domain1/config/domain.xml`:
+Add `-javaagent:path/to/applicationinsights-agent-3.4.11.jar` to the existing `jvm-options` in `glassfish/domains/domain1/config/domain.xml`:
```xml ... <java-config ...> <!--Edit the JVM options here--> <jvm-options>
- -javaagent:path/to/applicationinsights-agent-3.4.10.jar>
+ -javaagent:path/to/applicationinsights-agent-3.4.11.jar>
</jvm-options> ... </java-config>
Add `-javaagent:path/to/applicationinsights-agent-3.4.10.jar` to the existing `j
1. In `Generic JVM arguments`, add the following JVM argument: ```
- -javaagent:path/to/applicationinsights-agent-3.4.10.jar
+ -javaagent:path/to/applicationinsights-agent-3.4.11.jar
``` 1. Save and restart the application server.
Add `-javaagent:path/to/applicationinsights-agent-3.4.10.jar` to the existing `j
Create a new file `jvm.options` in the server directory (for example, `<openliberty>/usr/servers/defaultServer`), and add this line: ```--javaagent:path/to/applicationinsights-agent-3.4.10.jar
+-javaagent:path/to/applicationinsights-agent-3.4.11.jar
``` ## Others
azure-monitor Java Standalone Config https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/java-standalone-config.md
Title: Configuration options - Azure Monitor Application Insights for Java description: This article shows you how to configure Azure Monitor Application Insights for Java. Previously updated : 02/22/2023 Last updated : 03/31/2023 ms.devlang: java
You'll find more information and configuration options in the following sections
## Configuration file path
-By default, Application Insights Java 3.x expects the configuration file to be named `applicationinsights.json`, and to be located in the same directory as `applicationinsights-agent-3.4.10.jar`.
+By default, Application Insights Java 3.x expects the configuration file to be named `applicationinsights.json`, and to be located in the same directory as `applicationinsights-agent-3.4.11.jar`.
You can specify your own configuration file path by using one of these two options: * `APPLICATIONINSIGHTS_CONFIGURATION_FILE` environment variable * `applicationinsights.configuration.file` Java system property
-If you specify a relative path, it will be resolved relative to the directory where `applicationinsights-agent-3.4.10.jar` is located.
+If you specify a relative path, it will be resolved relative to the directory where `applicationinsights-agent-3.4.11.jar` is located.
Alternatively, instead of using a configuration file, you can specify the entire _content_ of the JSON configuration via the environment variable `APPLICATIONINSIGHTS_CONFIGURATION_CONTENT`.
Or you can set the connection string by using the Java system property `applicat
You can also set the connection string by specifying a file to load the connection string from.
-If you specify a relative path, it's resolved relative to the directory where `applicationinsights-agent-3.4.10.jar` is located.
+If you specify a relative path, it's resolved relative to the directory where `applicationinsights-agent-3.4.11.jar` is located.
```json {
and add `applicationinsights-core` to your application:
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>applicationinsights-core</artifactId>
- <version>3.4.10</version>
+ <version>3.4.11</version>
</dependency> ```
In the preceding configuration example:
* `level` can be one of `OFF`, `ERROR`, `WARN`, `INFO`, `DEBUG`, or `TRACE`. * `path` can be an absolute or relative path. Relative paths are resolved against the directory where
-`applicationinsights-agent-3.4.10.jar` is located.
+`applicationinsights-agent-3.4.11.jar` is located.
Starting from version 3.0.2, you can also set the self-diagnostics `level` by using the environment variable `APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL`. It then takes precedence over the self-diagnostics level specified in the JSON configuration.
azure-monitor Java Standalone Upgrade From 2X https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/java-standalone-upgrade-from-2x.md
Title: Upgrading from 2.x - Azure Monitor Application Insights Java description: Upgrading from Azure Monitor Application Insights Java 2.x Previously updated : 02/22/2023 Last updated : 03/31/2023 ms.devlang: java
auto-instrumentation which is provided by the 3.x Java agent.
Add the 3.x Java agent to your JVM command-line args, for example ```--javaagent:path/to/applicationinsights-agent-3.4.10.jar
+-javaagent:path/to/applicationinsights-agent-3.4.11.jar
``` If you were using the Application Insights 2.x Java agent, just replace your existing `-javaagent:...` with the above.
azure-monitor Opentelemetry Enable https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/opentelemetry-enable.md
Title: Enable Azure Monitor OpenTelemetry for .NET, Java, Node.js, and Python applications description: This article provides guidance on how to enable Azure Monitor on applications by using OpenTelemetry. Previously updated : 02/22/2023 Last updated : 03/31/2023 ms.devlang: csharp, javascript, typescript, python
dotnet add package --prerelease Azure.Monitor.OpenTelemetry.Exporter -s https://
#### [Java](#tab/java)
-Download the [applicationinsights-agent-3.4.10.jar](https://github.com/microsoft/ApplicationInsights-Java/releases/download/3.4.10/applicationinsights-agent-3.4.10.jar) file.
+Download the [applicationinsights-agent-3.4.11.jar](https://github.com/microsoft/ApplicationInsights-Java/releases/download/3.4.11/applicationinsights-agent-3.4.11.jar) file.
> [!WARNING] >
public class Program
Java auto-instrumentation is enabled through configuration changes; no code changes are required.
-Point the JVM to the jar file by adding `-javaagent:"path/to/applicationinsights-agent-3.4.10.jar"` to your application's JVM args.
+Point the JVM to the jar file by adding `-javaagent:"path/to/applicationinsights-agent-3.4.11.jar"` to your application's JVM args.
> [!TIP] > For help with configuring your application's JVM args, see [Tips for updating your JVM args](./java-standalone-arguments.md).
Use one of the following two ways to point the jar file to your Application Insi
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String> ``` -- Create a configuration file named `applicationinsights.json`, and place it in the same directory as `applicationinsights-agent-3.4.10.jar` with the following content:
+- Create a configuration file named `applicationinsights.json`, and place it in the same directory as `applicationinsights-agent-3.4.11.jar` with the following content:
```json {
This is not available in .NET.
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>applicationinsights-core</artifactId>
- <version>3.4.10</version>
+ <version>3.4.11</version>
</dependency> ```
azure-monitor Data Collection Endpoint Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/essentials/data-collection-endpoint-overview.md
A DCE includes the following components:
| Component | Description | |:|:|
-| Configuration access endpoint | The endpoint used to access the configuration service to fetch associated data collection rules (DCRs) for Azure Monitor Agent.<br>Example: `<unique-dce-identifier>.<regionname>.handler.control`. |
-| Logs ingestion endpoint | The endpoint used to ingest logs to Log Analytics workspaces.<br>Example: `<unique-dce-identifier>.<regionname>.ingest`. |
+| Configuration access endpoint | The endpoint used to access the configuration service to fetch associated data collection rules (DCRs) for Azure Monitor Agent.<br>Example: `<unique-dce-identifier>.<regionname>-1.handler.control`. |
+| Logs ingestion endpoint | The endpoint used to ingest logs to Log Analytics workspaces.<br>Example: `<unique-dce-identifier>.<regionname>-1.ingest`. |
| Network access control lists | Network access control rules for the endpoints. ## Regionality
azure-monitor Metrics Supported https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/essentials/metrics-supported.md
Previously updated : 03/12/2023 Last updated : 04/02/2023
> [!NOTE] > This list is largely auto-generated. Any modification made to this list via GitHub might be written over without warning. Contact the author of this article for details on how to make permanent updates.
-Date list was last updated: 03/12/2023.
+Date list was last updated: 04/02/2023.
Azure Monitor provides several ways to interact with metrics, including charting them in the Azure portal, accessing them through the REST API, or querying them by using PowerShell or the Azure CLI (Command Line Interface).
This latest update adds a new column and reorders the metrics to be alphabetical
|ActionIdOccurrences |Yes |Action Occurences |Count |Total |Number of times each action appears. |ActionId, Mode, RunId | |ActionNamespacesPerEvent |Yes |Action Namespaces Per Event |Count |Average |Average number of action namespaces per event. |Mode, RunId | |ActionsPerEvent |Yes |Actions Per Event |Count |Average |Number of actions per event. |Mode, RunId |
-|AdaFineTunedTokenTransaction |Yes |Processed Ada FineTuned Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on an Ada FineTuned Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
-|AdaFineTunedTrainingHours |Yes |Processed Ada FineTuned Training Hours (deprecated) |Count |Total |Number of Training Hours Processed on an Ada FineTuned Model |ApiName, FeatureName, UsageChannel, Region |
-|AdaTokenTransaction |Yes |Processed Ada Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on an Ada Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
|AudioSecondsTranscribed |Yes |Audio Seconds Transcribed |Count |Total |Number of seconds transcribed |ApiName, FeatureName, UsageChannel, Region | |AudioSecondsTranslated |Yes |Audio Seconds Translated |Count |Total |Number of seconds translated |ApiName, FeatureName, UsageChannel, Region |
-|BabbageFineTunedTokenTransaction |Yes |Processed Babbage FineFuned Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens processed on a Babbage FineFuned Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
-|BabbageFineTunedTrainingHours |Yes |Processed Babbage FineTuned Training Hours (deprecated) |Count |Total |Number of Training Hours Processed on a Babbage FineTuned Model |ApiName, FeatureName, UsageChannel, Region |
-|BabbageTokenTransaction |Yes |Processed Babbage Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on a Babbage Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
|BaselineEstimatorOverallReward |Yes |Baseline Estimator Overall Reward |Count |Average |Baseline Estimator Overall Reward. |Mode, RunId | |BaselineEstimatorSlotReward |Yes |Baseline Estimator Slot Reward |Count |Average |Baseline Estimator Reward by slot. |SlotId, SlotIndex, Mode, RunId | |BaselineRandomEstimatorOverallReward |Yes |Baseline Random Estimator Overall Reward |Count |Average |Baseline Random Estimator Overall Reward. |Mode, RunId |
This latest update adds a new column and reorders the metrics to be alphabetical
|BaselineRandomEventCount |Yes |Baseline Random Event count |Count |Total |Estimation for baseline random event count. |Mode, RunId | |BaselineRandomReward |Yes |Baseline Random Reward |Count |Total |Estimation for baseline random reward. |Mode, RunId | |BlockedCalls |Yes |Blocked Calls |Count |Total |Number of calls that exceeded rate or quota limit. |ApiName, OperationName, Region, RatelimitKey |
+|CarnegieInferenceCount |Yes |Inference Count |Count |Total |Inference Count of Carnegie Frontdoor Service |Region, Modality, Category, Language, SeverityLevel, UseCustomList |
|CharactersTrained |Yes |Characters Trained (Deprecated) |Count |Total |Total number of characters trained. |ApiName, OperationName, Region | |CharactersTranslated |Yes |Characters Translated (Deprecated) |Count |Total |Total number of characters in incoming text request. |ApiName, OperationName, Region | |ClientErrors |Yes |Client Errors |Count |Total |Number of calls with client side error (HTTP response code 4xx). |ApiName, OperationName, Region, RatelimitKey |
-|CodeCushman001FineTunedTokenTransaction |Yes |Processed Code-Cushman-001 FineTuned Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on a Code-Cushman-001 FineTuned Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
-|CodeCushman001FineTunedTrainingHours |Yes |Processed Code-Cushman-001 FineTuned Traning Hours (deprecated) |Count |Total |Number of Training Hours Processed on a Code-Cushman-001 FineTuned Model |ApiName, FeatureName, UsageChannel, Region |
-|CodeCushman001TokenTransaction |Yes |Processed Code-Cushman-001 Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on a Code-Cushman-001 Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
|ComputerVisionTransactions |Yes |Computer Vision Transactions |Count |Total |Number of Computer Vision Transactions |ApiName, FeatureName, UsageChannel, Region | |ContextFeatureIdOccurrences |Yes |Context Feature Occurrences |Count |Total |Number of times each context feature appears. |FeatureId, Mode, RunId | |ContextFeaturesPerEvent |Yes |Context Features Per Event |Count |Average |Number of context features per event. |Mode, RunId | |ContextNamespacesPerEvent |Yes |Context Namespaces Per Event |Count |Average |Number of context namespaces per event. |Mode, RunId |
-|CurieFineTunedTokenTransaction |Yes |Processed Curie FineTuned Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens processed on a Curie FineTuned Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
-|CurieFineTunedTrainingHours |Yes |Processed Curie FineTuned Training Hours (deprecated) |Count |Total |Number of Training Hours Processed on a Curie FineTuned Model |ApiName, FeatureName, UsageChannel, Region |
-|CurieTokenTransaction |Yes |Processed Curie Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on a Curie Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
|CustomVisionTrainingTime |Yes |Custom Vision Training Time |Seconds |Total |Custom Vision training time |ApiName, FeatureName, UsageChannel, Region | |CustomVisionTransactions |Yes |Custom Vision Transactions |Count |Total |Number of Custom Vision prediction transactions |ApiName, FeatureName, UsageChannel, Region | |DataIn |Yes |Data In |Bytes |Total |Size of incoming data in bytes. |ApiName, OperationName, Region | |DataOut |Yes |Data Out |Bytes |Total |Size of outgoing data in bytes. |ApiName, OperationName, Region |
-|DavinciFineTunedTokenTransaction |Yes |Processed Davinci FineTuned Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on a Davinci FineTuned Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
-|DavinciFineTunedTrainingHours |Yes |Processed Davinci FineTuned Traning Hours (deprecated) |Count |Total |Number of Training Hours Processed on a Davinci FineTuned Model |ApiName, FeatureName, UsageChannel, Region |
-|DavinciTokenTransaction |Yes |Processed Davinci Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on a Davinci Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
|DocumentCharactersTranslated |Yes |Document Characters Translated |Count |Total |Number of characters in document translation request. |ApiName, FeatureName, UsageChannel, Region | |DocumentCustomCharactersTranslated |Yes |Document Custom Characters Translated |Count |Total |Number of characters in custom document translation request. |ApiName, FeatureName, UsageChannel, Region | |FaceImagesTrained |Yes |Face Images Trained |Count |Total |Number of images trained. 1,000 images trained per transaction. |ApiName, FeatureName, UsageChannel, Region |
This latest update adds a new column and reorders the metrics to be alphabetical
|SuccessfulCalls |Yes |Successful Calls |Count |Total |Number of successful calls. |ApiName, OperationName, Region, RatelimitKey | |SuccessRate |No |Availability |Percent |Average |Availability percentage with the following calculation: (Total Calls - Server Errors)/Total Calls. Server Errors include any HTTP responses >=500. |ApiName, OperationName, Region, RatelimitKey | |SynthesizedCharacters |Yes |Synthesized Characters |Count |Total |Number of Characters. |ApiName, FeatureName, UsageChannel, Region |
-|TextAda001TokenTransaction |Yes |Processed Text Ada 001 Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens processed on a text-ada-001 model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
-|TextBabbage001TokenTransaction |Yes |Processed Text Babbage 001 Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens processed on a text-babbage-001 model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
|TextCharactersTranslated |Yes |Text Characters Translated |Count |Total |Number of characters in incoming text translation request. |ApiName, FeatureName, UsageChannel, Region |
-|TextCurie001TokenTransaction |Yes |Processed Text Curie 001 Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on a text-curie-001 Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
|TextCustomCharactersTranslated |Yes |Text Custom Characters Translated |Count |Total |Number of characters in incoming custom text translation request. |ApiName, FeatureName, UsageChannel, Region |
-|TextDavinci001TokenTransaction |Yes |Processed Text Davinci 001 Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on a text-davinci-001 Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
-|TextDavinci002TokenTransaction |Yes |Processed Text Davinci 002 Inference Tokens (deprecated) |Count |Total |Number of Inference Tokens Processed on a text-davinci-002 Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region |
|TextTrainedCharacters |Yes |Text Trained Characters |Count |Total |Number of characters trained using text translation. |ApiName, FeatureName, UsageChannel, Region | |TokenTransaction |Yes |Processed Inference Tokens |Count |Total |Number of Inference Tokens Processed on an OpenAI Model |ApiName, ModelDeploymentName, FeatureName, UsageChannel, Region | |TotalCalls |Yes |Total Calls |Count |Total |Total number of calls. |ApiName, OperationName, Region, RatelimitKey |
This latest update adds a new column and reorders the metrics to be alphabetical
|APIRequestChat |Yes |Chat API Requests |Count |Count |Count of all requests against the Communication Services Chat endpoint. |Operation, StatusCode, StatusCodeClass | |APIRequestNetworkTraversal |No |Network Traversal API Requests |Count |Count |Count of all requests against the Communication Services Network Traversal endpoint. |Operation, StatusCode, StatusCodeClass | |ApiRequestRooms |Yes |Rooms API Requests |Count |Count |Count of all requests against the Communication Services Rooms endpoint. |Operation, StatusCode, StatusCodeClass |
+|ApiRequestRouter |Yes |Job Router API Requests |Count |Count |Count of all requests against the Communication Services Job Router endpoint. |OperationName, StatusCode, StatusCodeSubClass, ApiVersion |
|ApiRequests |Yes |Email Service API Requests |Count |Count |Email Communication Services API request metric for the data-plane API surface. |Operation, StatusCode, StatusCodeClass, StatusCodeReason |
-|APIRequestSMS |Yes |SMS API Requests |Count |Count |Count of all requests against the Communication Services SMS endpoint. |Operation, StatusCode, StatusCodeClass, ErrorCode, NumberType |
+|APIRequestSMS |Yes |SMS API Requests |Count |Count |Count of all requests against the Communication Services SMS endpoint. |Operation, StatusCode, StatusCodeClass, ErrorCode, NumberType, Country, OptAction |
|DeliveryStatusUpdate |Yes |Email Service Delivery Status Updates |Count |Count |Email Communication Services message delivery results. |MessageStatus, Result | |UserEngagement |Yes |Email Service User Engagement |Count |Count |Email Communication Services user engagement metrics. |EngagementType |
This latest update adds a new column and reorders the metrics to be alphabetical
|MaxAllowedResourceCount |Yes |Maximum allowed entities count |Count |Maximum |Maximum allowed entities count |No Dimensions | |PipelineCancelledRuns |Yes |Cancelled pipeline runs metrics |Count |Total |Cancelled pipeline runs metrics |FailureType, CancelledBy, Name | |PipelineElapsedTimeRuns |Yes |Elapsed Time Pipeline Runs Metrics |Count |Total |Elapsed Time Pipeline Runs Metrics |RunId, Name |
-|PipelineFailedRuns |Yes |Failed pipeline runs metrics |Count |Total |Failed pipeline runs metrics |FailureType, Pipeline |
-|PipelineSucceededRuns |Yes |Succeeded pipeline runs metrics |Count |Total |Succeeded pipeline runs metrics |FailureType, Pipeline |
+|PipelineFailedRuns |Yes |Failed pipeline runs metrics |Count |Total |Failed pipeline runs metrics |FailureType, Name |
+|PipelineSucceededRuns |Yes |Succeeded pipeline runs metrics |Count |Total |Succeeded pipeline runs metrics |FailureType, Name |
|ResourceCount |Yes |Total entities count |Count |Maximum |Total entities count |No Dimensions | |SSISIntegrationRuntimeStartCancel |Yes |Cancelled SSIS integration runtime start metrics |Count |Total |Cancelled SSIS integration runtime start metrics |IntegrationRuntimeName | |SSISIntegrationRuntimeStartFailed |Yes |Failed SSIS integration runtime start metrics |Count |Total |Failed SSIS integration runtime start metrics |IntegrationRuntimeName |
This latest update adds a new column and reorders the metrics to be alphabetical
|SSISPackageExecutionCancel |Yes |Cancelled SSIS package execution metrics |Count |Total |Cancelled SSIS package execution metrics |IntegrationRuntimeName | |SSISPackageExecutionFailed |Yes |Failed SSIS package execution metrics |Count |Total |Failed SSIS package execution metrics |IntegrationRuntimeName | |SSISPackageExecutionSucceeded |Yes |Succeeded SSIS package execution metrics |Count |Total |Succeeded SSIS package execution metrics |IntegrationRuntimeName |
-|TriggerCancelledRuns |Yes |Cancelled trigger runs metrics |Count |Total |Cancelled trigger runs metrics |Pipeline, FailureType |
-|TriggerFailedRuns |Yes |Failed trigger runs metrics |Count |Total |Failed trigger runs metrics |Pipeline, FailureType |
-|TriggerSucceededRuns |Yes |Succeeded trigger runs metrics |Count |Total |Succeeded trigger runs metrics |Pipeline, FailureType |
+|TriggerCancelledRuns |Yes |Cancelled trigger runs metrics |Count |Total |Cancelled trigger runs metrics |Name, FailureType |
+|TriggerFailedRuns |Yes |Failed trigger runs metrics |Count |Total |Failed trigger runs metrics |Name, FailureType |
+|TriggerSucceededRuns |Yes |Succeeded trigger runs metrics |Count |Total |Succeeded trigger runs metrics |Name, FailureType |
## Microsoft.DataLakeAnalytics/accounts
This latest update adds a new column and reorders the metrics to be alphabetical
|UpdateDiagnosticsSettings |No |Account Diagnostic Settings Updated |Count |Count |Account Diagnostic Settings Updated |DiagnosticSettingsName, ResourceGroupName |
+## Microsoft.DocumentDB/mongoClusters
+<!-- Data source : naam-->
+
+|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions|
+||||||||
+|CommittedMemoryPercent |No |Committed Memory percent |Percent |Average |Percentage of Commit Memory Limit allocated by applications on node |ServerName |
+|CpuPercent |No |CPU percent |Percent |Average |Percent CPU utilization on node |ServerName |
+|IOPS |Yes |IOPS |Count |Average |Disk IO operations per second on node |ServerName |
+|MemoryPercent |No |Memory percent |Percent |Average |Percent memory utilization on node |ServerName |
+|StoragePercent |No |Storage percent |Percent |Average |Percent of available storage used on node |ServerName |
+|StorageUsed |No |Storage used |Bytes |Average |Quantity of available storage used on node |ServerName |
++ ## microsoft.edgezones/edgezones <!-- Data source : naam-->
This latest update adds a new column and reorders the metrics to be alphabetical
|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| ||||||||
-|ApiCallReceived_Count |Yes |Call Received |Count |Count |Number of requests received via Log Ingestion API or from the agent |InputStreamId, ResponseCode |
-|RowsDropped_Count |Yes |Rows Dropped |Count |Count |Number of rows dropped while running transformation. |InputStreamId |
-|RowsReceived_Count |Yes |Rows Received |Count |Count |Total number of rows recevied for transformation. |InputStreamId |
+|ApiCallReceived_Count |Yes |Request Received |Count |Count |Number of requests received via Log Ingestion API or from the agent |InputStreamId, ResponseCode |
+|RowsDropped_Count |Yes |Rows Dropped |Count |Total |Number of rows dropped while running transformation. |InputStreamId |
+|RowsReceived_Count |Yes |Rows Received |Count |Total |Total number of rows recevied for transformation. |InputStreamId |
|TransformationErrors_Count |Yes |Transformation Errors |Count |Count |The number of times when execution of KQL transformation resulted in an error, e.g. KQL syntax error or going over a service limit. |InputStreamId, ErrorType |
-|TransformationRuntime_DurationMs |Yes |Transformation Runtime Duration |Count |Count |Total time taken to transform given set of records, measured in milliseconds. |InputStreamId |
+|TransformationRuntime_DurationMs |Yes |Transformation Runtime Duration |MilliSeconds |Average |Total time taken to transform given set of records, measured in milliseconds. |InputStreamId |
## Microsoft.IoTCentral/IoTApps
This latest update adds a new column and reorders the metrics to be alphabetical
|capacity_cpu_cores |Yes |Total number of cpu cores in a connected cluster |Count |Total |Total number of cpu cores in a connected cluster |No Dimensions |
+## microsoft.kubernetesconfiguration/extensions
+<!-- Data source : naam-->
+
+|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions|
+||||||||
+|AuthAttempt |Yes |Authentication Attempts |Count |Total |Authentication attempts rate (per minute) |3gppGen, PccpId, SiteId |
+|AuthFailure |Yes |Authentication Failures |Count |Total |Authentication failure rate (per minute) |3gppGen, PccpId, SiteId, Result |
+|AuthSuccess |Yes |Authentication Successes |Count |Total |Authentication success rate (per minute) |3gppGen, PccpId, SiteId |
+|ConnectedNodebs |Yes |Connected NodeBs |Count |Total |Number of connected gNodeBs or eNodeBs |3gppGen, PccpId, SiteId |
+|DeRegistrationAttempt |Yes |DeRegistration Attempts |Count |Total |UE deregistration attempts rate (per minute) |3gppGen, PccpId, SiteId |
+|DeRegistrationSuccess |Yes |DeRegistration Successes |Count |Total |UE deregistration success rate (per minute) |3gppGen, PccpId, SiteId |
+|PagingAttempt |Yes |Paging Attempts |Count |Total |Paging attempts rate (per minute) |3gppGen, PccpId, SiteId |
+|PagingFailure |Yes |Paging Failures |Count |Total |Paging failure rate (per minute) |3gppGen, PccpId, SiteId |
+|ProvisionedSubscribers |No |Provisioned Subscribers |Count |Total |Number of provisioned subscribers |PccpId, SiteId |
+|RanSetupFailure |Yes |RAN Setup Failures |Count |Total |RAN setup failure rate (per minute) |3gppGen, PccpId, SiteId, Cause |
+|RanSetupRequest |Yes |RAN Setup Requests |Count |Total |RAN setup reuests rate (per minute) |3gppGen, PccpId, SiteId |
+|RanSetupResponse |Yes |RAN Setup Responses |Count |Total |RAN setup response rate (per minute) |3gppGen, PccpId, SiteId |
+|RegisteredSubscribers |Yes |Registered Subscribers |Count |Total |Number of registered subscribers |3gppGen, PccpId, SiteId |
+|RegisteredSubscribersConnected |Yes |Registered Subscribers Connected |Count |Total |Number of registered and connected subscribers |3gppGen, PccpId, SiteId |
+|RegisteredSubscribersIdle |Yes |Registered Subscribers Idle |Count |Total |Number of registered and idle subscribers |3gppGen, PccpId, SiteId |
+|RegistrationAttempt |Yes |Registration Attempts |Count |Total |Registration attempts rate (per minute) |3gppGen, PccpId, SiteId |
+|RegistrationFailure |Yes |Registration Failures |Count |Total |Registration failure rate (per minute) |3gppGen, PccpId, SiteId, Result |
+|RegistrationSuccess |Yes |Registration Successes |Count |Total |Registration success rate (per minute) |3gppGen, PccpId, SiteId |
+|ServiceRequestAttempt |Yes |Service Request Attempts |Count |Total |Service request attempts rate (per minute) |3gppGen, PccpId, SiteId |
+|ServiceRequestFailure |Yes |Service Request Failures |Count |Total |Service request failure rate (per minute) |3gppGen, PccpId, SiteId, Result, Tai |
+|ServiceRequestSuccess |Yes |Service Request Successes |Count |Total |Service request success rate (per minute) |3gppGen, PccpId, SiteId |
+|SessionEstablishmentAttempt |Yes |Session Establishment Attempts |Count |Total |PDU session establishment attempts rarte (per minute) |3gppGen, PccpId, SiteId |
+|SessionEstablishmentFailure |Yes |Session Establishment Failures |Count |Total |PDU session establishment failure rate (per minute) |3gppGen, PccpId, SiteId |
+|SessionEstablishmentSuccess |Yes |Session Establishment Successes |Count |Total |PDU session establishment success rate (per minute) |3gppGen, PccpId, SiteId |
+|SessionRelease |Yes |Session Releases |Count |Total |Session release rate (per minute) |3gppGen, PccpId, SiteId |
+|UeContextReleaseCommand |Yes |UE Context Release Commands |Count |Total |UE context release command message rate (per minute) |3gppGen, PccpId, SiteId |
+|UeContextReleaseComplete |Yes |UE Context Release Completes |Count |Total |UE context release complete message rate (per minute) |3gppGen, PccpId, SiteId |
+|UeContextReleaseRequest |Yes |UE Context Release Requests |Count |Total |UE context release request message rate (per minute) |3gppGen, PccpId, SiteId |
+|UserPlaneBandwidth |No |User Plane Bandwidth |BitsPerSecond |Total |User plane bandwidth in bits/second. |PcdpId, SiteId, Direction, Interface |
+|UserPlanePacketDropRate |No |User Plane Packet Drop Rate |CountPerSecond |Total |User plane packet drop rate (packets/sec) |PcdpId, SiteId, Cause, Direction, Interface |
+|UserPlanePacketRate |No |User Plane Packet Rate |CountPerSecond |Total |User plane packet rate (packets/sec) |PcdpId, SiteId, Direction, Interface |
+|XnHandoverAttempt |Yes |Xn Handover Attempts |Count |Total |Handover attempts rate (per minute) |3gppGen, PccpId, SiteId |
+|XnHandoverFailure |Yes |Xn Handover Failures |Count |Total |Handover failure rate (per minute) |3gppGen, PccpId, SiteId |
+|XnHandoverSuccess |Yes |Xn Handover Successes |Count |Total |Handover success rate (per minute) |3gppGen, PccpId, SiteId |
++ ## Microsoft.Kusto/clusters <!-- Data source : naam-->
This latest update adds a new column and reorders the metrics to be alphabetical
|BlobsDropped |Yes |Blobs Dropped |Count |Total |Number of blobs permanently rejected by a component. |Database, ComponentType, ComponentName | |BlobsProcessed |Yes |Blobs Processed |Count |Total |Number of blobs processed by a component. |Database, ComponentType, ComponentName | |BlobsReceived |Yes |Blobs Received |Count |Total |Number of blobs received from input stream by a component. |Database, ComponentType, ComponentName |
-|CacheUtilization |Yes |Cache utilization (deprecated) |Percent |Average |Utilization level in the cluster scope. The metric is deprecated and presented for backward compatibility only, you should use the ΓÇÿCache utilization factor' metric instead. |No Dimensions |
+|CacheUtilization |Yes |Cache utilization (deprecated) |Percent |Average |Utilization level in the cluster scope. The metric is deprecated and presented for backward compatibility only, you should use the 'Cache utilization factor' metric instead. |No Dimensions |
|CacheUtilizationFactor |Yes |Cache utilization factor |Percent |Average |Percentage of utilized disk space dedicated for hot cache in the cluster. 100% means that the disk space assigned to hot data is optimally utilized. No action is needed in terms of the cache size. More than 100% means that the cluster's disk space is not large enough to accommodate the hot data, as defined by your caching policies. To ensure that sufficient space is available for all the hot data, the amount of hot data needs to be reduced or the cluster needs to be scaled out. Enabling auto scale is recommended. |No Dimensions | |ContinuousExportMaxLatenessMinutes |Yes |Continuous Export Max Lateness |Count |Maximum |The lateness (in minutes) reported by the continuous export jobs in the cluster |No Dimensions | |ContinuousExportNumOfRecordsExported |Yes |Continuous export ΓÇô num of exported records |Count |Total |Number of records exported, fired for every storage artifact written during the export operation |ContinuousExportName, Database |
This latest update adds a new column and reorders the metrics to be alphabetical
|||||||| |ErGatewayConnectionBitsInPerSecond |No |Bits In Per Second |BitsPerSecond |Average |Bits per second ingressing Azure via ExpressRoute Gateway which can be further split for specific connections |ConnectionName | |ErGatewayConnectionBitsOutPerSecond |No |Bits Out Per Second |BitsPerSecond |Average |Bits per second egressing Azure via ExpressRoute Gateway which can be further split for specific connections |ConnectionName |
+|ExpressRouteGatewayActiveFlows |Yes |Active Flows |Count |Maximum |Number of Active Flows on ExpressRoute Gateway |roleInstance |
|ExpressRouteGatewayBitsPerSecond |No |Bits Received Per second |BitsPerSecond |Average |Total Bits received on ExpressRoute Gateway per second |roleInstance | |ExpressRouteGatewayCountOfRoutesAdvertisedToPeer |Yes |Count Of Routes Advertised to Peer |Count |Maximum |Count Of Routes Advertised To Peer by ExpressRoute Gateway |roleInstance | |ExpressRouteGatewayCountOfRoutesLearnedFromPeer |Yes |Count Of Routes Learned from Peer |Count |Maximum |Count Of Routes Learned From Peer by ExpressRoute Gateway |roleInstance | |ExpressRouteGatewayCpuUtilization |Yes |CPU utilization |Percent |Average |CPU Utilization of the ExpressRoute Gateway |roleInstance | |ExpressRouteGatewayFrequencyOfRoutesChanged |No |Frequency of Routes change |Count |Total |Frequency of Routes change in ExpressRoute Gateway |roleInstance |
+|ExpressRouteGatewayMaxFlowsCreationRate |No |Max Flows Created Per Second |CountPerSecond |Maximum |Maximum Number of Flows Created Per Second on ExpressRoute Gateway |roleInstance, direction |
|ExpressRouteGatewayNumberOfVmInVnet |No |Number of VMs in the Virtual Network |Count |Maximum |Number of VMs in the Virtual Network |No Dimensions | |ExpressRouteGatewayPacketsPerSecond |No |Packets received per second |CountPerSecond |Average |Total Packets received on ExpressRoute Gateway per second |roleInstance |
This latest update adds a new column and reorders the metrics to be alphabetical
|Metric|Exportable via Diagnostic Settings?|Metric Display Name|Unit|Aggregation Type|Description|Dimensions| ||||||||
-|allocated_data_storage |Yes |Data space allocated |Bytes |Average |Data space allocated |No Dimensions |
-|allocated_data_storage_percent |Yes |Data space allocated percent |Percent |Maximum |Data space allocated percent |No Dimensions |
+|allocated_data_storage |Yes |Data space allocated |Bytes |Average |Data space allocated. Not applicable to hyperscale |No Dimensions |
+|allocated_data_storage_percent |Yes |Data space allocated percent |Percent |Maximum |Data space allocated percent. Not applicable to hyperscale |No Dimensions |
+|app_cpu_billed |Yes |App CPU billed |Count |Total |App CPU billed. Applies to serverless elastic pools. |No Dimensions |
+|app_cpu_percent |Yes |App CPU percentage |Percent |Average |App CPU percentage. Applies to serverless elastic pools. |No Dimensions |
+|app_memory_percent |Yes |App memory percentage |Percent |Average |App memory percentage. Applies to serverless elastic pools. |No Dimensions |
|cpu_limit |Yes |CPU limit |Count |Average |CPU limit. Applies to vCore-based elastic pools. |No Dimensions | |cpu_percent |Yes |CPU percentage |Percent |Average |CPU percentage |No Dimensions | |cpu_used |Yes |CPU used |Count |Average |CPU used. Applies to vCore-based elastic pools. |No Dimensions |
This latest update adds a new column and reorders the metrics to be alphabetical
|sessions_percent |Yes |Sessions percentage |Percent |Average |Sessions percentage |No Dimensions | |sqlserver_process_core_percent |Yes |SQL Server process core percent |Percent |Maximum |CPU usage as a percentage of the SQL DB process. Applies to elastic pools. |No Dimensions | |sqlserver_process_memory_percent |Yes |SQL Server process memory percent |Percent |Maximum |Memory usage as a percentage of the SQL DB process. Applies to elastic pools. |No Dimensions |
-|storage_limit |Yes |Data max size |Bytes |Average |Data max size |No Dimensions |
-|storage_percent |Yes |Data space used percent |Percent |Average |Data space used percent |No Dimensions |
-|storage_used |Yes |Data space used |Bytes |Average |Data space used |No Dimensions |
+|storage_limit |Yes |Data max size |Bytes |Average |Data max size. Not applicable to hyperscale |No Dimensions |
+|storage_percent |Yes |Data space used percent |Percent |Average |Data space used percent. Not applicable to hyperscale |No Dimensions |
+|storage_used |Yes |Data space used |Bytes |Average |Data space used. Not applicable to hyperscale |No Dimensions |
|tempdb_data_size |Yes |Tempdb Data File Size Kilobytes |Count |Maximum |Space used in tempdb data files in kilobytes. |No Dimensions | |tempdb_log_size |Yes |Tempdb Log File Size Kilobytes |Count |Maximum |Space used in tempdb transaction log file in kilobytes. |No Dimensions | |tempdb_log_used_percent |Yes |Tempdb Percent Log Used |Percent |Maximum |Space used percentage in tempdb transaction log file |No Dimensions | |workers_percent |Yes |Workers percentage |Percent |Average |Workers percentage |No Dimensions |
-|xtp_storage_percent |Yes |In-Memory OLTP storage percent |Percent |Average |In-Memory OLTP storage percent |No Dimensions |
+|xtp_storage_percent |Yes |In-Memory OLTP storage percent |Percent |Average |In-Memory OLTP storage percent. Not applicable to hyperscale |No Dimensions |
## Microsoft.Storage/storageAccounts
This latest update adds a new column and reorders the metrics to be alphabetical
|ServerSyncSessionResult |Yes |Sync Session Result |Count |Average |Metric that logs a value of 1 each time the Server Endpoint successfully completes a Sync Session with the Cloud Endpoint |SyncGroupName, ServerEndpointName, SyncDirection | |StorageSyncBatchTransferredFileBytes |Yes |Bytes synced |Bytes |Total |Total file size transferred for Sync Sessions |SyncGroupName, ServerEndpointName, SyncDirection | |StorageSyncComputedCacheHitRate |Yes |Cloud tiering cache hit rate |Percent |Average |Percentage of bytes that were served from the cache |SyncGroupName, ServerName, ServerEndpointName |
+|StorageSyncDataSizeByAccessPattern |No |Cache data size by last access time |Bytes |Average |Size of data by last access time |SyncGroupName, ServerName, ServerEndpointName, LastAccessTime |
+|StorageSyncIncrementalTieredDataSizeBytes |Yes |Cloud tiering size of data tiered by last maintenance job |Bytes |Total |Size of data tiered during last maintenance job |SyncGroupName, ServerName, ServerEndpointName, TieringReason |
|StorageSyncRecallComputedSuccessRate |Yes |Cloud tiering recall success rate |Percent |Average |Percentage of all recalls that were successful |SyncGroupName, ServerName, ServerEndpointName | |StorageSyncRecalledNetworkBytesByApplication |Yes |Cloud tiering recall size by application |Bytes |Total |Size of data recalled by application |SyncGroupName, ServerName, ApplicationName | |StorageSyncRecalledTotalNetworkBytes |Yes |Cloud tiering recall size |Bytes |Total |Size of data recalled |SyncGroupName, ServerName, ServerEndpointName |
This latest update adds a new column and reorders the metrics to be alphabetical
|StorageSyncServerHeartbeat |Yes |Server Online Status |Count |Maximum |Metric that logs a value of 1 each time the resigtered server successfully records a heartbeat with the Cloud Endpoint |ServerName | |StorageSyncSyncSessionAppliedFilesCount |Yes |Files Synced |Count |Total |Count of Files synced |SyncGroupName, ServerEndpointName, SyncDirection | |StorageSyncSyncSessionPerItemErrorsCount |Yes |Files not syncing |Count |Average |Count of files failed to sync |SyncGroupName, ServerEndpointName, SyncDirection |
+|StorageSyncTieredDataSizeBytes |Yes |Cloud tiering size of data tiered |Bytes |Average |Size of data tiered to Azure file share |SyncGroupName, ServerName, ServerEndpointName |
|StorageSyncTieringCacheSizeBytes |Yes |Server cache size |Bytes |Average |Size of data cached on the server |SyncGroupName, ServerName, ServerEndpointName |
This latest update adds a new column and reorders the metrics to be alphabetical
- [Export metrics to storage, Event Hub, or Log Analytics](../essentials/platform-logs-overview.md)
-<!--Gen Date: Sun Mar 12 2023 11:30:35 GMT+0200 (Israel Standard Time)-->
+<!--Gen Date: Sun Apr 02 2023 09:56:30 GMT+0300 (Israel Daylight Time)-->
azure-monitor Prometheus Api Promql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/essentials/prometheus-api-promql.md
To set up Azure Active Directory authentication, follow the steps below:
1. To register an app, follow the steps in [Register an App to request authorization tokens and work with APIs](../logs/api/register-app-for-token.md?tabs=portal) ### Allow your app access to your workspace
-Allow your app to query data from your Azure Monitor workspace.
+Assign the *Monitoring Data Reader* role your app so it can query data from your Azure Monitor workspace.
1. Open your Azure Monitor workspace in the Azure portal.
curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
--data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id=<your apps client ID>' \ --data-urlencode 'client_secret=<your apps client secret' \data-urlencode 'resource= https://prometheus.monitor.azure.com'
+--data-urlencode 'resource=https://prometheus.monitor.azure.com'
``` Sample response body:
The following limitations are in addition to those detailed in the Prometheus sp
For more information on Prometheus metrics limits, see [Prometheus metrics](../../azure-monitor/service-limits.md#prometheus-metrics) + ## Next steps [Azure Monitor workspace overview (preview)](./azure-monitor-workspace-overview.md)
azure-monitor Prometheus Metrics Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/essentials/prometheus-metrics-overview.md
See [Azure Monitor service limits](../service-limits.md#prometheus-metrics) for
- Metrics addon doesn't work on AKS clusters configured with HTTP proxy. - Scraping and storing metrics at frequencies less than 1 second isn't supported. - ## Prometheus references Following are links to Prometheus documentation.
azure-monitor Resource Logs Categories https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/essentials/resource-logs-categories.md
Title: Supported categories for Azure Monitor resource logs
description: Understand the supported services and event schemas for Azure Monitor resource logs. Previously updated : 03/12/2023 Last updated : 04/02/2023
If you think something is missing, you can open a GitHub comment at the bottom o
|Category|Category Display Name|Costs To Export| ||||
+|AppEnvSpringAppConsoleLogs |Spring App console logs |Yes |
|ContainerAppConsoleLogs |Container App console logs |Yes | |ContainerAppSystemLogs |Container App system logs |Yes |
If you think something is missing, you can open a GitHub comment at the bottom o
|EmailSendMailOperational |Email Service Send Mail Logs |Yes | |EmailStatusUpdateOperational |Email Service Delivery Status Update Logs |Yes | |EmailUserEngagementOperational |Email Service User Engagement Logs |Yes |
+|JobRouterOperational |Operational Job Router Logs |Yes |
|NetworkTraversalDiagnostics |Network Traversal Relay Diagnostic Logs |Yes | |NetworkTraversalOperational |Operational Network Traversal Logs |Yes | |RoomsOperational |Operational Rooms Logs |Yes |
If you think something is missing, you can open a GitHub comment at the bottom o
|Requests |Request Logs |No |
+## Microsoft.DataProtection/BackupVaults
+<!-- Data source : naam-->
+
+|Category|Category Display Name|Costs To Export|
+||||
+|AddonAzureBackupJobs |Addon Azure Backup Job Data |Yes |
+|AddonAzureBackupPolicy |Addon Azure Backup Policy Data |Yes |
+|AddonAzureBackupProtectedInstance |Addon Azure Backup Protected Instance Data |Yes |
+|CoreAzureBackup |Core Azure Backup Data |Yes |
++ ## Microsoft.DataShare/accounts <!-- Data source : arm-->
If you think something is missing, you can open a GitHub comment at the bottom o
|Category|Category Display Name|Costs To Export| ||||
+|PostgreSQLFlexDatabaseXacts |PostgreSQL remaining transactions |Yes |
+|PostgreSQLFlexQueryStoreRuntime |PostgreSQL Query Store Runtime |Yes |
+|PostgreSQLFlexQueryStoreWaitStats |PostgreSQL Query Store Wait Statistics |Yes |
+|PostgreSQLFlexSessions |PostgreSQL Sessions data |Yes |
+|PostgreSQLFlexTableStats |PostgreSQL Autovacuum and schema statistics |Yes |
|PostgreSQLLogs |PostgreSQL Server Logs |No |
If you think something is missing, you can open a GitHub comment at the bottom o
|AzurePolicyEvaluationDetails |Azure Policy Evaluation Details |Yes |
-## microsoft.kubernetesconfiguration/extensions
-<!-- Data source : naam-->
-
-|Category|Category Display Name|Costs To Export|
-||||
-|KubernetesAudit |Kubernetes Audit Logs |Yes |
-- ## Microsoft.Kusto/clusters <!-- Data source : naam-->
If you think something is missing, you can open a GitHub comment at the bottom o
|AddonAzureBackupPolicy |Addon Azure Backup Policy Data |No | |AddonAzureBackupProtectedInstance |Addon Azure Backup Protected Instance Data |No | |AddonAzureBackupStorage |Addon Azure Backup Storage Data |No |
+|ASRReplicatedItems |Azure Site Recovery Replicated Items Details |Yes |
|AzureBackupReport |Azure Backup Reporting Data |No | |AzureSiteRecoveryEvents |Azure Site Recovery Events |No | |AzureSiteRecoveryJobs |Azure Site Recovery Jobs |No |
If you think something is missing, you can open a GitHub comment at the bottom o
* [Analyze logs from Azure storage with Log Analytics](./resource-logs.md#send-to-log-analytics-workspace)
-<!--Gen Date: Sun Mar 12 2023 11:30:35 GMT+0200 (Israel Standard Time)-->
+<!--Gen Date: Sun Apr 02 2023 09:56:30 GMT+0300 (Israel Daylight Time)-->
azure-monitor Basic Logs Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/logs/basic-logs-configure.md
Configure a table for Basic logs if:
| Dev Center | [DevCenterDiagnosticLogs](/azure/azure-monitor/reference/tables/DevCenterDiagnosticLogs) | | Firewalls | [AZFWFlowTrace](/azure/azure-monitor/reference/tables/AZFWFlowTrace) | | Health Data | [AHDSMedTechDiagnosticLogs](/azure/azure-monitor/reference/tables/AHDSMedTechDiagnosticLogs) |
+ | Kubernetes services | [AKSAudit](/azure/azure-monitor/reference/tables/AKSAudit)<br>[AKSAuditAdmin](/azure/azure-monitor/reference/tables/AKSAuditAdmin)<br>[AKSControlPlane](/azure/azure-monitor/reference/tables/AKSControlPlane) |
| Media Services | [AMSLiveEventOperations](/azure/azure-monitor/reference/tables/AMSLiveEventOperations)<br>[AMSKeyDeliveryRequests](/azure/azure-monitor/reference/tables/AMSKeyDeliveryRequests)<br>[AMSMediaAccountHealth](/azure/azure-monitor/reference/tables/AMSMediaAccountHealth)<br>[AMSStreamingEndpointRequests](/azure/azure-monitor/reference/tables/AMSStreamingEndpointRequests) | | Redis Cache Enterprise | [REDConnectionEvents](/azure/azure-monitor/reference/tables/REDConnectionEvents) | | Sphere | [ASCAuditLogs](/azure/azure-monitor/reference/tables/ASCAuditLogs)<br>[ASCDeviceEvents](/azure/azure-monitor/reference/tables/ASCDeviceEvents) |
azure-monitor Custom Fields Migrate https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/logs/custom-fields-migrate.md
+
+ Title: Migration of custom fields to KQL-based transformations in Azure Monitor
+description: Learn how to migrate custom fields in a Log Analytics workspace in Azure Monitor with KQL-based custom columns using transformations.
++ Last updated : 03/31/2023+++
+# Tutorial: Replace custom fields in Log Analytics workspace with KQL-based custom columns
+
+Custom fields is a feature of Azure Monitor that allows you to extract into a separate column data from a different text column of the same table. Creation of new custom fields will be disabled starting March 31st, 2023. Custom fields functionality will be deprecated and existing custom fields will stop functioning on March 31st, 2026.
+
+There are several advantages to using DCR-based [ingestion-time transformations](../essentials/data-collection-transformations.md) to accomplish the same result:
+
+- You can apply full set of [string functions](/azure/data-explorer/kusto/query/scalarfunctions#string-functions) to shape your custom columns.
+- You can apply multiple operations to the same data. For example, extract a portion of a value to a separate column and remove the original column.
+- You can use ingestion-time transformations in your ARM templates to deploy custom columns at scale.
+
+With the introduction of [data collection rules (DCR)](../essentials/data-collection-rule-overview.md), KQL-based transformations are the standard method of table customization, replacing legacy custom fields.
+
+In this tutorial, you learn how to:
+
+> [!div class="checklist"]
+> * Locate custom fields that require replacement
+> * Understand the content of the custom fields
+> * Setup ingestion-time transformation to replace custom fields within the table
++
+## Prerequisites
+
+- Log Analytics workspace with a table containing custom fields
+- Sufficient account privilege to create and modify data collection rules (DCR)
+++
+## Locate custom fields for replacement
+Start by locating custom fields to replace. If you already know the custom fields you plan to replace, proceed to the next step.
+
+1. Navigate to the Log Analytics workspace where the table with custom fields is located.
+2. In the side menu, select **Tables**. Select **Manage table** from the context menu for the table.
+
+ :::image type="content" source="media/custom-fields-migrate/manage-table.png" alt-text="Screenshot showing the manage table option for a table in a Log Analytics workspace" lightbox="media/custom-fields-migrate/manage-table.png":::
+
+1. Note if any data collection rules (DCRs) are associated with given table.
+
+ - If any DCRs are present in corresponding section, it means that any pre-existing custom fields were either already implemented within these DCRs, or abandoned upon DCR creation. You're going to examine the content of custom fields on the next step of this tutorial and determine whether more updates to DCRs needed.
+ - If there are no data collection rules associated with the table, then all columns in given table with names ending with "_CF" will be custom fields subject to replacement.
+
+ :::image type="content" source="media/custom-fields-migrate/manage-table-details.png" alt-text="Screenshot showing the properties of a table including data collection rules associated with the table" lightbox="media/custom-fields-migrate/manage-table-details.png":::
+
+2. Close the table properties dialog and select **Edit schema** from the table context menu. Scroll to the bottom of page where custom columns are listed. These columns end with *_CF*.
+
+ :::image type="content" source="media/custom-fields-migrate/custom-columns.png" alt-text="Screenshot showing the column listing for a table including any custom columns" lightbox="media/custom-fields-migrate/custom-columns.png":::
+
+1. Note the names of these columns since you'll determine their content in the next step.
+
+## Understand custom field content
+Since there is no way to examine the custom field definition directly, you need to query the table to determine the custom field formula.
+
+1. Select **Logs** in the side menu and run a query to get a sample of data from the table.
+
+ :::image type="content" source="media/custom-fields-migrate/log-analytics-sample-data.png" alt-text="Screenshot of Log Analytics with query returning sample data" lightbox="media/custom-fields-migrate/log-analytics-sample-data.png":::
+
+1. Locate the columns noted in the previous step and examine their content.
+ - If the column *is not empty* and *there are DCRs* associated with the table, then custom field logic has been already implemented with transformation. No action is required
+ - If the column *is empty* (or not present in query results) and *there are DCRs* associated with the table, the custom field logic was not implemented with the DCR. Add a transformation to the dataflow in the existing DCR.
+ - If the column *is not empty* and *there are no DCRs* associated with the table, the custom field logic needs to implemented as a transformation in the [workspace DCR](../essentials/data-collection-transformations.md#workspace-transformation-dcr).
+
+1. Examine the content of the custom field and determine the logic how it's being calculated. Custom fields usually calculate substrings of other columns in the same table. Determine which column the data comes from and the portion of the string it extracts.
+
+## Create transformation
+You're now ready to create the required KQL snippet and add it to a DCR. This logic is applied to each record as it's ingested into the workspace.
+
+1. Modify the query for the table using KQL to replicate the custom field logic. If you have multiple custom fields to replace, you may combine their calculation logic into a single statement.
+
+ - Use [parse](/azure/data-explorer/kusto/query/parseoperator) operator for pattern-based search of a substring within a string.
+ - Use [extract()](/azure/data-explorer/kusto/query/extractfunction) function for regex-based substring search.
+ - String functions as [split()](/azure/data-explorer/kusto/query/splitfunction), [substring()](/azure/data-explorer/kusto/query/substringfunction) and [many others](/azure/data-explorer/kusto/query/scalarfunctions#string-functions) may also be useful.
+
+ :::image type="content" source="media/custom-fields-migrate/log-analytics-transformation-query.png" alt-text="Screenshot of Log Analytics with query returning data using transformation query" lightbox="media/custom-fields-migrate/log-analytics-transformation-query.png":::
+
+2. Determine where your new KQL definition of the custom column needs to be placed.
+
+ - For logs collected using [Azure Monitor Agent (AMA)](../agents/agents-overview.md), [edit the DCR](../essentials/data-collection-rule-edit.md) collecting data for the table, adding a transformation. For an example, see [Samples](../essentials/data-collection-transformations.md#samples). The transformation query is defined in the `transformKql` element.
+ - For resource logs collected with [diagnostic settings](../essentials/diagnostic-settings.md), add the transformation to the [workspace default DCR](../essentials/data-collection-transformations.md#workspace-transformation-dcr). The table must [support transformations](../logs/tables-feature-support.md).
+++
+## Frequently Asked Questions
+
+### How do I migrate custom fields for a text log collected with legacy Log Analytics agent (MMA)?
+
+Consider migrating to Azure Monitor Agent (AMA). Log Analytics agent is approaching its end of support, and you should migrate to Azure Monitor Agent (AMA). [Text logs collected with AMA](../agents/data-collection-text-log.md) use log parsing logic defined in form of KQL transformations from the start. Custom fields are not required and not supported in text logs collected by Azure Monitor Agent.
+
+### Is migration of custom fields to KQL mandatory?
+
+No. You need to migrate your custom fields only if you still want your custom columns populated. If you don't migrate your custom fields, corresponding columns will stop being populated when support of custom fields is ended. Data that has been already processed and stored in the table will not be affected and will remain usable.
+
+### Will I lose my existing data in corresponding columns if I don't migrate my custom fields in time?
+
+No. Custom fields are calculated at the time of data ingestion. Deleting the field definition or not migrating them in time will not affect any data previously ingested.
+
+## Next steps
+
+- [Read more about transformations in Azure Monitor.](../essentials/data-collection-transformations.md)
+
azure-monitor Custom Fields https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/logs/custom-fields.md
Title: Custom fields in Azure Monitor (Preview) | Microsoft Docs
+ Title: Custom fields in Azure Monitor (Preview)
description: The Custom Fields feature of Azure Monitor allows you to create your own searchable fields from records in a Log Analytics workspace that add to the properties of a collected record. This article describes the process to create a custom field and provides a detailed walkthrough with a sample event. Previously updated : 10/20/2021 Last updated : 03/31/2023 # Create custom fields in a Log Analytics workspace in Azure Monitor (Preview)
-> [!NOTE]
-> This article describes how to parse text data in a Log Analytics workspace as it's collected. We recommend parsing text data in a query filter after it's collected following the guidance described in [Parse text data in Azure Monitor](./parse-text.md). It provides several advantages over using custom fields.
- > [!IMPORTANT]
-> Custom fields increases the amount of data collected in the Log Analytics workspace which can increase your cost. See [Azure Monitor Logs pricing details](cost-logs.md) for details.
+> Creation of new custom fields will be disabled starting March 31, 2023. Custom fields functionality will be deprecated, and existing custom fields will stop functioning by March 31, 2026. You should [migrate to ingestion-time transformations](custom-fields-migrate.md) to keep parsing your log records.
+>
+> Currently, when you add a new custom field, it may take up to 7 days before data starts appearing.
The **Custom Fields** feature of Azure Monitor allows you to extend existing records in your Log Analytics workspace by adding your own searchable fields. Custom fields are automatically populated from data extracted from other properties in the same record.
Once you have performed the initial extract, Log Analytics will display its resu
6. Wait for new records matching the specified criteria to be collected and then run the log search again. New records should have the custom field. 7. Use the custom field like any other record property. You can use it to aggregate and group data and even use it to produce new insights.
-## Viewing custom fields
-You can view a list of all custom fields in your management group from the **Advanced Settings** menu of your Log Analytics workspace in the Azure portal. Select **Data** and then **Custom fields** for a list of all custom fields in your workspace.
-
-![Custom fields](media/custom-fields/list.png)
- ## Removing a custom field There are two ways to remove a custom field. The first is the **Remove** option for each field when viewing the complete list as described above. The other method is to retrieve a record and click the button to the left of the field. The menu will have an option to remove the custom field.
azure-monitor Data Security https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/logs/data-security.md
As described above, data from the management server or direct-connected agents i
### 3. The Azure Monitor service receives and processes data The Azure Monitor service ensures that incoming data is from a trusted source by validating certificates and the data integrity with Azure authentication. The unprocessed raw data is then stored in an Azure Event Hub in the region the data will eventually be stored at rest. The type of data that is stored depends on the types of solutions that were imported and used to collect data. Then, the Azure Monitor service processes the raw data and ingests it into the database.
-The retention period of collected data stored in the database depends on the selected pricing plan. For the *Free* tier, collected data is available for seven days. For the *Paid* tier, collected data is available for 31 days by default, but can be extended to 730 days. Data is stored encrypted at rest in Azure storage, to ensure data confidentiality, and the data is replicated within the local region using locally redundant storage (LRS). The last two weeks of data are also stored in SSD-based cache and this cache is encrypted.
+The retention period of collected data stored in the database depends on the selected pricing plan. For the *Free* tier, collected data is available for seven days. For the *Paid* tier, collected data is available for 31 days by default, but can be extended to 730 days. Data is stored encrypted at rest in Azure storage, to ensure data confidentiality, and the data is replicated within the local region using locally redundant storage (LRS), or zone-redundant storage (ZRS) in [supported regions](../logs/availability-zones.md). The last two weeks of data are also stored in SSD-based cache and this cache is encrypted.
Data in database storage cannot be altered once ingested but can be deleted via [*purge* API path](personal-data-mgmt.md#delete). Although data cannot be altered, some certifications require that data is kept immutable and cannot be changed or deleted in storage. Data immutability can be achieved using [data export](logs-data-export.md) to a storage account that is configured as [immutable storage](../../storage/blobs/immutable-policy-configure-version-scope.md).
azure-netapp-files Configure Customer Managed Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-netapp-files/configure-customer-managed-keys.md
na Previously updated : 03/31/2023 Last updated : 03/07/2023
The following diagram demonstrates how customer-managed keys work with Azure Net
> Customer-managed keys for Azure NetApp Files volume encryption is currently in preview. You need to submit a waitlist request for accessing the feature through the **[Customer-managed keys for Azure NetApp Files volume encryption](https://aka.ms/anfcmkpreviewsignup)** page. Customer-managed keys feature is expected to be enabled within a week from submitting waitlist request. * Customer-managed keys can only be configured on new volumes. You can't migrate existing volumes to customer-managed key encryption.
-* To create a volume using customer-managed keys, you must select the *Standard* network features. You can't use customer-managed key volumes with volume configured using Basic network features. Follow instructions in [Set the Network Features option](configure-network-features.md#set-the-network-features-option) to create a volume.
+* To create a volume using customer-managed keys, you must select the *Standard* network features. You can't use customer-managed key volumes with volume configured using Basic network features. Follow instructions in to [Set the Network Features option](configure-network-features.md#set-the-network-features-option) in the volume creation page.
+* Switching from user-assigned identity to the system-assigned identity isn't currently supported.
* MSI Automatic certificate renewal isn't currently supported. * The MSI certificate has a lifetime of 90 days. It becomes eligible for renewal after 46 days. **After 90 days, the certificate is no longer be valid and the customer-managed key volumes under the NetApp account will go offline.** * To renew, you need to call the NetApp account operation `renewCredentials` if eligible for renewal. If it's not eligible, an error message will communicate the date of eligibility.
Before creating your first customer-managed key volume, you must have set up:
* The key vault must have soft delete and purge protection enabled. * The key must be of type RSA. * The key vault must have an [Azure Private Endpoint](../private-link/private-endpoint-overview.md).
- * You need a private endpoint in each VNet you intend on using for Azure NetApp Files volumes
* The private endpoint must reside in a different subnet than the one delegated to Azure NetApp Files. The subnet must be in the same VNet as the one delegated to Azure NetApp.
- * The network security group on the Azure NetApp Files delegated subnet must allow incoming traffic from the subnet where the VM mounting Azure NetApp Files volumes is located.
- * The network security group on the Azure NetApp Files delegated subnet must also allow outgoing traffic to the subnet where the private endpoint is located.
For more information about Azure Key Vault and Azure Private Endpoint, refer to: * [Quickstart: Create a key vault ](../key-vault/general/quick-create-portal.md)
For more information about Azure Key Vault and Azure Private Endpoint, refer to:
* `Microsoft.KeyVault/vaults/keys/decrypt/action` The user-assigned identity you select is added to your NetApp account. Due to the customizable nature of role-based access control (RBAC), the Azure portal doesn't configure access to the key vault. See [Provide access to Key Vault keys, certificates, and secrets with an Azure role-based access control](../key-vault/general/rbac-guide.md) for details on configuring Azure Key Vault.
-1. After selecting the **Save** button, you'll receive a notification communicating the status of the operation. If the operation was not successful, an error message displays. Refer to [error messages and troubleshooting](#error-messages-and-troubleshooting) for assistance in resolving the error.
+1. After selecting **Save** button, you'll receive a notification communicating the status of the operation. If the operation was not successful, an error message displays. Refer to [error messages and troubleshooting](#error-messages-and-troubleshooting) for assistance in resolving the error.
## Use role-based access control
backup Whats New https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/whats-new.md
You can learn more about the new releases by bookmarking this page or by [subscr
## Updates summary - March 2023
+ - [Multiple backups per day for Azure VMs is now generally available](#multiple-backups-per-day-for-azure-vms-is-now-generally-available)
- [Immutable vault for Azure Backup is now generally available](#immutable-vault-for-azure-backup-is-now-generally-available) - [Support for selective disk backup with enhanced policy for Azure VM (preview)](#support-for-selective-disk-backup-with-enhanced-policy-for-azure-vm-preview) - [Azure Kubernetes Service backup (preview)](#azure-kubernetes-service-backup-preview) - [Azure Blob vaulted backups (preview)](#azure-blob-vaulted-backups-preview)
- - [Multiple backups per day for Azure VMs is now generally available](#multiple-backups-per-day-for-azure-vms-is-now-generally-available)
- - October 2022 - [Multi-user authorization using Resource Guard for Backup vault (in preview)](#multi-user-authorization-using-resource-guard-for-backup-vault-in-preview) - [Enhanced soft delete for Azure Backup (preview)](#enhanced-soft-delete-for-azure-backup-preview)
You can learn more about the new releases by bookmarking this page or by [subscr
## Multiple backups per day for Azure VMs is now generally available
-Azure Backup now enables you to create a backup policy to take multiple backups a day. With this capability, you can also define the duration in which your backup jobs would trigger and align your backup schedule with the working hours when there are frequent updates to Azure Virtual Machines. For more information, see [Back up an Azure VM using Enhanced policy](backup-azure-vms-enhanced-policy.md).
+Azure Backup now enables you to create a backup policy to take multiple backups a day. With this capability, you can also define the duration in which your backup jobs would trigger and align your backup schedule with the working hours when there are frequent updates to Azure Virtual Machines.
+
+For more information, see [Back up an Azure VM using Enhanced policy](backup-azure-vms-enhanced-policy.md).
## Immutable vault for Azure Backup is now generally available
chaos-studio Sample Template Experiment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/chaos-studio/sample-template-experiment.md
In this sample, we create a chaos experiment with a single target resource and a
"type": "SystemAssigned" }, "properties": {
- "identity": {
- "properties": {
- "type": "SystemAssigned"
- }
- },
"selectors": [ { "id": "Selector1",
cognitive-services Copy Model https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cognitive-services/Translator/custom-translator/how-to/copy-model.md
Copying a model to other workspaces enables model lifecycle management (for exam
1. Fill out the target details.
-1. Select **Copy model**.
-
-1. A notification panel shows the copy progress. The process should complete fairly quickly:
-
-1. Complete the **workspace**, **project**, and **model name** sections of the copy model dialog window:
+ :::image type="content" source="../media/how-to/copy-model-1.png" alt-text="Screenshot illustrating the copy model dialog window.":::
- :::image type="content" source="../media/how-to/copy-model-1.png" alt-text="Screenshot illustrating the copy model dialog window.":::
-
-1. A **notifications** window displays the copy process status:
-
- :::image type="content" source="../media/how-to/copy-model-2.png" alt-text="Screenshot illustrating notification that the copy model is in process.":::
+ > [!Note]
+ >
+ > A dropdown list displays the list of workspaces available to use. Otherwise, select **Create a new workspace**.
+ >
+ > If selected workspace contains a project for the same language pair, it can be selected from the Project dropdown list, otherwise, select **Create a new project** to create one.
-1. A **model details** window appears when the copy process is complete.
+1. Select **Copy model**.
- :::image type="content" source="../media/how-to/copy-model-3.png" alt-text="Screenshot illustrating the copy complete dialog window.":::
+1. A notification panel shows the copy progress. The process should complete fairly quickly:
- > [!Note]
- >
- > A dropdown list displays the list of workspaces available to use. Otherwise, click **Create a new workspace**.
- > If selected workspace contains a project for the same language pair, it can be selected from the Project dropdown list, otherwise, click **Create a new project** to create one.
+ :::image type="content" source="../media/how-to/copy-model-2.png" alt-text="Screenshot illustrating notification that the copy model is in process.":::
1. After **Copy model** completion, a copied model is available in the target workspace and ready to publish. A **Copied model** watermark is appended to the model name.
+ :::image type="content" source="../media/how-to/copy-model-3.png" alt-text="Screenshot illustrating the copy complete dialog window.":::
+ ## Next steps > [!div class="nextstepaction"]
communication-services Email Pricing https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/concepts/email-pricing.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - # Email pricing in Azure Communication Services - Prices for Azure Communication Services are generally based on a pay-as-you-go model and Email offers pay-as-you-go pricing as well. The prices in the following examples are for illustrative purposes and may not reflect the latest Azure pricing. ## Email price
- The price is based on number of messages sent to the recipient and amount of data transferred to each recipient which includes headers, message content (including text and images), and attachments. Messages can be sent to one more recipients.
+ The price is based on number of messages sent to the recipient and amount of data transferred to each recipient which includes headers, message content (including text and images), and attachments. Messages can be sent to one or more recipients.
|Email Send |Data Transferred|
communication-services Email Attachment Allowed Mime Types https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/concepts/email/email-attachment-allowed-mime-types.md
Previously updated : 03/24/2023 Last updated : 03/31/2023 - # Allowed attachment types for sending email in Azure Communication Services Email
communication-services Email Authentication Best Practice https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/concepts/email/email-authentication-best-practice.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - # Best practices for sender authentication support in Azure Communication Services Email - This article provides the Email Sending best practices on DNS records and how to use the sender authentication methods that help prevent attackers from sending messages that look like they come from your domain. ## Email authentication and DNS setup
communication-services Email Domain And Sender Authentication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/concepts/email/email-domain-and-sender-authentication.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - # Email domains and sender authentication for Azure Communication Services - An email domain is a unique name that appears after the @ sign-in email addresses. It typically takes the form of your organization's name and brand that is recognized in public. Using your domain in email allows users to trust that this message isn't a phishing attempt, and that it is coming from a trusted source, thereby building credibility for your brand. If you prefer, you can utilize the email domains that is offered through the Azure Communication Services. We offer an email domain that can be used to send emails on behalf of your organization. ## Email domains and sender authentication
communication-services Email Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/concepts/email/email-overview.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - # Email in Azure Communication Services - Azure Communication Services Email is a new primitive that facilitates high volume transactional, bulk and marketing emails on the Azure Communication Services platform and will enable Application-to-Person (A2P) use cases. Azure Communication Services Email is going to simplify the integration of email capabilities to your applications using production-ready email SDK options. Email enables rich collaboration in communication modalities combining with SMS and other communication channels to build collaborative applications to help reach your customers in their preferred communication channel. Azure Communication Services Email offers will improve your time-to-market with scalable, reliable email capabilities with your own SMTP domains. Like other communication modalities Email offering has the benefit of only paying for what you use.
communication-services Prepare Email Communication Resource https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/concepts/email/prepare-email-communication-resource.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - # Prepare Email Communication resource for Azure Communication Service - Similar to Chat, VoIP and SMS modalities under the Azure Communication Services, you'll be able to send an email using Azure Communication Resource. However sending an email requires certain pre-configuration steps and you have to rely on your organization admins help setting that up. The administrator of your organization needs to, - Approve the domain that your organization allows you to send mail from - Define the sender domain they'll use as the P1 sender email address (also known as MailFrom email address) that shows up on the envelope of the email [RFC 5321](https://tools.ietf.org/html/rfc5321)
communication-services Sdk Features https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/concepts/email/sdk-features.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - # Email client library overview for Azure Communication Services - Azure Communication Services Email client libraries can be used to add transactional Email support to your applications. ## Client libraries
The following list presents the set of features that are currently available in
## API Throttling and Timeouts
-Your Azure account has a set of limitation on the number of email messages that you can send. For all the developers email sending is limited to 10 mails per minute, 25 mails in an hour and 100 mails in day. This sandbox setup is to help developers to start building the application and gradually you can request to increase the sending volume as soon as the application is ready to go live. Submit a support request to increase your sending limit.
+Your Azure account has a set of limitation on the number of email messages that you can send. For all the developers email sending is limited to 30 mails per minute, 100 mails in an hour. This sandbox setup is to help developers to start building the application and gradually you can request to increase the sending volume as soon as the application is ready to go live. Submit a support request to increase your sending limit.
## Next steps
communication-services Service Limits https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/concepts/service-limits.md
Previously updated : 02/28/2023 Last updated : 03/31/2023
Sending a high volume of messages has a set of limitations on the number of emai
|Operation|Scope|Timeframe (minutes)| Limit (number of emails) | ||--|-|-|
-|Send Email|Per Subscription|1|10|
-|Send Email|Per Subscription|60|25|
-|Get Email Status|Per Subscription|1|20|
-|Get Email Status|Per Subscription|60|50|
+|Send Email|Per Subscription|1|30|
+|Send Email|Per Subscription|60|100|
+|Get Email Status|Per Subscription|1|60|
+|Get Email Status|Per Subscription|60|200|
### Size Limits
communication-services Troubleshooting Info https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/concepts/troubleshooting-info.md
Previously updated : 11/30/2021 Last updated : 03/31/2023
The program brief ID can be found on the [Azure portal](https://portal.azure.com
-## Access your email message ID
-When troubleshooting send email or email message status requests, you may be asked to provide a `message ID`. This can be accessed in the response:
+## Access your email operation ID
+When troubleshooting send email or email message status requests, you may be asked to provide an `operation ID`. This can be accessed in the response:
# [.NET](#tab/dotnet) ```csharp
-Console.WriteLine($"MessageId = {emailResult.MessageId}");
+var emailSendOperation = await emailClient.SendAsync(
+ wait: WaitUntil.Completed,
+ senderAddress: sender,
+ recipientAddress: recipient,
+ subject: subject,
+ htmlContent: htmlContent);
+
+/// Get the OperationId so that it can be used for tracking the message for troubleshooting
+Console.WriteLine($"Email operation id = {emailSendOperation.Id}");
```
communication-services Add Azure Managed Domains https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/quickstarts/email/add-azure-managed-domains.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - # Quickstart: How to add Azure Managed Domains to Email Communication Service - In this quick start, you'll learn about how to provision the Azure Managed domain in Azure Communication Services to send email. ## Prerequisites
communication-services Add Custom Verified Domains https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/quickstarts/email/add-custom-verified-domains.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - # Quickstart: How to add custom verified domains to Email Communication Service - In this quick start, you'll learn about how to add a custom domain and verify in Azure Communication Services to send email. ## Prerequisites
To provision a custom domain you need to
:::image type="content" source="./media/email-domains-custom-verify-progress.png" alt-text="Screenshot that shows the domain verification is in progress."::: 15. Once your domain is verified, you can add your SPF and DKIM records to authenticate your domains.
- :::image type="content" source="./media/email-domains-custom-verified.png" alt-text="Screenshot that shows the the custom domain is verified." lightbox="media/email-domains-custom-verified-expanded.png":::
+ :::image type="content" source="./media/email-domains-custom-verified.png" alt-text="Screenshot that shows the custom domain is verified." lightbox="media/email-domains-custom-verified-expanded.png":::
### Configure sender authentication for custom domain
communication-services Connect Email Communication Resource https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/quickstarts/email/connect-email-communication-resource.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - # Quickstart: How to connect a verified email domain with Azure Communication Service resource - In this quick start, you'll learn about how to connect a verified domain in Azure Communication Services to send email. ## Connect an email domain to a Communication Service Resource
In this quick start, you'll learn about how to connect a verified domain in Azur
5. Click Connect
- :::image type="content" source="./media/email-domains-connected.png" alt-text="Screenshot that shows one of the verified email domain is now connected." lightbox="media/email-domains-connected-expanded.png":::
+ :::image type="content" source="./media/email-domains-connected.png" alt-text="Screenshot that shows one of the verified email domains is now connected." lightbox="media/email-domains-connected-expanded.png":::
## Disconnect an email domain from the Communication Service Resource
communication-services Create Email Communication Resource https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/quickstarts/email/create-email-communication-resource.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - # Quickstart - Create and manage Email Communication Service resource in Azure Communication Service - Get started with Email by provisioning your first Email Communication Services resource. Communication services resources can be provisioned through the [Azure portal](https://portal.azure.com/) or with the .NET management client library. The management client library and the Azure portal allow you to create, configure, update and delete your resources and interface with [Azure Resource Manager](../../../azure-resource-manager/management/overview.md), Azure's deployment and management service. All functionality available in the client libraries is available in the Azure portal.
communication-services Enable User Engagement Tracking https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/quickstarts/email/enable-user-engagement-tracking.md
Previously updated : 02/15/2023 Last updated : 03/31/2023 # Quickstart: How to enable user engagement tracking for the email domain with Azure Communication Service resource - Configuring email engagement enables the insights on your customers' engagement with emails to help build customer relationships. Only the emails that are sent from Azure Communication Services verified Email Domains that are enabled for user engagement analysis will get the engagement tracking metrics. > [!IMPORTANT]
communication-services Handle Email Events https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/quickstarts/email/handle-email-events.md
Previously updated : 07/09/2022 Last updated : 03/31/2023
Get started with Azure Communication Services by using Azure Event Grid to handle Communication Services Email events. After subscribing to Email events such as delivery reports and engagement reports, you generate and receive these events. Completing this quickstart incurs a small cost of a few USD cents or less in your Azure account. - ## Prerequisites - An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
communication-services Send Email https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/quickstarts/email/send-email.md
Previously updated : 04/15/2022 Last updated : 03/31/2023 - zone_pivot_groups: acs-azcli-js-csharp-java-python-power-platform # Quickstart: How to send an email using Azure Communication Service - In this quick start, you'll learn about how to send email using our Email SDKs. ::: zone pivot="platform-azcli"
container-apps Billing https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/billing.md
Previously updated : 03/09/2022 Last updated : 03/30/2023 # Billing in Azure Container Apps
-Azure Container Apps billing consists of two types of charges:
+Billing in Azure Container apps is based on your [plan type](plans.md).
+
+| Plan type | Description |
+|--|--|
+| [Consumption](#consumption-plan) | Serverless environment where you're only billed for the resources your apps use when they're running. |
+| [Consumption + Dedicated workload profiles plan structure](#consumption-dedicated) | A fully managed environment that supports both Consumption-based apps and Dedicated workload profiles that offer customized compute options for your apps. You're billed for each node in each [workload profile](workload-profiles-overview.md).
+
+Charges apply to resources allocated to each running replica. |
+
+## Consumption plan
+
+Azure Container Apps consumption plan billing consists of two types of charges:
- **[Resource consumption](#resource-consumption-charges)**: The amount of resources allocated to your container app on a per-second basis, billed in vCPU-seconds and GiB-seconds. - **[HTTP requests](#request-charges)**: The number of HTTP requests your container app receives.
This article describes how to calculate the cost of running your container app.
> [!NOTE] > If you use Container Apps with [your own virtual network](networking.md#managed-resources) or your apps utilize other Azure resources, additional charges may apply.
-## Resource consumption charges
+### Resource consumption charges
Azure Container Apps runs replicas of your application based on the [scaling rules and replica count limits](scale-app.md) you configure for each revision. You're charged for the amount of resources allocated to each replica while it's running.
The first 180,000 vCPU-seconds and 360,000 GiB-seconds in each subscription per
The rate you pay for resource consumption depends on the state of your container app's revisions and replicas. By default, replicas are charged at an *active* rate. However, in certain conditions, a replica can enter an *idle* state. While in an *idle* state, resources are billed at a reduced rate.
-### No replicas are running
+#### No replicas are running
When a revision is scaled to zero replicas, no resource consumption charges are incurred.
-### Minimum number of replicas are running
+#### Minimum number of replicas are running
-Idle usage charges may apply when a revision is running under a specific set of circumstances. To be eligible for idle charges, a revision must meet the following criteria.
+Idle usage charges may apply when a revision is running under a specific set of circumstances. To be eligible for idle charges, a revision must be:
-- It is configured with a [minimum replica count](scale-app.md) greater than zero.-- It is scaled to the minimum replica count.
+- Configured with a [minimum replica count](scale-app.md) greater than zero
+- Scaled to the minimum replica count
Usage charges are calculated individually for each replica. A replica is considered idle when *all* of the following conditions are true:
Usage charges are calculated individually for each replica. A replica is conside
- The replica is using less than 0.01 vCPU cores. - The replica is receiving less than 1,000 bytes per second of network traffic.
-When a replica is idle, resource consumption charges are calculated at the reduced idle rates. When a replica is not idle, the active rates apply.
+When a replica is idle, resource consumption charges are calculated at the reduced idle rates. When a replica isn't idle, the active rates apply.
-### More than the minimum number of replicas are running
+#### More than the minimum number of replicas are running
When a revision is scaled above the [minimum replica count](scale-app.md), all of its running replicas are charged for resource consumption at the active rate.
-## Request charges
+### Request charges
In addition to resource consumption, Azure Container Apps also charges based on the number of HTTP requests received by your container app. The first 2 million requests in each subscription per calendar month are free.+
+<a id="consumption-dedicated"></a>
+
+## Consumption + Dedicated workload profiles plan structure (preview)
+
+Azure Container Apps Consumption + Dedicated plan structure consists of two plans withing a single environment, each with their own billing model.
+
+The billing for apps running in the Consumption plan within the Consumption + Dedicated plan structure is the same as the Consumption plan.
+
+The billing for apps running in the Dedicated plan within the Consumption + Dedicated plan structure is as follows:
+
+- **Dedicated workload profiles**: You're billed on a per-second basis for vCPU-seconds and GiB-seconds resources in all the workload profile instances in use. As profiles scale out, extra costs apply for the extra instances; as profiles scale in, billing is reduced.
+
+- **Dedicated plan management**: You're billed a fixed cost for the Dedicated management plan when using Dedicated workload profiles. This cost is the same regardless of how many Dedicated workload profiles in use.
+
+For instance, you are not billed any charges for Dedicated unless you use a Dedicated workload profile in your environment.
+
+
+For pricing details in your account's currency, see [Azure Container Apps Pricing](https://azure.microsoft.com/pricing/details/container-apps/).
+
+For best results, maximize the use of your allocated resources by calculating the needs of your container apps. Often you can run multiple apps on a single instance of a workload profile.
container-apps Containers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/containers.md
Azure Container Apps supports:
Features include: - There's no required base container image.-- Changes to the `template` ARM configuration section trigger a new [container app revision](application-lifecycle-management.md).
+- Changes to the `template` configuration section trigger a new [container app revision](application-lifecycle-management.md).
- If a container crashes, it automatically restarts.
-> [!NOTE]
-> The only supported protocols for a container app's fully qualified domain name (FQDN) are HTTP and HTTPS through ports 80 and 443 respectively.
- ## Configuration
The following code is an example of the `containers` array in the [`properties.t
| `command` | The container's startup command. | Equivalent to Docker's [entrypoint](https://docs.docker.com/engine/reference/builder/) field. | | `args` | Start up command arguments. | Entries in the array are joined together to create a parameter list to pass to the startup command. | | `env` | An array of key/value pairs that define environment variables. | Use `secretRef` instead of the `value` field to refer to a secret. |
-| `resources.cpu` | The number of CPUs allocated to the container. | Values must adhere to the following rules: the value must be greater than zero and less than or equal to 2, and can be any decimal number, with a maximum of two decimal places. For example, `1.25` is valid, but `1.555` is invalid. The default is 0.5 CPU per container. |
-| `resources.memory` | The amount of RAM allocated to the container. | This value is up to `4Gi`. The only allowed units are [gibibytes](https://simple.wikipedia.org/wiki/Gibibyte) (`Gi`). Values must adhere to the following rules: the value must be greater than zero and less than or equal to `4Gi`, and can be any decimal number, with a maximum of two decimal places. For example, `1.25Gi` is valid, but `1.555Gi` is invalid. The default is `1Gi` per container. |
+| `resources.cpu` | The number of CPUs allocated to the container. | With the Consumption plan, values must adhere to the following rules:<br><br>ΓÇó greater than zero<br>ΓÇó less than or equal to 2<br>ΓÇó can be any decimal number (with a max of two decimal places)<br><br> For example, `1.25` is valid, but `1.555` is invalid.<br> The default is 0.25 CPU per container.<br><br>When using the Consumption workload profile in the Consumption + Dedicated plan structure, the same rules apply except CPU must be less than or equal to 4.<br><br>When using a Dedicated workload profile in the Consumption + Dedicated plan structure, the maximum CPU must be less than or equal to the number of cores available in the profile. |
+| `resources.memory` | The amount of RAM allocated to the container. | With the Consumption plan, values must adhere to the following rules:<br><br>ΓÇó greater than zero<br>ΓÇó less than or equal to `4Gi`<br>ΓÇó can be any decimal number (with a max of two decimal places)<br><br>For example, `1.25Gi` is valid, but `1.555Gi` is invalid.<br>The default is `0.5Gi` per container.<br><br>When using the Consumption workload profile in the Consumption + Dedicated plan structure, the same rules apply except memory must be less than or equal to `8Gi`.<br><br>When using a dedicated workload profile in the Consumption + Dedicated plan structure, the maximum memory must be less than or equal to the amount of memory available in the profile. |
| `volumeMounts` | An array of volume mount definitions. | You can define a temporary volume or multiple permanent storage volumes for your container. For more information about storage volumes, see [Use storage mounts in Azure Container Apps](storage-mounts.md).| | `probes`| An array of health probes enabled in the container. | This feature is based on Kubernetes health probes. For more information about probes settings, see [Health probes in Azure Container Apps](health-probes.md).|
-The total CPU and memory allocations requested for all the containers in a container app must add up to one of the following combinations.
+In the Consumption plan, the total CPU and memory allocations requested for all the containers in a container app must add up to one of the following combinations.
| vCPUs (cores) | Memory | |||
The total CPU and memory allocations requested for all the containers in a conta
| `1.75` | `3.5Gi` | | `2.0` | `4.0Gi` |
+Alternatively, the Consumption workload profile in the Consumption + Dedicated plan structure, the total CPU and memory allocations requested for all the containers in a container app must add up to one of the following combinations.
+
+| vCPUs (cores) | Memory |
+|||
+| `0.25` | `0.5Gi` |
+| `0.5` | `1.0Gi` |
+| `0.75` | `1.5Gi` |
+| `1.0` | `2.0Gi` |
+| `1.25` | `2.5Gi` |
+| `1.5` | `3.0Gi` |
+| `1.75` | `3.5Gi` |
+| `2.0` | `4.0Gi` |
+| `2.25` | `4.5Gi` |
+| `2.5` | `5.0Gi` |
+| `2.75` | `5.5Gi` |
+| `3.0` | `6.0Gi` |
+| `3.25` | `6.5Gi` |
+| `3.5` | `7.0Gi` |
+| `3.75` | `7.5Gi` |
+| `4.0` | `8.0Gi` |
+ - The total of the CPU requests in all of your containers must match one of the values in the vCPUs column. - The total of the memory requests in all your containers must match the memory value in the memory column in the same row of the CPU column.
+When you use a Dedicated workload profile in the Consumption + Dedicated plan structure, the total CPU and memory allocations requested for all the containers in a container app must be less than or equal to the cores and memory available in the profile.
+ ## Multiple containers You can define multiple containers in a single container app to implement the [sidecar pattern](/azure/architecture/patterns/sidecar). The containers in a container app share hard disk and network resources and experience the same [application lifecycle](./application-lifecycle-management.md).
container-apps Environment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/environment.md
Settings relevant to the Azure Container Apps environment API resource.
## Billing
-Billing is relevant only to individual container apps and their resource usage. There are no base charges associated with the Container Apps environment.
+Azure Container Apps has two different pricing structures.
+
+- If you're using the Consumption only plan, or only the Consumption workload profile in the Consumption + Dedicated plan structure then billing is relevant only to individual container apps and their resource usage. There's no cost associated with the Container Apps environment.
+- If you're using any Dedicated workload profiles in the Consumption + Dedicated plan structure, there's a fixed cost for the Dedicated plan management. This cost is for the entire environment regardless of how many Dedicated workload profiles you're using.
## Next steps
container-apps Firewall Integration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/firewall-integration.md
Title: Securing a custom VNET in Azure Container Apps description: Firewall settings to secure a custom VNET in Azure Container Apps -+ Previously updated : 07/15/2022- Last updated : 03/29/2023+
-# Securing a custom VNET in Azure Container Apps
+# Securing a custom VNET in Azure Container Apps with Network Security Groups
Network Security Groups (NSGs) needed to configure virtual networks closely resemble the settings required by Kubernetes.
-You can lock down a network via NSGs with more restrictive rules than the default NSG rules to control all inbound and outbound traffic for the Container App Environment.
+You can lock down a network via NSGs with more restrictive rules than the default NSG rules to control all inbound and outbound traffic for the Container Apps environment at the subscription level.
-Using custom user-defined routes (UDRs) or ExpressRoutes, other than with UDRs of selected destinations that you own, are not yet supported for Container App Environments with VNETs. Therefore, securing outbound traffic with a firewall is not yet supported.
+In the workload profiles architecture, user-defined routes (UDRs) and securing outbound traffic with a firewall are supported. Learn more in the [networking concepts document](./networking.md#user-defined-routes-udrpreview).
+
+In the Consumption only architecture, custom user-defined routes (UDRs) and ExpressRoutes aren't supported.
## NSG allow rules The following tables describe how to configure a collection of NSG allow rules.- >[!NOTE]
-> The subnet associated with a Container App Environment requires a CIDR prefix of `/23` or larger.
+> The subnet associated with a Container App Environment on the Consumption only architecture requires a CIDR prefix of `/23` or larger. On the workload profiles architecture (preview), a `/27` or larger is required.
### Inbound
The following tables describe how to configure a collection of NSG allow rules.
| Any | \* | Infrastructure subnet address space | Allow communication between IPs in the infrastructure subnet. This address is passed as a parameter when you create an environment. For example, `10.0.0.0/21`. | | Any | \* | AzureLoadBalancer | Allow the Azure infrastructure load balancer to communicate with your environment. |
-### Outbound with ServiceTags
+### Outbound with service tags
+
+The following service tags are required when using NSGs on the Consumption only architecture:
| Protocol | Port | ServiceTag | Description |--|--|--|--|
The following tables describe how to configure a collection of NSG allow rules.
| TCP | `9000` | `AzureCloud.<REGION>` | Required for internal AKS secure connection between underlying nodes and control plane. Replace `<REGION>` with the region where your container app is deployed. | | TCP | `443` | `AzureMonitor` | Allows outbound calls to Azure Monitor. |
+The following service tags are required when using NSGs on the workload profiles architecture:
+
+>[!Note]
+> If you are using Azure Container Registry (ACR) with NSGs configured on your virtual network, create a private endpoint on your ACR to allow Container Apps to pull images through the virtual network.
+
+| Protocol | Port | Service Tag | Description
+|--|--|--|--|
+| TCP | `443` | `MicrosoftContainerRegistry` | This is the service tag for container registry for microsoft containers. |
+| TCP | `443` | `AzureFrontDoor.FirstParty` | This is a dependency of the `MicrosoftContainerRegistry` service tag. |
+ ### Outbound with wild card IP rules
+The following IP rules are required when using NSGs on both the Consumption only architecture and the workload profiles architecture:
+ | Protocol | Port | IP | Description | |--|--|--|--| | TCP | `443` | \* | Allowing all outbound on port `443` provides a way to allow all FQDN based outbound dependencies that don't have a static IP. |
The following tables describe how to configure a collection of NSG allow rules.
#### Considerations -- If you are running HTTP servers, you might need to add ports `80` and `443`.
+- If you're running HTTP servers, you might need to add ports `80` and `443`.
- Adding deny rules for some ports and protocols with lower priority than `65000` may cause service interruption and unexpected behavior.
container-apps Log Options https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/log-options.md
You can choose between these logs destinations:
- Azure storage account to archive. - Azure event hub for data ingestion and analytic services. For more information, see [Azure Event Hubs](../event-hubs/event-hubs-about.md). - An Azure partner monitoring solution such as, Datadog, Elastic, Logz.io and others. For more information, see [Partner solutions](../partner-solutions/overview.md). -- **None**: You can disable the storage of log data. You'll still be able to view real-time container logs via the **Logs stream** feature in your container app. For more information, see [Log streaming](log-streaming.md).
+- **None**: You can disable the storage of log data. When disabled, you can still view real-time container logs via the **Logs stream** feature in your container app. For more information, see [Log streaming](log-streaming.md).
+
+> [!NOTE]
+> Azure Monitor is not currently supported in the Consumption + Dedicated plan structure.
When *None* or the *Azure Monitor* destination is selected, the **Logs** menu item providing the Log Analytics query editor in the Azure portal is disabled.
Use these steps to configure the logging options for your Container Apps environ
- **None**: This option disables the storage of log data. 1. Select **Save**. :::image type="content" source="media/observability/log-opts-screenshot-page-save-button.png" alt-text="Screenshot Logging options page.":::
-1. If you have selected **Azure Monitor** as your logs destination, you must configure **Diagnostic settings**. The **Diagnostic settings** item will appear below the **Logging options** menu item.
+1. If you have selected **Azure Monitor** as your logs destination, you must configure **Diagnostic settings**. The **Diagnostic settings** item appears below the **Logging options** menu item.
### Diagnostic settings
container-apps Networking https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/networking.md
Title: Networking architecture in Azure Container Apps description: Learn how to configure virtual networks in Azure Container Apps. -+ Previously updated : 05/06/2022- Last updated : 03/29/2023+ # Networking architecture in Azure Container Apps
-Azure Container Apps run in the context of an [environment](environment.md), which is supported by a virtual network (VNET). When you create an environment, you can provide a custom VNET, otherwise a VNET is automatically generated for you. Generated VNETs are inaccessible to you as they're created in Microsoft's tenant. To take full control over your VNET, provide an existing VNET to Container Apps as you create your environment.
+Azure Container Apps run in the context of an [environment](environment.md), which is supported by a virtual network (VNet). By default, your Container App Environment is created with a VNet that is automatically generated for you. Generated VNets are inaccessible to you as they're created in Microsoft's tenant. This VNet is publicly accessible over the internet, can only reach internet accessible endpoints, and supports a limited subset of networking capabilities such as ingress IP restrictions and container app level ingress controls.
-The following articles feature step-by-step instructions for creating Container Apps environments with different accessibility levels.
+Use the Custom VNet configuration to provide your own VNet if you need more Azure networking features such as:
+
+- Integration with Application Gateway
+- Network Security Groups
+- Communicating with resources behind private endpoints in your virtual network
+
+The features available depend on your architecture selection.
+
+## Architecture Selection
+
+There are two architectures in Container Apps: the Consumption only architecture supports only the [Consumption plan (GA)](./plans.md) and the workload profiles architecture that supports both the [Consumption + Dedicated plan structure (preview)](./plans.md). The two architectures share many of the same networking characteristics. However, there are some key differences.
+
+| Architecture Type | Description |
+|--|-|
+| Workload profiles architecture (preview) | Supports UDR and egress through NAT Gateway. The minimum required subnet size is /27. |
+| Consumption only architecture | Doesn't support user defined routes (UDRs) and egress through NAT Gateway. The minimum required subnet size is /23. |
+
+## Accessibility Levels
+
+In Container Apps, you can configure whether your container app allows public ingress or only ingress from within your VNet at the environment level.
| Accessibility level | Description |
-|--|--|
+||-|
| [External](vnet-custom.md) | Container Apps environments deployed as external resources are available for public requests. External environments are deployed with a virtual IP on an external, public facing IP address. |
-| [Internal](vnet-custom-internal.md) | When set to internal, the environment has no public endpoint. Internal environments are deployed with a virtual IP (VIP) mapped to an internal IP address. The internal endpoint is an Azure internal load balancer (ILB) and IP addresses are issued from the custom VNET's list of private IP addresses. |
+| [Internal](vnet-custom-internal.md) | When set to internal, the environment has no public endpoint. Internal environments are deployed with a virtual IP (VIP) mapped to an internal IP address. The internal endpoint is an Azure internal load balancer (ILB) and IP addresses are issued from the custom VNet's list of private IP addresses. |
-## Custom VNET configuration
+## Custom VNet configuration
-As you create a custom VNET, keep in mind the following situations:
+As you create a custom VNet, keep in mind the following situations:
- If you want your container app to restrict all outside access, create an [internal Container Apps environment](vnet-custom-internal.md). -- When you provide your own VNET, you need to provide a subnet that is dedicated to the Container App environment you deploy. This subnet can't be used by other services.
+- When you provide your own VNet, you need to provide a subnet that is dedicated to the Container App environment you deploy. This subnet isn't available to other services.
-- Network addresses are assigned from a subnet range you define as the environment is created.
+- Network addresses are assigned from a subnet range you define as the environment is created.
- You can define the subnet range used by the Container Apps environment.
- - Once the environment is created, the subnet range is immutable.
- - Each [revision](revisions.md) is assigned an IP address in the subnet.
- - You can restrict inbound requests to the environment exclusively to the VNET by deploying the environment as [internal](vnet-custom-internal.md).
+ - You can restrict inbound requests to the environment exclusively to the VNet by deploying the environment as [internal](vnet-custom-internal.md).
As you begin to design the network around your container app, refer to [Plan virtual networks](../virtual-network/virtual-network-vnet-plan-design-arm.md) for important concerns surrounding running virtual networks on Azure. :::image type="content" source="media/networking/azure-container-apps-virtual-network.png" alt-text="Diagram of how Azure Container Apps environments use an existing V NET, or you can provide your own."::: > [!NOTE]
-> Moving VNETs among different resource groups or subscriptions is not supported if the VNET is in use by a Container Apps environment.
-
-<!--
-https://learn.microsoft.com/azure/azure-functions/functions-networking-options
-
-https://techcommunity.microsoft.com/t5/apps-on-azure-blog/azure-container-apps-virtual-network-integration/ba-p/3096932
>
+> Moving VNets among different resource groups or subscriptions is not supported if the VNet is in use by a Container Apps environment.
## HTTP edge proxy behavior
The following ports are exposed for inbound connections.
|--|--| | HTTP/HTTPS | 80, 443 |
-Container Apps reserves 60 IPs in your VNET, and the amount may grow as your container environment scales.
- IP addresses are broken down into the following types: | Type | Description | |--|--| | Public inbound IP address | Used for app traffic in an external deployment, and management traffic in both internal and external deployments. |
-| Outbound public IP | Used as the "from" IP for outbound connections that leave the virtual network. These connections aren't routed down a VPN. Using a NAT gateway or other proxy for outbound traffic from a Container App environment isn't supported. Outbound IPs aren't guaranteed and may change over time. |
+| Outbound public IP | Used as the "from" IP for outbound connections that leave the virtual network. These connections aren't routed down a VPN. Outbound IPs aren't guaranteed and may change over time. Using a NAT gateway or other proxy for outbound traffic from a Container App environment is only supported on the workload profile architecture. |
| Internal load balancer IP address | This address only exists in an internal deployment. | | App-assigned IP-based TLS/SSL addresses | These addresses are only possible with an external deployment, and when IP-based TLS/SSL binding is configured. |
-## Subnet Address Range Restrictions
+## Subnet
+
+Virtual network integration depends on a dedicated subnet. How IP addresses are allocated in a subnet and what subnet sizes are supported depends on which plan you're using in Azure Container Apps. Selecting an appropriately sized subnet for the scale of your Container Apps is important as subnet sizes can't be modified post creation in Azure.
+
+- Consumption only architecture:
+ - /23 is the minimum subnet size required for virtual network integration.
+ - Container Apps reserves a minimum of 60 IPs for infrastructure in your VNet, and the amount may increase up to 256 addresses as your container environment scales.
+ - As your app scales, a new IP address is allocated for each new replica.
-Subnet address ranges can't overlap with the following reserved ranges:
+- Workload profiles architecture:
+ - /27 is the minimum subnet size required for virtual network integration.
+ - The subnet you're integrating your container app with must be delegated to `Microsoft.App/environments`.
+ - 11 IP addresses are automatically reserved for integration with the subnet. When your apps are running on workload profiles, the number of IP addresses required for infrastructure integration doesn't vary based on the scale of your container apps.
+ - More IP addresses are allocated depending on your Container App's workload profile:
+ - When you're using Consumption workload profiles for your container app, IP address assignment behaves the same as when running on the Consumption only architecture. As your app scales, a new IP address is allocated for each new replica.
+ - When you're using the Dedicated workload profile for your container app, each node has 1 IP address assigned.
+
+As a Container Apps environment is created, you provide resource IDs for a single subnet.
+
+If you're using the CLI, the parameter to define the subnet resource ID is `infrastructure-subnet-resource-id`. The subnet hosts infrastructure components and user app containers.
+
+### Subnet Address Range Restrictions
+
+Subnet address ranges can't overlap with the following ranges reserved by AKS:
- 169.254.0.0/16 - 172.30.0.0/16 - 172.31.0.0/16 - 192.0.2.0/24
-## Subnet
+In addition, Container Apps on the workload profiles architecture reserve the following addresses:
-As a Container Apps environment is created, you provide resource IDs for a single subnet.
-
-If you're using the CLI, the parameter to define the subnet resource ID is `infrastructure-subnet-resource-id`. The subnet hosts infrastructure components and user app containers.
+- 100.100.0.0/17
+- 100.100.128.0/19
+- 100.100.160.0/19
+- 100.100.192.0/19
If you're using the Azure CLI and the [platformReservedCidr](vnet-custom-internal.md#networking-parameters) range is defined, both subnets must not overlap with the IP range defined in `platformReservedCidr`. ## Routes
-There's no forced tunneling in Container Apps routes.
+User Defined Routes (UDR) and controlled egress through NAT Gateway are supported in the workload profiles architecture, which is in preview. In the Consumption only architecture, these features aren't supported.
+
+### User defined routes (UDR) - preview
+
+You can use UDR on the workload profiles architecture to restrict outbound traffic from your container app through Azure Firewall or other network appliances. Configuring UDR is done outside of the Container Apps environment scope.
++
+Important notes for configuring UDR with Azure Firewall:
+
+- You need to allow the `MicrosoftContainerRegistry` and its dependency `AzureFrontDoor.FirstParty` service tags to your Azure Firewall. Alternatively, you can add the following FQDNs: *mcr.microsoft.com* and **.data.mcr.microsoft.com*.
+- If you're using Azure Container Registry (ACR), you need to add the `AzureContainerRegistry` service tag and the **.blob.core.windows.net* FQDN in the Azure Firewall.
+- If you're using [Docker Hub registry](https://docs.docker.com/desktop/allow-list/) and want to access it through the firewall, you need to add the following FQDNs to your firewall: *hub.docker.com*, *registry-1.docker.io*, and *production.cloudflare.docker.com*.
+- External environments aren't supported.
+
+Azure creates a default route table for your virtual networks upon create. By implementing a user-defined route table, you can control how traffic is routed within your virtual network. For example, you can create a UDR that routes all traffic to the firewall. For a guide on how to setup UDR with Container Apps to restrict outbound traffic with Azure Firewall, visit the [how to for Container Apps and Azure Firewall](./user-defined-routes.md).
+
+### NAT gateway integration - preview
+
+You can use NAT Gateway to simplify outbound connectivity for your outbound internet traffic in your virtual network on the workload profiles architecture. NAT Gateway is used to provide a static public IP address, so when you configure NAT Gateway on your Container Apps subnet, all outbound traffic from your container app is routed through the NAT Gateway's static public IP address.
+
+### Lock down your Container App environment
++
+With the workload profiles architecture (preview), you can fully secure your ingress/egress networking traffic. To do so, you should use the following features:
+- Create your internal container app environment on the workload profiles architecture. For steps, see [here](./workload-profiles-manage-cli.md).
+- Integrate your Container Apps with an Application Gateway. For steps, see [here](./waf-app-gateway.md).
+- Configure UDR to route all traffic through Azure Firewall. For steps, see [here](./user-defined-routes.md).
## DNS -- **Custom DNS**: If your VNET uses a custom DNS server instead of the default Azure-provided DNS server, configure your DNS server to forward unresolved DNS queries to `168.63.129.16`. [Azure recursive resolvers](../virtual-network/virtual-networks-name-resolution-for-vms-and-role-instances.md#name-resolution-that-uses-your-own-dns-server) uses this IP address to resolve requests. If you don't use the Azure recursive resolvers, the Container Apps environment can't function.
+- **Custom DNS**: If your VNet uses a custom DNS server instead of the default Azure-provided DNS server, configure your DNS server to forward unresolved DNS queries to `168.63.129.16`. [Azure recursive resolvers](../virtual-network/virtual-networks-name-resolution-for-vms-and-role-instances.md#name-resolution-that-uses-your-own-dns-server) uses this IP address to resolve requests. If you don't use the Azure recursive resolvers, the Container Apps environment can't function.
-- **VNET-scope ingress**: If you plan to use VNET-scope [ingress](ingress-overview.md) in an internal Container Apps environment, configure your domains in one of the following ways:
+- **VNet-scope ingress**: If you plan to use VNet-scope [ingress](ingress-overview.md) in an internal Container Apps environment, configure your domains in one of the following ways:
1. **Non-custom domains**: If you don't plan to use custom domains, create a private DNS zone that resolves the Container Apps environment's default domain to the static IP address of the Container Apps environment. You can use [Azure Private DNS](../dns/private-dns-overview.md) or your own DNS server. If you use Azure Private DNS, create a Private DNS Zone named as the Container App EnvironmentΓÇÖs default domain (`<UNIQUE_IDENTIFIER>.<REGION_NAME>.azurecontainerapps.io`), with an `A` record. The A record contains the name `*<DNS Suffix>` and the static IP address of the Container Apps environment.
The static IP address of the Container Apps environment can be found in the Azur
## Managed resources
-When you deploy an internal or an external environment into your own network, a new resource group prefixed with `MC_` is created in the Azure subscription where your environment is hosted. This resource group contains infrastructure components managed by the Azure Container Apps platform, and shouldn't be modified. The resource group contains Public IP addresses used specifically for outbound connectivity from your environment and a load balancer. In addition to the [Azure Container Apps billing](./billing.md), you're billed for:
+When you deploy an internal or an external environment into your own network, a new resource group prefixed with `MC_` is created in the Azure subscription where your environment is hosted. This resource group contains infrastructure components managed by the Azure Container Apps platform, and shouldn't be modified. The resource group contains Public IP addresses used specifically for outbound connectivity from your environment and a load balancer. The resource group name can be configured during container app environment creation. In addition to the [Azure Container Apps billing](./billing.md), you're billed for:
- Two standard static [public IPs](https://azure.microsoft.com/pricing/details/ip-addresses/), one for ingress and one for egress. If you need more IPs for egress due to SNAT issues, [open a support ticket to request an override](https://azure.microsoft.com/support/create-ticket/).
container-apps Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/overview.md
Previously updated : 03/13/2023 Last updated : 03/29/2023
Azure Container Apps enables executing application code packaged in any containe
With Azure Container Apps, you can:
+- [**Use the Azure CLI extension, Azure portal or ARM templates**](get-started.md) to manage your applications.
+
+- [**Enable HTTPS or TCP ingress**](ingress.md) without having to manage other Azure infrastructure.
+
+- [**Build microservices with Dapr**](microservices.md) and [access its rich set of APIs](./dapr-overview.md).
+
+- [**Use specialized hardware**](plans.md) for access to increased compute resources.
+ - [**Run multiple container revisions**](application-lifecycle-management.md) and manage the container app's application lifecycle. - [**Autoscale**](scale-app.md) your apps based on any KEDA-supported scale trigger. Most applications can scale to zero<sup>1</sup>. -- [**Enable HTTPS or TCP ingress**](ingress-how-to.md) without having to manage other Azure infrastructure.- - [**Split traffic**](revisions.md) across multiple versions of an application for Blue/Green deployments and A/B testing scenarios. - [**Use internal ingress and service discovery**](connect-apps.md) for secure internal-only endpoints with built-in DNS-based service discovery. -- [**Build microservices with Dapr**](microservices.md) and [access its rich set of APIs](./dapr-overview.md).- - [**Run containers from any registry**](containers.md), public or private, including Docker Hub and Azure Container Registry (ACR). -- [**Use the Azure CLI extension, Azure portal or ARM templates**](get-started.md) to manage your applications.- - [**Provide an existing virtual network**](vnet-custom.md) when creating an environment for your container apps. - [**Securely manage secrets**](manage-secrets.md) directly in your application.
container-apps Plans https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/plans.md
+
+ Title: Azure Container Apps plan types
+description: Compare different plains available in Azure Container Apps
++++ Last updated : 03/28/2023+++
+# Azure Container Apps plan types
+
+Azure Container Apps features two different plan types.
+
+| Plan type | Description | In Preview |
+|--|--|--|
+| [Consumption](#consumption-plan) | Serverless environment with support for scale-to-zero and pay only for resources your apps use. | No |
+| [Consumption + Dedicated plan structures (preview)](#consumption-dedicated) | Fully managed environment with support for scale-to-zero and pay only for resources your apps use. Optionally, run apps with customized hardware and increased cost predictability using Dedicated workload profiles. | Yes |
+
+## Consumption plan
+
+The Consumption plan features a serverless architecture that allows your applications to scale in and out on demand. Applications can scale to zero, and you only pay for running apps.
+
+Use the Consumption plan when you don't have specific hardware requirements for your container app.
+
+<a id="consumption-dedicated"></a>
+
+## Consumption + Dedicated plan structure (preview)
+
+The Consumption + Dedicated plan structure consists of a serverless plan that allows your applications to scale in and out on demand. Applications can scale to zero, and you only pay for running apps. It also consists of a fully managed plan you can optionally use that provides dedicated, customized hardware to run your apps on.
+
+You can select from general purpose and memory optimized [workflow profiles](workload-profiles-overview.md) that provide larger amounts of CPU and memory. You pay per node, versus per app, and workload profile can scale in and out as demand changes.
+
+Use the Consumption + Dedicated plan structure when you need any of the following in a single environment:
+
+- **Consumption usage**: Use of the Consumption plan to run apps that need to scale to zero that don't have specific hardware requirements.
+
+- **Secure outbound traffic**: You can create environments with no public inbound access, and customize the outbound network path from environments to use firewalls or other network appliances.
+
+Use the Dedicated plan within the Consumption + Dedicated plan structure when you need any of the following features:
+
+- **Environment isolation**: Use of the Dedicated workload profiles provides apps with dedicated hardware with a single tenant guarantee.
+
+- **Customized compute**: Select from many types and sizes of Dedicated workload profiles based on your apps requirements. You can deploy many apps to each workload profile. Each workload profile can scale independently as more apps are added or removed or as apps scale their replicas up or down.
+
+- **Cost control**: Traditional serverless compute options optimize for scale in response to events and may not provide cost control options. With Dedicated workload profiles, you can set minimum and maximum scaling to help you better control costs.
+
+ The Consumption + Dedicated plan structure can be more cost effective when you're running higher scale deployments with steady throughput.
+
+> [!NOTE]
+> When configuring your cluster with a user defined route for egress, you must explicitly send egress traffic to a network virtual appliance such as Azure Firewall.
+
+## Next steps
+
+Deploy an app with:
+
+- [Consumption plan](quickstart-portal.md)
+- [Consumption + Dedicated plan structure](workload-profiles-manage-cli.md)
container-apps Quotas https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/quotas.md
The following quotas are on a per subscription basis for Azure Container Apps.
To request an increase in quota amounts for your container app, learn [how to request a limit increase](faq.yml#how-can-i-request-a-quota-increase-) and [submit a support ticket](https://azure.microsoft.com/support/create-ticket/).
-| Feature | Scope | Default | Is Configurable<sup>1</sup> | Remarks |
+The *Is Configurable* column in the following tables denotes a feature maximum may be increased through a [support request](https://azure.microsoft.com/support/create-ticket/). For more information, see [how to request a limit increase](faq.yml#how-can-i-request-a-quota-increase-).
+
+| Feature | Scope | Default | Is Configurable | Remarks |
|--|--|--|--|--| | Environments | Region | Up to 15 | Yes | Limit up to 15 environments per subscription, per region.<br><br>For example, if you deploy to three regions you can get up to 45 environments for a single subscription. |
-| Container Apps | Environment | Unlimited | Yes | |
+| Container Apps | Environment | Unlimited | n/a | |
| Revisions | Container app | 100 | No | | | Replicas | Revision | 30 | Yes | |
-| Cores | Replica | 2 | No | Maximum number of cores that can be requested by a revision replica. |
+
+## Consumption plan
+
+| Feature | Scope | Default | Is Configurable | Remarks |
+|--|--|--|--|--|
+| Cores | Replica | 2 | No | Maximum number of cores available to a revision replica. |
| Cores | Environment | 40 | Yes | Maximum number of cores an environment can accommodate. Calculated by the sum of cores requested by each active replica of all revisions in an environment. |
-For more information regarding quotas, see the [Quotas Roadmap](https://github.com/microsoft/azure-container-apps/issues/503) in the Azure Container Apps GitHub repository.
+## Consumption + Dedicated plan structure
+
+### Consumption workload profile
+
+| Feature | Scope | Default | Is Configurable | Remarks |
+|--|--|--|--|--|
+| Cores | Replica | 4 | No | Maximum number of cores available to a revision replica. |
+| Cores | Environment | 100 | Yes | Maximum number of cores the Consumption workload profile in a Consumption + Dedicated plan structure environment can accommodate. Calculated by the sum of cores requested by each active replica of all revisions in an environment. |
+
+### Dedicated workload profiles
+
+| Feature | Scope | Default | Is Configurable | Remarks |
+|--|--|--|--|--|
+| Cores | Replica | Up to maximum cores a workload profile supports | No | Maximum number of cores available to a revision replica. |
+| Cores | Environment | 100 | Yes | Maximum number of cores all Dedicated workload profiles in a Consumption + Dedicated plan structure environment can accommodate. Calculated by the sum of cores available in each node of all workload profile in a Consumption + Dedicated plan structure environment. |
+
+For more information regarding quotas, see the [Quotas roadmap](https://github.com/microsoft/azure-container-apps/issues/503) in the Azure Container Apps GitHub repository.
> [!NOTE] > [Free trial](https://azure.microsoft.com/offers/ms-azr-0044p) and [Azure for Students](https://azure.microsoft.com/free/students/) subscriptions are limited to one environment per subscription globally.
-<sup>1</sup> The **Is Configurable** column denotes that a feature maximum may be increased through a [support request](https://azure.microsoft.com/support/create-ticket/). For more information, see [how to request a limit increase](faq.yml#how-can-i-request-a-quota-increase-).
- ## Considerations * If an environment runs out of allowed cores:
container-apps Sticky Sessions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/sticky-sessions.md
zone_pivot_groups: arm-portal
-# Session Affinity in Azure Container Apps
+# Session Affinity in Azure Container Apps (preview)
Session affinity, also known as sticky sessions, is a feature that allows you to route all requests from a client to the same replica. This feature is useful for stateful applications that require a consistent connection to the same replica.
If your app doesn't require session affinity, we recommend that you don't enable
> [!NOTE] > Session affinity is only supported when your app is in [single revision mode](revisions.md#single-revision-mode) and the ingress type is HTTP.
+>
+> This feature is in public preview.
## Configure session affinity
container-apps User Defined Routes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/user-defined-routes.md
+
+ Title: Container Apps outbound traffic control with Azure Firewall
+description: Use Azure Firewall to route outbound traffic from Container Apps to the internet, private IP addresses, and Azure services.
+++++ Last updated : 03/29/2023++
+# Control outbound traffic with user defined routes (preview)
+
+>[!Note]
+> This feature is in preview and is only supported for the workload profiles architecture. User defined routes only work with an internal Azure Container Apps environment.
+
+This article shows you how to use user defined routes (UDR) with [Azure Firewall](../firewall/overview.md) to lock down outbound traffic from your Container Apps to back-end Azure resources or other network resources.
+
+Azure creates a default route table for your virtual networks on create. By implementing a user-defined route table, you can control how traffic is routed within your virtual network. In this guide, you'll setup UDR on the Container Apps virtual network to restrict outbound traffic with Azure Firewall.
+
+You can also use a NAT gateway or any other 3rd party appliances instead of Azure Firewall.
+
+For more information on networking concepts in Container Apps, see [Networking Architecture in Azure Container Apps](./networking.md).
+
+## Prerequisites
+
+* An **internal** container app environment on the workload profiles architecture that's integrated with a custom virtual network. When you create an internal container app environment, your container app environment has no public IP addresses, and all traffic is routed through the virtual network. For more information, see the [guide for how to create a container app environment on the workload profiles architecture](./workload-profiles-manage-cli.md). Ensure that you're creating an **internal** environment.
+
+* In your container app, have a container that supports `curl` commands. You can use `curl` to verify the container app is deployed correctly. The *helloworld* container from the sample container image already supports `curl` commands.
+
+## Create the firewall subnet
+
+A subnet called **AzureFirewallSubnet** is required in order to deploy a firewall into the integrated virtual network.
+
+1. In the [Azure portal](https://portal.azure.com), navigate to the virtual network that's integrated with your app.
+
+1. From the menu on the left, select **Subnets**, then select **+ Subnet**.
+
+1. Enter the following values:
+
+ | Setting | Action |
+ | | - |
+ | **Name** | Enter **AzureFirewallSubnet**. |
+ | **Subnet address range** | Use the default or specify a [subnet range /26 or larger](../firewall/firewall-faq.yml#why-does-azure-firewall-need-a--26-subnet-size).
+1. Select **Save**
+
+## Deploy the firewall
+
+1. On the Azure portal menu or the **Home** page, select **Create a resource**.
+
+1. Search for *Firewall*.
+
+1. Select **Firewall**.
+
+1. Select **Create**.
+
+1. On the *Create a Firewall* page, configure the firewall with the following settings.
+
+ | Setting | Action |
+ |--|--|
+ | **Resource group** | Enter the same resource group as the integrated virtual network. |
+ | **Name** | Enter a name of your choice |
+ | **Region** | Select the same region as the integrated virtual network. |
+ | **Firewall policy** | Create one by selecting **Add new**. |
+ | **Virtual network** | Select the integrated virtual network. |
+ | **Public IP address** | Select an existing address or create one by selecting **Add new**. |
+
+1. Select **Review + create**. After validation finishes, select **Create**. The validation step may take a few minutes to complete.
+
+1. Once the deployment completes, select **Go to Resource**.
+
+1. In the firewall's **Overview** page, copy the **Firewall private IP**. This IP address is used as the next hop address when creating the routing rule for the virtual network.
+
+## Route all traffic to the firewall
+
+Your virtual networks in Azure have default route tables in place upon create. By implementing a user-defined route table, you can control how traffic is routed within your virtual network. In the following steps, you create a UDR to route all traffic to your Azure Firewall.
+
+1. On the Azure portal menu or the *Home* page, select **Create a resource**.
+
+1. Search for **Route tables**.
+
+1. Select **Route Tables**.
+
+1. Select **Create**.
+
+1. Enter the following values:
+
+ | Setting | Action |
+ | | - |
+ | **Region** | Select the region as your virtual network. |
+ | **Name** | Enter a name. |
+ | **Propagate gateway routes** | Select **No** |
+
+1. Select **Review + create**. After validation finishes, select **Create**.
+
+1. Once the deployment completes, select **Go to Resource**.
+
+1. From the menu on the left, select **Routes**, then select **Add** to create a new route table
+
+1. Configure the route table with the following settings:
+
+ | Setting | Action |
+ |--|--|
+ | **Address prefix** | Enter *0.0.0.0/0* |
+ | **Next hop type** | Select *Virtual appliance* |
+ | **Next hop address** | Enter the *Firewall Private IP* you saved in [Deploy the firewall](#deploy-the-firewall).
+
+1. Select **Add** to create the route.
+
+1. From the menu on the left, select **Subnets**, then select **Associate** to associate your route table with the subnet your Container App is integrated with.
+
+1. Configure the *Associate subnet* with the following values:
+
+ | Setting | Action |
+ |--|--|
+ | **Address prefix** | Select the virtual network your container app is integrated with |
+ | **Next hop type** | Select the subnet your container app is integrated with |
+
+1. Select **OK**.
+
+## Configure firewall policies
+
+Now, all outbound traffic from your container app is routed to the firewall. Currently, the firewall still allows all outbound traffic through. In order to manage what outbound traffic is allowed or denied, you need to configure firewall policies.
+
+1. In your *Azure Firewall* resource on the *Overview* page, select **Firewall policy**
+
+1. From the menu on the left of the firewall policy page, select **Application Rules**.
+
+1. Select **Add a rule collection**.
+
+1. Enter the following values for the **Rule Collection**:
+
+ | Setting | Action |
+ | | - |
+ | **Name** | Enter a collection name |
+ | **Rule collection type** | Select *Application* |
+ | **Priority** | Enter the priority such as 110 |
+ | **Rule collection action** | Select *Allow* |
+ | **Rule collection group** | Select *DefaultApplicationRuleCollectionGroup* |
+
+1. Under **Rules**, enter the following values
+
+ | Setting | Action |
+ | | - |
+ | **Name** | Enter a name for the rule |
+ | **Source type** | Select *IP Address* |
+ | **Source** | Enter **\*** |
+ | **Protocol** | Enter *http:80,https:443* |
+ | **Destination Type** | Select **FQDN**. |
+ | **Destination** | Enter `mcr.microsoft.com`,`*.data.mcr.microsoft.com`. If you're using ACR, add your *ACR address* and `*.blob.core.windows.net`. |
+ | **Action** | Select *Allow* |
+
+ >[!Note]
+ > If you are using [Docker Hub registry](https://docs.docker.com/desktop/allow-list/) and want to access it through your firewall, you will need to add the following FQDNs to your rules destination list above: *hub.docker.com*, *registry-1.docker.io*, and *production.cloudflare.docker.com*.
+
+1. Select **Add**.
+
+## Verify your firewall is blocking outbound traffic
+
+To verify your firewall configuration is set up correctly, you can use the `curl` command from your app's debugging console.
+
+1. Navigate to your Container App that is configured with Azure Firewall.
+
+1. From the menu on the left, select **Console**, then select your container that supports the `curl` command. If you're using the helloworld container from the sample container image quickstart, you can run the `curl` command.
+
+1. In the **Choose start up command** menu, select **/bin/sh**, and select **Connect**.
+
+1. In the console, run `curl -s https://mcr.microsoft.com`. You should see a successful response as you added `mcr.microsoft.com` to the allowlist for your firewall policies.
+
+1. Run `curl -s https://<fqdn-address>` for a URL that doesn't match any of your destination rules such as `example.com`. The example command would be `curl -s https://example.com`. You should get no response, which indicates that your firewall has blocked the request.
+
+## Next steps
+
+> [!div class="nextstepaction"]
+> [Authentication in Azure Container Apps](authentication.md)
container-apps Waf App Gateway https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/waf-app-gateway.md
+
+ Title: Protect Azure Container Apps with Application Gateway and Web Application Firewall (WAF)
+description: Learn how to protect Azure Container Apps with Application Gateway Web Application Firewall (WAF)
++++ Last updated : 03/31/2023+
+zone_pivot_groups: azure-cli-or-portal
++
+# Protect Azure Container Apps with Web Application Firewall on Application Gateway
+
+When you host your apps or microservices in Azure Container Apps, you may not always want to publish them directly to the internet. Instead, you may want to expose them through a reverse proxy.
+
+A reverse proxy is a service that sits in front of one or more services, intercepting and directing incoming traffic to the appropriate destination.
+
+Reverse proxies allow you to place services in front of your apps that supports cross-cutting functionality including:
+
+- Routing
+- Caching
+- Rate limiting
+- Security layers
+- Load balancing
+- Request filtering
+
+This article demonstrates how to protect your container apps using a [Web Application Firewall (WAF) on Azure Application Gateway](../web-application-firewall/ag/ag-overview.md) with an internal Container Apps environment.
+
+For more information on networking concepts in Container Apps, see [Networking Architecture in Azure Container Apps](./networking.md).
+
+## Prerequisites
+
+- Have a container app that is on an internal environment and integrated with a custom virtual network. For more information on how to create a custom virtual network integrated app, see [provide a virtual network to an internal Azure Container Apps environment](./vnet-custom-internal.md).
+- If you must use TLS/SSL encryption to the application gateway, a valid public certificate that's used to bind to your application gateway is required.
+
+## Retrieve your container app's domain
+
+In the following steps, you retrieve the values of the **default domain** and the **static IP** which you use to set up your Private DNS Zone.
+
+1. From the resource group's *Overview* window in the portal, select your container app.
+1. On the *Overview* window for your container app resource, select the link for **Container Apps Environment**
+
+1. On the *Overview* window for your container app environment resource, select **JSON View** in the upper right-hand corner of the page to view the JSON representation of the container apps environment.
+1. Copy the values for the **defaultDomain** and **staticIp** properties and paste them into a text editor. You'll create a private DNS zone using these values for the default domain in the next section.
+
+## Create and configure an Azure Private DNS zone
+
+1. On the Azure portal menu or the **Home** page, select **Create a resource**.
+1. Search for *Private DNS Zone*, and select **Private DNS Zone** from the search results.
+1. Select the **Create** button.
+1. Enter the following values:
+
+ | Setting | Action |
+ |||
+ | Subscription | Select your Azure subscription. |
+ | Resource group | Select the resource group of your container app. |
+ | Name | Enter the **defaultDomain** property of the Container Apps Environment from the previous section. |
+ | Resource group location | Leave as the default. A value isn't needed as Private DNS Zones are global. |
+
+1. Select **Review + create**. After validation finishes, select **Create**.
+1. After the private DNS zone is created, select **Go to resource**.
+1. In the *Overview* window, select **+Record set**, to add a new record set.
+1. In the *Add record set* window, enter the following values:
+
+ | Setting | Action |
+ |||
+ | Name | Enter **\***. |
+ | Type | Select **A-Address Record**. |
+ | TTL | Keep the default values. |
+ | TTL unit | Keep the default values. |
+ | IP address | Enter the **staticIp** property of the Container Apps Environment from the previous section. |
+
+1. Select **OK** to create the record set.
+1. Select **+Record set** again, to add a second record set.
+1. In the *Add record set* window, enter the following values:
+
+ | Setting | Action |
+ |||
+ | Name | Enter **@**. |
+ | Type | Select **A-Address Record**. |
+ | TTL | Keep the default values. |
+ | TTL unit | Keep the default values. |
+ | IP address | Enter the **staticIp** property of the Container Apps Environment from the previous section. |
+
+1. Select **OK** to create the record set.
+1. Select the **Virtual network links** window from the menu on the left side of the page.
+1. Select **+Add** to create a new link with the following values:
+
+ | Setting | Action |
+ |||
+ | Link name | Enter **my-custom-vnet-pdns-link**. |
+ | I know the resource ID of virtual network | Leave it unchecked. |
+ | Virtual network | Select the virtual network your container app is integrated with. |
+ | Enable auto registration | Leave it unchecked. |
+
+1. Select **OK** to create the virtual network link.
+
+## Create and configure Azure Application Gateway
+
+### Basics tab
+
+1. Enter the following values in the *Project details* section.
+
+ | Setting | Action |
+ |||
+ | Subscription | Select your Azure subscription. |
+ | Resource group | Select the resource group for your container app. |
+ | Application gateway name | Enter **my-container-apps-agw**. |
+ | Region | Select the location where your Container App was provisioned. |
+ | Tier | Select **WAF V2**. You can use **Standard V2** if you don't need WAF. |
+ | Enable autoscaling | Leave as default. For production environments, autoscaling is recommended. See [Autoscaling Azure Application Gateway](../application-gateway/application-gateway-autoscaling-zone-redundant.md). |
+ | Availability zone | Select **None**. For production environments, [Availability Zones](/azure/reliability/availability-zones-overview#availability-zones) are recommended for higher availability. |
+ | HTTP2 | Keep the default value. |
+ | WAF Policy | Select **Create new** and enter **my-waf-policy** for the WAF Policy. Select **OK**. If you chose **Standard V2** for the tier, skip this step. |
+ | Virtual network | Select the virtual network that your container app is integrated with. |
+ | Subnet | Select **Manage subnet configuration**. If you already have a subnet you wish to use, use that instead, and skip to [the Frontends section](#frontends-tab). |
+
+1. From within the *Subnets* window of *my-custom-vnet*, select **+Subnet** and enter the following values:
+
+ | Setting | Action |
+ |||
+ | Name | Enter **appgateway-subnet**. |
+ | Subnet address range | Keep the default values. |
+
+1. For the remainder of the settings, keep the default values.
+1. Select **Save** to create the new subnet.
+
+1. Close the *Subnets* window to return to the *Create application gateway* window.
+1. Select the following values:
+
+ | Setting | Action |
+ |||
+ | Subnet | Select the **appgateway-subnet** you created. |
+
+1. Select **Next: Frontends**, to proceed.
+
+### Frontends tab
+
+1. On the *Frontends* tab, enter the following values:
+
+ | Setting | Action |
+ |||
+ | Frontend IP address type | Select **Public**. |
+ | Public IP address | Select **Add new**. Enter **my-frontend** for the name of your frontend and select **OK** |
+
+ > [!NOTE]
+ > For the Application Gateway v2 SKU, there must be a **Public** frontend IP. You can have both a public and a private frontend IP configuration, but a private-only frontend IP configuration with no public IP is currently not supported in the v2 SKU. To learn more, [read here](../virtual-network/ip-services/configure-public-ip-application-gateway.md).
+
+1. Select **Next: Backends**.
+
+### Backends tab
+
+The backend pool is used to route requests to the appropriate backend servers. Backend pools can be composed of any combination of the following resources:
+
+- NICs
+- Virtual Machine Scale Sets
+- Public IP addresses
+- Internal IP addresses
+- Fully qualified domain names (FQDN)
+- Multi-tenant back-ends like Azure App Service and Container Apps
+
+In this example, you create a backend pool that targets your container app.
+
+1. Select **Add a backend pool**.
+1. Open a new tab and navigate to your container app.
+1. In the *Overview* window of the Container App, find the **Application Url** and copy it.
+1. Return to the *Backends* tab, and enter the following values in the **Add a backend pool** window:
+
+ | Setting | Action |
+ |||
+ | Name | Enter **my-agw-backend-pool**. |
+ | Add backend pool without targets | Select **No**. |
+ | Target type | Select **IP address or FQDN**. |
+ | Target | Enter the **Container App Application Url** you copied and remove the *https://* prefix. This location is the FQDN of your container app. |
+
+1. Select **Add**.
+1. On the *Backends* tab, select **Next: Configuration**.
+
+### Configuration tab
+
+On the *Configuration* tab, you connect the frontend and backend pool you created using a routing rule.
+
+1. Select **Add a routing rule**. Enter the following values:
+
+ | Setting | Action |
+ |||
+ | Name | Enter **my-agw-routing-rule**. |
+ | Priority | Enter **1**. |
+
+1. Under Listener tab, enter the following values:
+
+ | Setting | Action |
+ |||
+ | Listener name | Enter **my-agw-listener**. |
+ | Frontend IP | Select **Public**. |
+ | Protocol | Select **HTTPS**. If you don't have a certificate you want to use, you can select **HTTP** |
+ | Port | Enter **443**. If you chose **HTTP** for your protocol, enter **80** and skip to the default/custom domain section. |
+ | Choose a Certificate | Select **Upload a certificate**. If your certificate is stored in key vault, you can select **Choose a certificate from Key Vault**. |
+ | Cert name | Enter a name for your certificate. |
+ | PFX certificate file | Select your valid public certificate. |
+ | Password | Enter your certificate password. |
+
+ If you want to use the default domain, enter the following values:
+
+ | Setting | Action |
+ |||
+ | Listener Type | Select **Basic** |
+ | Error page url | Leave as **No** |
+
+ Alternatively, if you want to use a custom domain, enter the following values:
+
+ | Setting | Action |
+ |||
+ | Listener Type | Select **Multi site** |
+ | Host type | Select **Single** |
+ | Host Names | Enter the Custom Domain you wish to use. |
+ | Error page url | Leave as **No** |
+
+1. Select the **Backend targets** tab and enter the following values:
+
+1. Toggle to the *Backend targets* tab and enter the following values:
+
+ | Setting | Action |
+ |||
+ | Target type | Select **my-agw-backend-pool** that you created earlier. |
+ | Backend settings | Select **Add new**. |
+
+1. In the *Add Backend setting* window, enter the following values:
+
+ | Setting | Action |
+ |||
+ | Backend settings name | Enter **my-agw-backend-setting**. |
+ | Backend protocol | Select **HTTPS**. |
+ | Backend port | Enter **443**. |
+ | Use well known CA certificate | Select **Yes**. |
+ | Override with new host name | Select **Yes**. |
+ | Host name override | Select **Pick host name from backend target**. |
+ | Create custom probes | Select **No**. |
+
+1. Select **Add**, to add the backend settings.
+
+1. In the *Add a routing rule* window, select **Add** again.
+
+1. Select **Next: Tags**.
+1. Select **Next: Review + create**, and then select **Create**.
+
+## Add private link to your Application Gateway
+
+This step is required for internal only container app environments as it allows your Application Gateway to communicate with your Container App on the backend through the virtual network.
+
+1. Once the Application Gateway is created, select **Go to resource**.
+1. From the menu on the left, select **Private link**, then select **Add**.
+1. Enter the following values:
+
+ | Setting | Action |
+ |||
+ | Name | Enter **my-agw-private-link. |
+ | Private link subnet | Select the subnet you wish to create the private link with. |
+ | Frontend IP Configuration | Select the frontend IP for your Application Gateway. |
+
+1. Under **Private IP address settings** select **Add**.
+1. Select **Add** at the bottom of the window.
+
+## Verify the container app
+
+# [Default domain](#tab/default-domain)
+
+1. Find the public IP address for the application gateway on its *Overview* page, or you can search for the address. To search, select *All resources* and enter **my-container-apps-agw-pip** in the search box. Then, select the IP in the search results.
+1. Navigate to the public IP address of the application gateway.
+1. Your request is automatically routed to the container app, which verifies the application gateway was successfully created.
+
+# [Custom domain](#tab/custom-domain)
+
+1. Find the public IP address for the application gateway on its *Overview* page, or you can search for the address.
+
+ To search, select *All resources* and enter **my-container-apps-agw-pip** in the search box. Then, select the IP in the search results.
+
+1. Next, you need to update your DNS records via your domain provider's website. Open a new browser window to add the DNS records. Set the A record type to point to the IP address of the application gateway.
+
+1. In your browser, enter your domain. Make sure you use the https protocol.
+
+1. Your request is automatically routed to the container app, which verifies that the application gateway is successfully created.
+++
+## Clean up resources
+
+When you no longer need the resources that you created, delete the resource group. When you delete the resource group, you also remove all the related resources.
+
+To delete the resource group:
+
+1. On the Azure portal menu, select **Resource groups** or search for and select *Resource groups*.
+1. On the *Resource groups* page, search for and select **my-container-apps**.
+1. On the *Resource group page*, select **Delete resource group**.
+1. Enter **my-container-apps** under *TYPE THE RESOURCE GROUP NAME* and then select **Delete**
+
+## Next steps
+
+> [!div class="nextstepaction"]
+> [Azure Firewall in Azure Container Apps](user-defined-routes.md)
container-apps Workload Profiles Manage Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/workload-profiles-manage-cli.md
+
+ Title: Create a Consumption + Dedicated workload profiles environment (preview)
+description: Learn to create an environment with a specialized hardware profile.
++++ Last updated : 03/28/2023+++
+# Manage workload profiles in a Consumption + Dedicated workload profiles plan structure (preview)
+
+## Supported regions
+
+The following regions support workload profiles during preview:
+
+- North Central US
+- North Europe
+- West Europe
+- East US
+
+<a id="create"></a>
+
+## Create a container app in a profile
+
+At a high level, when you create a container app into a workload profile, you go through the following steps:
+
+- Select a workload profile
+- Create or provide a VNet
+- Create a subnet with a `Microsoft.App/environments` delegation
+- Create a new environment
+- Create a container app associated with the workload profile in the environment
+
+Use the following commands to create an environment with a workload profile.
+
+1. Create a VNet
+
+ ```bash
+ az network vnet create \
+ --address-prefixes 13.0.0.0/23 \
+ --resource-group "<RESOURCE_GROUP>" \
+ --location "<LOCATION>" \
+ --name "<VNET_NAME>"
+ ```
+
+1. Create a subnet
+
+ ```bash
+ az network vnet subnet create \
+ --address-prefixes 13.0.0.0/23 \
+ --delegations Microsoft.App/environments \
+ --name "<SUBNET_NAME>" \
+ --resource-group "<RESOURCE_GROUP>" \
+ --vnet-name "<VNET_NAME>" \
+ --query "id"
+ ```
+
+ Copy the ID value and paste into the next command.
+
+ You can specify as small as a `/27` CIDR (32 IPs-8 reserved) for the subnet. Some things to consider if you're going to specify a `/27` CIDR:
+
+ - There are 11 IP addresses reserved for Container Apps infrastructure. Therefore, a `/27` CIDR has a maximum of 21 IP available addresses.
+
+ - IP addresses are allocated differently between Consumption and Dedicated profiles:
+
+ | Consumption | Consumption + Dedicated |
+ |||
+ | Every replica requires one IP. Users can't have apps with more than 21 replicas across all apps. Zero downtime deployment requires double the IPs since the old revision is running until the new revision is successfully deployed. | Every instance (VM node) requires a single IP. You can have up to 21 instances across all workload profiles, and hundreds or more replicas running on these workload profiles. |
+
+1. Create *Consumption + Dedicated* environment with workload profile support
+
+ >[!Note]
+ > In Container Apps, you can configure whether your Container Apps will allow public ingress or only ingress from within your VNet at the environment level. In order to restrict ingress to just your VNet, you will need to set the `--internal-only` flag.
+
+ # [External environment](#tab/external-env)
+
+ ```bash
+ az containerapp env create \
+ --enable-workload-profiles \
+ --resource-group "<RESOURCE_GROUP>" \
+ --name "<NAME>" \
+ --location "<LOCATION>" \
+ --infrastructure-subnet-resource-id "<SUBNET_ID>"
+ ```
+
+ # [Internal environment](#tab/internal-env)
+
+ ```bash
+ az containerapp env create \
+ --enable-workload-profiles \
+ --resource-group "<RESOURCE_GROUP>" \
+ --name "<NAME>" \
+ --location "<LOCATION>" \
+ --infrastructure-subnet-resource-id "<SUBNET_ID>"
+ --internal--only
+ ```
+
+
+
+ ```bash
+ az containerapp env create \
+ --enable-workload-profiles \
+ --resource-group "<RESOURCE_GROUP>" \
+ --name "<NAME>" \
+ --location "<LOCATION>" \
+ --infrastructure-subnet-resource-id "<SUBNET_ID>"
+ ```
+
+ This command can take up to 10 minutes to complete.
+
+1. Check status of environment. Here, you're looking to see if the environment is created successfully.
+
+ ```bash
+ az containerapp env show \
+ --name "<ENVIRONMENT_NAME>" \
+ --resource-group "<RESOURCE_GROUP>"
+ ```
+
+ The `provisioningState` needs to report `Succeeded` before moving on to the next command.
+
+1. Create a new container app.
+
+ ```azurecli
+ az containerapp create \
+ --resource-group "<RESOURCE_GROUP>" \
+ --name "<CONTAINER_APP_NAME>" \
+ --target-port 80 \
+ --ingress external \
+ --image mcr.microsoft.com/azuredocs/containerapps-helloworld:latest \
+ --environment "<ENVIRONMENT_NAME>" \
+ --workload-profile-name "consumption"
+ ```
+
+ This command deploys the application to the built in Consumption workload profile. If you want to create an app in a dedicated workload profile, you first need to [add the profile to the environment](#add-profiles).
+
+ This command creates the new application in the environment using a specific workload profile.
+
+## Add profiles
+
+Add a new workload profile to an existing environment.
+
+```azurecli
+az containerapp env workload-profile set \
+ --resource-group <RESOURCE_GROUP> \
+ --name <ENVIRONMENT_NAME> \
+ --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
+ --workload-profile-name <WORKLOAD_PROFILE_NAME> \
+ --min-nodes <MIN_NODES> \
+ --max-nodes <MAX_NODES>
+```
+
+The value you select for the `<WORKLOAD_PROFILE_NAME>` placeholder is the workload profile "friendly name".
+
+Using friendly names allow you to add multiple profiles of the same type to an environment. The friendly name is what you use as you deploy and maintain a container app in a workload profile.
+
+## Edit profiles
+
+You can modify the minimum and maximum number of nodes used by a workload profile via the `set` command.
+
+```azurecli
+az containerapp env workload-profile set \
+ --resource-group <RESOURCE_GROUP> \
+ --name <ENV_NAME> \
+ --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
+ --workload-profile-name <WORKLOAD_PROFILE_NAME> \
+ --min-nodes <MIN_NODES> \
+ --max-nodes <MAX_NODES>
+```
+
+## Delete a profile
+
+Use the following command to delete a workload profile.
+
+```azurecli
+az containerapp env workload-profile delete \
+ --resource-group "<RESOURCE_GROUP>" \
+ --name <ENVIRONMENT_NAME> \
+ --workload-profile-name <WORKLOAD_PROFILE_NAME>
+```
+
+> [!NOTE]
+> The *Consumption* workload profile canΓÇÖt be deleted.
+
+## Inspect profiles
+
+The following commands allow you to list available profiles in your region and ones used in a specific environment.
+
+### List available workload profiles
+
+Use the `list-supported` command to list the supported workload profiles for your region.
+
+The following Azure CLI command displays the results in a table
+
+```azurecli
+az containerapp env workload-profile list-supported \
+ --location <LOCATION>  \
+ --query "[].{Name: name, Cores: properties.cores, MemoryGiB: properties.memoryGiB, Category: properties.category}" \
+ -o table
+```
+
+The response resembles a table similar to the below example:
+
+```output
+Name Cores MemoryGiB Category
+-- - --
+D4 4 16 GeneralPurpose
+D8 8 32 GeneralPurpose
+D16 16 64 GeneralPurpose
+E4 4 32 MemoryOptimized
+E8 8 64 MemoryOptimized
+E16 16 128 MemoryOptimized
+Consumption 4 8 Consumption
+```
+
+Select a workload profile and use the *Name* field when you run `az containerapp env workload-profile set` for the `--workload-profile-type` option.
+
+### Show a workload profile
+
+Display details about a workload profile.
+
+```azurecli
+az containerapp env workload-profile show \
+ --resource-group <RESOURCE_GROUP> \
+ --name <ENVIRONMENT_NAME> \
+ --workload-profile-name <WORKLOAD_PROFILE_NAME>
+```
+
+## Next steps
+
+> [!div class="nextstepaction"]
+> [Workload profiles overview](./workload-profiles-overview.md)
container-apps Workload Profiles Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/workload-profiles-overview.md
+
+ Title: Workload profiles in Consumption + Dedicated plan structure environments in Azure Container Apps
+description: Learn how to select a workload profile for your container app
++++ Last updated : 03/30/2023++++
+# Workload profiles in Consumption + Dedicated plan structure environments in Azure Container Apps (preview)
+
+Under the [Consumption + Dedicated plan structure](./plans.md#consumption-dedicated), you can use different workload profiles in your environment. Workload profiles determine the amount of compute and memory resources available to container apps deployed in an environment.
+
+Profiles are configured to fit the different needs of your applications.
+
+| Profile type | Description | Potential use |
+|--|--|--|
+| Consumption | Automatically added to any new environment. | Apps that don't require specific hardware requirements |
+| Dedicated General purpose | Balance of memory and compute resources | Apps needing larger amounts of CPU and/or memory |
+| Dedicated Memory optimized | Increased memory resources | Apps needing large in-memory data, in-memory machine learning models, or other high memory requirements |
+
+A Consumption workload profile is automatically added to all Consumption + Dedicated plan structure environment you create. You can optionally add dedicated workload profiles of any type or size as you create an environment or after it's created.
+
+For each Dedicated workload profile in your environment, you can:
+
+- Select the type and size
+- Deploy multiple apps into the profile
+- Use autoscaling to add and remove nodes based on the needs of the apps
+- Limit scaling of the profile to for better cost control and predicatibilty
+
+You can configure each of your apps to run on any of the workload profiles defined in your Container Apps environment. This configuration is ideal for deploying a microservice solution where each app can run on the appropriate compute infrastructure.
+
+## Supported regions
+
+The following regions support workload profiles during preview:
+
+- North Central US
+- North Europe
+- West Europe
+- East US
+
+## Profile types
+
+There are different types and sizes of workload profiles available by region. By default each Consumption + Dedicated plan structure includes a Consumption profile, but you can also add any of the following profiles:
+
+| Display name | Name | Cores | MemoryGiB | Category | Allocation |
+|||||||
+| Consumption | consumption |4 | 8 | Consumption | per replica |
+| Dedicated-D4 | D4 | 4 | 16 | General purpose | per node |
+| Dedicated-D8 | D8 | 8 | 32 | General purpose | per node |
+| Dedicated-D16 | D16 | 16 | 64 | General purpose | per node |
+| Dedicated-E4 | E4 | 4 | 32 | Memory optimized | per node |
+| Dedicated-E8 | E8 | 8 | 64 | Memory optimized | per node |
+| Dedicated-E16 | E16 | 16 | 128 | Memory optimized | per node |
+
+Select a workload profile and use the *Name* field when you run `az containerapp env workload-profile set` for the `--workload-profile-type` option.
+
+The availability of different workload profiles varies by region.
+
+## Resource consumption
+
+You can constrain the memory and CPU usage of each app inside a workload profile, and you can run multiple apps inside a single instance of a workload profile. However, the total amount of resources available to a container app is less than what's allocated to a profile. The difference between allocated and available resources is what's reserved for the Azure Container Apps runtime.
+
+## Scaling
+
+When demand for new apps or more replicas of an existing app exceeds the profile's current resources, profile instances may be added. Inversely, if the number of apps or replicas goes down, profile instances may be removed. You have control over the constraints on the minimum and maximum number of profile instances. Azure calculates [billing](billing.md#consumption-dedicated) largely based on the number of running profile instances.
+
+## Next steps
+
+> [!div class="nextstepaction"]
+> [Manage workload profiles with the CLI](workload-profiles-manage-cli.md)
cosmos-db How To Configure Capabilities https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cosmos-db/mongodb/how-to-configure-capabilities.md
Previously updated : 12/2/2022 Last updated : 03/31/2023
Capabilities are features that can be added or removed to your API for MongoDB a
- An Azure account with an active subscription. [Create an account for free](https://aka.ms/trycosmosdb). - Azure Cosmos DB for MongoDB account. [Create an API for MongoDB account](quickstart-nodejs.md#create-an-azure-cosmos-db-account).-- [Azure Command-Line Interface (CLI)](/cli/azure/)
+- [Azure Command-Line Interface (CLI)](/cli/azure/) or Azure Portal access. Changing capabilities via ARM is not supported.
## Available capabilities
defender-for-cloud Attack Path Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/attack-path-reference.md
description: This article lists Microsoft Defender for Cloud's list of attack paths based on resource. Previously updated : 03/22/2023 Last updated : 04/02/2023 # Reference list of attack paths and cloud security graph components
Prerequisite: [Enable agentless scanning](enable-vulnerability-assessment-agentl
| Attack Path Display Name | Attack Path Description | |--|--|
-| Internet exposed SQL on VM has a user account with commonly used username and allows code execution on the VM | SQL on VM is reachable from the internet, has a local user account with a commonly used username (which is prone to brute force attacks), and has vulnerabilities allowing code execution and lateral movement to the underlying VM. <br/> Prerequisite: [Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md) |
-| Internet exposed SQL on VM has a user account with commonly used username and known vulnerabilities | SQL on VM is reachable from the internet, has a local user account with a commonly used username (which is prone to brute force attacks), and has known vulnerabilities (CVEs). <br/> Prerequisite: [Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md) |
-| SQL on VM has a user account with commonly used username and allows code execution on the VM | SQL on VM has a local user account with a commonly used username (which is prone to brute force attacks), and has vulnerabilities allowing code execution and lateral movement to the underlying VM. <br/> Prerequisite: [Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md)|
-| SQL on VM has a user account with commonly used username and known vulnerabilities | SQL on VM has a local user account with a commonly used username (which is prone to brute force attacks), and has known vulnerabilities (CVEs). <br/> Prerequisite: [Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md)|
+| Internet exposed SQL on VM has a user account with commonly used username and allows code execution on the VM (Preview) | SQL on VM is reachable from the internet, has a local user account with a commonly used username (which is prone to brute force attacks), and has vulnerabilities allowing code execution and lateral movement to the underlying VM. <br/> Prerequisite: [Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md) |
+| Internet exposed SQL on VM has a user account with commonly used username and known vulnerabilities (Preview) | SQL on VM is reachable from the internet, has a local user account with a commonly used username (which is prone to brute force attacks), and has known vulnerabilities (CVEs). <br/> Prerequisite: [Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md) |
+| SQL on VM has a user account with commonly used username and allows code execution on the VM (Preview) | SQL on VM has a local user account with a commonly used username (which is prone to brute force attacks), and has vulnerabilities allowing code execution and lateral movement to the underlying VM. <br/> Prerequisite: [Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md)|
+| SQL on VM has a user account with commonly used username and known vulnerabilities (Preview) | SQL on VM has a local user account with a commonly used username (which is prone to brute force attacks), and has known vulnerabilities (CVEs). <br/> Prerequisite: [Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md)|
| Managed database with excessive internet exposure allows basic (local user/password) authentication | Database can be accessed through the internet from any public IP and allows authentication using username and password (basic authentication mechanism) which exposes the DB to brute force attacks. | | Internet exposed VM has high severity vulnerabilities and a hosted database installed | An attacker with network access to the DB machine can exploit the vulnerabilities and gain remote code execution. | Private Azure blob storage container replicates data to internet exposed and publicly accessible Azure blob storage container (Preview) | An internal Azure storage container replicates its data to another Azure storage container which is reachable from the internet and allows public access, and poses this data at risk. | | Internet exposed Azure Blob Storage container with sensitive data is publicly accessible (Preview) | A blob storage account container with sensitive data is reachable from the internet and allows public read access without authorization required. <br/> Prerequisite: [Enable data-aware security for storage accounts in Defender for CSPM](data-security-posture-enable.md).| | Internet exposed managed database allows basic (local user/password) authentication (Preview) | A database can be accessed through the internet and allows authentication using username and password (basic authentication mechanism) which exposes the DB to brute force attacks. |
-| Internet exposed Azure Blob Storage container with sensitive data is publicly accessible (Preview) | Azure Blob storage container with sensitive data is reachable from the internet and allows public read access without authorization required |
+| Internet exposed database server allows basic (user/password) authentication method (Preview) | Azure SQL database can be accessed through the internet and allows user/password authentication which exposes the DB to brute force attacks. |
### AWS data | Attack Path Display Name | Attack Path Description | |--|--|
-| Internet exposed AWS S3 Bucket with sensitive data is publicly accessible | An S3 bucket with sensitive data is reachable from the internet and allows public read access without authorization required. <br/> Prerequisite: [Enable data-aware security for S3 buckets in Defender for CSPM](data-security-posture-enable.md), or [leverage Microsoft Purview Data Catalog to protect sensitive data](information-protection.md). |
-|Internet exposed SQL on EC2 instance has a user account with commonly used username and allows code execution on the underlying compute | Internet exposed SQL on EC2 instance has a user account with commonly used username and allows code execution on the underlying compute. <br/> Prerequisite:ΓÇ»[Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md). |
-|Internet exposed SQL on EC2 instance has a user account with commonly used username and known vulnerabilities | SQL on EC2 instance is reachable from the internet, has a local user account with a commonly used username (which is prone to brute force attacks), and has known vulnerabilities (CVEs). <br/> Prerequisite:ΓÇ»[Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md) |
-|SQL on EC2 instance has a user account with commonly used username and allows code execution on the underlying compute | SQL on EC2 instance has a local user account with commonly used username (which is prone to brute force attacks), and has vulnerabilities allowing code execution and lateral movement to the underlying compute. <br/> Prerequisite:ΓÇ»[Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md) |
-| SQL on EC2 instance has a user account with commonly used username and known vulnerabilities |SQL on EC2 instance [EC2Name] has a local user account with commonly used username (which is prone to brute force attacks), and has known vulnerabilities (CVEs). <br/> Prerequisite:ΓÇ»[Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md) |
+| Internet exposed AWS S3 Bucket with sensitive data is publicly accessible (Preview) | An S3 bucket with sensitive data is reachable from the internet and allows public read access without authorization required. <br/> Prerequisite: [Enable data-aware security for S3 buckets in Defender for CSPM](data-security-posture-enable.md), or [leverage Microsoft Purview Data Catalog to protect sensitive data](information-protection.md). |
+|Internet exposed SQL on EC2 instance has a user account with commonly used username and allows code execution on the underlying compute (Preview) | Internet exposed SQL on EC2 instance has a user account with commonly used username and allows code execution on the underlying compute. <br/> Prerequisite:ΓÇ»[Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md). |
+|Internet exposed SQL on EC2 instance has a user account with commonly used username and known vulnerabilities (Preview) | SQL on EC2 instance is reachable from the internet, has a local user account with a commonly used username (which is prone to brute force attacks), and has known vulnerabilities (CVEs). <br/> Prerequisite:ΓÇ»[Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md) |
+|SQL on EC2 instance has a user account with commonly used username and allows code execution on the underlying compute (Preview) | SQL on EC2 instance has a local user account with commonly used username (which is prone to brute force attacks), and has vulnerabilities allowing code execution and lateral movement to the underlying compute. <br/> Prerequisite:ΓÇ»[Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md) |
+| SQL on EC2 instance has a user account with commonly used username and known vulnerabilities (Preview) |SQL on EC2 instance [EC2Name] has a local user account with commonly used username (which is prone to brute force attacks), and has known vulnerabilities (CVEs). <br/> Prerequisite:ΓÇ»[Enable Microsoft Defender for SQL servers on machines](defender-for-sql-usage.md) |
|Managed database with excessive internet exposure allows basic (local user/password) authentication | Database can be accessed through the internet from any public IP and allows authentication using username and password (basic authentication mechanism) which exposes the DB to brute force attacks. |
-|Internet exposed EC2 instance has high severity vulnerabilities and a hosted database installed | An attacker with network access to the DB machine can exploit the vulnerabilities and gain remote code execution.
+|Internet exposed EC2 instance has high severity vulnerabilities and a hosted database installed (Preview) | An attacker with network access to the DB machine can exploit the vulnerabilities and gain remote code execution.
| Private AWS S3 bucket replicates data to internet exposed and publicly accessible AWS S3 bucket (Preview) | An internal AWS S3 bucket replicates its data to another S3 bucket which is reachable from the internet and allows public access, and poses this data at risk. | | RDS snapshot is publicly available to all AWS accounts (Preview) | A snapshot of an RDS instance or cluster is publicly accessible by all AWS accounts. | | Internet exposed managed database allows basic (local user/password) authentication (Preview) | A database can be accessed through the internet and allows user/password authentication only which exposes the DB to brute force attacks. |
Prerequisite: [Enable agentless scanning](enable-vulnerability-assessment-agentl
| Private AWS S3 bucket replicates data to internet exposed and publicly accessible AWS S3 bucket (Preview) | Private AWS S3 bucket is replicating data to internet exposed and publicly accessible AWS S3 bucket | | Private AWS S3 bucket with sensitive data replicates data to internet exposed and publicly accessible AWS S3 bucket (Preview) | Private AWS S3 bucket with sensitive data is replicating data to internet exposed and publicly accessible AWS S3 bucket| | RDS snapshot is publicly available to all AWS accounts (Preview) | RDS snapshot is publicly available to all AWS accounts |
+| Internet exposed database server allows basic (user/password) authentication method (Preview) | AWS RDS database can be accessed through the internet and allows user/password authentication which exposes the DB to brute force attacks. |
### Azure containers
This section lists all of the cloud security graph components (connections and
| Insight | Description | Supported entities | |--|--|--| | Exposed to the internet | Indicates that a resource is exposed to the internet. Supports port filtering | Azure virtual machine, AWS EC2, Azure storage account, Azure SQL server, Azure Cosmos DB, AWS S3, Kubernetes pod, Azure SQL Managed Instance, Azure MySQL Single Server, Azure MySQL Flexible Server, Azure PostgreSQL Single Server, Azure PostgreSQL Flexible Server, Azure MariaDB Single Server, Synapse Workspace, RDS Instance |
-| Allows basic authentication | Indicates that a resource allows basic (local user/password or key-based) authentication | Azure SQL Server, RDS Instance |
-| Contains sensitive data <br/> <br/> Prerequisite: [Enable data-aware security for storage accounts in Defender for CSPM](data-security-posture-enable.md), or [leverage Microsoft Purview Data Catalog to protect sensitive data](information-protection.md). | Indicates that a resource contains sensitive data. | Azure Storage Account, Azure Storage Account Container, AWS S3 bucket, Azure SQL Server, Azure SQL Database, Azure Data Lake Storage Gen2, Azure Database for PostgreSQL, Azure Database for MySQL, Azure Synapse Analytics, Azure Cosmos DB accounts |
-| Moves data to | Indicates that a resource moves its data to another resource | Storage account container, AWS S3, AWS RDS instance, AWS RDS cluster |
-| Gets data from | Indicates that a resource gets its data from another resource | Storage account container, AWS S3, AWS RDS instance, AWS RDS cluster |
+| Allows basic authentication (Preview) | Indicates that a resource allows basic (local user/password or key-based) authentication | Azure SQL Server, RDS Instance |
+| Contains sensitive data (Preview) <br/> <br/> Prerequisite: [Enable data-aware security for storage accounts in Defender for CSPM](data-security-posture-enable.md), or [leverage Microsoft Purview Data Catalog to protect sensitive data](information-protection.md). | Indicates that a resource contains sensitive data. | Azure Storage Account, Azure Storage Account Container, AWS S3 bucket, Azure SQL Server, Azure SQL Database, Azure Data Lake Storage Gen2, Azure Database for PostgreSQL, Azure Database for MySQL, Azure Synapse Analytics, Azure Cosmos DB accounts |
+| Moves data to (Preview) | Indicates that a resource transfers its data to another resource | Storage account container, AWS S3, AWS RDS instance, AWS RDS cluster |
+| Gets data from (Preview) | Indicates that a resource gets its data from another resource | Storage account container, AWS S3, AWS RDS instance, AWS RDS cluster |
| Has tags | Lists the resource tags of the cloud resource | All Azure and AWS resources | | Installed software | Lists all software installed on the machine. This insight is applicable only for VMs that have threat and vulnerability management integration with Defender for Cloud enabled and are connected to Defender for Cloud. | Azure virtual machine, AWS EC2 | | Allows public access | Indicates that a public read access is allowed to the resource with no authorization required | Azure storage account, AWS S3 bucket, GitHub repository |
defender-for-cloud Concept Agentless Data Collection https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/concept-agentless-data-collection.md
Last updated 09/28/2022
-# Agentless scanning for machines (Preview)
+# Agentless scanning for machines
Microsoft Defender for Cloud maximizes coverage on OS posture issues and extends beyond the reach of agent-based assessments. With agentless scanning for VMs, you can get frictionless, wide, and instant visibility on actionable posture issues without installed agents, network connectivity requirements, or machine performance impact.
Agentless scanning for VMs provides vulnerability assessment and software invent
| Aspect | Details | |||
-|Release state:|Preview|
+|Release state:| GA |
|Pricing:|Requires either [Defender Cloud Security Posture Management (CSPM)](concept-cloud-security-posture-management.md) or [Microsoft Defender for Servers Plan 2](plan-defender-for-servers-select-plan.md#plan-features)| | Supported use cases:| :::image type="icon" source="./media/icons/yes-icon.png"::: Vulnerability assessment (powered by Defender Vulnerability Management)<br>:::image type="icon" source="./media/icons/yes-icon.png"::: Software inventory (powered by Defender Vulnerability Management) | | Clouds: | :::image type="icon" source="./media/icons/yes-icon.png"::: Azure Commercial clouds<br> :::image type="icon" source="./media/icons/no-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<br>:::image type="icon" source="./media/icons/no-icon.png"::: Connected GCP accounts |
defender-for-iot How To Investigate Cis Benchmark https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-iot/device-builders/how-to-investigate-cis-benchmark.md
For example:
## Useful queries to investigate the OS baseline resources > [!Note]
-> Make sure to Replace `<device-id>` with the name(s) you gave your device in each of the following queries.
+> Make sure to replace `<device-id>` with the name(s) you gave your device in each of the following queries.
### Retrieve the latest information -- **Device fleet failure**: Run the following query to retrieve the latest information about checks that failed across the device fleet:
+- **Device fleet failure**: Run this query to retrieve the latest information about checks that failed across the device fleet:
```kusto let lastDates = SecurityIoTRawEvent |
For example:
project DeviceId, event.BaselineCheckId, event.BaselineCheckDescription ``` -- **Specific device failure** - Run the following query to retrieve the latest information about checks that failed on a specific device:
+- **Specific device failure** - Run this query to retrieve the latest information about checks that failed on a specific device:
```kusto let id = SecurityIoTRawEvent |
defender-for-iot Tutorial Configure Your Solution https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-iot/device-builders/tutorial-configure-your-solution.md
In this tutorial you'll learn how to:
A new resource group will now be added to your IoT solution.
-Defender for IoT will now monitor your newly added resource groups, and surfaces relevant security recommendations and alerts as part of your IoT solution.
+Defender for IoT will now monitor your newly added resource groups, and surface relevant security recommendations and alerts as part of your IoT solution.
## Next steps
deployment-environments Concept Common Components https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/concept-common-components.md
Title: Azure Deployment Environments and Microsoft Dev Box common elements
-description: Discover the components that are shared by Azure Deployment Environments Preview and Microsoft Dev Box.
+ Title: Components common to Microsoft Dev Box and Azure Deployment Environments
+description: Discover the components that are shared by Azure Deployment Environments and Microsoft Dev Box.
deployment-environments Concept Environments Key Concepts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/concept-environments-key-concepts.md
Title: Azure Deployment Environments key concepts
-description: Learn the key concepts behind Azure Deployment Environments.
+ Title: Key concepts and roles
+
+description: Learn the key concepts, role definitions, and terminology for Azure Deployment Environments.
Last updated 10/12/2022
-# Key concepts for new Azure Deployment Environments Preview users
+# Key concepts for Azure Deployment Environments Preview
Learn about the key concepts and components of Azure Deployment Environments Preview. This knowledge can help you more effectively deploy environments for your scenarios.
deployment-environments Concept Environments Scenarios https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/concept-environments-scenarios.md
Title: User scenarios for Azure Deployment Environments
-description: Learn about scenarios enabled by Azure Deployment Environments.
+ Title: Usage scenarios for Azure Deployment Environments
+description: Learn how Azure Deployment Environments can be integrated into CI/CD pipelines, create sandboxes, and hackathon environments.
In this scenario, Azure Deployment Environments provides the following benefits:
- Teams can access a fully configured environment when it's needed. - Developers can test the latest version of an application by using reusable templates to quickly create new ad hoc environments.
-## Trainings, hands-on labs, and hackathons
+## Training, hands-on labs, and hackathons
A project in Azure Deployment Environments acts as a container for transient activities like workshops, hands-on labs, trainings, or hackathons. You can create a project to provide custom templates to each user.
deployment-environments Configure Catalog Item https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/configure-catalog-item.md
Title: Add and configure a catalog item
-description: Learn how to add and configure a catalog item in your repository to use in your Azure Deployment Environments Preview dev center projects.
+description: Learn how to add and configure a catalog item to use in your dev center projects. Catalog items contain an IaC template that defines the environment.
-# Add and configure a catalog item
+# Add and configure a catalog item in Azure Deployment Environments
In Azure Deployment Environments Preview, you can use a [catalog](concept-environments-key-concepts.md#catalogs) to provide your development teams with a curated set of predefined [infrastructure as code (IaC)](/devops/deliver/what-is-infrastructure-as-code) templates called [*catalog items*](concept-environments-key-concepts.md#catalog-items).
deployment-environments How To Configure Catalog https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/how-to-configure-catalog.md
Title: Add and configure a catalog
-description: Learn how to add and configure a catalog in your Azure Deployment Environments Preview dev center to provide deployment templates for your development teams.
+description: Learn how to add and configure a catalog in your Azure Deployment Environments dev center to provide deployment templates for your development teams. Catalogs are specialized repositories stored in GitHub or Azure DevOps.
Last updated 10/12/2022
-# Add and configure a catalog
+# Add and configure a catalog from GitHub or Azure DevOps
Learn how to add and configure a [catalog](./concept-environments-key-concepts.md#catalogs) in your Azure Deployment Environments Preview dev center. You can use a catalog to provide your development teams with a curated set of infrastructure as code (IaC) templates called [catalog items](./concept-environments-key-concepts.md#catalog-items).
deployment-environments How To Configure Deployment Environments User https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/how-to-configure-deployment-environments-user.md
Title: Provide access to developers
+ Title: Provide user access to projects for developers
-description: Learn how to configure access for developers by using the Deployment Environments User built-in role.
+description: Learn how to configure access to projects for developers by using the Deployment Environments User built-in role.
-# Provide access to developers
+# Provide access for developers to projects in Deployment Environments
In Azure Deployment Environments, development team members must get access to a specific project before they can create deployment environments. By using the built-in Deployment Environments User role, you can assign permissions to Active Directory users or groups at either the project level or the environment type level.
deployment-environments How To Configure Devcenter Environment Types https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/how-to-configure-devcenter-environment-types.md
Title: Configure dev center environment types
-description: Learn how to configure dev center environment types to define environments that your developers can deploy.
+description: Learn how to define dev center level permissions and deployment settings for the environments that developers can deploy.
Last updated 10/12/2022
-# Configure environment types for your dev center
+# Configure environment types for a dev center
In Azure Deployment Environments Preview, you use [environment types](./concept-environments-key-concepts.md#dev-center-environment-types) to define the environments that development teams can deploy. You have the flexibility to name the environment types according to the nomenclature that your enterprise uses: for example, sandbox, dev, test, or production. You can specify deployment settings and the permissions that are available to developers per environment type and per project.
deployment-environments How To Configure Managed Identity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/how-to-configure-managed-identity.md
Title: Configure a managed identity
-description: Learn how to configure a managed identity to deploy environments in your Azure Deployment Environments Preview dev center.
+description: Learn how to configure a managed identity to deploy environments in your Azure Deployment Environments dev center.
Last updated 10/12/2022
-# Configure a managed identity
+# Configure a managed identity for a dev center
A [managed identity](../active-directory/managed-identities-azure-resources/overview.md) adds elevated-privileges capabilities and secure authentication to any service that supports Azure Active Directory (Azure AD) authentication. Azure Deployment Environments Preview uses identities to give development teams self-serve deployment capabilities without giving them access to the subscriptions in which Azure resources are created.
deployment-environments How To Configure Project Admin https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/how-to-configure-project-admin.md
Title: Provide access to dev managers
+ Title: Provide administrative access to projects
-description: Learn how to configure access for dev managers by using the DevCenter Project Admin built-in role.
+description: Learn how to configure administrative access for dev managers by using the DevCenter Project Admin built-in role.
Last updated 10/12/2022
-# Provide access to dev managers
+# Provide access for dev managers to Deployment Environments projects
In Azure Deployment Environments, you can create multiple projects associated with the dev center to align with each team's requirements. By using the built-in DevCenter Project Admin role, you can delegate project administration to a member of a team. DevCenter Project Admin users can configure [project environment types](concept-environments-key-concepts.md#project-environment-types) to enable developers to create various types of [environments](concept-environments-key-concepts.md#environments) and apply settings to each environment type.
deployment-environments How To Configure Project Environment Types https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/how-to-configure-project-environment-types.md
Title: Configure project environment types
-description: Learn how to configure environment types to define deployment settings and permissions available to developers when they're deploying environments in a project.
+description: Learn how to add, update, and delete project environment types in Azure Deployment Environments. Define project-level deployment settings and permissions.
deployment-environments How To Create Access Environments https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/how-to-create-access-environments.md
Title: Create and access an environment by using the Azure CLI
-description: Learn how to create and access an environment in an Azure Deployment Environments Preview project by using the Azure CLI.
+description: Learn how to create and access an environment in an Azure Deployment Environments project by using the Azure CLI.
deployment-environments How To Install Devcenter Cli Extension https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/how-to-install-devcenter-cli-extension.md
Title: Install the devcenter Azure CLI extension-
-description: Learn how to install the Azure CLI and the Azure Deployment Environments Preview CLI extension so you can create Deployment Environments resources from the command line.
+
+description: Learn how to install the Azure CLI and the Azure Deployment Environments CLI extension so you can create Deployment Environments resources from the command line.
deployment-environments How To Manage Environments https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/how-to-manage-environments.md
Title: Manage your environment
-description: Learn how to manage your Azure Deployment Environments Preview deployment environment in the developer portal or by using the Azure CLI.
+description: Learn how to manage your Azure Deployment Environments deployment environment in the developer portal or by using the Azure CLI.
deployment-environments Overview What Is Azure Deployment Environments https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/overview-what-is-azure-deployment-environments.md
Title: What is Azure Deployment Environments?
-description: 'Azure Deployment Environments enables developer teams to quickly spin up app infrastructure with project-based templates, minimizing setup time while maximizing security, compliance, and cost efficiency.'
+description: Enable developer teams to spin up app infrastructure with project-based templates, minimize setup time & maximize security, compliance, and cost efficiency.
deployment-environments Quickstart Create Access Environments https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/quickstart-create-access-environments.md
Title: Create and access an environment
+ Title: Create and access an environment in the developer portal
-description: Learn how to create and access an environment in an Azure Deployment Environments Preview project.
+description: Learn how to create and access an environment in an Azure Deployment Environments project through the developer portal.
Last updated 10/26/2022
-# Quickstart: Create and access an environment
+# Quickstart: Create and access Azure Deployment Environments by using the developer portal
This quickstart shows you how to create and access an [environment](concept-environments-key-concepts.md#environments) in an existing Azure Deployment Environments Preview project.
deployment-environments Quickstart Create And Configure Devcenter https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/quickstart-create-and-configure-devcenter.md
Title: Create and configure a dev center
-description: Learn how to create and configure a dev center in Azure Deployment Environments Preview. In the quickstart, you create a dev center, attach an identity, attach a catalog, and create environment types.
+description: Learn how to create and configure a dev center in Azure Deployment Environments. In the quickstart, you create a dev center, attach an identity, attach a catalog, and create environment types.
Last updated 02/08/2023
-# Quickstart: Create and configure a dev center
+# Quickstart: Create and configure a dev center for Azure Deployment Environments
This quickstart shows you how to create and configure a dev center in Azure Deployment Environments Preview.
deployment-environments Quickstart Create And Configure Projects https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/deployment-environments/quickstart-create-and-configure-projects.md
Title: Create and configure a project
-description: Learn how to create a project in Azure Deployment Environments Preview and associate the project with a dev center.
+description: Learn how to create a project in Azure Deployment Environments and associate the project with a dev center.
dev-box Concept Common Components https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/concept-common-components.md
Title: Microsoft Dev Box and Azure Deployment Environments common elements
+ Title: Components common to Azure Deployment Environments and Microsoft Dev Box
description: Discover the components shared by Microsoft Dev Box and Azure Deployment Environments.
dev-box Concept Dev Box Concepts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/concept-dev-box-concepts.md
Title: Microsoft Dev Box Preview key concepts-
-description: Learn key concepts and terminology for Microsoft Dev Box Preview.
+ Title: Microsoft Dev Box key concepts
+description: Learn key concepts and terminology for Microsoft Dev Box.
#Customer intent: As a developer, I want to understand Dev Box concepts and terminology so that I can set up a Dev Box environment.
-# Microsoft Dev Box Preview key concepts
+# Key concepts for Microsoft Dev Box Preview
-This article describes the key concepts and components of Microsoft Dev Box Preview.
+This article describes the key concepts and components of Microsoft Dev Box.
## Dev box
dev-box How To Configure Azure Compute Gallery https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-configure-azure-compute-gallery.md
Title: Configure Azure Compute Gallery-
-description: Learn how to create a repository for managing and sharing Dev Box images.
+
+description: Learn how to create an Azure Compute Gallery repository for managing and sharing Dev Box images.
Last updated 10/17/2022
-# Configure Azure Compute Gallery
+# Configure Azure Compute Gallery for Microsoft Dev Box
Azure Compute Gallery is a service for managing and sharing images. A gallery is a repository that's stored in your Azure subscription and helps you build structure and organization around your image resources. You can use a gallery to provide custom images for your dev box users.
dev-box How To Configure Network Connections https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-configure-network-connections.md
+
+ Title: Configure network connections
+
+description: Learn how to create, delete, attach, and remove Microsoft Dev Box Preview network connections.
++++ Last updated : 10/12/2022+
+#Customer intent: As a dev infrastructure manager, I want to be able to manage network connections so that I can enable dev boxes to connect to my existing networks and deploy them in the desired region.
++
+# Connect dev boxes to resources by configuring network connections
+
+Network connections allow dev boxes to connect to existing virtual networks. They also determine the region into which dev boxes are deployed.
+
+When you're planning network connectivity for your dev boxes, you must:
+
+- Ensure that you have sufficient permissions to create and configure network connections.
+- Ensure that you have at least one virtual network and subnet available for your dev boxes.
+- Identify the region or location that's closest to your dev box users. Deploying dev boxes into a region that's close to users gives them a better experience.
+- Determine whether dev boxes should connect to your existing networks by using Azure Active Directory (Azure AD) join or hybrid Azure AD join.
+
+## Permissions
+
+To manage a network connection, you need the following permissions:
+
+|Action|Permissions required|
+|--|--|
+|Create and configure a virtual network and subnet|Network Contributor permissions on an existing virtual network (Owner or Contributor), or permission to create a new virtual network and subnet.|
+|Create or delete a network connection|Owner or Contributor permissions on an Azure subscription or on a specific resource group.|
+|Add or remove a network connection |Write permission on the dev center.|
+
+## Create a virtual network and subnet
+
+To create a network connection, you need an existing virtual network and subnet. If you don't have a virtual network and subnet available, use the following steps to create them:
+
+1. Sign in to the [Azure portal](https://portal.azure.com).
+
+1. In the search box, enter **virtual network**. In the list of results, select **Virtual Network**.
+
+1. On the **Virtual Network** page, select **Create**.
+
+1. On the **Create virtual network** pane, on the **Basics** tab, enter the following values:
+
+ | Setting | Value |
+ | - | -- |
+ | **Subscription** | Select your subscription. |
+ | **Resource group** | Select an existing resource group. Or create a new one by selecting **Create new**, entering **rg-name**, and then selecting **OK**. |
+ | **Name** | Enter **VNet-name**. |
+ | **Region** | Select the region for the virtual network and dev boxes. |
+
+ :::image type="content" source="./media/how-to-manage-network-connection/example-basics-tab.png" alt-text="Screenshot of the Basics tab on the pane for creating a virtual network in the Azure portal." border="true":::
+
+ > [!Important]
+ > The region that you select for the virtual network is the where the dev boxes will be deployed.
+
+1. On the **IP Addresses** tab, accept the default settings.
+
+1. On the **Security** tab, accept the default settings.
+
+1. On the **Review + create** tab, review the settings.
+
+1. Select **Create**.
+
+## Allow access to Dev Box endpoints from your network
+
+An organization can control network ingress and egress by using a firewall, network security groups, and even Microsoft Defender.
+
+If your organization routes egress traffic through a firewall, you need to open certain ports to allow the Microsoft Dev Box Preview service to function. For more information, see [Network requirements](/windows-365/enterprise/requirements-network).
+
+## Plan a network connection
+
+The following sections show you how to create and configure a network connection in Microsoft Dev Box Preview.
+
+### Types of Active Directory join
+
+The Dev Box service requires a configured and working Active Directory join, which defines how dev boxes join your domain and access resources. There are two choices:
+
+- **Azure AD join**: If your organization uses Azure AD, you can use an Azure AD join (sometimes called a native Azure AD join). Dev box users sign in to Azure AD-joined dev boxes by using their Azure AD account and access resources based on the permissions assigned to that account. Azure AD join enables access to cloud-based and on-premises apps and resources.
+
+ For more information, see [Plan your Azure Active Directory join deployment](../active-directory/devices/azureadjoin-plan.md).
+- **Hybrid Azure AD join**: If your organization has an on-premises Active Directory implementation, you can still benefit from some of the functionality in Azure AD by using hybrid Azure AD-joined dev boxes. These dev boxes are joined to your on-premises Active Directory instance and registered with Azure AD.
+
+ Hybrid Azure AD-joined dev boxes require network line of sight to your on-premises domain controllers periodically. Without this connection, devices become unusable.
+
+ For more information, see [Plan your hybrid Azure Active Directory join deployment](../active-directory/devices/hybrid-azuread-join-plan.md).
+
+### Create a network connection
+
+Follow the steps on the relevant tab to create your network connection.
+
+#### [**Azure AD join**](#tab/AzureADJoin/)
+
+1. Sign in to the [Azure portal](https://portal.azure.com).
+
+1. In the search box, enter **network connections**. In the list of results, select **Network connections**.
+
+1. On the **Network Connections** page, select **Create**.
+
+ :::image type="content" source="./media/how-to-manage-network-connection/network-connections-empty.png" alt-text="Screenshot that shows the Create button on the page for network connections.":::
+
+1. On the **Create a network connection** pane, on the **Basics** tab, enter the following values:
+
+ |Name|Value|
+ |-|-|
+ |**Domain join type**|Select **Azure active directory join**.|
+ |**Subscription**|Select the subscription in which you want to create the network connection.|
+ |**ResourceGroup**|Select an existing resource group, or select **Create new** and then enter a name for the new resource group.|
+ |**Name**|Enter a descriptive name for the network connection.|
+ |**Virtual network**|Select the virtual network that you want the network connection to use.|
+ |**Subnet**|Select the subnet that you want the network connection to use.|
+
+ :::image type="content" source="./media/how-to-manage-network-connection/create-native-network-connection-full-blank.png" alt-text="Screenshot that shows the Basics tab on the pane for creating a network connection, with the option for Azure Active Directory join selected.":::
+
+1. Select **Review + Create**.
+
+1. On the **Review** tab, select **Create**.
+
+1. When the deployment is complete, select **Go to resource**. Confirm that the connection appears on the **Network connections** page.
+
+#### [**Hybrid Azure AD join**](#tab/HybridAzureADJoin/)
+
+1. Sign in to the [Azure portal](https://portal.azure.com).
+
+1. In the search box, enter **network connections**. In the list of results, select **Network connections**.
+
+1. On the **Network Connections** page, select **Create**.
+
+ :::image type="content" source="./media/how-to-manage-network-connection/network-connections-empty.png" alt-text="Screenshot that shows the Create button on the page that lists network connections.":::
+
+1. On the **Create a network connection** pane, on the **Basics** tab, enter the following values:
+
+ |Name|Value|
+ |-|-|
+ |**Domain join type**|Select **Hybrid Azure active directory join**.|
+ |**Subscription**|Select the subscription in which you want to create the network connection.|
+ |**ResourceGroup**|Select an existing resource group, or select **Create new** and then enter a name for the new resource group.|
+ |**Name**|Enter a descriptive name for the network connection.|
+ |**Virtual network**|Select the virtual network that you want the network connection to use.|
+ |**Subnet**|Select the subnet that you want the network connection to use.|
+ |**AD DNS domain name**| Enter the DNS name of the Active Directory domain that you want to use for connecting and provisioning Cloud PCs. For example: `corp.contoso.com`. |
+ |**Organizational unit**| Enter the organizational unit (OU). An OU is a container within an Active Directory domain that can hold users, groups, and computers. |
+ |**AD username UPN**| Enter the username, in user principal name (UPN) format, that you want to use for connecting Cloud PCs to your Active Directory domain. For example: `svcDomainJoin@corp.contoso.com`. This service account must have permission to join computers to the domain and the target OU (if one is set). |
+ |**AD domain password**| Enter the password for the user. |
+
+ :::image type="content" source="./media/how-to-manage-network-connection/create-hybrid-network-connection-full-blank.png" alt-text="Screenshot that shows the Basics tab on the pane for creating a network connection, with the option for hybrid Azure Active Directory join selected.":::
+
+1. Select **Review + Create**.
+
+1. On the **Review** tab, select **Create**.
+
+1. When the deployment is complete, select **Go to resource**. Confirm that the connection appears on the **Network connections** page.
+++
+## Attach a network connection to a dev center
+
+You need to attach a network connection to a dev center before you can use it in projects to create dev box pools.
+
+1. Sign in to the [Azure portal](https://portal.azure.com).
+
+1. In the search box, enter **dev centers**. In the list of results, select **Dev centers**.
+
+1. Select the dev center that you created, and then select **Networking**.
+
+1. Select **+ Add**.
+
+1. On the **Add network connection** pane, select the network connection that you created earlier, and then select **Add**.
+
+ :::image type="content" source="./media/how-to-manage-network-connection/add-network-connection.png" alt-text="Screenshot that shows the pane for adding a network connection.":::
+
+After you attach a network connection, the Azure portal runs several health checks on the network. You can view the status of the checks on the resource overview page.
++
+You can add network connections that pass all health checks to a dev center and use them to create dev box pools. Dev boxes within dev box pools are created and domain joined in the location of the virtual network that's assigned to the network connection.
+
+To resolve any errors, see [Troubleshoot Azure network connections](/windows-365/enterprise/troubleshoot-azure-network-connection).
+
+## Remove a network connection from a dev center
+
+You can remove a network connection from a dev center if you no longer want to use it to connect to network resources. Network connections can't be removed if one or more dev box pools are using them.
+
+1. Sign in to the [Azure portal](https://portal.azure.com).
+
+1. In the search box, enter **dev centers**. In the list of results, select **Dev centers**.
+
+1. Select the dev center that you created, and then select **Networking**.
+
+1. Select the network connection that you want to remove, and then select **Remove**.
+
+ :::image type="content" source="./media/how-to-manage-network-connection/remove-network-connection.png" alt-text="Screenshot that shows the Remove button on the network connection page.":::
+
+1. Read the warning message, and then select **OK**.
+
+The network connection is no longer available for use in the dev center.
+
+## Next steps
+
+- [Manage a dev box definition](how-to-manage-dev-box-definitions.md)
+- [Manage a dev box pool](how-to-manage-dev-box-pools.md)
+- [Manage a dev box project](how-to-manage-dev-box-projects.md)
dev-box How To Configure Stop Schedule https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-configure-stop-schedule.md
+
+ Title: Set a dev box auto-stop schedule
+
+description: Learn how to configure an auto-stop schedule to automatically shutdown dev boxes in a pool at a specified time.
++++ Last updated : 12/19/2022+++
+# Auto-stop your Dev Boxes on schedule
+To save on costs, you can enable an Auto-stop schedule on a dev box pool. Microsoft Dev Box Preview will attempt to shut down all dev boxes in that pool at the time specified in the schedule. You can configure one stop time in one timezone for each pool.
+
+## Permissions
+To manage a dev box schedule, you need the following permissions:
+
+|Action|Permission required|
+|--|--|
+|Configure a schedule|Owner, Contributor, or DevCenter Project Admin.|
+
+## Manage an auto-stop schedule in the Azure portal
+
+You can enable, modify, and disable auto-stop schedules using the Azure portal.
+
+### Create an auto-stop schedule
+You can create an auto-stop schedule while creating a new dev box pool, or by modifying an already existing dev box pool. The following steps show you how to use the Azure portal to create and configure an auto-stop schedule.
+
+### Add an auto-stop schedule to an existing pool
+
+1. Sign in to the [Azure portal](https://portal.azure.com).
+
+1. In the search box, type *Projects* and then select **Projects** from the list.
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/discover-projects.png" alt-text="Screenshot showing a search for projects from the Azure portal search box.":::
+
+1. Open the project associated with the pool you want to edit.
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/projects-grid.png" alt-text="Screenshot of the list of existing projects.":::
+
+1. Select the pool you wish to modify, and then select edit. You might need to scroll to locate edit.
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/dev-box-edit-pool.png" alt-text="Screenshot of the edit dev box pool button.":::
+
+1. In **Enable Auto-stop**, select **Yes**.
+
+ |Name|Value|
+ |-|-|
+ |**Enable Auto-stop**|Select **Yes** to enable an Auto-stop schedule after the pool has been created.|
+ |**Stop time**| Select a time to shutdown all the dev boxes in the pool. All Dev Boxes in this pool will be shut down at this time, everyday.|
+ |**Time zone**| Select the time zone that the stop time is in.|
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/dev-box-save-pool.png" alt-text="Screenshot of the edit dev box pool page showing the Auto-stop options.":::
+
+1. Select **Save**.
+
+### Add an Auto-stop schedule as you create a pool
+
+1. Sign in to the [Azure portal](https://portal.azure.com).
+
+1. In the search box, type *Projects* and then select **Projects** from the list.
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/discover-projects.png" alt-text="Screenshot showing a search for projects from the Azure portal search box.":::
+
+1. Open the project with which you want to associate the new dev box pool.
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/projects-grid.png" alt-text="Screenshot of the list of existing projects.":::
+
+1. Select **Dev box pools** and then select **+ Create**.
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/dev-box-pool-grid-empty.png" alt-text="Screenshot of the list of dev box pools within a project. The list is empty.":::
+
+1. On the **Create a dev box pool** page, enter the following values:
+
+ |Name|Value|
+ |-|-|
+ |**Name**|Enter a name for the pool. The pool name is visible to developers to select when they're creating dev boxes, and must be unique within a project.|
+ |**Dev box definition**|Select an existing dev box definition. The definition determines the base image and size for the dev boxes created within this pool.|
+ |**Network connection**|Select an existing network connection. The network connection determines the region of the dev boxes created within this pool.|
+ |**Dev Box Creator Privileges**|Select Local Administrator or Standard User.|
+ |**Enable Auto-stop**|Yes is the default. Select No to disable an Auto-stop schedule. You can configure an Auto-stop schedule after the pool has been created.|
+ |**Stop time**| Select a time to shutdown all the dev boxes in the pool. All Dev Boxes in this pool will be shut down at this time, everyday.|
+ |**Time zone**| Select the time zone that the stop time is in.|
+ |**Licensing**| Select this check box to confirm that your organization has Azure Hybrid Benefit licenses that you want to apply to the dev boxes in this pool. |
++
+ :::image type="content" source="./media/how-to-manage-stop-schedule/dev-box-pool-create.png" alt-text="Screenshot of the Create dev box pool dialog.":::
+
+1. Select **Add**.
+
+1. Verify that the new dev box pool appears in the list. You may need to refresh the screen.
+
+
+### Delete an auto-stop schedule
+
+To delete an auto-stop schedule, first navigate to your pool:
+1. Sign in to the [Azure portal](https://portal.azure.com).
+
+1. In the search box, type *Projects* and then select **Projects** from the list.
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/discover-projects.png" alt-text="Screenshot showing a search for projects from the Azure portal search box.":::
+
+1. Open the project associated with the pool you want to edit.
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/projects-grid.png" alt-text="Screenshot of the list of existing projects.":::
+
+1. Select the pool you wish to modify, and then select edit. You might need to scroll to locate edit.
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/dev-box-edit-pool.png" alt-text="Screenshot of the edit dev box pool button.":::
+
+1. In **Enable Auto-stop**, select **No**.
+
+ :::image type="content" source="./media/how-to-manage-stop-schedule/dev-box-disable-stop.png" alt-text="Screenshot of the edit dev box pool page showing Auto-stop disabled.":::
+
+1. Select **Save**. Dev boxes in this pool won't automatically shut down.
+
+## Manage an auto-stop schedule at the CLI
+
+You can also manage auto-stop schedules using Azure CLI.
+
+### Create an auto-stop schedule
+
+```az devcenter admin schedule create -n default --pool {poolName} --project {projectName} --time 23:15 --time-zone "America/Los_Angeles" --schedule-type stopdevbox --frequency daily --state enabled```
+
+|Parameter|Description|
+|--|--|
+|poolName|Name of your pool|
+|project|Name of your Project|
+|time| Local time when Dev Boxes should be shut down|
+|time-zone|Standard timezone string to determine local time|
+
+### Delete an auto-stop schedule
+
+```az devcenter admin schedule delete -n default --pool {poolName} --project {projectName}```
+
+|Parameter|Description|
+|--|--|
+|poolName|Name of your pool|
+|project|Name of your Project|
+
+## Next steps
+
+- [Manage a dev box definition](./how-to-manage-dev-box-definitions.md)
+- [Manage a dev box using the developer portal](./how-to-create-dev-boxes-developer-portal.md)
dev-box How To Create Dev Boxes Developer Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-create-dev-boxes-developer-portal.md
+
+ Title: Create & configure a dev box by using the developer portal
+
+description: Learn how to create, delete, and connect to Microsoft Dev Box Preview dev boxes by using the developer portal.
++++ Last updated : 09/18/2022+++
+# Manage a dev box by using the developer portal
+
+You can preconfigure a dev box to manage all of your tools, services, source code, and prebuilt binaries that are specific to your project. Microsoft Dev Box Preview provides an environment that's ready to build on, so you can run your app in minutes.
+
+## Permissions
+
+As a dev box developer, you can:
+
+- Create, view, and delete dev boxes that you create.
+- View pools within a project.
+- Connect to dev boxes.
+
+## Create a dev box
+
+Create a dev box through the developer portal. You can create as many dev boxes as you need, but there are common ways to split up your workload.
+
+You could create a dev box for your front-end work and a separate dev box for your back-end work. You could also create multiple dev boxes for your back end.
+
+For example, say you're working on a bug. You could use a separate dev box for the bug fix to work on the specific task and troubleshoot the issue without poisoning your primary machine.
+
+To create a dev box:
++
+## Connect to a dev box
+
+After you create your dev box, you can connect to it through a Remote Desktop app or through a browser.
++
+For most cases, use the Remote Desktop app when you're accessing a dev box. Remote Desktop provides the highest performance and best user experience for heavy workloads. For more information, see [Tutorial: Use a Remote Desktop client to connect to a dev box](./tutorial-connect-to-dev-box-with-remote-desktop-app.md).
+
+Use the browser for lighter workloads. When you access your dev box via your phone or laptop, you can use the browser. The browser is useful for tasks such as a quick bug fix or a review of a GitHub pull request. For more information, see the [steps for using a browser to connect to a dev box](./quickstart-create-dev-box.md#connect-to-a-dev-box).
+
+## Delete a dev box
+
+When you no longer need a dev box, you can delete it.
+
+There are many reasons why you might not need a dev box anymore. Maybe you finished testing, or you finished working on a specific project within your product.
+
+You can delete dev boxes after you finish your tasks. Say you finished fixing your bug and merged your pull request. Now, you can delete your dev box and create new dev boxes to work on new items.
+
+> [!NOTE]
+> Ensure that neither you nor your team members need the dev box before deleting. You can't retrieve dev boxes after deletion.
++
+## Next steps
+
+- [Use a remote desktop client to connect to a dev box](./tutorial-connect-to-dev-box-with-remote-desktop-app.md)
+- [Use a browser to connect to a dev box](./quickstart-create-dev-box.md#connect-to-a-dev-box)
dev-box How To Customize Devbox Azure Image Builder https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-customize-devbox-azure-image-builder.md
Title: Configure a dev box by using Azure VM Image Builder-+ description: Learn how to create a custom image by using Azure VM Image Builder, and then create a dev box by using the image.
dev-box How To Dev Box User https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-dev-box-user.md
Title: Provide access for dev box users-
-description: Learn how to provide access to projects for dev box users so that they can create and manage dev boxes.
+ Title: Provide user access to dev box projects
+
+description: Learn how to provide user-level access to projects for developers so that they can create and manage dev boxes.
Last updated 10/12/2022
-# Provide access to projects for dev box users
+# Provide user-level access to projects for developers
Team members must have access to a specific Microsoft Dev Box Preview project before they can create dev boxes. By using the built-in DevCenter Dev Box User role, you can assign permissions to Active Directory users or groups at the project level.
dev-box How To Install Dev Box Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-install-dev-box-cli.md
Title: Install the Microsoft Dev Box Preview Azure CLI extension-
-description: Learn how to install the Azure CLI and the Microsoft Dev Box Preview CLI extension so you can create Dev Box resources from the command line.
+ Title: Install the Microsoft Dev Box Azure CLI extension
+
+description: Learn how to install the Azure CLI and the Microsoft Dev Box CLI extension so you can create Dev Box resources from the command line.
Last updated 03/19/2023
Customer intent: As a dev infra admin, I want to install the Dev Box CLI extension so that I can create Dev Box resources from the command line.
-# Microsoft Dev Box Preview Azure CLI extension
+# Configure Microsoft Dev Box from the command-line with the Azure CLI extension
In addition to the Azure admin portal and the developer portal, you can use the Dev Box Azure CLI extension to create resources. Microsoft Dev Box and Azure Deployment Environments use the same Azure CLI extension, which is called `devcenter`.
dev-box How To Manage Dev Box Definitions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-manage-dev-box-definitions.md
Title: Manage a dev box definition
+ Title: Create, update, delete dev box definitions
-description: Learn how to create and delete Microsoft Dev Box Preview dev box definitions.
+description: Microsoft Dev Box dev box definitions define a source image, compute size, and storage size for your dev boxes with. Learn how to manage dev box definitions.
dev-box How To Manage Dev Box Pools https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-manage-dev-box-pools.md
Title: Manage a dev box pool-
-description: This article describes how to create and delete Microsoft Dev Box Preview dev box pools.
+
+description: Microsoft Dev Box dev box pools are collections of dev boxes that you manage together. Learn how to create, configure, and delete dev box pools.
# Manage a dev box pool
-To enable developers to self-serve dev boxes from projects, you must configure dev box pools that specify the dev box definitions and network connections for newly created dev boxes. Dev box users create dev boxes from the dev box pools that their project memberships give them access to.
+To allow developers to create their own dev boxes, you need to set up dev box pools that define the dev box specifications and network connections for new dev boxes. Developers can then create dev boxes from the dev box pools they have access to through their project memberships.
## Permissions
dev-box How To Manage Dev Box Projects https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-manage-dev-box-projects.md
Title: How to manage a dev box project-
-description: This article describes how to create, and delete Microsoft Dev Box Preview dev box projects.
+ Title: Manage a dev box project
+
+description: Microsoft Dev Box projects give developers access to create their dev boxes. Learn how to create and delete dev box projects.
dev-box How To Manage Dev Center https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-manage-dev-center.md
Title: Manage a dev center-
-description: This article describes how to create, delete, and manage Microsoft Dev Box Preview dev centers.
+
+description: Microsoft Dev Box dev centers help you manage dev box resources, grouping projects with similar settings. Learn how to create, delete, and manage dev centers.
#Customer intent: As a dev infrastructure manager, I want to be able to manage dev centers so that I can manage my Microsoft Dev Box Preview implementation.
-# Manage a dev center
+# Manage a Microsoft Dev Box dev center
Development teams vary in the way they function and might have different needs. A dev center helps you manage these scenarios by enabling you to group similar sets of projects together and apply similar settings.
dev-box How To Project Admin https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/how-to-project-admin.md
Title: Manage Microsoft Dev Box Preview projects-
-description: Learn how to manage multiple projects by assigning admin permissions and delegating project administration.
+ Title: Provide administrative access to Microsoft Dev Box projects
+description: Learn how to manage multiple Dev Box projects by assigning admin permissions and delegating project administration.
Last updated 10/12/2022
-# Provide access to projects for project admins
+# Provide administrative access to Dev Box projects for project admins
You can create multiple Microsoft Dev Box Preview projects in the dev center to align with each team's specific requirements. By using the built-in DevCenter Project Admin role, you can delegate project administration to a member of a team. Project admins can use the network connections and dev box definitions configured at the dev center level to create and manage dev box pools within their project.
dev-box Overview What Is Microsoft Dev Box https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/overview-what-is-microsoft-dev-box.md
Title: What is Microsoft Dev Box Preview?-
-description: Learn how Dev Box Preview gives self-service access to high-performance, preconfigured, and ready-to-code cloud-based workstations.
+ Title: What is Microsoft Dev Box?
+description: Learn how Microsoft Dev Box Preview gives self-service access to high-performance, preconfigured, and ready-to-code cloud-based workstations.
dev-box Quickstart Configure Dev Box Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/quickstart-configure-dev-box-service.md
Title: 'Quickstart: Configure Microsoft Dev Box Preview'-
-description: This quickstart shows you how to configure the Microsoft Dev Box Preview service to provide dev boxes for users.
+ Title: 'Quickstart: Configure Microsoft Dev Box'
+description: In this quickstart, you learn how to configure the Microsoft Dev Box Preview service to provide dev boxes for users.
dev-box Quickstart Connect To Dev Box With Remote Desktop App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/quickstart-connect-to-dev-box-with-remote-desktop-app.md
- Title: 'Quickstart: Use a Remote Desktop client to connect to a dev box'-
-description: In this quickstart, you learn how to download a Remote Desktop client and connect to your dev box.
---- Previously updated : 11/03/2022---
-# Quickstart: Use a Remote Desktop client to connect to a dev box
-
-After you configure the Microsoft Dev Box Preview service and create dev boxes, you can connect to them by using a browser or by using a Remote Desktop client.
-
-Remote Desktop apps let you use and control a dev box from almost any device. For your desktop or laptop, you can choose to download the Remote Desktop client for Windows Desktop or Microsoft Remote Desktop for Mac. You can also download a Remote Desktop app for your mobile device: Microsoft Remote Desktop for iOS or Microsoft Remote Desktop for Android.
-
-In this quickstart, you download a Remote Desktop client (Windows and non-Windows). You then use that client to connect to a dev box.
-
-## Prerequisites
-
-To complete this quickstart, you must first:
--- [Configure Microsoft Dev Box Preview](./quickstart-configure-dev-box-service.md).-- [Create a dev box](./quickstart-create-dev-box.md#create-a-dev-box) on the [developer portal](https://aka.ms/devbox-portal).-
-## Download the client and connect to your dev box
-
-Remote Desktop clients are available for many operating systems and devices. In this quickstart, you can view the steps for Windows or the steps for a non-Windows operating system by selecting the relevant tab.
-
-# [Windows](#tab/windows)
-
-### Download the Remote Desktop client for Windows
-
-To download and set up the Remote Desktop client for Windows:
-
-1. Sign in to the [developer portal](https://aka.ms/devbox-portal).
-
-1. Select **Open in RDP client** for the dev box that you want to connect.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/windows-open-rdp-client.png" alt-text="Screenshot of the card for a user's dev boxes with the option for opening in an RDP client.":::
-
-1. Select **Download Windows Desktop** to download the client.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/download-windows-desktop.png" alt-text="Screenshot of the option to download the Windows Desktop client.":::
-
-1. Track the progress of the download in the developer portal. After the client is installed, you'll use the developer portal to connect to your dev box.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/install-complete-return-prompt.png" alt-text="Screenshot of the notification that the client download is in progress.":::
-
-### Connect to your dev box
-
-1. To open the Remote Desktop client, sign in to the [developer portal](https://aka.ms/devbox-portal).
-
-1. Select **Open in RDP client** for the dev box that you want to connect.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/windows-open-rdp-client.png" alt-text="Screenshot of the option to open a dev box in an RDP client.":::
-
-1. Select **Open Windows Desktop** to connect to your dev box in the Remote Desktop client.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/open-windows-desktop.png" alt-text="Screenshot of the option to open the Windows desktop client in the connection dialog.":::
-
-# [Non-Windows](#tab/non-Windows)
-
-### Download the Remote Desktop client
-
-To use a non-Windows Remote Desktop client to connect to your dev box:
-
-1. Sign in to the [developer portal](https://aka.ms/devbox-portal).
-
-1. Under **Quick actions**, select **Configure Remote Desktop**.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/configure-remote-desktop-non-windows.png" alt-text="Screenshot of the button for configuring Remote Desktop in the area for quick actions.":::
-
-1. In the **Configure Remote Desktop** dialog, select **Download** to download the client.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/download-non-windows-rdp-client.png" alt-text="Screenshot of the download button in the dialog for configuring Remote Desktop.":::
-
-1. Copy the subscription feed URL. After the Remote Desktop client is installed, you'll connect to your dev box by using this URL.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/copy-subscription-url-non-windows.png" alt-text="Screenshot of the subscription feed URL in the Configure Remote Desktop dialog.":::
-
-### Connect to your dev box
-
-1. Open the Remote Desktop client, select **Add Workspace**, and paste the subscription feed URL in the box.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/non-windows-rdp-subscription-feed.png" alt-text="Screenshot of the dialog for adding a workspace URL.":::
-
-1. Your dev box appears in the Remote Desktop client's **Workspaces** area. Double-click it to connect.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/non-windows-rdp-connect-dev-box.png" alt-text="Screenshot of a dev box in a non-Windows Remote Desktop client workspace.":::
---
-## Clean up resources
-
-Dev boxes incur costs whenever they're running. When you finish using your dev box, shut down or stop it to avoid incurring unnecessary costs.
-
-You can stop a dev box from the developer portal:
-
-1. Sign in to the [developer portal](https://aka.ms/devbox-portal).
-
-1. For the dev box that you want to stop, select the **Actions** menu, and then select **Stop**.
-
- :::image type="content" source="./media/quickstart-connect-to-dev-box-with-remote-desktop-app/stop-dev-box.png" alt-text="Screenshot of the menu command to stop a dev box.":::
-
-The dev box might take a few moments to stop.
-
-## Next steps
-
-To learn about managing Microsoft Dev Box Preview, see:
--- [Provide access to project admins](./how-to-project-admin.md)-- [Provide access to dev box users](./how-to-dev-box-user.md)
dev-box Quickstart Create Dev Box https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/quickstart-create-dev-box.md
Title: 'Quickstart: Create a dev box'-
-description: This quickstart shows you how to create a dev box and connect to it through a browser.
+
+description: In this quickstart, you learn how to create a dev box and connect to it through a browser.
When you no longer need your dev box, you can delete it:
## Next steps
-In this quickstart, you created a dev box through the developer portal and connected to it by using a browser. To learn how to connect to a dev box by using a Remote Desktop app, see [Quickstart: Use a Remote Desktop client to connect to a dev box](./quickstart-connect-to-dev-box-with-remote-desktop-app.md).
+In this quickstart, you created a dev box through the developer portal and connected to it by using a browser. To learn how to connect to a dev box by using a Remote Desktop app, see [Tutorial: Use a Remote Desktop client to connect to a dev box](./tutorial-connect-to-dev-box-with-remote-desktop-app.md).
dev-box Tutorial Connect To Dev Box With Remote Desktop App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/dev-box/tutorial-connect-to-dev-box-with-remote-desktop-app.md
+
+ Title: 'Tutorial: Use a Remote Desktop client to connect to a dev box'
+
+description: In this tutorial, you learn how to download a Remote Desktop client and connect to your dev box. You also learn how to configure a dev box to use multiple monitors during a remote desktop session.
++++ Last updated : 03/29/2023+++
+# Tutorial: Use a Remote Desktop client to connect to a dev box
+
+After you configure the Microsoft Dev Box Preview service and create dev boxes, you can connect to them by using a browser or by using a Remote Desktop client.
+
+Remote Desktop apps let you use and control a dev box from almost any device. For your desktop or laptop, you can choose to download the Remote Desktop client for Windows Desktop or Microsoft Remote Desktop for Mac. You can also download a Remote Desktop app for your mobile device: Microsoft Remote Desktop for iOS or Microsoft Remote Desktop for Android.
+
+In this tutorial, you learn how to:
+
+> [!div class="checklist"]
+> * Download a remote desktop client.
+> * Connect to an existing dev box.
+> * Configure the remote desktop client for multiple monitors.
+
+## Prerequisites
+
+To complete this tutorial, you must first:
+
+- [Configure Microsoft Dev Box Preview](./quickstart-configure-dev-box-service.md).
+- [Create a dev box](./quickstart-create-dev-box.md#create-a-dev-box) on the [developer portal](https://aka.ms/devbox-portal).
+
+## Download the client and connect to your dev box
+
+Remote Desktop clients are available for many operating systems and devices. In this tutorial, you can view the steps for Windows or the steps for a non-Windows operating system by selecting the relevant tab.
+
+# [Windows](#tab/windows)
+
+### Download the Remote Desktop client for Windows
+
+To download and set up the Remote Desktop client for Windows:
+
+1. Sign in to the [developer portal](https://aka.ms/devbox-portal).
+
+1. Select **Open in RDP client** for the dev box that you want to connect.
+
+ :::image type="content" source="./media/tutorial-connect-to-dev-box-with-remote-desktop-app/windows-open-rdp-client.png" alt-text="Screenshot of the card for a user's dev boxes with the option for opening in an RDP client.":::
+
+1. Select **Download Windows Desktop** to download the client.
+
+ :::image type="content" source="./media/tutorial-connect-to-dev-box-with-remote-desktop-app/download-windows-desktop.png" alt-text="Screenshot of the option to download the Windows Desktop client.":::
+
+1. Open the remote desktop MSI file and follow the prompts to install the remote desktop app. After the client is installed, you'll use the developer portal to connect to your dev box.
++
+### Connect to your dev box
+
+To open the Remote Desktop client:
+
+1. Sign in to the [developer portal](https://aka.ms/devbox-portal).
+
+1. Select **Open in RDP client** for the dev box that you want to connect.
+
+ :::image type="content" source="./media/tutorial-connect-to-dev-box-with-remote-desktop-app/windows-open-rdp-client.png" alt-text="Screenshot of the option to open a dev box in an RDP client.":::
+
+1. Select **Open Windows Desktop** to connect to your dev box in the Remote Desktop client.
+
+ :::image type="content" source="./media/tutorial-connect-to-dev-box-with-remote-desktop-app/open-windows-desktop.png" alt-text="Screenshot of the option to open the Windows desktop client in the connection dialog.":::
+
+# [Non-Windows](#tab/non-Windows)
+
+### Download the Remote Desktop client
+
+To use a non-Windows Remote Desktop client to connect to your dev box:
+
+1. Sign in to the [developer portal](https://aka.ms/devbox-portal).
+
+1. Under **Quick actions**, select **Configure Remote Desktop**.
+
+ :::image type="content" source="./media/tutorial-connect-to-dev-box-with-remote-desktop-app/configure-remote-desktop-non-windows.png" alt-text="Screenshot of the button for configuring Remote Desktop in the area for quick actions.":::
+
+1. In the **Configure Remote Desktop** dialog, select **Download** to download the client.
+
+ :::image type="content" source="./media/tutorial-connect-to-dev-box-with-remote-desktop-app/download-non-windows-rdp-client.png" alt-text="Screenshot of the download button in the dialog for configuring Remote Desktop.":::
+
+1. Copy the subscription feed URL. After the Remote Desktop client is installed, you'll connect to your dev box by using this URL.
+
+ :::image type="content" source="./media/tutorial-connect-to-dev-box-with-remote-desktop-app/copy-subscription-url-non-windows.png" alt-text="Screenshot of the subscription feed URL in the Configure Remote Desktop dialog.":::
+
+### Connect to your dev box
+
+1. Open the Remote Desktop client, select **Add Workspace**, and paste the subscription feed URL in the box.
+
+ :::image type="content" source="./media/tutorial-connect-to-dev-box-with-remote-desktop-app/non-windows-rdp-subscription-feed.png" alt-text="Screenshot of the dialog for adding a workspace URL.":::
+
+1. Your dev box appears in the Remote Desktop client's **Workspaces** area. Double-click it to connect.
+
+ :::image type="content" source="./media/tutorial-connect-to-dev-box-with-remote-desktop-app/non-windows-rdp-connect-dev-box.png" alt-text="Screenshot of a dev box in a non-Windows Remote Desktop client workspace.":::
+++
+## Configure Remote Desktop to use multiple monitors
+
+Microsoft Remote Desktop for Windows and Microsoft Remote Desktop for Mac both support up to 16 monitors. Use the following steps to configure Remote Desktop to use multiple monitors.
+
+# [Windows](#tab/windows)
+
+1. Open Remote Desktop.
+
+1. Right-click the dev box you want to configure, and then select **Settings**.
+
+1. On the settings pane, turn off **Use default settings**.
+
+ :::image type="content" source="media/tutorial-connect-to-dev-box-with-remote-desktop-app/turn-off-default-settings.png" alt-text="Screenshot showing the Use default settings slider.":::
+
+1. In **Display Settings**, in the **Display configuration** list, select the displays to use:
+
+ |Value |Description |
+ |||
+ |All displays |Remote desktop uses all available displays. |
+ |Single display |Remote desktop uses a single display. |
+ |Select displays |Remote Desktop uses only the monitors you select. |
+
+ :::image type="content" source="media/tutorial-connect-to-dev-box-with-remote-desktop-app/remote-desktop-select-display.png" alt-text="Screenshot showing the remote desktop display settings. ":::
+
+1. Close the settings pane, and then select your dev box to begin the remote desktop session.
+
+# [Non-Windows](#tab/non-Windows)
+
+1. Open Remote Desktop.
+
+1. Select **PCs**.
+
+1. On the Connections menu, select **Edit PC**.
+
+1. Select **Display**.
+
+1. On the Display tab, select **Use all monitors**, and then select **Save**.
+
+ :::image type="content" source="media/tutorial-connect-to-dev-box-with-remote-desktop-app/remote-desktop-for-mac.png" alt-text="Screenshot showing the Edit PC dialog box with the display configuration options.":::
+
+1. Select your dev box to begin the remote desktop session.
+
+
++
+## Clean up resources
+
+Dev boxes incur costs whenever they're running. When you finish using your dev box, shut down or stop it to avoid incurring unnecessary costs.
+
+You can stop a dev box from the developer portal:
+
+1. Sign in to the [developer portal](https://aka.ms/devbox-portal).
+
+1. For the dev box that you want to stop, select the **Actions** menu, and then select **Stop**.
+
+ :::image type="content" source="./media/tutorial-connect-to-dev-box-with-remote-desktop-app/stop-dev-box.png" alt-text="Screenshot of the menu command to stop a dev box.":::
+
+The dev box might take a few moments to stop.
+
+## Next steps
+
+To learn about managing Microsoft Dev Box Preview, see:
+
+- [Provide access to project admins](./how-to-project-admin.md)
+- [Provide access to dev box users](./how-to-dev-box-user.md)
postgresql Concepts Extensions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/concepts-extensions.md
az postgres flexible-server parameter set --resource-group <your resource group>
``` Using [ARM Template](../../azure-resource-manager/templates/index.yml):
- Example below allow-lists extensions dblink, dict_xsyn, pg_buffercache on server mypostgreserver
+ Example shown below allow-lists extensions dblink, dict_xsyn, pg_buffercache on server mypostgreserver
```json {
az postgres flexible-server parameter set --resource-group <your resource group>
```
-Shared_Preload_Libraries is a server configuration parameter determining which libraries are to be loaded when PostgreSQL starts. Any libraries which use shared memory must be loaded via this parameter. If your extension needs to be added to shared preload libraries this can be done:
+Shared_Preload_Libraries is a server configuration parameter determining which libraries are to be loaded when PostgreSQL starts. Any libraries which use shared memory must be loaded via this parameter. If your extension needs to be added to shared preload libraries this action can be done:
Using the [Azure portal](https://portal.azure.com):
Using the [Azure portal](https://portal.azure.com):
2. On the sidebar, select **Server Parameters**. 3. Search for the `shared_preload_libraries` parameter. 4. Select extensions you wish to add.
- :::image type="content" source="./media/concepts-extensions/shared-libraries.png" alt-text=" Screenshot showing Azure Database for PostgreSQL -setting shared preload libraries parameter setting for extensions installation .":::
+ :::image type="content" source="./media/concepts-extensions/shared-libraries.png" alt-text=" Screenshot showing Azure Database for PostgreSQL -setting shared preload libraries parameter setting for extensions installation.":::
Using [Azure CLI](/cli/azure/):
After extensions are allow-listed and loaded, these must be installed in your da
-Azure Database for PostgreSQL supports a subset of key extensions as listed below. This information is also available by running `SHOW azure.extensions;`. Extensions not listed in this document are not supported on Azure Database for PostgreSQL - Flexible Server. You cannot create or load your own extension in Azure Database for PostgreSQL.
+Azure Database for PostgreSQL supports a subset of key extensions as listed below. This information is also available by running `SHOW azure.extensions;`. Extensions not listed in this document aren't supported on Azure Database for PostgreSQL - Flexible Server. You can't create or load your own extension in Azure Database for PostgreSQL.
## Postgres 14 extensions
-The following extensions are available in Azure Database for PostgreSQL - Flexible Servers which have Postgres version 14.
+The following extensions are available in Azure Database for PostgreSQL - Flexible Servers, which have Postgres version 14.
> [!div class="mx-tableFixed"] > | **Extension**| **Extension version** | **Description** |
The following extensions are available in Azure Database for PostgreSQL - Flexib
> |[postgres_fdw](https://www.postgresql.org/docs/13/postgres-fdw.html) | 1.0 | foreign-data wrapper for remote PostgreSQL servers| > |[sslinfo](https://www.postgresql.org/docs/13/sslinfo.html) | 1.2 | information about SSL certificates| > |[semver](https://pgxn.org/dist/semver/doc/semver.html) | 0.32.0 | semantic version data type|
+> |[tablefunc](https://www.postgresql.org/docs/11/tablefunc.html) | 1.0 | functions that manipulate whole tables, including crosstab|
> |[timescaledb](https://github.com/timescale/timescaledb) | 2.5.1 | Open-source relational database for time-series and analytics| > |[tsm_system_rows](https://www.postgresql.org/docs/13/tsm-system-rows.html) | 1.0 | TABLESAMPLE method which accepts number of rows as a limit| > |[tsm_system_time](https://www.postgresql.org/docs/13/tsm-system-time.html) | 1.0 | TABLESAMPLE method which accepts time in milliseconds as a limit|
The following extensions are available in Azure Database for PostgreSQL - Flexib
## Postgres 13 extensions
-The following extensions are available in Azure Database for PostgreSQL - Flexible Servers which have Postgres version 13.
+The following extensions are available in Azure Database for PostgreSQL - Flexible Servers that have Postgres version 13.
> [!div class="mx-tableFixed"] > | **Extension**| **Extension version** | **Description** |
The following extensions are available in Azure Database for PostgreSQL - Flexib
> |[postgres_fdw](https://www.postgresql.org/docs/13/postgres-fdw.html) | 1.0 | foreign-data wrapper for remote PostgreSQL servers| > |[sslinfo](https://www.postgresql.org/docs/13/sslinfo.html) | 1.2 | information about SSL certificates| > |[semver](https://pgxn.org/dist/semver/doc/semver.html) | 0.32.0 | semantic version data type|
+> |[tablefunc](https://www.postgresql.org/docs/11/tablefunc.html) | 1.0 | functions that manipulate whole tables, including crosstab|
> |[timescaledb](https://github.com/timescale/timescaledb) | 2.5.1 | Open-source relational database for time-series and analytics| > |[tsm_system_rows](https://www.postgresql.org/docs/13/tsm-system-rows.html) | 1.0 | TABLESAMPLE method which accepts number of rows as a limit| > |[tsm_system_time](https://www.postgresql.org/docs/13/tsm-system-time.html) | 1.0 | TABLESAMPLE method which accepts time in milliseconds as a limit|
The following extensions are available in Azure Database for PostgreSQL - Flexib
## Postgres 12 extensions
-The following extensions are available in Azure Database for PostgreSQL - Flexible Servers which have Postgres version 12.
+The following extensions are available in Azure Database for PostgreSQL - Flexible Servers that have Postgres version 12.
> [!div class="mx-tableFixed"] > | **Extension**| **Extension version** | **Description** |
The following extensions are available in Azure Database for PostgreSQL - Flexib
> |[postgres_fdw](https://www.postgresql.org/docs/12/postgres-fdw.html) | 1.0 | foreign-data wrapper for remote PostgreSQL servers| > |[sslinfo](https://www.postgresql.org/docs/12/sslinfo.html) | 1.2 | information about SSL certificates| > |[semver](https://pgxn.org/dist/semver/doc/semver.html) | 0.32.0 | semantic version data type|
+> |[tablefunc](https://www.postgresql.org/docs/11/tablefunc.html) | 1.0 | functions that manipulate whole tables, including crosstab|
> |[timescaledb](https://github.com/timescale/timescaledb) | 2.5.1 | Open-source relational database for time-series and analytics| > |[tsm_system_rows](https://www.postgresql.org/docs/12/tsm-system-rows.html) | 1.0 | TABLESAMPLE method which accepts number of rows as a limit| > |[tsm_system_time](https://www.postgresql.org/docs/12/tsm-system-time.html) | 1.0 | TABLESAMPLE method which accepts time in milliseconds as a limit|
The following extensions are available in Azure Database for PostgreSQL - Flexib
## Postgres 11 extensions
-The following extensions are available in Azure Database for PostgreSQL - Flexible Servers which have Postgres version 11.
+The following extensions are available in Azure Database for PostgreSQL - Flexible Servers that have Postgres version 11.
> [!div class="mx-tableFixed"] > | **Extension**| **Extension version** | **Description** |
To see all jobs currently scheduled with pg_cron
``` SELECT * FROM cron.job; ```
-To run vaccuum every day at 10:00 am (GMT) in database 'testcron' under azure_pg_admin role account
+To run vacuum every day at 10:00 am (GMT) in database 'testcron' under azure_pg_admin role account
``` SELECT cron.schedule_in_database('VACUUM','0 10 * * * ','VACUUM','testcron',null,TRUE) ```
postgresql How To Request Quota Increase https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/postgresql/flexible-server/how-to-request-quota-increase.md
+
+ Title: How to request quota increase for Azure Database PostgreSQL Flexible Server resources
+description: Learn how to request a quota increase for Azure Database for PostgreSQL Flexible Server. You will also learn how to enable a subscription to access a region..
++++++ Last updated : 03/31/2023++
+# Request quota increases for Azure Database PostgreSQL Flexible Server
+
+The resources in Azure Database for PostgreSQL Flexible Server have default quotas/limits. However, there may be a case where your workload needs more quota than the default value. In such case, you must reach out to the Azure PostgreSQL DB team to request a quota increase. This article explains how to request a quota increase for Azure Database for PostgreSQL FLexible Server resources.
+
+## Create a new support request
+
+To request a quota increase, you must create a new support request with your workload details. The Azure Database for PostgreSQL Flexible Server team will then process your request and approve or deny it. Use the following steps to create a new support request from the Azure portal:
+
+1. Sign into the Azure portal.
+
+2. From the left-hand menu, select **Help + support** and then select **Create a support request**.
+
+3. In the **Problem Description** tab, fill the following details:
+
+ * For **Summary**, Provide a short description of your request such as your workload, why the default values arenΓÇÖt sufficient along with any error messages you're observing.
+ * For **Issue type**, select **Service and subscription limits (quotas)**
+ * For **Subscription**, select the subscription for which you want to increase the quota.
+ * For **Quota type**, select **Azure Database for PostgreSQL Flexible Server**
+
+ :::image type="content" source="./media/how-to-create-support-request-quota-increase/create-quota-increase-request.png" alt-text="Create a new Azure Flexible Server request for quota increase":::
+
+4. In the **Additional Details** tab, enter the details corresponding to your quota request. The Information provided on this tab will be used to further assess your issue and help the support engineer troubleshoot the problem.
+
+
+5. Fill the following details in this form:
+
+ * In **Request details** click **Enter details** and select the relevant **Quota Type**
+
+ provide the requested information for your specific quota request like Location, Series, New Quota.
+
+ * **File upload**: Upload the diagnostic files or any other files that you think are relevant to the support request. To learn more on the file upload guidance, see the [Azure support](../../azure-portal/supportability/how-to-manage-azure-support-request.md#upload-files) article.
+
+ * **Allow collection of advanced ΓÇïdiagnostic information?ΓÇï**: Choose Yes or NO
+
+ * **Severity**: Choose one of the available severity levels based on the business impact.
+
+ * **Preferred contact method**: You can either choose to be contacted over **Email** or by **Phone**.
+
+6. Fill out the remaining details such as your availability, support language, contact information, email, and phone number on the form.
+
+7. Select **Next: Review+Create**. Validate the information provided and select **Create** to create a support request.
+
+The Azure Database for PostgreSQL Flexible Server DB support team process all quota requests in 24-48 hours.
++++
+## Next steps
+
+- Learn how to [create a PostgreSQL server in the portal](how-to-manage-server-portal.md).
+- Learn about [service limits](concepts-limits.md).
security Network Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/security/fundamentals/network-overview.md
ms.assetid: bedf411a-0781-47b9-9742-d524cf3dbfc1--++ na Previously updated : 01/06/2022 Last updated : 03/31/2023 #Customer intent: As an IT Pro or decision maker, I am looking for information on the network security controls available in Azure.
The ability to control routing behavior on your virtual networks is critical. If
Azure networking supports the ability to customize the routing behavior for network traffic on your virtual networks. This enables you to alter the default routing table entries in your virtual network. Control of routing behavior helps you make sure that all traffic from a certain device or group of devices enters or leaves your virtual network through a specific location.
-For example, you might have a virtual network security appliance on your virtual network. You want to make sure that all traffic to and from your virtual network goes through that virtual security appliance. You can do this by configuring [User Defined Routes](../../virtual-network/virtual-networks-udr-overview.md) (UDRs) in Azure.
+For example, you might have a virtual network security appliance on your virtual network. You want to make sure that all traffic to and from your virtual network goes through that virtual security appliance. You can do this by configuring [User Defined Routes](../../virtual-network/virtual-networks-udr-overview.md#custom-routes) (UDRs) in Azure.
-[Forced tunneling](https://www.petri.com/azure-forced-tunneling) is a mechanism you can use to ensure that your services are not allowed to initiate a connection to devices on the internet. Note that this is different from accepting incoming connections and then responding to them. Front-end web servers need to respond to requests from internet hosts, and so internet-sourced traffic is allowed inbound to these web servers and the web servers are allowed to respond.
+[Forced tunneling](../../vpn-gateway/vpn-gateway-about-forced-tunneling.md) is a mechanism you can use to ensure that your services are not allowed to initiate a connection to devices on the internet. Note that this is different from accepting incoming connections and then responding to them. Front-end web servers need to respond to requests from internet hosts, and so internet-sourced traffic is allowed inbound to these web servers and the web servers are allowed to respond.
What you don't want to allow is a front-end web server to initiate an outbound request. Such requests might represent a security risk because these connections can be used to download malware. Even if you do want these front-end servers to initiate outbound requests to the internet, you might want to force them to go through your on-premises web proxies. This enables you to take advantage of URL filtering and logging.
You can access these enhanced network security features by using an Azure partne
## Azure Firewall
-[Azure Firewall](../../firewall/overview.md) is a cloud-native and intelligent network firewall security service that provides threat protection for your cloud workloads running in Azure. It's a fully stateful firewall as a service with built-in high availability and unrestricted cloud scalability. It provides both east-west and north-south traffic inspection.
+Azure Firewall is a cloud-native and intelligent network firewall security service that provides threat protection for your cloud workloads running in Azure. It's a fully stateful firewall as a service with built-in high availability and unrestricted cloud scalability. It provides both east-west and north-south traffic inspection.
Azure Firewall is offered in two SKUs: Standard and Premium. [Azure Firewall Standard](../../firewall/features.md) provides L3-L7 filtering and threat intelligence feeds directly from Microsoft Cyber Security. [Azure Firewall Premium](../../firewall/premium-features.md) provides advanced capabilities include signature-based IDPS to allow rapid detection of attacks by looking for specific patterns.
Learn more:
### Connect your on-premises network to a virtual network with a VPN
-You might want to connect your entire corporate network, or portions of it, to a virtual network. This is common in hybrid IT scenarios, where organizations [extend their on-premises datacenter into Azure](https://gallery.technet.microsoft.com/Datacenter-extension-687b1d84). In many cases, organizations host parts of a service in Azure, and parts on-premises. For example,they might do so when a solution includes front-end web servers in Azure and back-end databases on-premises. These types of "cross-premises" connections also make management of Azure located resources more secure, and enable scenarios such as extending Active Directory domain controllers into Azure.
+You might want to connect your entire corporate network, or portions of it, to a virtual network. This is common in hybrid IT scenarios, where organizations extend their on-premises datacenter into Azure. In many cases, organizations host parts of a service in Azure, and parts on-premises. For example,they might do so when a solution includes front-end web servers in Azure and back-end databases on-premises. These types of "cross-premises" connections also make management of Azure located resources more secure, and enable scenarios such as extending Active Directory domain controllers into Azure.
-One way to accomplish this is to use a [site-to-site VPN](https://www.techopedia.com/definition/30747/site-to-site-vpn). The difference between a site-to-site VPN and a point-to-site VPN is that the latter connects a single device to a virtual network. A site-to-site VPN connects an entire network (such as your on-premises network) to a virtual network. Site-to-site VPNs to a virtual network use the highly secure IPsec tunnel mode VPN protocol.
+One way to accomplish this is to use a site-to-site VPN. The difference between a site-to-site VPN and a point-to-site VPN is that the latter connects a single device to a virtual network. A site-to-site VPN connects an entire network (such as your on-premises network) to a virtual network. Site-to-site VPNs to a virtual network use the highly secure IPsec tunnel mode VPN protocol.
Learn more:
It is possible to use many virtual networks for your deployments. There are vari
One option is for services on one virtual network to connect to services on another virtual network, by "looping back" through the internet. The connection starts on one virtual network, goes through the internet, and then comes back to the destination virtual network. This option exposes the connection to the security issues inherent in any internet-based communication.
-A better option might be to create a site-to-site VPN that connects between two virtual networks. This method uses the same [IPSec tunnel mode](/previous-versions/windows/it-pro/windows-server-2003/cc786385(v=ws.10)) protocol as the cross-premises site-to-site VPN connection mentioned above.
+A better option might be to create a site-to-site VPN that connects between two virtual networks. This method uses the same IPSec tunnel mode protocol as the cross-premises site-to-site VPN connection mentioned above.
The advantage of this approach is that the VPN connection is established over the Azure network fabric, instead of connecting over the internet. This provides you an extra layer of security, compared to site-to-site VPNs that connect over the internet.
You can gain the benefits of network level load balancing in Azure by using Azur
Learn more:
-* [Internet-facing load balancer between multiple virtual machines or services](../../load-balancer/load-balancer-overview.md)
* [Internal load balancer overview](../../load-balancer/load-balancer-overview.md) ### Global load balancing
Azure provides you with a highly available and high-performing external DNS solu
Learn more: * [Azure DNS overview](../../dns/dns-overview.md)
-* [Azure DNS private zones](../../dns/private-dns-overview.md) allows you to configure private DNS names for Azure resources rather than the automatically assigned names without the need to add a custom DNS solution.
+* [Azure DNS private zones](../../dns/private-dns-privatednszone.md) allows you to configure private DNS names for Azure resources rather than the automatically assigned names without the need to add a custom DNS solution.
## Perimeter network architecture
You can design perimeter networks in a number of different ways. The decision to
Learn more:
-* [Microsoft Cloud Services and Network Security](network-best-practices.md)
+* [Perimeter networks for security zones](network-best-practices.md#deploy-perimeter-networks-for-security-zones)
## Azure DDoS protection
Logging at a network level is a key function for any network security scenario.
* Event logs. These logs provide information about what NSG rules were applied. * Counter logs. These logs let you know how many times each NSG rule was applied to deny or allow traffic.
-You can also use [Microsoft Power BI](https://powerbi.microsoft.com/what-is-power-bi/), a powerful data visualization tool, to view and analyze these logs.
+You can also use Microsoft Power BI, a powerful data visualization tool, to view and analyze these logs.
Learn more: * [Azure Monitor logs for Network Security Groups (NSGs)](../../virtual-network/virtual-network-nsg-manage-log.md)
security Paas Applications Using Sql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/security/fundamentals/paas-applications-using-sql.md
Title: Securing PaaS Databases in Azure | Microsoft Docs
description: "Learn about Azure SQL Database and Azure Synapse Analytics security best practices for securing your PaaS web and mobile applications. " documentationcenter: na--++ ms.assetid:--++ na Previously updated : 09/28/2018 Last updated : 03/31/2023
In this article, we discuss a collection of [Azure SQL Database](/azure/azure-sql/database/sql-database-paas-overview) and [Azure Synapse Analytics](../../synapse-analytics/sql-data-warehouse/sql-data-warehouse-overview-what-is.md) security best practices for securing your platform-as-a-service (PaaS) web and mobile applications. These best practices are derived from our experience with Azure and the experiences of customers like yourself.
-Azure SQL Database and Azure Synapse Analytics provide a relational database service for your internet-based applications. LetΓÇÖs look at services that help protect your applications and data when using Azure SQL Database and Azure Synapse Analytics in a PaaS deployment:
+Azure SQL Database and Azure Synapse Analytics provide a relational database service for your internet-based applications. Let's look at services that help protect your applications and data when using Azure SQL Database and Azure Synapse Analytics in a PaaS deployment:
- Azure Active Directory authentication (instead of SQL Server authentication) - Azure SQL firewall
Azure SQL Database can be configured to use one of two types of authentication:
- Uses contained database users to authenticate identities at the database level. - Supports token-based authentication for applications connecting to SQL Database. - Supports domain federation with Active Directory Federation Services (ADFS) or native user/password authentication for a local Azure AD without domain synchronization.-- Supports connections from SQL Server Management Studio that use Active Directory Universal Authentication, which includes [Multi-Factor Authentication (MFA)](../../active-directory/authentication/concept-mfa-howitworks.md). MFA includes strong authentication with a range of easy verification options ΓÇö phone call, text message, smart cards with pin, or mobile app notification. For more information, see [Universal Authentication with SQL Database and Azure Synapse Analytics](/azure/azure-sql/database/authentication-mfa-ssms-overview).
+- Supports connections from SQL Server Management Studio that use Active Directory Universal Authentication, which includes [Multi-Factor Authentication (MFA)](../../active-directory/authentication/concept-mfa-howitworks.md). MFA includes strong authentication with a range of easy verification options. Verification options are phone call, text message, smart cards with pin, or mobile app notification. For more information, see [Universal Authentication with SQL Database and Azure Synapse Analytics](/azure/azure-sql/database/authentication-mfa-ssms-overview).
To learn more about Azure AD authentication, see:
You can use additional precautions to help secure the database, such as designin
This article introduced you to a collection of SQL Database and Azure Synapse Analytics security best practices for securing your PaaS web and mobile applications. To learn more about securing your PaaS deployments, see: - [Securing PaaS deployments](paas-deployments.md)-- [Securing PaaS web and mobile applications using Azure App Services](paas-applications-using-app-services.md)
+- [Securing PaaS web and mobile applications using Azure App Services](paas-applications-using-app-services.md)
security Paas Deployments https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/security/fundamentals/paas-deployments.md
na Previously updated : 12/05/2022 Last updated : 03/31/2023
This article provides information that helps you:
- Change your security focus from a network-centric to an identity-centric perimeter security approach - Implement general PaaS security best practices recommendations
-[Develop secure applications on Azure](https://azure.microsoft.com/resources/develop-secure-applications-on-azure/) is a general guide to the security questions and controls you should consider at each phase of the software development lifecycle when developing applications for the cloud.
+[Develop secure applications on Azure](../develop/secure-develop.md) is a general guide to the security questions and controls you should consider at each phase of the software development lifecycle when developing applications for the cloud.
## Cloud security advantages It's important to understand the [division of responsibility](shared-responsibility.md) between you and Microsoft. On-premises, you own the whole stack but as you move to the cloud some responsibilities transfer to Microsoft.
If possible, use alternate approaches like using virtual private networks in an
Use platform-supplied authentication and authorization mechanisms instead of custom code. The reason is that developing custom authentication code can be error prone. Most of your developers are not security experts and are unlikely to be aware of the subtleties and the latest developments in authentication and authorization. Commercial code (for example, from Microsoft) is often extensively security reviewed.
-Use two-factor authentication. Two-factor authentication is the current standard for authentication and authorization because it avoids the security weaknesses inherent in username and password types of authentication. Access to both the Azure management (portal/remote PowerShell) interfaces and customer-facing services should be designed and configured to use [Azure AD Multi-Factor Authentication](../../active-directory/authentication/concept-mfa-howitworks.md).
+Use two-factor authentication. Two-factor authentication is the current standard for authentication and authorization because it avoids the security weaknesses inherent in username and password types of authentication. Access to both the Azure management (portal/remote PowerShell) interfaces and customer-facing services should be designed and configured to use Azure AD Multi-Factor Authentication.
Use standard authentication protocols, such as OAuth2 and Kerberos. These protocols have been extensively peer reviewed and are likely implemented as part of your platform libraries for authentication and authorization.
The following table lists the STRIDE threats and gives some example mitigations
| | | | | Spoofing | Authentication | Require HTTPS connections. | | Tampering | Integrity | Validate TLS/SSL certificates. |
-| Repudiation | Non-repudiation | Enable Azure [monitoring and diagnostics](/azure/architecture/best-practices/monitoring). |
-| Information disclosure | Confidentiality | Encrypt sensitive data at rest by using [service certificates](/rest/api/appservice/certificates). |
+| Repudiation | Non-repudiation | Enable Azure monitoring and diagnostics. |
+| Information disclosure | Confidentiality | Encrypt sensitive data at rest by using service certificates. |
| Denial of service | Availability | Monitor performance metrics for potential denial-of-service conditions. Implement connection filters. |
-| Elevation of privilege | Authorization | Use [Privileged Identity Management](../../active-directory/privileged-identity-management/subscription-requirements.md). |
+| Elevation of privilege | Authorization | Use Privileged Identity Management. |
## Develop on Azure App Service [Azure App Service](../../app-service/overview.md) is a PaaS offering that lets you create web and mobile apps for any platform or device and connect to data anywhere, in the cloud or on-premises. App Service includes the web and mobile capabilities that were previously delivered separately as Azure Websites and Azure Mobile Services. It also includes new capabilities for automating business processes and hosting cloud APIs. As a single integrated service, App Service brings a rich set of capabilities to web, mobile, and integration scenarios.
Following are best practices for using App Service.
**Detail**: [App Service Environment](../../app-service/environment/intro.md) has a virtual network integration feature that helps you restrict incoming source IP addresses through network security groups. Virtual networks enable you to place Azure resources in a non-internet, routable network that you control access to. To learn more, see [Integrate your app with an Azure virtual network](../../app-service/overview-vnet-integration.md). **Best practice**: Monitor the security state of your App Service environments.
-**Detail**: Use Microsoft Defender for Cloud to monitor your App Service environments. When Defender for Cloud identifies potential security vulnerabilities, it creates [recommendations](../../security-center/asset-inventory.md) that guide you through the process of configuring the needed controls.
+**Detail**: Use [Microsoft Defender for Cloud to monitor your App Service environments](../../security-center/asset-inventory.md). When Defender for Cloud identifies potential security vulnerabilities, it creates recommendations that guide you through the process of configuring the needed controls.
## Azure Cloud Services [Azure Cloud Services](../../cloud-services/cloud-services-choose-me.md) is an example of a PaaS. Like Azure App Service, this technology is designed to support applications that are scalable, reliable, and inexpensive to operate. In the same way that App Service is hosted on virtual machines (VMs), so too is Azure Cloud Services. However, you have more control over the VMs. You can install your own software on VMs that use Azure Cloud Services, and you can access them remotely.
Application Insights has extensive tools for interacting with the data that it c
## Perform security penetration testing Validating security defenses is as important as testing any other functionality. Make [penetration testing](pen-testing.md) a standard part of your build and deployment process. Schedule regular security tests and vulnerability scanning on deployed applications, and monitor for open ports, endpoints, and attacks.
-Fuzz testing is a method for finding program failures (code errors) by supplying malformed input data to program interfaces (entry points) that parse and consume this data. [Microsoft Security Risk Detection](https://www.microsoft.com/en-us/security-risk-detection/) is a cloud-based tool that you can use to look for bugs and other security vulnerabilities in your software before you deploy it to Azure. The tool is designed to catch vulnerabilities before you deploy software so you don't have to patch a bug, deal with crashes, or respond to an attack after the software is released.
+Fuzz testing is a method for finding program failures (code errors) by supplying malformed input data to program interfaces (entry points) that parse and consume this data.
## Next steps In this article, we focused on security advantages of an Azure PaaS deployment and security best practices for cloud applications. Next, learn recommended practices for securing your PaaS web and mobile solutions using specific Azure services. We'll start with Azure App Service, Azure SQL Database and Azure Synapse Analytics, Azure Storage, and Azure Cloud Services. As articles on recommended practices for other Azure services become available, links will be provided in the following list:
In this article, we focused on security advantages of an Azure PaaS deployment a
- [Azure Cloud Services](../../cloud-services/security-baseline.md) - Azure Cache for Redis - Azure Service Bus-- [Web Application Firewall](../../web-application-firewall/overview.md)
+- Web Application Firewall
-See [Develop secure applications on Azure](https://azure.microsoft.com/resources/develop-secure-applications-on-azure/) for security questions and controls you should consider at each phase of the software development lifecycle when developing applications for the cloud.
+See [Develop secure applications on Azure](../develop/secure-dev-overview.md) for security questions and controls you should consider at each phase of the software development lifecycle when developing applications for the cloud.
See [Azure security best practices and patterns](best-practices-and-patterns.md) for more security best practices to use when you're designing, deploying, and managing your cloud solutions by using Azure.
security Pen Testing https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/security/fundamentals/pen-testing.md
na Previously updated : 04/21/2022 Last updated : 03/23/2023 # Penetration testing
-One of the benefits of using Azure for application testing and deployment is that you can quickly get environments created. You donΓÇÖt have to worry about requisitioning, acquiring, and ΓÇ£racking and stackingΓÇ¥ your own on-premises hardware.
+One of the benefits of using Azure for application testing and deployment is that you can quickly get environments created. You don't have to worry about requisitioning, acquiring, and "racking and stacking" your own on-premises hardware.
-Quickly creating environments is great ΓÇô but you still need to make sure you perform your normal security due diligence. One of the things you likely want to do is penetration test the applications you deploy in Azure.
-
-We donΓÇÖt perform penetration testing of your application for you, but we do understand that you want and need to perform testing on your own applications. ThatΓÇÖs a good thing, because when you enhance the security of your applications you help make the entire Azure ecosystem more secure.
+Quickly creating environments is great but you still need to make sure you perform your normal security due diligence. One of the things you likely want to do is penetration test the applications you deploy in Azure.
+We don't perform penetration testing of your application for you, but we do understand that you want and need to perform testing on your own applications. That's a good thing, because when you enhance the security of your applications you help make the entire Azure ecosystem more secure.
As of June 15, 2017, Microsoft no longer requires pre-approval to conduct a penetration test against Azure resources. This process is only related to Microsoft Azure, and not applicable to any other Microsoft Cloud Service. - > [!IMPORTANT] > While notifying Microsoft of pen testing activities is no longer required customers must still comply with the [Microsoft Cloud Unified Penetration Testing Rules of Engagement](https://www.microsoft.com/msrc/pentest-rules-of-engagement). Standard tests you can perform include: * Tests on your endpoints to uncover the [Open Web Application Security Project (OWASP) top 10 vulnerabilities](https://owasp.org/www-project-top-ten/)
-* [Fuzz testing](https://www.microsoft.com/security/blog/2007/09/20/fuzz-testing-at-microsoft-and-the-triage-process/) of your endpoints
+* [Fuzz testing](https://www.microsoft.com/research/blog/a-brief-introduction-to-fuzzing-and-why-its-an-important-tool-for-developers/) of your endpoints
* [Port scanning](https://en.wikipedia.org/wiki/Port_scanner) of your endpoints
-One type of pen test that you canΓÇÖt perform is any kind of [Denial of Service (DoS)](https://en.wikipedia.org/wiki/Denial-of-service_attack) attack. This test includes initiating a DoS attack itself, or performing related tests that might determine, demonstrate, or simulate any type of DoS attack.
+One type of pen test that you can't perform is any kind of [Denial of Service (DoS)](https://en.wikipedia.org/wiki/Denial-of-service_attack) attack. This test includes initiating a DoS attack itself, or performing related tests that might determine, demonstrate, or simulate any type of DoS attack.
> [!Note] > You may only simulate attacks using Microsoft approved testing partners: > - [BreakingPoint Cloud](https://www.ixiacom.com/products/breakingpoint-cloud): A self-service traffic generator where your customers can generate traffic against DDoS Protection-enabled public endpoints for simulations. > - [Red Button](https://www.red-button.net/): Work with a dedicated team of experts to simulate real-world DDoS attack scenarios in a controlled environment.
->
+> - [RedWolf](https://www.redwolfsecurity.com/services/#cloud-ddos) a self-service or guided DDoS testing provider with real-time control.
+>
> To learn more about these simulation partners, see [testing with simulation partners](../../ddos-protection/test-through-simulations.md). - ## Next steps * Learn more about the [Penetration Testing Rules of Engagement](https://www.microsoft.com/msrc/pentest-rules-of-engagement?rtc=2).
security Production Network https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/security/fundamentals/production-network.md
description: Learn about the Azure production network. See security access metho
documentationcenter: na -+ ms.assetid: 61e95a87-39c5-48f5-aee6-6f90ddcd336e--++ na Previously updated : 06/28/2018 Last updated : 03/31/2023
The users of the Azure production network include both external customers who ac
## Internet routing and fault tolerance A globally redundant internal and external Azure Domain Name Service (DNS) infrastructure, combined with multiple primary and secondary DNS server clusters, provides fault tolerance. At the same time, additional Azure network security controls, such as NetScaler, are used to prevent distributed denial of service (DDoS) attacks and protect the integrity of Azure DNS services.
-The Azure DNS servers are located at multiple datacenter facilities. The Azure DNS implementation incorporates a hierarchy of secondary and primary DNS servers to publicly resolve Azure customer domain names. The domain names usually resolve to a CloudApp.net address, which wraps the virtual IP (VIP) address for the customerΓÇÖs service. Unique to Azure, the VIP that corresponds to internal dedicated IP (DIP) address of the tenant translation is done by the Microsoft load balancers responsible for that VIP.
+The Azure DNS servers are located at multiple datacenter facilities. The Azure DNS implementation incorporates a hierarchy of secondary and primary DNS servers to publicly resolve Azure customer domain names. The domain names usually resolve to a CloudApp.net address, which wraps the virtual IP (VIP) address for the customer's service. Unique to Azure, the VIP that corresponds to internal dedicated IP (DIP) address of the tenant translation is done by the Microsoft load balancers responsible for that VIP.
Azure is hosted in geographically distributed Azure datacenters within the US, and it's built on state-of-the-art routing platforms that implement robust, scalable architectural standards. Among the notable features are: - Multiprotocol Label Switching (MPLS)-based traffic engineering, which provides efficient link utilization and graceful degradation of service if there is an outage.-- Networks are implemented with ΓÇ£need plus oneΓÇ¥ (N+1) redundancy architectures or better.
+- Networks are implemented with "need plus one" (N+1) redundancy architectures or better.
- Externally, datacenters are served by dedicated, high-bandwidth network circuits that redundantly connect properties with over 1,200 internet service providers globally at multiple peering points. This connection provides in excess of 2,000 gigabytes per second (GBps) of edge capacity. Because Microsoft owns its own network circuits between datacenters, these attributes help the Azure offering achieve 99.9+ percent network availability without the need for traditional third-party internet service providers.
Azure implements host-based software firewalls inside the production network. Se
Two categories of rules are programmed here: -- **Machine config or infrastructure rules**: By default, all communication is blocked. Exceptions exist that allow a VM to send and receive Dynamic Host Configuration Protocol (DHCP) communications and DNS information, and send traffic to the ΓÇ£publicΓÇ¥ internet outbound to other VMs within the FC cluster and OS Activation server. Because the VMsΓÇÖ allowed list of outgoing destinations does not include Azure router subnets and other Microsoft properties, the rules act as a layer of defense for them.-- **Role configuration file rules**: Defines the inbound ACLs based on the tenantsΓÇÖ service model. For example, if a tenant has a web front end on port 80 on a certain VM, port 80 is opened to all IP addresses. If the VM has a worker role running, the worker role is opened only to the VM within the same tenant.
+- **Machine config or infrastructure rules**: By default, all communication is blocked. Exceptions exist that allow a VM to send and receive Dynamic Host Configuration Protocol (DHCP) communications and DNS information, and send traffic to the "public" internet outbound to other VMs within the FC cluster and OS Activation server. Because the VMs' allowed list of outgoing destinations does not include Azure router subnets and other Microsoft properties, the rules act as a layer of defense for them.
+- **Role configuration file rules**: Defines the inbound ACLs based on the tenants' service model. For example, if a tenant has a web front end on port 80 on a certain VM, port 80 is opened to all IP addresses. If the VM has a worker role running, the worker role is opened only to the VM within the same tenant.
**Native host firewall**: Azure Service Fabric and Azure Storage run on a native OS, which has no hypervisor and, therefore, Windows Firewall is configured with the preceding two sets of rules.
security Zero Trust https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/security/fundamentals/zero-trust.md
Previously updated : 03/08/2022 Last updated : 03/31/2023 # Zero Trust security
To learn about recommendations and core concepts for deploying secure email, doc
## Next steps -- To learn how to enhance your security solutions by integrating with Microsoft products, see Integrate with [Microsoft's Zero Trust solutions](/security/zero-trust/integrate/overview)
+- To learn how to enhance your security solutions by integrating with Microsoft products, see [Integrate with Microsoft's Zero Trust solutions](/security/zero-trust/integrate/overview)
synapse-analytics Sql Data Warehouse Tables Identity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/synapse-analytics/sql-data-warehouse/sql-data-warehouse-tables-identity.md
Last updated 07/20/2020 -+
-# Using IDENTITY to create surrogate keys using dedicated SQL pool in AzureSynapse Analytics
+# Using IDENTITY to create surrogate keys using dedicated SQL pool in Azure Synapse Analytics
In this article, you'll find recommendations and examples for using the IDENTITY property to create surrogate keys on tables in dedicated SQL pool.
virtual-machines Cli Ps Findimage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/virtual-machines/linux/cli-ps-findimage.md
You can also browse available images and offers using the [Azure Marketplace](ht
A Marketplace image in Azure has the following attributes:
-* **Publisher**: The organization that created the image. Examples: Canonical, MicrosoftWindowsServer
-* **Offer**: The name of a group of related images created by a publisher. Examples: UbuntuServer, WindowsServer
-* **SKU**: An instance of an offer, such as a major release of a distribution. Examples: 18.04-LTS, 2019-Datacenter
+* **Publisher**: The organization that created the image. Examples: Canonical, RedHat, SUSE
+* **Offer**: The name of a group of related images created by a publisher. Examples: UbuntuServer, RHEL, sles-12-sp5
+* **SKU**: An instance of an offer, such as a major release of a distribution. Examples: 18.04-LTS, 7_9, gen2
* **Version**: The version number of an image SKU. These values can be passed individually or as an image *URN*, combining the values separated by the colon (:). For example: *Publisher*:*Offer*:*Sku*:*Version*. You can replace the version number in the URN with `latest` to use the latest version of the image.
x64 opensuse-leap-15-3 SUSE gen2
x64 RHEL RedHat 7-LVM RedHat:RHEL:7-LVM:latest RHEL latest x64 sles-15-sp3 SUSE gen2 SUSE:sles-15-sp3:gen2:latest SLES latest x64 UbuntuServer Canonical 18.04-LTS Canonical:UbuntuServer:18.04-LTS:latest UbuntuLTS latest
-x64 WindowsServer MicrosoftWindowsServer 2022-Datacenter MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest Win2022Datacenter latest
-x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition-core MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest Win2022AzureEditionCore latest
-x64 WindowsServer MicrosoftWindowsServer 2019-Datacenter MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest Win2019Datacenter latest
-x64 WindowsServer MicrosoftWindowsServer 2016-Datacenter MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest Win2016Datacenter latest
-x64 WindowsServer MicrosoftWindowsServer 2012-R2-Datacenter MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest Win2012R2Datacenter latest
-x64 WindowsServer MicrosoftWindowsServer 2012-Datacenter MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest Win2012Datacenter latest
-x64 WindowsServer MicrosoftWindowsServer 2008-R2-SP1 MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest Win2008R2SP1 latest
+[...]
``` ## Find specific images
You can filter the list of images by `--publisher` or another parameter to limit
For example, the following command displays all Debian offers:
-```azurecli
+```azurecli-interactive
az vm image list --offer Debian --all --output table ```
Another way to find an image in a location is to run the [az vm image list-publi
1. List the image publishers for a location. In this example, we're looking at the *West US* region.
- ```azurecli
+ ```azurecli-interactive
az vm image list-publishers --location westus --output table ``` 1. For a given publisher, list their offers. In this example, we add *RedHat* as the publisher.
- ```azurecli
+ ```azurecli-interactive
az vm image list-offers --location westus --publisher RedHat --output table ``` 1. For a given offer, list their SKUs. In this example, we add *RHEL* as the offer.
- ```azurecli
+ ```azurecli-interactive
az vm image list-skus --location westus --publisher RedHat --offer RHEL --output table ```
Another way to find an image in a location is to run the [az vm image list-publi
1. For a given publisher, offer, and SKU, show all of the versions of the image. In this example, we add *9_1* as the SKU.
- ```azurecli
+ ```azurecli-interactive
az vm image list \ --location westus \ --publisher RedHat \
To view an image's purchase plan information, run the [az vm image show](/cli/az
For example, the Canonical Ubuntu Server 18.04 LTS image doesn't have extra terms, because the `plan` information is `null`:
-```azurecli
+```azurecli-interactive
az vm image show --location westus --urn Canonical:UbuntuServer:18.04-LTS:latest ```
Output:
Running a similar command for the RabbitMQ Certified by Bitnami image shows the following `plan` properties: `name`, `product`, and `publisher`. (Some images also have a `promotion code` property.)
-```azurecli
+```azurecli-interactive
az vm image show --location westus --urn bitnami:rabbitmq:rabbitmq:latest ``` Output:
To deploy this image, you need to accept the terms and provide the purchase plan
To view and accept the license terms, use the [az vm image terms](/cli/azure/vm/image/terms) command. When you accept the terms, you enable programmatic deployment in your subscription. You only need to accept terms once per subscription for the image. For example:
-```azurecli
+```azurecli-interactive
az vm image terms show --urn bitnami:rabbitmq:rabbitmq:latest ```
The output includes a `licenseTextLink` to the license terms, and indicates that
To accept the terms, type:
-```azurecli
+```azurecli-interactive
az vm image terms accept --urn bitnami:rabbitmq:rabbitmq:latest ```
az vm create \
For an image with purchase plan parameters, like the RabbitMQ Certified by Bitnami image, you pass the URN for `--image` and also provide the purchase plan parameters:
-```azurecli
+```azurecli-interactive
az group create --name myPurchasePlanRG --location westus az vm create \