Compartir a través de


Creación y publicación de un elemento personalizado de Marketplace de Azure Stack Hub

Cada elemento publicado en Marketplace de Azure Stack Hub usa el formato de paquete de galería de Azure (.azpkg). La herramienta Azure Gallery Packager permite crear un paquete de galería de Azure personalizado que puede cargar en Marketplace para Azure Stack Hub y que los usuarios pueden descargar. El proceso de implementación utiliza una plantilla de Azure Resource Manager.

Elementos de Marketplace

En los ejemplos de este artículo se muestra cómo crear una única oferta de Marketplace de máquina virtual, de tipo Windows o Linux.

Prerrequisitos

Antes de crear el elemento marketplace de la máquina virtual, haga lo siguiente:

  1. Cargue la imagen de máquina virtual personalizada en el portal de Azure Stack Hub siguiendo las instrucciones de Incorporación de una imagen de máquina virtual a Azure Stack Hub.
  2. Siga las instrucciones de este artículo para empaquetar la imagen (crear un archivo .azpkg) y cargarla en Marketplace de Azure Stack Hub.

Creación de un elemento para Marketplace

Para crear un elemento de Marketplace personalizado, haga lo siguiente:

  1. Descargue la herramienta Azure Gallery Packager:

    Empaquetador de galería

  2. La herramienta incluye paquetes de ejemplo que están en el formato .azpkg y se deben extraer primero. Puede cambiar el nombre de las extensiones de archivo de ".azpkg" a ".zip" o usar una herramienta de archivador de su elección:

    Paquetes de ejemplos

  3. Una vez extraído, el archivo .zip contiene las plantillas de Linux o Windows Azure Resource Manager que están disponibles. Puede reutilizar las plantillas de Resource Manager predefinidas y modificar los parámetros respectivos con los detalles del producto del elemento que se mostrará en el portal de Azure Stack Hub. O bien, puede reutilizar el archivo .azpkg y omitir los pasos siguientes para personalizar su propio paquete de galería.

  4. Cree una plantilla de Azure Resource Manager o use nuestras plantillas de ejemplo para Windows o Linux. Estas plantillas de ejemplo se proporcionan en el archivo .zip de la Packager que descargó en el paso 1. Puede usar la plantilla y cambiar los campos de texto, o bien descargar una plantilla preconfigurada desde GitHub. Para más información sobre las plantillas de Azure Resource Manager, consulte Plantillas de Azure Resource Manager.

  5. El paquete de galería debe contener la siguiente estructura:

    Captura de pantalla de la estructura del paquete de la galería

  6. Reemplace los siguientes valores resaltados (aquellos con números) en la plantilla deManifest.json por el valor que proporcionó al cargar la imagen personalizada.

    Nota:

    Nunca codifique de forma rígida ningún secreto, como claves de producto, contraseña o información de identificación del cliente en la plantilla de Azure Resource Manager. Los archivos JSON de plantilla son accesibles sin necesidad de autenticación una vez publicados en la galería. Almacene todos los secretos en Key Vault y llámelos desde dentro de la plantilla.

    Se recomienda que antes de publicar su propia plantilla personalizada, intente publicar el ejemplo tal cual y se asegure de que funciona en su entorno. Una vez que haya verificado que este paso funciona, elimine el ejemplo de la galería y realice cambios iterativos hasta que esté satisfecho con el resultado.

    La plantilla siguiente es un ejemplo del archivo Manifest.json:

    {
       "$schema": "https://gallery.azure.com/schemas/2015-10-01/manifest.json#",
       "name": "Test", (1)
       "publisher": "<Publisher name>", (2)
       "version": "<Version number>", (3)
       "displayName": "ms-resource:displayName", (4)
       "publisherDisplayName": "ms-resource:publisherDisplayName", (5)
       "publisherLegalName": "ms-resource:publisherDisplayName", (6)
       "summary": "ms-resource:summary",
       "longSummary": "ms-resource:longSummary",
       "description": "ms-resource:description",
       "longDescription": "ms-resource:description",
       "links": [
        { "displayName": "ms-resource:documentationLink", "uri": "http://go.microsoft.com/fwlink/?LinkId=532898" }
        ],
       "artifacts": [
          {
             "isDefault": true
          }
       ],
       "images": [{
          "context": "ibiza",
          "items": [{
             "id": "small",
             "path": "icons\\Small.png", (7)
             "type": "icon"
             },
             {
                "id": "medium",
                "path": "icons\\Medium.png",
                "type": "icon"
             },
             {
                "id": "large",
                "path": "icons\\Large.png",
                "type": "icon"
             },
             {
                "id": "wide",
                "path": "icons\\Wide.png",
                "type": "icon"
             }]
        }]
    }
    

    En la lista siguiente se explican los valores numerados anteriores de la plantilla de ejemplo:

    • (1) - Nombre de la oferta.
    • (2) - El nombre del publicador, sin espacio.
    • (3) - La versión de tu plantilla, sin espacios.
    • (4) - El nombre que ven los clientes.
    • (5) - El nombre del publicador que ven los clientes.
    • (6) - El nombre legal del publicador.
    • (7) - Ruta de acceso y nombre de cada icono.
  7. Para todos los campos que hacen referencia a ms-resource, tiene que cambiar los valores correspondientes en el archivo strings/resources.json:

    {
    "displayName": "<OfferName.PublisherName.Version>",
    "publisherDisplayName": "<Publisher name>",
    "summary": "Create a simple VM",
    "longSummary": "Create a simple VM and use it",
    "description": "<p>This is just a sample of the type of description you could create for your gallery item!</p><p>This is a second paragraph.</p>",
    "documentationLink": "Documentation"
    }
    
  8. La estructura de archivos de plantillas de implementación aparece de la siguiente manera:

    Plantillas de implementación

    Reemplace los valores de la imagen en el archivo createuidefinition.json por el valor que proporcionó al cargar la imagen personalizada.

  9. Pruebe la plantilla con las API de Azure Stack Hub para asegurarse de que el recurso puede implementarse correctamente.

  10. Si la plantilla se basa en una imagen de máquina virtual (VM), siga las instrucciones para agregar una imagen de máquina virtual a Azure Stack Hub.

  11. Guarde la plantilla de Azure Resource Manager en la carpeta /Contoso.TodoList/DeploymentTemplates/ .

  12. Elija los iconos y el texto para el elemento de Marketplace. Agregue iconos a la carpeta Iconos y agregue texto al archivo de recursos en la carpeta Cadenas . Use la convención de nomenclatura pequeña, mediana, grande y ancha para los iconos. Consulte la referencia de la interfaz de usuario del elemento de Marketplace para obtener una descripción detallada de estos tamaños.

    Nota:

    Los cuatro tamaños de icono (pequeños, medianos, grandes y anchos) son necesarios para compilar correctamente el elemento de Marketplace.

  13. Para cualquier modificación adicional de Manifest.json, consulte la sección Referencia: manifest.json del elemento de Marketplace.

  14. Cuando termine de modificar los archivos, conviértalos en archivos .azpkg. Para realizar la conversión, use la herramienta AzureGallery.exe y el paquete de galería de ejemplo que descargó anteriormente. Ejecute el siguiente comando:

    .\AzureStackHubGallery.exe package -m c:\<path>\<gallery package name>\manifest.json -o c:\Temp
    

    Nota:

    La ruta de acceso de salida puede ser cualquier ruta de acceso que elija y no tiene que estar en la unidad C:. Sin embargo, debe existir la ruta de acceso completa al archivo manifest.json y al paquete de salida. Por ejemplo, si la ruta de acceso de salida es C:\<path>\galleryPackageName.azpkg, la carpeta C:\<path> debe existir.

