Skip to content

Commit ff85de5

Browse files
committed
update content
1 parent 4b38939 commit ff85de5

File tree

2 files changed

+51
-54
lines changed

2 files changed

+51
-54
lines changed

articles/azure-resource-manager/managed-applications/publish-service-catalog-app.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,9 @@ Add the following JSON and save the file. It defines the resources to deploy an
140140
}
141141
```
142142

143-
## Define your create experience
143+
## Define your portal experience
144144

145-
As a publisher, you define the portal experience to create the managed application. The _createUiDefinition.json_ file generates the portal interface. You define how users provide input for each parameter using [control elements](create-uidefinition-elements.md) like drop-downs and text boxes.
145+
As a publisher, you define the portal experience to create the managed application. The _createUiDefinition.json_ file generates the portal's user interface. You define how users provide input for each parameter using [control elements](create-uidefinition-elements.md) like drop-downs and text boxes.
146146

147147
Open Visual Studio Code, create a file with the case-sensitive name _createUiDefinition.json_ and save it. The user interface allows the user to input the App Service name, App Service plan's name, storage account prefix, and storage account type. During deployment, the `uniqueString` function appends a 13 character string to the name prefixes so the names are globally unique across Azure.
148148

@@ -311,29 +311,29 @@ For more information about storage authentication, see [Choose how to authorize
311311

312312
In this section you'll get identity information from Azure Active Directory, create a resource group, and create the managed application definition.
313313

314-
### Create an Azure Active Directory user group or application
314+
### Get group ID and role definition ID
315315

316-
The next step is to select a user, group, or application for managing the resources for the customer. This identity has permissions on the managed resource group according to the assigned role. The role can be any Azure built-in role like Owner or Contributor. To create a new Azure Active Directory user group, go to [Manage Azure Active Directory groups and group membership](../../active-directory/fundamentals/how-to-manage-groups.md).
316+
The next step is to select a user, security group, or application for managing the resources for the customer. This identity has permissions on the managed resource group according to the assigned role. The role can be any Azure built-in role like Owner or Contributor.
317317

318-
This example uses a user group, so you need the object ID of the user group to use for managing the resources. Replace the placeholder `mygroup` with your group's name.
318+
This example uses a security group, and your Azure Active Directory account should be a member of the group. To get the group's object ID, replace the placeholder `managedAppDemo` with your group's name. You'll use this variable's value when you deploy the managed application definition.
319+
320+
To create a new Azure Active Directory group, go to [Manage Azure Active Directory groups and group membership](../../active-directory/fundamentals/how-to-manage-groups.md).
319321

320322
# [PowerShell](#tab/azure-powershell)
321323

322324
```azurepowershell-interactive
323-
$principalid=(Get-AzADGroup -DisplayName mygroup).Id
325+
$principalid=(Get-AzADGroup -DisplayName managedAppDemo).Id
324326
```
325327

326328
# [Azure CLI](#tab/azure-cli)
327329

328330
```azurecli-interactive
329-
principalid=$(az ad group show --group mygroup --query id --output tsv)
331+
principalid=$(az ad group show --group managedAppDemo --query id --output tsv)
330332
```
331333

332334
---
333335

334-
### Get the role definition ID
335-
336-
Next, you need the role definition ID of the Azure built-in role you want to grant access to the user, group, or application. Typically, you use the Owner, Contributor, or Reader role. The following command shows how to get the role definition ID for the Owner role:
336+
Next, get the role definition ID of the Azure built-in role you want to grant access to the user, group, or application. You'll use this variable's value when you deploy the managed application definition.
337337

338338
# [PowerShell](#tab/azure-powershell)
339339

@@ -351,9 +351,7 @@ roleid=$(az role definition list --name Owner --query [].name --output tsv)
351351

352352
### Create the managed application definition
353353

354-
If you don't already have a resource group for storing your managed application definition, create a new resource group.
355-
356-
**Optional**: If you want to deploy your managed application definition with an ARM template in your own storage account, see [bring your own storage](#bring-your-own-storage-for-the-managed-application-definition).
354+
Create a resource group for your managed application definition.
357355

358356
# [PowerShell](#tab/azure-powershell)
359357

@@ -369,7 +367,7 @@ az group create --name appDefinitionGroup --location westcentralus
369367

370368
---
371369

372-
Create the managed application definition resource. In the `Name` parameter, replace the placeholder `demostorageaccount` with your unique storage account name.
370+
Create the managed application definition in the resource group.
373371

374372
The `blob` command that's run from Azure PowerShell or Azure CLI creates a variable that's used to get the URL for the package _.zip_ file. That variable is used in the command that creates the managed application definition.
375373

@@ -391,6 +389,8 @@ New-AzManagedApplicationDefinition `
391389

