Özel bir Azure Stack Hub Market öğesi oluşturma ve yayımlama

Azure Stack Hub Market'te yayımlanan her öğe Azure Galeri Paketi (.azpkg) biçimini kullanır. Azure Galeri Paketleyicisi aracı, Azure Stack Hub Marketi'ne yükleyebileceğiniz ve ardından kullanıcılar tarafından indirilebilen özel bir Azure Galeri paketi oluşturmanıza olanak tanır. Dağıtım işlemi bir Azure Resource Manager şablonu kullanır.

Market öğeleri

Bu makaledeki örneklerde, Windows veya Linux türünde tek bir VM Market teklifinin nasıl oluşturulacağı gösterilmektedir.

Önkoşullar

VM market öğesini oluşturmadan önce aşağıdakileri yapın:

  1. Azure Stack Hub'a VM görüntüsü ekleme başlığındaki yönergeleri izleyerek özel VM görüntüsünü Azure Stack Hub portalına Upload.
  2. Görüntüyü paketlemek (.azpkg oluşturmak) ve Azure Stack Hub Marketi'ne yüklemek için bu makaledeki yönergeleri izleyin.

Market öğesi oluşturma

Özel market öğesi oluşturmak için aşağıdakileri yapın:

  1. Azure Gallery Packager aracını indirin:

    Gallery packager

  2. Araç, .azpkg biçimindeki örnek paketleri içerir ve önce ayıklanması gerekir. Dosya uzantılarını ".azpkg" yerine ".zip" olarak yeniden adlandırabilir veya tercih ettiğiniz bir arşivleyici aracını kullanabilirsiniz:

    Samples packages

  3. ayıklandıktan sonra .zip dosyası, kullanılabilir Linux veya Windows Azure Resource Manager şablonlarını içerir. Önceden hazırlanmış Resource Manager şablonlarını yeniden kullanabilir ve Ilgili parametreleri Azure Stack Hub portalınızda göstereceğiniz öğenin ürün ayrıntılarıyla değiştirebilirsiniz. Alternatif olarak, .azpkg dosyasını yeniden kullanabilir ve kendi galeri paketinizi özelleştirmek için aşağıdaki adımları atlayabilirsiniz.

  4. Azure Resource Manager şablonu oluşturun veya Windows/Linux için örnek şablonlarımızı kullanın. Bu örnek şablonlar, 1. adımda indirdiğiniz paketleyici aracı .zip dosyasında sağlanır. Şablonu kullanabilir ve metin alanlarını değiştirebilir veya GitHub önceden yapılandırılmış bir şablonu indirebilirsiniz. Azure Resource Manager şablonları hakkında daha fazla bilgi için bkz. Azure Resource Manager şablonları.

  5. Galeri paketi aşağıdaki yapıyı içermelidir:

    Screenshot of the Gallery package structure

  6. Manifest.json şablonundaki aşağıdaki vurgulanmış değerleri (sayı içeren değerler) özel görüntünüzü karşıya yüklerken sağladığınız değerle değiştirin.

    Not

    Azure Resource Manager şablonunda ürün anahtarları, parola veya müşteri tarafından tanımlanabilir bilgiler gibi gizli dizileri asla sabit kodlamayın. Şablon JSON dosyalarına galeride yayımlandıktan sonra kimlik doğrulaması gerekmeden erişilebilir. Tüm gizli dizileri Key Vault'de depolayın ve bunları şablon içinden çağırın.

    Kendi özel şablonunuzu yayımlamadan önce örneği olduğu gibi yayımlamayı denemeniz ve ortamınızda çalıştığından emin olmanız önerilir. Bu adımın çalıştığını doğruladıktan sonra örneği galeriden silin ve sonuçtan memnun kalana kadar yinelemeli değişiklikler yapın.

    Aşağıdaki şablon, Manifest.json dosyasının bir örneğidir:

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

    Aşağıdaki listede, örnek şablondaki önceki numaralandırılmış değerler açıklanmaktadır:

    • (1) - Teklifin adı.
    • (2) - Boşluk bırakmadan yayımcının adı.
    • (3) - Şablonunuzun boş alan içermeyen sürümü.
    • (4) - Müşterilerin gördüğü ad.
    • (5) - Müşterilerin gördüğü yayımcı adı.
    • (6) - Yayımcının yasal adı.
    • (7) - Her simgenin yolu ve adı.
  7. ms-resource'a başvuran tüm alanlar için strings/resources.json dosyasının içindeki uygun değerleri değiştirmeniz gerekir:

    {
    "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. Dağıtım şablonları dosya yapısı aşağıdaki gibi görünür:

    Deployment templates

    createuidefinition.json dosyasındaki görüntünün değerlerini özel görüntünüzü karşıya yüklerken sağladığınız değerle değiştirin.

  9. Kaynağın başarıyla dağıtılabilmesini sağlamak için şablonu Azure Stack Hub API'leriyle test edin.

  10. Şablonunuz bir sanal makine (VM) görüntüsü kullanıyorsa , Azure Stack Hub'a VM görüntüsü eklemek için yönergeleri izleyin.

  11. Azure Resource Manager şablonunuzu /Contoso.TodoList/DeploymentTemplates/ klasörüne kaydedin.

  12. Market öğenizin simgelerini ve metnini seçin. Simgeler klasörüne simgeler ekleyin ve Dizeler klasöründeki kaynaklar dosyasına metin ekleyin. Simgeler için küçük, orta, büyük ve geniş adlandırma kuralını kullanın. Bu boyutların ayrıntılı açıklaması için Market öğesi kullanıcı arabirimi başvurusuna bakın.

    Not

    Market öğesini doğru oluşturmak için dört simge boyutunun tümü (küçük, orta, büyük, geniş) gereklidir.

  13. Manifest.json dosyasında yapılan diğer düzenlemeler için bkz. Başvuru: Market öğesi manifest.json.

  14. Dosyalarınızı değiştirmeyi bitirdiğinizde, bunu bir .azpkg dosyasına dönüştürün. Dönüştürme işlemini AzureGallery.exe aracını ve daha önce indirdiğiniz örnek galeri paketini kullanarak gerçekleştirirsiniz. Şu komutu çalıştırın:

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

    Not

    Çıkış yolu, seçtiğiniz herhangi bir yol olabilir ve C: sürücüsünün altında olması gerekmez. Ancak, hem manifest.json dosyasının hem de çıkış paketinin tam yolu mevcut olmalıdır. Örneğin, çıkış yolu ise C:\<path>\galleryPackageName.azpkgklasörün C:\<path> mevcut olması gerekir.

Market öğesi yayımlama

  1. Market öğenizi (.azpkg) Azure Blob depolamaya yüklemek için PowerShell veya Azure Depolama Gezgini kullanın. Yerel Azure Stack Hub depolama alanına yükleyebilir veya paket için geçici bir konum olan Azure Depolama'e yükleyebilirsiniz. Bloba genel olarak erişildiğinden emin olun.

  2. Galeri paketini Azure Stack Hub'a aktarmak için ilk adım, az önce oluşturduğunuz dosyayı Azure Stack Hub'ınıza kopyalamak için istemci VM'ye uzaktan bağlanmaktır (RDP).

  3. Bağlam ekleme:

    $ArmEndpoint = "https://adminmanagement.local.azurestack.external"
    Add-AzEnvironment -Name "AzureStackAdmin" -ArmEndpoint $ArmEndpoint
    Connect-AzAccount -EnvironmentName "AzureStackAdmin"
    
  4. Kaynağı galerinize aktarmak için aşağıdaki betiği çalıştırın:

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

    Add-AzsGalleryItem'ı çalıştırırken bir hatayla karşılaşırsanız, modülün gallery.admin iki sürümü yüklü olabilir. Modülün tüm sürümlerini kaldırın ve en son sürümü yükleyin. PowerShell modüllerinizi kaldırma adımları için bkz. Azure Stack Hub PowerShell modüllerinin mevcut sürümlerini kaldırma.

  5. Öğenizi depolamak için kullanılabilecek geçerli bir Depolama hesabınız olduğunu doğrulayın. Değeri Azure Stack Hub yönetici portalından alabilirsiniz GalleryItemURI . .azpkg uzantılı Depolama hesabı -> Blob Özellikleri -> URL'yi seçin. Depolama hesabı, markette yayımlamak için yalnızca geçici kullanım içindir.

    Galeri paketinizi tamamladıktan ve Add-AzsGalleryItem kullanarak karşıya yükledikten sonra, özel VM'nizin artık Market'te ve Kaynak oluştur görünümünde görünmesi gerekir. Özel galeri paketinin Market Yönetimi'nde görünmediğini unutmayın.

    Custom marketplace item uploaded

  6. Öğeniz markette başarıyla yayımlandıktan sonra içeriği depolama hesabından silebilirsiniz.

    Tüm varsayılan galeri yapıtlarına ve özel galeri yapıtlarınıza artık aşağıdaki URL'ler altında kimlik doğrulaması olmadan erişilebilir:

    • https://galleryartifacts.adminhosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
    • https://galleryartifacts.hosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
  7. Remove-AzGalleryItem cmdlet'ini kullanarak market öğesini kaldırabilirsiniz. Örneğin:

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

Not

Bir öğeyi kaldırdıktan sonra Market kullanıcı arabirimi bir hata gösterebilir. Hatayı düzeltmek için portalda Ayarlar tıklayın. Ardından Portal özelleştirmesi altında Değişiklikleri at'ı seçin.

Başvuru: Market öğesi manifest.json

Kimlik bilgileri

Name Gerekli Tür Kısıtlamalar Açıklama
Ad X Dize [A-Za-z0-9]+
Publisher X Dize [A-Za-z0-9]+
Sürüm X Dize SemVer v2

Meta veri

Name Gerekli Tür Kısıtlamalar Description
DisplayName X Dize 80 karakter önerisi 80 karakterden uzunsa portal öğe adınızı doğru görüntüleyemeyebilir.
PublisherDisplayName X Dize 30 karakter önerisi Portal, 30 karakterden uzunsa yayımcı adınızı doğru görüntüleyemeyebilir.
PublisherLegalName X Dize En fazla 256 karakter
Özet X Dize 60 - 100 karakter
LongSummary X Dize 140 - 256 karakter Azure Stack Hub'da henüz geçerli değildir.
Description X HTML 500 - 5.000 karakter

Görüntüler

Market aşağıdaki simgeleri kullanır:

Name Width Height Notlar
Geniş 255 piksel 115 piksel Her zaman gerekli
Büyük 115 piksel 115 piksel Her zaman gerekli
Orta 90 piksel 90 piksel Her zaman gerekli
Küçük 40 piksel 40 piksel Her zaman gerekli
Ekran görüntüsü 533 piksel 324 piksel İsteğe Bağlı

Kategoriler

Her Market öğesi, öğenin portal kullanıcı arabiriminde nerede göründüğünü tanımlayan bir kategoriyle etiketlenmelidir. Azure Stack Hub'da mevcut kategorilerden birini (İşlem, Veri + Depolama vb.) seçebilir veya yenisini seçebilirsiniz.

Her Market öğesi ek içeriğe çeşitli bağlantılar içerebilir. Bağlantılar adlar ve URI'ler listesi olarak belirtilir:

Name Gerekli Tür Kısıtlamalar Description
DisplayName X Dize En fazla 64 karakter.
Urı X URI

Ek özellikler

Market yazarları, önceki meta verilere ek olarak aşağıdaki biçimde özel anahtar/değer çifti verileri sağlayabilir:

Name Gerekli Tür Kısıtlamalar Description
DisplayName X Dize En fazla 25 karakter.
Değer X Dize En fazla 30 karakter.

HTML temizleme

HTML'ye izin veren herhangi bir alan için aşağıdaki öğelere ve özniteliklere izin verilir:

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

Başvuru: Market öğesi kullanıcı arabirimi

Azure Stack Hub portalında görüldüğü gibi Market öğelerine yönelik simgeler ve metinler aşağıdaki gibidir.

Dikey pencere oluşturma

Create blade--Azure Stack Hub Marketplace items

Market öğesi ayrıntıları dikey penceresi

Azure Stack Hub Marketplace item details blade

Sonraki adımlar