Tworzenie i publikowanie niestandardowego elementu Azure Stack Hub Marketplace

Każdy element opublikowany w witrynie Azure Stack Hub Marketplace używa formatu pakietu galerii platformy Azure (azpkg). Narzędzie Azure Gallery Packager umożliwia utworzenie niestandardowego pakietu z galerii platformy Azure, który można przekazać do witryny Azure Stack Hub Marketplace, który następnie może zostać pobrany przez użytkowników. W procesie wdrażania jest używany Azure Resource Manager szablonu.

Elementy witryny Marketplace

Przykłady w tym artykule pokazują, jak utworzyć pojedynczą ofertę witryny Marketplace maszyny wirtualnej typu Windows Linux.

Wymagania wstępne

Przed utworzeniem elementu witryny Marketplace maszyny wirtualnej wykonaj następujące czynności:

  1. Upload niestandardowy obraz maszyny wirtualnej do portalu Azure Stack Hub, zgodnie z instrukcjami w tece Dodawanieobrazu maszyny wirtualnej do Azure Stack Hub .
  2. Postępuj zgodnie z instrukcjami w tym artykule, aby spakować obraz (utworzyć plik azpkg) i przekazać go do witryny Azure Stack Hub Marketplace.

Tworzenie elementu witryny Marketplace