Publicación de un elemento de Marketplace

  1. Use PowerShell o el Explorador de Azure Storage para cargar el elemento de Marketplace (.azpkg) a Azure Blob Storage. Puede realizar la carga en el almacenamiento de Azure Stack Hub local o en Azure Storage, una ubicación temporal del paquete. Asegúrese de que el blob es accesible públicamente.

  2. Para importar el paquete de la galería en Azure Stack Hub, el primer paso es conectarse de forma remota (RDP) a la máquina virtual cliente, con el fin de copiar el archivo que acaba de crear en Azure Stack Hub.

  3. Agregue un contexto:

    $ArmEndpoint = "https://adminmanagement.local.azurestack.external"
    Add-AzEnvironment -Name "AzureStackAdmin" -ArmEndpoint $ArmEndpoint
    Connect-AzAccount -EnvironmentName "AzureStackAdmin"
    
  4. Ejecute el siguiente script para importar el recurso en la galería:

    Add-AzsGalleryItem -GalleryItemUri `
    https://sample.blob.core.windows.net/<temporary blob name>/<offerName.publisherName.version>.azpkg -Verbose
    

    Si se produce un error al ejecutar Add-AzsGalleryItem, es posible que tenga instaladas dos versiones del gallery.admin módulo. Quite todas las versiones del módulo e instale la versión más reciente. Para ver los pasos para desinstalar los módulos de PowerShell, consulte Desinstalación de versiones existentes de los módulos de PowerShell de Azure Stack Hub.

  5. Compruebe que tiene una cuenta de almacenamiento válida que está disponible para almacenar el elemento. Puede obtener el valor de GalleryItemURI del portal del administrador de Azure Stack Hub. Seleccione Cuenta de almacenamiento:> Propiedades de blob:> dirección URL, con la extensión .azpkg. La cuenta de almacenamiento es solo para uso temporal, para publicar en Marketplace.

    Después de completar el paquete de la galería y cargarlo mediante Add-AzsGalleryItem, la máquina virtual personalizada debería aparecer ahora en Marketplace, así como en la vista Crear un recurso . Tenga en cuenta que el paquete de la galería personalizada no está visible en Administración de Marketplace.

    Elemento de Marketplace personalizado cargado

  6. Una vez que el elemento se ha publicado correctamente en Marketplace, puede eliminar el contenido de la cuenta de almacenamiento.

    Ahora se puede acceder a todos los artefactos de la galería predeterminados y personalizados sin autenticación mediante las direcciones URL siguientes:

    • https://galleryartifacts.adminhosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
    • https://galleryartifacts.hosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
  7. Puede quitar un elemento de Marketplace mediante el cmdlet Remove-AzGalleryItem. Por ejemplo:

    Remove-AzsGalleryItem -Name <Gallery package name> -Verbose
    

Nota:

La interfaz de usuario de Marketplace puede mostrar un error después de quitar un elemento. Para corregir el error, haga clic en Configuración en el portal. A continuación, seleccione Descartar modificaciones en Personalización del portal.

Referencia: Artículo manifest.json de Marketplace

Información de identidad

Nombre Obligatorio Tipo Restricciones Descripción
Nombre X Cuerda [A-Za-z0-9]+
Publicador X Cuerda [A-Za-z0-9]+
Versión X Cuerda SemVer v2

Metadatos

Nombre Obligatorio Tipo Restricciones Descripción
DisplayName X Cuerda Recomendación de 80 caracteres Es posible que el portal no muestre el nombre del elemento correctamente si tiene más de 80 caracteres.
PublisherDisplayName X Cuerda Recomendación de 30 caracteres Es posible que el portal no muestre el nombre del publicador correctamente si tiene más de 30 caracteres.
PublisherLegalName X Cuerda Máximo de 256 caracteres
Resumen X Cuerda De 60 a 100 caracteres
Resumen extenso X Cuerda De 140 a 256 caracteres Todavía no es aplicable en Azure Stack Hub.
Descripción X HTML De 500 a 5000 caracteres

Imágenes

Marketplace usa los siguientes iconos:

Nombre Ancho Altura Notas
Ancho 255 px 115 px Siempre necesario
grande 115 px 115 px Siempre necesario
Media 90 px 90 px Siempre necesario
Pequeño 40 px 40 px Siempre necesario
Captura de pantalla 533 px 324 px Opcional

Categorías

Cada elemento de Marketplace debe etiquetarse con una categoría que identifique dónde aparece el elemento en la interfaz de usuario del portal. Puede elegir una de las categorías existentes en Azure Stack Hub (Proceso, Datos y almacenamiento, etc.) o elegir una nueva.

Cada elemento de Marketplace puede incluir varios vínculos a contenido adicional. Los vínculos se especifican como una lista de nombres y URI:

Nombre Obligatorio Tipo Restricciones Descripción
DisplayName X Cuerda Máximo de 64 caracteres.
Identificador URI X URI

Propiedades adicionales

Además de los metadatos anteriores, los autores de Marketplace pueden proporcionar datos de pares clave-valor personalizados de la siguiente forma:

Nombre Obligatorio Tipo Restricciones Descripción
DisplayName X Cuerda Máximo de 25 caracteres.
Importancia X Cuerda Máximo de 30 caracteres.

Saneamiento de HTML

Para cualquier campo que permita HTML, se permiten los siguientes elementos y atributos:

h1, h2, h3, h4, h5, p, ol, ul, li, a[target|href], br, strong, em, b, i

Referencia: UI del elemento de Marketplace

Los iconos y el texto de los elementos de Marketplace, como se muestra en el portal de Azure Stack Hub, son los siguientes.

Hoja Creación

Hoja Creación: elementos de Marketplace de Azure Stack Hub

Hoja de detalles de elemento de Marketplace

Hoja de detalles de elemento de Marketplace de Azure Stack Hub

Pasos siguientes