Tutorial: Creación de una aplicación administrada con acciones y recursos personalizados
Artículo
En este tutorial, creará su propia aplicación administrada con acciones y recursos personalizados. La aplicación administrada contiene una acción personalizada en la página Overview, un tipo de recurso personalizado que se muestra como un elemento de menú independiente en Table of Content y una acción de contexto personalizada en la página del recurso personalizado.
Este tutorial incluye los siguientes pasos:
Creación de un archivo de definición de la interfaz de usuario para crear una instancia de aplicación administrada.
Creación de una plantilla de implementación con el proveedor personalizado de Azure, la cuenta de Azure Storage y una función de Azure.
Creación de un artefacto de definición de vistas con acciones y recursos personalizados.
Creación de una definición de aplicación administrada.
Implementación de una instancia de aplicación administrada.
Realización de acciones personalizadas y creación de recursos personalizados.
Prerrequisitos
Para completar este tutorial, necesita saber lo siguiente:
En este tutorial, va a crear una aplicación administrada y su grupo de recursos administrados contiene una instancia de proveedor personalizado, una cuenta de almacenamiento y una función. La función de Azure que se usa en este ejemplo implementa una API que controla las operaciones del proveedor personalizado para las acciones y los recursos. La cuenta de Azure Storage se usa como almacenamiento básico para los recursos del proveedor personalizado.
La definición de la interfaz de usuario para crear una instancia de aplicación administrada incluye los elementos de entrada funcname y storagename. El nombre de la cuenta de almacenamiento y el nombre de la función deben ser únicos globalmente. De manera predeterminada, los archivos de función se implementan desde el paquete de función de ejemplo, pero esto se puede cambiar si agrega un elemento de entrada de un vínculo de paquete en createUiDefinition.json:
JSON
{
"name": "funcname",
"type": "Microsoft.Common.TextBox",
"label": "Name of the function to be created",
"toolTip": "Name of the function to be created",
"visible": true,
"constraints": {
"required": true
}
},
{
"name": "storagename",
"type": "Microsoft.Common.TextBox",
"label": "Name of the storage to be created",
"toolTip": "Name of the storage to be created",
"visible": true,
"constraints": {
"required": true
}
},
{
"name": "zipFileBlobUri",
"type": "Microsoft.Common.TextBox",
"defaultValue": "https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.customproviders/custom-rp-with-function/artifacts/functionzip/functionpackage.zip",
"label": "The Uri to the uploaded function zip file",
"toolTip": "The Uri to the uploaded function zip file",
"visible": true
}
Para crear una instancia de aplicación administrada con un proveedor personalizado, debe definir el recurso de proveedor personalizado con el nombre public y el tipo Microsoft.CustomProviders/resourceProviders en mainTemplate.json. En ese recurso, defina los tipos de recurso y las acciones para el servicio. Para implementar las instancias de Azure Functions y de la cuenta de Azure Storage, defina recursos del tipo Microsoft.Web/sites y Microsoft.Storage/storageAccounts respectivamente.
En este tutorial, creará un tipo de recurso users, una acción personalizada ping y una acción personalizada users/contextAction que se ejecutan en un contexto de un recurso personalizado users. Para cada tipo de recurso y acción, proporcione un punto de conexión que apunte a la función con el nombre proporcionado en createUiDefinition.json. Especifique routingType como Proxy,Cache para los tipos de recurso y Proxy para las acciones:
Para definir una interfaz de usuario que incluya acciones personalizadas y recursos personalizados en la aplicación administrada, debe crear el artefacto viewDefinition.json. Para más información sobre el artefacto de definición de vistas, consulte Artefacto de definición de vistas en Azure Managed Applications.
En este tutorial, definirá:
Una página de información general con un botón de la barra de herramientas que representa una acción personalizada TestAction con entrada de texto básica.
Una página de usuarios que representa un tipo de recurso personalizado users.
Una acción de recursos personalizada users/contextAction en la página de usuarios que se realizará en un contexto de recurso personalizado de tipo users.
En el ejemplo siguiente se muestra la configuración de vista de una página de información general:
JSON
{
"kind": "Overview",
"properties": {
"header": "Welcome to your Demo Azure Managed Application",
"description": "This Managed application with Custom Provider is for demo purposes only.",
"commands": [
{
"displayName": "Ping Action",
"path": "/customping",
"icon": "LaunchCurrent"
}
]
}
}
En el ejemplo siguiente se incluye la configuración de la página de recursos Usuarios con la acción de recursos personalizada:
Empaquete los siguientes artefactos de aplicación administrada en un archivo ZIP y cárguelo en el almacenamiento:
createUiDefinition.json
mainTemplate.json
viewDefinition.json
Todos los archivos deben estar en el nivel raíz. El paquete con artefactos se puede almacenar en cualquier almacenamiento, por ejemplo, un blob de GitHub o un blob de una cuenta de Azure Storage. Este es un script para cargar el paquete de aplicación en la cuenta de almacenamiento:
PowerShell
$resourceGroup="appResourcesGroup"$storageName="mystorageaccount$RANDOM"# Sign in to your Azure subscriptionConnect-AzAccount# Create resource group for managed application definition and application packageNew-AzResourceGroup -Name$resourceGroup -Location eastus
# Create storage account for a package with application artifacts$storageAccount=New-AzStorageAccount `
-ResourceGroupName$resourceGroup `
-Name$storageName `
-SkuName Standard_LRS `
-Location eastus `
$ctx=$storageAccount.Context
# Create storage container and upload zip to blobNew-AzStorageContainer -Name appcontainer -Context$ctx -Permission blob
Set-AzStorageBlobContent `
-File"path_to_your_zip_package" `
-Container appcontainer `
-Blob app.zip `
-Context$ctx# Get blob absolute uri$blobUri=(Get-AzureStorageBlob -Container appcontainer -Blob app.zip -Context$ctx).ICloudBlob.uri.AbsoluteUri
Ejecute el siguiente script de la CLI de Azure o siga los pasos en Azure Portal para implementar una definición de aplicación administrada de catálogo de servicios:
Para ejecutar este ejemplo, instale la versión más reciente de la CLI de Azure. Para empezar, ejecute az login para crear una conexión con Azure.
Los ejemplos de la CLI de Azure están escritos para el shell bash. Para ejecutar este ejemplo en Windows PowerShell o en el símbolo del sistema, es posible que necesite cambiar algunos elementos del script.
resourceGroup="appResourcesGroup"# Select subscription and create resource group (if you have not created yet)az account set --subscription<subscriptionID>az group create --name$resourceGroup--location eastus
# Get object ID of your identityuserid=$(az ad user list --upn example@contoso.org --query[0].id --output tsv)
# Get role definition ID for the Owner roleroleid=$(az role definition list --name Owner --query[].name --output tsv)
# Create managed application definition resourceaz managedapp definition create \
--name"ManagedUsersAppDefinition" \
--location"eastus" \
--resource-group$resourceGroup \
--lock-level ReadOnly \
--display-name"Managed users app definition" \
--description"Managed application with Azure Custom Provider" \
--authorizations"$userid:$roleid" \
--package-file-uri"path to your app.zip package"
En Azure Portal, seleccione Todos los servicios. En la lista de recursos, escriba y seleccione Centro de Managed Applications.
En Centro de Managed Applications, seleccione Definición de aplicación del catálogo de servicios y haga clic en Agregar.
Proporcione valores para crear una definición del catálogo de servicios:
Proporcione un nombre único para la definición del catálogo de servicios, un nombre para mostrar y una descripción (opcional).
Seleccione la suscripción, el grupo de recursos y la ubicación donde se creará la definición de la aplicación. Puede usar el mismo grupo de recursos que se usa para el paquete ZIP o crear un nuevo grupo de recursos.
Para el identificador URI del archivo de paquete, proporcione la ruta de acceso al archivo ZIP que creó en el paso anterior.
Cuando llegue a la sección de Autenticación y Nivel de bloqueo, seleccione Agregar autorización.
Seleccione un grupo de Microsoft Entra para administrar los recursos y seleccione Aceptar.
Después de proporcionar todos los valores, seleccione Crear.
Instancia de la aplicación administrada
Una vez que se implemente la definición de la aplicación administrada, ejecute el siguiente script o siga los pasos en Azure Portal para implementar la instancia de la aplicación administrada con el proveedor personalizado:
appResourcesGroup="appResourcesGroup"applicationGroup="usersApplicationGroup"# Create resource group for managed application instanceaz group create --name$applicationGroup--location eastus
# Get ID of managed application definitionappid=$(az managedapp definition show --name ManagedUsersAppDefinition --resource-group$appResourcesGroup--query id --output tsv)
# Create the managed applicationaz managedapp create \
--name ManagedUsersApp \
--location"eastus" \
--kind"Servicecatalog" \
--resource-group$applicationGroup \
--managedapp-definition-id$appid \
--managed-rg-id"managedResourcesGroup" \
--parameters"{\"funcname\": {\"value\": \"managedusersappfunction\"}, \"storageName\": {\"value\": \"managedusersappstorage\"}}"
En Azure Portal, seleccione Todos los servicios. En la lista de recursos, escriba y seleccione Centro de Managed Applications.
En Centro de Managed Applications, seleccione Aplicaciones del catálogo de servicios y después Agregar.
En la página Aplicaciones del catálogo de servicios, escriba el nombre para mostrar de la definición del catálogo de servicios en el cuadro de búsqueda. Seleccione la definición creada en el paso anterior y después Crear.
Proporcione valores para crear una instancia de aplicación administrada a partir de la definición del catálogo de servicios:
Seleccione la suscripción, el grupo de recursos y la ubicación donde se creará la instancia de la aplicación.
Proporcione un nombre de función de Azure y un nombre de cuenta de Azure Storage únicos.
Cuando se supere la validación, seleccione Aceptar para implementar una instancia de una aplicación administrada.
Acciones y recursos personalizados
Una vez que se implemente la instancia de la aplicación del catálogo de servicios, tendrá dos nuevos grupos de recursos. El grupo de recursos applicationGroup contiene una instancia de la aplicación administrada y el grupo de recursos managedResourceGroup contiene los recursos de la aplicación administrada, incluido el proveedor personalizado.
Puede ir a la instancia de la aplicación administrada y realizar una acción personalizada en la página de información general, crear un recurso personalizado de usuarios en la página de usuarios y ejecutar una acción de contexto personalizada en un recurso personalizado.
Vaya a Información general y seleccione Acción Ping:
Vaya a Usuarios y seleccione Agregar. Proporcione entradas para crear un recurso y envíe el formulario:
Vaya a Usuarios y seleccione un recurso usuarios y Acción de contexto personalizado:
Limpieza de recursos
En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no cree que vaya a necesitar estos recursos en el futuro, puede eliminarlos mediante la eliminación del grupo de recursos.
En el menú de Azure Portal o la página Inicio, seleccione Grupos de recursos. En la página Grupos de recursos, seleccione myResourceGroup.
En la página myResourceGroup, asegúrese de que los recursos enumerados sean los que desea eliminar.
Seleccione Eliminar grupo de recursos, escriba myResourceGroup en el cuadro de texto para confirmar y, después, seleccione Eliminar.
¿Busca ayuda?
Si tiene preguntas o necesita una respuesta sobre Azure Managed Applications, puede publicar una pregunta en Stack Overflow con la etiqueta azure-managed-app o en Microsoft Q&A con la etiqueta azure-managed-application.
Obtiene información sobre cómo trabajar con el portal web y la línea de comandos de Azure para crear, administrar y controlar los recursosbasados en la nube.
Cree soluciones de un extremo a otro en Microsoft Azure para crear Azure Functions, implementar y administrar aplicaciones web, desarrollar soluciones que usen Azure Storage, etc.
Describe cómo implementar la aplicación administrada de un catálogo de servicios para una aplicación administrada de Azure mediante Azure PowerShell, la CLI de Azure o Azure Portal.
Describe cómo crear y publicar una aplicación administrada de Azure en el catálogo de servicios mediante Azure PowerShell, la CLI de Azure o el Azure Portal.