You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In this sample tutorial, learn how to migrate a legacy application using header-based authentication to Azure Active Directory B2C (Azure AD B2C) with [Grit's app proxy](https://www.gritiam.com/appProxy.html).
21
+
In this sample tutorial, learn how to migrate a legacy application using header-based authentication to Azure Active Directory B2C (Azure AD B2C) with [Grit's app proxy](https://www.gritiam.com/grit_legacy_app_proxy.html).
22
22
23
23
Benefits of using Grit's app proxy are as follows:
24
24
@@ -122,7 +122,7 @@ From the list, select the IdP.
[Grit Software Systems Visual Identity Experience Framework (IEF) Editor](https://www.gritiam.com/iefeditor.html), is a tool that saves time during Azure Active Directory B2C (Azure AD B2C) authentication deployment. It supports multiple languages without the need to write code. It also has a no code debugger for user journeys.
22
+
[Grit Software Systems Visual Identity Experience Framework (IEF) Editor](https://www.gritiam.com/visual_authentication.html), is a tool that saves time during Azure Active Directory B2C (Azure AD B2C) authentication deployment. It supports multiple languages without the need to write code. It also has a no code debugger for user journeys.
In this tutorial, you learn how to integrate Azure Active Directory B2C (Azure AD B2C) authentication with a [Grit IAM B2B2C](https://www.gritiam.com/b2b2c.html) solution. You can use the solution to provide secure, reliable, self-serviceable, and user-friendly identity and access management to your customers. Shared profile data such as first name, last name, home address, and email used in web and mobile applications are stored in a centralized manner with consideration to compliance and regulatory needs.
21
+
In this tutorial, you learn how to integrate Azure Active Directory B2C (Azure AD B2C) authentication with a [Grit IAM B2B2C](https://www.gritiam.com/IAM_solution_for_B2B2C.html) solution. You can use the solution to provide secure, reliable, self-serviceable, and user-friendly identity and access management to your customers. Shared profile data such as first name, last name, home address, and email used in web and mobile applications are stored in a centralized manner with consideration to compliance and regulatory needs.
22
22
23
23
24
24
Use Grit's B2BB2C solution for:
@@ -30,7 +30,7 @@ Use Grit's B2BB2C solution for:
30
30
31
31
To get started, ensure the following prerequisites are met:
32
32
33
-
- A Grit IAM account. You can go to [Grit IAM B2B2C solution](https://www.gritiam.com/b2b2c.html) to get a demo.
33
+
- A Grit IAM account. You can go to [Grit IAM B2B2C solution](https://www.gritiam.com/IAM_solution_for_B2B2C.html) to get a demo.
34
34
- A Microsoft Entra subscription. If you don't have one, you can create a [free Azure account](https://azure.microsoft.com/pricing/purchase-options/azure-account?cid=msft_learn).
35
35
- An Azure AD B2C tenant linked to the Azure subscription. You can learn more at [Tutorial: Create an Azure Active Directory B2C tenant](tutorial-create-tenant.md).
[McpToolTrigger("save_snippet", "Saves a code snippet into your snippet collection.")]
36
36
ToolInvocationContextcontext,
37
-
[McpToolProperty("snippetname", "The name of the snippet.")]
37
+
[McpToolProperty("snippetname", "The name of the snippet.", isRequired: true)]
38
38
stringname,
39
-
[McpToolProperty("snippet", "The code snippet.")]
39
+
[McpToolProperty("snippet", "The code snippet.", isRequired: true)]
40
40
stringsnippet
41
41
)
42
42
{
@@ -73,7 +73,7 @@ builder.Services
73
73
74
74
builder
75
75
.ConfigureMcpTool("get_snippets")
76
-
.WithProperty("snippetname", "string", "The name of the snippet.");
76
+
.WithProperty("snippetname", "string", "The name of the snippet.", required: true);
77
77
78
78
builder.Build().Run();
79
79
```
@@ -448,7 +448,7 @@ The `McpToolPropertyAttribute` type supports these properties:
448
448
|**Description**| Description of what the tool property does. |
449
449
|**IsRequired**| (Optional) If set to `true`, the tool property is required as an argument for tool calls. Defaults to `false`. |
450
450
451
-
The property type is inferred from the type of the parameter to which you apply the attribute. For example `[McpToolProperty("snippetname", "The name of the snippet.")] string name` defines a tool property named `snippetname` of type `string` in MCP messages.
451
+
The property type is inferred from the type of the parameter to which you apply the attribute. For example `[McpToolProperty("snippetname", "The name of the snippet.", true)] string name` defines a required tool property named `snippetname` of type `string` in MCP messages.
452
452
453
453
You can see these attributes used in the `SaveSnippet` tool in the [Examples](#example).
Copy file name to clipboardExpand all lines: articles/azure-vmware/configure-storage-policy.md
+50-1Lines changed: 50 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: Configure a Storage Policy
3
3
description: Learn how to configure a storage policy for your Azure VMware Solution virtual machines.
4
4
ms.topic: how-to
5
5
ms.service: azure-vmware
6
-
ms.date: 01/08/2025
6
+
ms.date: 10/20/2025
7
7
ms.custom:
8
8
- engagement-fy23
9
9
- build-2025
@@ -120,6 +120,55 @@ Run the `Set-LocationStoragePolicy` cmdlet to modify vSAN-based storage policies
120
120
121
121
1. Check **Notifications** to see the progress.
122
122
123
+
## List storage policies for Unassociated objects
124
+
125
+
Unassociated objects in vCenter are vSAN storage objects that are not linked to any active VM or namespace, often resulting from VM deletions or API operations, and may accumulate over time, potentially causing cluster health or capacity issues if not managed.
126
+
127
+
Run the `Get-UnassociatedVsanObjectsWithPolicy` cmdlet to list the unassociated vSAN-based Objects with specified storage policy.
> Use the latest version of the **Microsoft.AVS.Management** package.
133
+
134
+
:::image type="content" source="media/run-command/run-command-unassociated-storage-policy.png" alt-text="Screenshot that shows how to access the unassociated storage policy run command." lightbox="media/run-command/run-command-unassociated-storage-policy.png":::
135
+
136
+
2. Provide the required values or change the default values according to the following table. Then select **Run**.
137
+
138
+
| Field | Value |
139
+
| --- | --- |
140
+
|**Policy Name**| Storage Policy Name to filter unassociated objects. Please make sure that the policy name is an exact match. For example, *RAID-1 FTT-1*|
141
+
|**Cluster Name**| Name of the Cluster to scan for the unassociated objects. For example, Cluster-1 |
142
+
|**Retain up to**| Retention period of the cmdlet output. The default value is `60`. |
143
+
|**Specify name for execution**| Alphanumeric name. For example, *Get-UnassociatedVsanObjectsWithPolicy-Exec1*. |
144
+
|**Timeout**| The period after which a cmdlet exits if it's taking too long to finish. |
145
+
146
+
:::image type="content" source="media/run-command/run-command-get-unassociated-storage-policy.png" alt-text="Screenshot that shows how to list unassociated storage policies." lightbox="media/run-command/run-command-get-unassociated-storage-policy.png":::
147
+
148
+
3. Check **Notifications** to see the progress.
149
+
150
+
## Set a storage policy for Unassociated vSAN objects
151
+
152
+
Run the `Update-StoragePolicyOfUnassociatedVsanObjects` cmdlet to modify current vSAN-based storage policy to a target storage policy on a cluster. For example, if you have unassociated objects with RAID-5 FTT-1 in Cluster-1, you can set the target policy name as RAID-1 FTT-1.
1. Provide the required values or change the default values according to the following table. Then select **Run**.
157
+
158
+
| Field | Value |
159
+
| --- | --- |
160
+
|**CurrentPolicyName**| Name of the storage policy that the unassociated objects currently have. For example, *RAID-5 FTT-1*|
161
+
|**TargetPolicyName**| Name of the storage policy that you want to set for the unassociated objects. For example, *RAID-1 FTT-1*|
162
+
|**Cluster Name**| Name of the Cluster where you want the unassociated objects updated. For example, *Cluster-1*|
163
+
|**Retain up to**| Retention period of the cmdlet output. The default value is `60`. |
164
+
|**Specify name for execution**| Alphanumeric name. For example, *Update-StoragePolicyOfUnassociatedVsanObjects-Exec1*. |
165
+
|**Timeout**| The period after which a cmdlet exits if it's taking too long to finish. |
166
+
167
+
:::image type="content" source="media/run-command/run-command-update-unassociated-storage-policy.png" alt-text="Screenshot that shows how to update unassociated storage policies." lightbox="media/run-command/run-command-update-unassociated-storage-policy.png":::
168
+
169
+
170
+
3. Check **Notifications** to see the progress.
171
+
123
172
## Specify a storage policy for a cluster
124
173
125
174
Run the `Set-ClusterDefaultStoragePolicy` cmdlet to specify a default storage policy for a cluster.
@@ -67,53 +68,37 @@ This tutorial uses a premium instance of Azure Container Registry to improve col
67
68
--sku premium
68
69
```
69
70
70
-
## Pull, tag, and push your image
71
+
## Import the NVIDIA NIM image into your Azure Container Registry
71
72
72
-
Next, pull the image from NVIDIA GPU Cloud and push to Azure Container Registry.
73
+
Next, import the image from NVIDIA GPU Cloud to Azure Container Registry.
73
74
74
75
> [!NOTE]
75
76
> NVIDIA NICs each have their own hardware requirements. Make sure the GPU type you select supports the [NIM](https://build.nvidia.com/models?filters=nimType%3Anim_type_run_anywhere&q=llama) of your choice. The Llama3 NIM used in this tutorial can run on NVIDIA A100 GPUs.
76
77
77
-
1. Authenticate to the NVIDIA container registry.
78
-
79
-
```bash
80
-
docker login nvcr.io
81
-
```
82
-
83
-
After you run this command, the sign in process prompts you to enter a username. Enter **$oauthtoken** for your user name value.
84
-
85
-
Then you're prompted for a password. Enter your NVIDIA NGC API key here. Once authenticated to the NVIDIA registry, you can authenticate to the Azure registry.
86
-
87
78
1. Authenticate to Azure Container Registry.
88
79
89
80
```bash
90
81
az acr login --name $ACR_NAME
91
82
```
92
83
93
-
1. Pull the Llama3 NIM image.
94
-
95
-
```azurecli
96
-
docker pull nvcr.io/nim/meta/$CONTAINER_AND_TAG
97
-
```
98
-
99
-
1. Tag the image.
100
-
101
-
```azurecli
102
-
docker tag nvcr.io/nim/meta/$CONTAINER_AND_TAG$ACR_NAME.azurecr.io/$CONTAINER_AND_TAG
## Enable artifact streaming (recommended but optional)
112
97
113
-
When your container app runs, it pulls the container from your container registry. When you have larger images like in the case of AI workloads, this image pull may take some time. By enabling artifact streaming, you reduce the time needed, and your container app can take a longtime to start if you don't enable artifact streaming. Use the following steps to enable artifact streaming.
98
+
When your container app runs, it pulls the container from your container registry. When you have larger images like in the case of AI workloads, this image pull may take some time. By enabling artifact streaming, your container app will load the essential parts of your image first, reducing the amount of time to startup your container. Use the following steps to enable artifact streaming.
114
99
115
100
> [!NOTE]
116
-
> The following commands can take a few minutes to complete.
101
+
> The following commands can take a long time to complete.
117
102
118
103
1. Enable artifact streaming on your container registry.
119
104
@@ -136,7 +121,7 @@ When your container app runs, it pulls the container from your container registr
136
121
137
122
Next you create a container app with the NVIDIA GPU Cloud API key.
138
123
139
-
1. Create the container app.
124
+
1. Create the container app environment.
140
125
141
126
```azurecli
142
127
az containerapp env create \
@@ -177,6 +162,9 @@ Next you create a container app with the NVIDIA GPU Cloud API key.
177
162
178
163
This command returns the URL of your container app. Set this value aside in a text editor for use in a following command.
179
164
165
+
> [!NOTE]
166
+
> Some NIMs have longer startup times. To account for this, you can configure a [health probe](./health-probes.md) or set your container app's min-replica count with `--min-replicas 1` to keep a replica running at all times.
167
+
180
168
## Verify the application works
181
169
182
170
You can verify a successful deployment by sending a request `POST` request to your application.
0 commit comments