392390
# [Azure CLI](#tab/azure-cli)
393391

392+
In the `blob` command's `account-name` parameter, replace the placeholder `demostorageaccount` with your unique storage account name.
393+
394394
```azurecli-interactive
395395
blob=$(az storage blob url \
396396
--account-name demostorageaccount \

articles/azure-resource-manager/managed-applications/publish-service-catalog-bring-your-own-storage.md

Lines changed: 37 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,9 @@ Add the following JSON and save the file. It defines the resources to deploy an
140140
}
141141
```
142142

143-
## Define your create experience
143+
## Define your portal experience
144144

145-
As a publisher, you define the portal experience to create the managed application. The _createUiDefinition.json_ file generates the portal interface. You define how users provide input for each parameter using [control elements](create-uidefinition-elements.md) like drop-downs and text boxes.
145+
As a publisher, you define the portal experience to create the managed application. The _createUiDefinition.json_ file generates the portal's user interface. You define how users provide input for each parameter using [control elements](create-uidefinition-elements.md) like drop-downs and text boxes.
146146

147147
Open Visual Studio Code, create a file with the case-sensitive name _createUiDefinition.json_ and save it. The user interface allows the user to input the App Service name, App Service plan's name, storage account prefix, and storage account type. During deployment, the `uniqueString` function appends a 13 character string to the name prefixes so the names are globally unique across Azure.
148148

@@ -314,7 +314,7 @@ You store your managed application definition in your own storage account so tha
314314
> [!NOTE]
315315
> Bring your own storage is only supported with ARM template or REST API deployments of the managed application definition.
316316
317-
### Create your storage account
317+
### Create a storage account
318318

319319
Create a storage account for your managed application definition. The storage account name must be globally unique across Azure and the length must be 3-24 characters with only lowercase letters and numbers.
320320

@@ -333,7 +333,7 @@ New-AzStorageAccount `
333333
-Kind StorageV2
334334
```
335335

336-
Use the following command to store the storage account's resource ID in a variable named `storageId`. You use this variable when you deploy the managed application definition.
336+
Use the following command to store the storage account's resource ID in a variable named `storageId`. You use this variable's value when you deploy the managed application definition.
337337

338338
```azurepowershell-interactive
339339
$storageId = (Get-AzStorageAccount -ResourceGroupName byosStorageRG -Name definitionstorage).Id
@@ -352,7 +352,7 @@ az storage account create \
352352
--kind StorageV2
353353
```
354354

355-
Use the following command to store the storage account's resource ID in a variable named `storageId`. You use the variable's value when you deploy the managed application definition.
355+
Use the following command to store the storage account's resource ID in a variable named `storageId`. You use this variable's value when you deploy the managed application definition.
356356

357357
```azurecli-interactive
358358
storageId=$(az storage account show --resource-group byosStorageRG --name definitionstorage --query id)
@@ -395,29 +395,29 @@ If you're running CLI commands with Git Bash for Windows, you might get an `Inva
395395

396396
The _Appliance Resource Provider_ is a service principal in your Azure Active Directory's tenant. From the Azure portal, you can see if it's registered by going to **Azure Active Directory** > **Enterprise applications** and change the search filter to **Microsoft Applications**. Search for _Appliance Resource Provider_. If it isn't found, [register](../troubleshooting/error-register-resource-provider.md) the `Microsoft.Solutions` resource provider.
397397

398-
## Create an Azure Active Directory user group or application
398+
## Get group ID and role definition ID
399399

400-
The next step is to select a user, group, or application for managing the resources for the customer. This identity has permissions on the managed resource group according to the assigned role. The role can be any Azure built-in role like Owner or Contributor. To create a new Azure Active Directory user group, go to [Manage Azure Active Directory groups and group membership](../../active-directory/fundamentals/how-to-manage-groups.md).
400+
The next step is to select a user, security group, or application for managing the resources for the customer. This identity has permissions on the managed resource group according to the assigned role. The role can be any Azure built-in role like Owner or Contributor.
401401

