Creare e pubblicare un elemento personalizzato del Marketplace dell'hub di Azure Stack

Ogni elemento pubblicato nel marketplace dell'hub di Azure Stack usa il formato di Azure Gallery Packager (con estensione azpkg). Lo strumento Azure Gallery Packager consente di creare un pacchetto della raccolta di Azure personalizzato che è possibile caricare nel marketplace dell'hub di Azure Stack e che può quindi essere scaricato dagli utenti. Il processo di distribuzione usa un modello di Azure Resource Manager.

Elementi del Marketplace

Gli esempi in questo articolo illustrano come creare una singola offerta del Marketplace di macchine virtuali, di tipo Windows o Linux.

Prerequisiti

Prima di creare l'elemento del marketplace delle macchine virtuali, eseguire le operazioni seguenti:

  1. Caricare l'immagine di macchina virtuale personalizzata nel portale dell'hub di Azure Stack seguendo le istruzioni riportate in Aggiungere un'immagine di macchina virtuale all'hub di Azure Stack.
  2. Seguire le istruzioni in questo articolo per creare un pacchetto dell'immagine (creare un file con estensione azpkg) e caricarlo nel Marketplace dell'hub di Azure Stack.

Creare un elemento del Marketplace

Per creare un elemento del marketplace personalizzato, seguire questa procedura:

  1. Scaricare lo strumento Di creazione pacchetti di Azure Gallery:

    Packager raccolta

  2. Lo strumento include pacchetti di esempio nel formato azpkg e devono essere estratti per primi. È possibile rinominare le estensioni di file da ".azpkg" a ".zip" oppure usare uno strumento di archiviazione a scelta:

    Pacchetti di esempi

  3. Una volta estratto, il file di .zip contiene i modelli di Resource Manager Linux o Windows Azure disponibili. È possibile riutilizzare i modelli di Resource Manager predefiniti e modificare i rispettivi parametri con i dettagli del prodotto dell'elemento che verrà visualizzato nel portale dell'hub di Azure Stack. In alternativa, è possibile riutilizzare il file azpkg e ignorare i passaggi seguenti per personalizzare il pacchetto della raccolta.

  4. Creare un modello di Azure Resource Manager o usare i modelli di esempio per Windows/Linux. Questi modelli di esempio vengono forniti nel file ZIP dello strumento Packager scaricato nel passaggio 1. È possibile usare il modello e modificare i campi di testo oppure scaricare un modello preconfigurato da GitHub. Per altre informazioni sui modelli di Azure Resource Manager, vedere Modelli di Azure Resource Manager.

  5. Il pacchetto della raccolta deve contenere la struttura seguente:

    Screenshot della struttura del pacchetto della raccolta

  6. Sostituire i valori evidenziati seguenti (quelli con numeri) nel modello Manifest.json con il valore specificato durante il caricamento dell'immagine personalizzata.

    Nota

    Non impostare mai come hardcoded segreti, ad esempio codici Product Key, password o informazioni personali del cliente nel modello di Azure Resource Manager. I file JSON del modello sono accessibili senza la necessità di autenticazione dopo la pubblicazione nella raccolta. Archiviare tutti i segreti in Key Vault e chiamarli dall'interno del modello.

    Prima di pubblicare un modello personalizzato, è consigliabile provare a pubblicare l'esempio così come è e assicurarsi che funzioni nell'ambiente in uso. Dopo aver verificato il funzionamento di questo passaggio, eliminare l'esempio dalla raccolta e apportare modifiche iterative fino a quando non si è soddisfatti del risultato.

    Il modello seguente è un esempio di file 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"
             }]
        }]
    }
    

    L'elenco seguente illustra i valori numerati precedenti nel modello di esempio:

    • (1) - Nome dell'offerta.
    • (2) - Nome dell'editore, senza spazio.
    • (3) - Versione del modello, senza spazio.
    • (4) - Nome visualizzato dai clienti.
    • (5) - Nome dell'editore visualizzato dai clienti.
    • (6) - Nome legale dell'editore.
    • (7) - Percorso e nome per ogni icona.
  7. Per tutti i campi che fanno riferimento a ms-resource, è necessario modificare i valori appropriati nel file 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 struttura dei file dei modelli di distribuzione viene visualizzata come segue:

    Modelli di distribuzione

    Sostituire i valori per l'immagine nel file createuidefinition.json con il valore specificato durante il caricamento dell'immagine personalizzata.

  9. Per assicurarsi che la risorsa possa essere distribuita correttamente, testare il modello con le API dell'hub di Azure Stack.

  10. Se il modello si basa su un'immagine di macchina virtuale (VM), seguire le istruzioni per aggiungere un'immagine di macchina virtuale all'hub di Azure Stack.

  11. Salvare il modello di Azure Resource Manager nella cartella /Contoso.TodoList/DeploymentTemplates/.

  12. Scegliere le icone e il testo per l'elemento del Marketplace. Aggiungere icone alla cartella Icone e aggiungere testo al file delle risorse nella cartella Strings . Usare la convenzione di denominazione small, medium, large e wide per le icone. Per una descrizione dettagliata di queste dimensioni, vedere le informazioni di riferimento sull'interfaccia utente degli elementi del Marketplace.

    Nota

    Tutte e quattro le dimensioni delle icone (piccole, medie, grandi, larghe) sono necessarie per creare correttamente l'elemento del Marketplace.

  13. Per altre modifiche a Manifest.json, vedere Informazioni di riferimento: marketplace item manifest.json.

  14. Una volta completata la modifica dei file, eseguire la conversione in un file con estensione azpkg. Per eseguire la conversione, usare lo strumento AzureGallery.exe e il pacchetto della raccolta di esempio scaricato in precedenza. Eseguire il comando seguente:

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

    Nota

    Il percorso di output può essere qualsiasi percorso scelto e non deve trovarsi nell'unità C: . Tuttavia, il percorso completo del file manifest.json e del pacchetto di output deve esistere. Ad esempio, se il percorso di output è C:\<path>\galleryPackageName.azpkg, la cartella C:\<path> deve esistere.