Aby utworzyć niestandardowy element witryny Marketplace, wykonaj następujące czynności:

  1. Pobierz narzędzie Azure Gallery Packager narzędziu:

    Gallery packager

  2. Narzędzie zawiera przykładowe pakiety, które są w formacie azpkg i muszą zostać wyodrębnione jako pierwsze. Możesz zmienić nazwy rozszerzeń plików z ".azpkg" na ".zip" lub użyć wybranego narzędzia archiwum:

    Pakiety przykładów

  3. Po wyodrębnienia plik .zip zawiera dostępne szablony szablonów Windows Azure Resource Manager Linux lub Linux. Możesz ponownie użyć wstępnie Resource Manager szablonów i zmodyfikować odpowiednie parametry przy użyciu szczegółów produktu, które będą wyświetlane w Azure Stack Hub portal. Możesz też ponownie użyć pliku azpkg i pominąć poniższe kroki, aby dostosować własny pakiet galerii.

  4. Utwórz szablon Azure Resource Manager lub użyj naszych przykładowych szablonów dla Windows/Linux. Te przykładowe szablony są dostępne w narzędziu do tworzenia pakietów .zip pobranym w kroku 1. Możesz użyć szablonu i zmienić pola tekstowe lub pobrać wstępnie skonfigurowany szablon ze strony GitHub. Aby uzyskać więcej informacji na Azure Resource Manager szablonów, zobacz Azure Resource Manager szablonów.

  5. Pakiet Galerii powinien zawierać następującą strukturę:

    Zrzut ekranu przedstawiający strukturę pakietu galerii

  6. Zastąp następujące wyróżnione wartości (te liczbami) w szablonieManifest.jswartością podaną podczas przekazywania obrazu niestandardowego.

    Uwaga

    Nigdy nie koduj żadnych wpisów tajnych, takich jak klucze produktów, hasło ani informacje umożliwiające identyfikację klienta, w Azure Resource Manager szablonu. Pliki JSON szablonu są dostępne bez konieczności uwierzytelniania po opublikowaniu w galerii. Przechowuj wszystkie wpisy tajne w Key Vault i wywołaj je z poziomu szablonu.

    Zaleca się, aby przed opublikowaniem własnego szablonu niestandardowego spróbować opublikować przykład w stanie, w którym jest, i upewnić się, że działa on w Twoim środowisku. Po sprawdzeniu, czy ten krok działa, usuń przykład z galerii i wprowadzaj zmiany iteracyjne, aż wynik będzie zadowalający.

    Poniższy szablon jest przykładową Manifest.jspliku:

    {
       "$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"
             }]
        }]
    }
    

    Na poniższej liście wyjaśniono poprzednie wartości numerowane w przykładzie szablonu:

    • (1) — nazwa oferty.
    • (2) — nazwa wydawcy bez spacji.
    • (3) — wersja szablonu bez spacji.
    • (4) — nazwa, która jest widziana przez klientów.
    • (5) — nazwa wydawcy wyświetlana klientom.
    • (6) — nazwa prawna wydawcy.
    • (7) — ścieżka i nazwa każdej ikony.
  7. W przypadku wszystkich pól odwołującego się do pliku ms-resource należy zmienić odpowiednie wartości wewnątrz ciągów/resources.js pliku:

    {
    "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. Struktura plików szablonów wdrożenia wygląda następująco:

    Szablony wdrażania

    Zastąp wartości obrazu w plikucreateuidefinition.js wartością podaną podczas przekazywania obrazu niestandardowego.

  9. Aby upewnić się, że zasób można pomyślnie wdrożyć, przetestuj szablon przy użyciu Azure Stack Hub API.

  10. Jeśli szablon opiera się na obrazie maszyny wirtualnej, postępuj zgodnie z instrukcjami, aby dodać obraz maszyny wirtualnej do Azure Stack Hub.

  11. Zapisz szablon Azure Resource Manager w folderze /Contoso.TodoList/DeploymentTemplates/.

  12. Wybierz ikony i tekst dla elementu witryny Marketplace. Dodaj ikony do folderu Icons i dodaj tekst do pliku zasobów w folderze Strings. Użyj małej, średniej, dużej i szerokiej konwencji nazewnictwa dla ikon. Aby uzyskać szczegółowy opis tych rozmiarów, zobacz informacje o interfejsie użytkownika elementu witryny Marketplace.

    Uwaga

    Wszystkie cztery rozmiary ikon (małe, średnie, duże, szerokie) są wymagane do poprawnego tworzenia elementu witryny Marketplace.

  13. Aby uzyskać informacje o kolejnych edycjach Manifest.jsw witrynie, zobacz Reference: Marketplace item manifest.json.

  14. Po zakończeniu modyfikowania plików przekonwertuj je na plik azpkg. Konwersję wykonuje się przy użyciu narzędziaAzureGallery.exe i pobranego wcześniej przykładowego pakietu galerii. Uruchom następujące polecenie:

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

    Uwaga

    Ścieżka wyjściowa może być dowolną ścieżką i nie musi być w obszarze dysku C:. Jednak musi istnieć pełna ścieżka do manifest.jspliku i pakietu wyjściowego. Jeśli na przykład ścieżka wyjściowa to C:\<path>\galleryPackageName.azpkg , folder C:\<path> musi istnieć.

Publikowanie elementu witryny Marketplace

  1. Użyj programu PowerShell lub Eksplorator usługi Azure Storage, aby przekazać element witryny Marketplace (azpkg) do usługi Azure Blob Storage. Możesz przekazać dane do lokalnego magazynu Azure Stack Hub lub przekazać do usługi Azure Storage, która jest tymczasową lokalizacją pakietu. Upewnij się, że obiekt blob jest dostępny publicznie.

  2. Aby zaimportować pakiet galerii do usługi Azure Stack Hub, pierwszym krokiem jest zdalne połączenie (RDP) z maszyną wirtualną klienta w celu skopiowania właśnie utworzonego pliku do Azure Stack Hub.

  3. Dodaj kontekst:

    $ArmEndpoint = "https://adminmanagement.local.azurestack.external"
    Add-AzEnvironment -Name "AzureStackAdmin" -ArmEndpoint $ArmEndpoint
    Connect-AzAccount -EnvironmentName "AzureStackAdmin"
    
  4. Uruchom następujący skrypt, aby zaimportować zasób do galerii:

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

    Jeśli wystąpi błąd podczas uruchamiania modułu Add-AzsGalleryItem, mogą być zainstalowane dwie gallery.admin wersje modułu. Usuń wszystkie wersje modułu i zainstaluj najnowszą wersję. Aby uzyskać instrukcje dotyczące odinstalowywania modułów programu PowerShell, zobacz Uninstall existing versions of the Azure Stack Hub PowerShell modules (Odinstalowywanie istniejących wersji modułów programu PowerShell).

  5. Sprawdź, czy masz prawidłowe konto Storage, które jest dostępne do przechowywania elementu. Wartość można uzyskać GalleryItemURI z portalu Azure Stack Hub administratora. Wybierz Storage account -> Blob Properties -> URL z rozszerzeniem .azpkg. Konto magazynu jest tylko do użytku tymczasowego w celu opublikowania na platformie handlowej.

    Po ukończeniu pakietu galerii i przesłaniu go przy użyciu narzędzia Add-AzsGalleryItem niestandardowa maszyna wirtualna powinna być teraz wyświetlana w witrynie Marketplace oraz w widoku Tworzenie zasobu. Należy pamiętać, że niestandardowy pakiet galerii nie jest widoczny w zarządzaniu platformą Marketplace.

    Przekazany niestandardowy element witryny Marketplace

  6. Po pomyślnym opublikowaniu elementu w witrynie Marketplace możesz usunąć zawartość z konta magazynu.

    Wszystkie domyślne artefakty galerii i niestandardowe artefakty galerii są teraz dostępne bez uwierzytelniania pod następującymi adresami URL:

    • https://galleryartifacts.adminhosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
    • https://galleryartifacts.hosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
  7. Element witryny Marketplace można usunąć za pomocą polecenia cmdlet Remove-AzGalleryItem. Na przykład:

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

Uwaga

Po usunięciu elementu w interfejsie użytkownika witryny Marketplace może być wyświetlany błąd. Aby naprawić ten błąd, Ustawienia w portalu. Następnie wybierz pozycję Odrzuć modyfikacje w obszarze Dostosowywanie portalu.

Odwołanie: Pozycja witryny Marketplace manifest.jswł.

Informacje o tożsamości

Nazwa Wymagany Typ Ograniczenia Opis
Nazwa X Ciąg [A-Za-z0-9]+
Publisher X Ciąg [A-Za-z0-9]+
Wersja X Ciąg SemVer v2

Metadane

Nazwa Wymagany Typ Ograniczenia Opis
Nazwa wyświetlana X Ciąg Zalecenie: 80 znaków Nazwa elementu w portalu może nie być wyświetlana poprawnie, jeśli jest dłuższa niż 80 znaków.
PublisherDisplayName X Ciąg Zalecenie: 30 znaków Jeśli nazwa wydawcy jest dłuższa niż 30 znaków, w portalu nazwa wydawcy może nie być wyświetlana poprawnie.
PublisherLegalName X Ciąg Maksymalnie 256 znaków
Podsumowanie X Ciąg Od 60 do 100 znaków
LongSummary X Ciąg Od 140 do 256 znaków Nie ma jeszcze zastosowania w Azure Stack Hub.
Opis X HTML Od 500 do 5000 znaków

Obrazy

W witrynie Marketplace są używane następujące ikony:

Nazwa Width Height Uwagi
Szeroki 255 pikseli 115 pikseli Zawsze wymagane
Duży 115 pikseli 115 pikseli Zawsze wymagane
Śred. 90 pikseli 90 pikseli Zawsze wymagane
Mały 40 pikseli 40 pikseli Zawsze wymagane
Zrzut ekranu 533 px 324 px Opcjonalne

Kategorie

Każdy element witryny Marketplace powinien być oznaczony kategorią, która identyfikuje miejsce, w którym element pojawia się w interfejsie użytkownika portalu. Możesz wybrać jedną z istniejących kategorii wprogramie Azure Stack Hub (Obliczenia, Dane + Storage i tak dalej) lub wybrać nową.

Każdy element witryny Marketplace może zawierać różne linki do dodatkowej zawartości. Linki są określane jako lista nazw i URI:

Nazwa Wymagany Typ Ograniczenia Opis
Nazwa wyświetlana X Ciąg Maksymalnie 64 znaki.
Identyfikator uri X URI

Dodatkowe właściwości

Oprócz powyższych metadanych autorzy witryny Marketplace mogą podać dane pary klucz/wartość niestandardowe w następującej postaci:

Nazwa Wymagany Typ Ograniczenia Opis
Nazwa wyświetlana X Ciąg Maksymalnie 25 znaków.
Wartość X Ciąg Maksymalnie 30 znaków.

Sanityzacja KODU HTML

W przypadku dowolnego pola, które zezwala na kod HTML, dozwolone są następujące elementy i atrybuty:

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

Odwołanie: interfejs użytkownika elementu witryny Marketplace

Ikony i tekst elementów witryny Marketplace widoczne w portalu Azure Stack Hub są następujące.

Blok tworzenia

Blok Tworzenie — tworzenie Azure Stack Hub Marketplace

Blok szczegółów elementu witryny Marketplace

Azure Stack Hub szczegóły elementu witryny Marketplace

Następne kroki