402-
This example uses a user group, so you need the object ID of the user group to use for managing the resources. Replace the placeholder `mygroup` with your group's name.
402+
This example uses a security group, and your Azure Active Directory account should be a member of the group. To get the group's object ID, replace the placeholder `managedAppDemo` with your group's name. You'll use this variable's value when you deploy the managed application definition.
403+
404+
To create a new Azure Active Directory group, go to [Manage Azure Active Directory groups and group membership](../../active-directory/fundamentals/how-to-manage-groups.md).
403405

404406
# [PowerShell](#tab/azure-powershell)
405407

406408
```azurepowershell-interactive
407-
$principalid=(Get-AzADGroup -DisplayName mygroup).Id
409+
$principalid=(Get-AzADGroup -DisplayName managedAppDemo).Id
408410
```
409411

410412
# [Azure CLI](#tab/azure-cli)
411413

412414
```azurecli-interactive
413-
principalid=$(az ad group show --group mygroup --query id --output tsv)
415+
principalid=$(az ad group show --group managedAppDemo --query id --output tsv)
414416
```
415417

416418
---
417419

418-
## Get the role definition ID
419-
420-
Next, you need the role definition ID of the Azure built-in role you want to grant access to the user, group, or application. Typically, you use the Owner, Contributor, or Reader role. The following command shows how to get the role definition ID for the Owner role:
420+
Next, get the role definition ID of the Azure built-in role you want to grant access to the user, group, or application. You'll use this variable's value when you deploy the managed application definition.
421421

422422
# [PowerShell](#tab/azure-powershell)
423423

@@ -433,9 +433,9 @@ roleid=$(az role definition list --name Owner --query [].name --output tsv)
433433

434434
---
435435

436-
## Create the managed application definition ARM template
436+
## Create the managed application definition template
437437

438-
Use the following ARM template to deploy the managed application definition in your service catalog. The definition files are stored and maintained in your storage account.
438+
Use the following ARM template to deploy the managed application definition in your service catalog. The definition files are stored in your storage account.
439439

440440
Open Visual Studio Code, create a file with the name _azuredeploy.json_ and save it.
441441