Pubblicare un elemento del Marketplace

  1. Usare PowerShell o Azure Storage Explorer per caricare l'elemento del marketplace (con estensione azpkg) in Archiviazione BLOB di Azure. È possibile eseguire il caricamento nella risorsa di archiviazione dell'hub di Azure Stack locale oppure in Archiviazione di Azure, che fornisce una posizione temporanea per il pacchetto. Assicurarsi che il BLOB sia accessibile pubblicamente.

  2. Per importare il pacchetto della raccolta nell'hub di Azure Stack, il primo passaggio consiste nel connettere in remoto (RDP) alla macchina virtuale client, per copiare il file appena creato nell'hub di Azure Stack.

  3. Aggiungere un contesto:

    $ArmEndpoint = "https://adminmanagement.local.azurestack.external"
    Add-AzEnvironment -Name "AzureStackAdmin" -ArmEndpoint $ArmEndpoint
    Connect-AzAccount -EnvironmentName "AzureStackAdmin"
    
  4. Eseguire lo script seguente per importare la risorsa nella raccolta:

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

    Se si verifica un errore durante l'esecuzione di Add-AzsGalleryItem, è possibile che siano installate due versioni del gallery.admin modulo. Rimuovere tutte le versioni del modulo e installare la versione più recente. Per informazioni sulla disinstallazione dei moduli di PowerShell, vedere Disinstallare le versioni esistenti dei moduli di PowerShell dell'hub di Azure Stack.

  5. Verificare di disporre di un account di archiviazione valido disponibile per archiviare l'elemento. È possibile ottenere il valore GalleryItemURI dal portale di amministrazione dell'hub di Azure Stack. Selezionare Account di archiviazione -> Proprietà BLOB -> URL con estensione azpkg. L'account di archiviazione è solo per uso temporaneo per la pubblicazione nel marketplace.

    Dopo aver completato il pacchetto della raccolta e averla caricata usando Add-AzsGalleryItem, la macchina virtuale personalizzata verrà ora visualizzata nel Marketplace e nella visualizzazione Crea una risorsa . Si noti che il pacchetto della raccolta personalizzata non è visibile in Gestione marketplace.

    Elemento del Marketplace personalizzato caricato

  6. Dopo aver pubblicato correttamente l'elemento nel marketplace, è possibile eliminare il contenuto dall'account di archiviazione.

    Tutti gli artefatti della raccolta predefiniti e personalizzati sono ora accessibili senza autenticazione negli URL seguenti:

    • https://galleryartifacts.adminhosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
    • https://galleryartifacts.hosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
  7. È possibile rimuovere un elemento del marketplace usando il cmdlet Remove-AzGalleryItem. Ad esempio:

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

Nota

L'interfaccia utente del Marketplace potrebbe visualizzare un errore dopo la rimozione di un elemento. Per correggere l'errore, fare clic su Impostazioni nel portale. Selezionare quindi Ignora modifiche in Personalizzazione del portale.

Riferimento: Marketplace item manifest.json

Informazioni sull'identità

Nome Obbligatorio Tipo Vincoli Descrizione
Nome X string [A-Za-z0-9] +
Publisher X string [A-Za-z0-9] +
Versione X string SemVer v2

Metadati

Nome Obbligatorio Tipo Vincoli Descrizione
DisplayName X string Raccomandazione di 80 caratteri Il portale potrebbe non visualizzare correttamente il nome dell'elemento se è più di 80 caratteri.
PublisherDisplayName X string Raccomandazione di 30 caratteri Il portale potrebbe non visualizzare correttamente il nome dell'editore se è più di 30 caratteri.
PublisherLegalName X string Massimo 256 caratteri
Riepilogo X string Da 60 a 100 caratteri
LongSummary X string Da 140 a 256 caratteri Non ancora applicabile nell'hub di Azure Stack.
Descrizione X HTML Da 500 a 5.000 caratteri

Immagini

Il Marketplace usa le icone seguenti:

Nome Larghezza Altezza Note
Largo 255 px 115 px Sempre obbligatorio
Grande 115 px 115 px Sempre obbligatorio
Medio 90 px 90 px Sempre obbligatorio
Small 40 px 40 px Sempre obbligatorio
Schermata 533 px 324 px Facoltativo

Categorie

Ogni elemento del Marketplace deve essere contrassegnato con una categoria che identifica dove viene visualizzato l'elemento nell'interfaccia utente del portale. È possibile scegliere una delle categorie esistenti nell'hub di Azure Stack (calcolo, dati e archiviazione e così via) o scegliere una nuova.

Ogni elemento del Marketplace può includere vari collegamenti a contenuti aggiuntivi. I collegamenti vengono specificati come elenco di nomi e URI:

Nome Obbligatorio Tipo Vincoli Descrizione
DisplayName X string Massimo 64 caratteri.
Uri X URI

Proprietà aggiuntive

Oltre ai metadati precedenti, gli autori del Marketplace possono fornire dati di coppia chiave/valore personalizzati nel formato seguente:

Nome Obbligatorio Tipo Vincoli Descrizione
DisplayName X string Massimo 25 caratteri.
Valore X string Massimo 30 caratteri.

Purificazione HTML

Per qualsiasi campo che consenta il codice HTML, sono consentiti gli elementi e gli attributi seguenti:

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

Informazioni di riferimento: Interfaccia utente degli elementi del Marketplace

Le icone e il testo per gli elementi del Marketplace come illustrato nel portale dell'hub di Azure Stack sono i seguenti.

Pannello Crea

Creare elementi del Marketplace dell'hub di Azure Stack

Pannello con i dettagli dell'elemento del Marketplace

Pannello dei dettagli degli elementi del Marketplace dell'hub di Azure Stack

Passaggi successivi