@@ -450,7 +450,7 @@ Add the following JSON and save the file.
450450
"type": "string",
451451
"defaultValue": "[resourceGroup().location]"
452452
},
453-
"applicationName": {
453+
"managedApplicationDefinitionName": {
454454
"type": "string",
455455
"metadata": {
456456
"description": "Name of the managed application definition."
@@ -459,7 +459,7 @@ Add the following JSON and save the file.
459459
"definitionStorageResourceID": {
460460
"type": "string",
461461
"metadata": {
462-
"description": "Storage account's resource ID where you're storing your managed application definition."
462+
"description": "Resource ID for the storage account where the definition is stored."
463463
}
464464
},
465465
"packageFileUri": {
@@ -471,36 +471,33 @@ Add the following JSON and save the file.
471471
"principalId": {
472472
"type": "string",
473473
"metadata": {
474-
"description": "Principal ID with access the managed resource group."
474+
"description": "Publishers Principal ID that needs permissions to manage resources in the managed resource group."
475475
}
476476
},
477477
"roleId": {
478478
"type": "string",
479479
"metadata": {
480-
"description": "Role ID for permissions to managed resource group."
480+
"description": "Role ID for permissions to the managed resource group."
481481
}
482482
}
483483
},
484484
"variables": {
485485
"lockLevel": "ReadOnly",
486-
"description": "Sample Managed application definition",
487-
"displayName": "Sample Managed application definition",
488-
"managedApplicationDefinitionName": "[parameters('applicationName')]",
489-
"packageFileUri": "[parameters('packageFileUri')]",
490-
"defLocation": "[parameters('definitionStorageResourceID')]"
486+
"description": "Sample BYOS Managed application definition",
487+
"displayName": "Sample BYOS Managed application definition"
491488
},
492489
"resources": [
493490
{
494491
"type": "Microsoft.Solutions/applicationDefinitions",
495492
"apiVersion": "2021-07-01",
496-
"name": "[variables('managedApplicationDefinitionName')]",
493+
"name": "[parameters('managedApplicationDefinitionName')]",
497494
"location": "[parameters('location')]",
498495
"properties": {
499496
"lockLevel": "[variables('lockLevel')]",
500497
"description": "[variables('description')]",
501498
"displayName": "[variables('displayName')]",
502-
"packageFileUri": "[variables('packageFileUri')]",
503-
"storageAccountId": "[variables('defLocation')]",
499+
"packageFileUri": "[parameters('packageFileUri')]",
500+
"storageAccountId": "[parameters('definitionStorageResourceID')]",
504501
"authorizations": [
505502
{
506503
"principalId": "[parameters('principalId')]",
@@ -528,9 +525,9 @@ Parameters used in the template:
528525

529526
- **package file URI**: The location of the _.zip_ package file that contains the managed application definition's files.
530527

531-
## Create a parameter file
528+
## Create the parameter file
532529

533-
The managed application defintion's template needs input for several parameters. The deployment command will prompt for the values or you can create a parameter file for the values. In this example, we use a parameter file to pass the parameter values to the deployment command.
530+
The managed application definition's template needs input for several parameters. The deployment command prompts you for the values or you can create a parameter file for the values. In this example, we use a parameter file to pass the parameter values to the deployment command.
534531

535532
In Visual Studio Code, create a new file named _azuredeploy-parameters.json_ and save it.
536533

@@ -541,7 +538,7 @@ Add the following to your parameter file and save it. Then, replace the `{placeh
541538
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
542539
"contentVersion": "1.0.0.0",
543540
"parameters": {
544-
"applicationName": {
541+
"managedApplicationDefinitionName": {
545542
"value": "{placeholder for managed application name}"
546543
},
547544
"definitionStorageResourceID": {
@@ -560,17 +557,19 @@ Add the following to your parameter file and save it. Then, replace the `{placeh
560557
}
561558
```
562559

560+
The following table describes the parameter values for the managed application definition.
561+
563562
| Parameter | Value |
564563
| ---- | ---- |
565-
| `applicationName` | Choose a name for your managed application definition. For this example, use _sampleManagedAppDefintion_.|
566-
| `definitionStorageResourceID` | Enter your storage account's resource ID. You created the `storageId` variable with this value in an earlier step. |
567-
| `packageFileUri` | Enter the URI to your _.zip_ package file. Use the URI for the _.zip_ [package file](#package-the-files) you created in an earlier step. The format is `https://yourStorageAccountName.blob.core.windows.net/appcontainer/app.zip`. |
568-
| `principalId` | The publishers Principal ID that needs access to manage resources in the managed resource group. Your `principalid` variable's value. |
569-
| `roleId` | Role ID for permissions to the managed resource group. For example Read, Contributor, Owner. Your `roleid` variable's value. |
564+
| `applicationName` | Name of the managed application definition. For this example, use _sampleManagedAppDefintion_.|
565+
| `definitionStorageResourceID` | Resource ID for the storage account where the definition is stored. Use the `storageId` variable's value. |
566+
| `packageFileUri` | Enter the URI for your _.zip_ package file. Use the URI for the _.zip_ [package file](#package-the-files) you created in an earlier step. The format is `https://yourStorageAccountName.blob.core.windows.net/appcontainer/app.zip`. |
567+
| `principalId` | The publishers Principal ID that needs permissions to manage resources in the managed resource group. Use your `principalid` variable's value. |
568+
| `roleId` | Role ID for permissions to the managed resource group. For example Owner, Contributor, Reader. Use your `roleid` variable's value. |
570569

571-
### Deploy the definition
570+
## Deploy the definition
572571

573-
When you deploy the managed application's definition it becomes available in your service catalog. This process doesn't deploy the managed application's resources.
572+
When you deploy the managed application's definition, it becomes available in your service catalog. This process doesn't deploy the managed application's resources.
574573

575574
Create a resource group named _byosDefinitionRG_ and deploy the managed application definition to your storage account.
576575

@@ -598,9 +597,7 @@ az deployment group create \
598597

599598
---
600599

601-
602-
603-
### Verify definition files storage
600+
## Verify definition files storage
604601

605602
During deployment, the template's `storageAccountId` property uses your storage account's resource ID and creates a new container with the case-sensitive name `applicationdefinitions`. The files from the _.zip_ package you specified during the deployment are stored in the new container.
606603

0 commit comments

Comments
 (0)