Özel bir Azure Stack hub Market öğesi oluşturma ve yayımlamaCreate and publish a custom Azure Stack Hub Marketplace item

Azure Stack hub Market 'Te yayımlanan her öğe Azure Galeri paketi (. azpkg) biçimini kullanır.Every item published to the Azure Stack Hub Marketplace uses the Azure Gallery Package (.azpkg) format. Azure Gallery Packager Aracı, daha sonra kullanıcılar tarafından indirilebilen Azure Stack hub Market 'e yükleyebileceğiniz özel bir Azure Galeri paketi oluşturmanıza olanak sağlar.The Azure Gallery Packager tool enables you to create a custom Azure Gallery package that you can upload to the Azure Stack Hub Marketplace, which can then be downloaded by users. Dağıtım işlemi bir Azure Resource Manager şablonu kullanır.The deployment process uses an Azure Resource Manager template.

Market öğeleriMarketplace items

Bu makaledeki örneklerde, Windows veya Linux türünde tek bir VM marketi teklifinin nasıl oluşturulacağı gösterilmektedir.The examples in this article show how to create a single VM Marketplace offer, of type Windows or Linux.

ÖnkoşullarPrerequisites

VM marketi öğesini oluşturmadan önce aşağıdakileri yapın:Before creating the VM marketplace item, do the following:

  1. Azure Stack hub 'ıNA VM görüntüsü eklemebölümündeki yönergeleri izleyerek, özel VM görüntüsünü Azure Stack hub portalına yükleyin.Upload the custom VM image to the Azure Stack Hub portal, following the instructions in Add a VM image to Azure Stack Hub.
  2. Görüntüyü paketlemek için bu makaledeki yönergeleri izleyin (bir. azpkg oluşturun) ve Azure Stack hub Market 'e yükleyin.Follow the instructions in this article to package the image (create an .azpkg) and upload it to the Azure Stack Hub Marketplace.

Market öğesi oluşturCreate a Marketplace item

Özel bir Market öğesi oluşturmak için aşağıdakileri yapın:To create a custom marketplace item, do the following:

  1. Azure Gallery Packager aracını ve örnek Azure Stack hub Galerisi paketini indirin.Download the Azure Gallery Packager tool and the sample Azure Stack Hub gallery package. Bu indirme, özel VM şablonlarını içerir.This download includes custom VM templates. . Zip dosyasını ayıklayın ve özel VM 'ler klasörünün altında, kullanılabilir Linux veya Windows şablonlarını kullanabilirsiniz.Extract the .zip file, and under the folder Custom VMs, you can use either the Linux or the Windows templates that are available. Önceden oluşturulmuş şablonları yeniden kullanmaya karar verebilir ve ilgili parametreleri Azure Stack hub portalında gösterilecek öğenin ürün ayrıntılarıyla değiştirebilirsiniz.You can decide to re-use the pre-made templates and modify the respective parameters with the product details of the item that you will show on your Azure Stack Hub portal. Ya da, kullanılabilir. azpkg dosyasını yeniden kullanabilir ve kendi Galeri paketinizi özelleştirmek için aşağıdaki adımları atlayabilirsiniz.Or, you can simply re-use the .azpkg file available and skip the following steps to customize your own gallery package.

  2. Windows/Linux için bir Azure Resource Manager şablonu oluşturun veya örnek şablonlarımızı kullanın.Create an Azure Resource Manager template or use our sample templates for Windows/Linux. Bu örnek şablonlar, 1. adımda indirdiğiniz Paketleyici aracı. zip dosyasında verilmiştir.These sample templates are provided in the packager tool .zip file you downloaded in step 1. Şablonu kullanabilir ve metin alanlarını değiştirebilir ya da önceden yapılandırılmış bir şablonu GitHub 'dan indirebilirsiniz.You can either use the template and change the text fields, or you can download a pre-configured template from GitHub. Azure Resource Manager şablonları hakkında daha fazla bilgi için bkz. Azure Resource Manager şablonları.For more information about Azure Resource Manager templates, see Azure Resource Manager templates.

  3. Galeri paketi aşağıdaki yapıyı içermelidir:The Gallery package should contain the following structure:

    Galeri paket yapısının ekran görüntüsü

    Dağıtım şablonları dosya yapısı aşağıdaki gibi görünür:The deployment templates file structure appears as follows:

    Dağıtım şablonları yapısının ekran görüntüsü

  4. Şablondaki Manifest.js, özel görüntünüzü karşıya yüklerkenbelirttiğiniz değerle aşağıdaki vurgulanan değerleri (sayılarla) değiştirin.Replace the following highlighted values (those with numbers) in the Manifest.json template with the value that you provided when uploading your custom image.

    Not

    Ürün anahtarları, parola gibi herhangi bir parolayı veya Azure Resource Manager şablonunda hiçbir müşteri tarafından tanımlanabilir bilgileri hiçbir şekilde kalıcı olarak kodlayın.Never hard code any secrets such as product keys, password, or any customer identifiable information in the Azure Resource Manager template. Şablon JSON dosyalarına, galeride yayımlandıktan sonra kimlik doğrulamaya gerek olmadan erişilebilir.Template JSON files are accessible without the need for authentication once published in the gallery. Tüm gizli dizileri Key Vault depolayın ve şablon içinden çağırın.Store all secrets in Key Vault and call them from within the template.

    Kendi özel şablonunuzu yayımlamadan önce, örneği olduğu gibi yayımlamayı denediğinizden ve ortamınızda çalıştığından emin olmanızı öneririz.It's recommended that before publishing your own custom template, you try to publish the sample as-is and make sure it works in your environment. Bu adımı tamamladıktan sonra, örneği Galeriden silin ve sonuçtan memnun olana kadar yinelemeli değişiklikler yapın.Once you've verified this step works, then delete the sample from gallery and make iterative changes until you are satisfied with the result.

    Aşağıdaki şablon dosyadaki Manifest.jsbir örneğidir:The following template is a sample of the Manifest.json file:

    {
       "$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 şablonda önceki numaralandırılmış değerler açıklanmaktadır:The following list explains the preceding numbered values in the example template:

    • (1)-teklifin adı.(1) - The name of the offer.
    • (2)-bir boşluk olmadan yayımcının adı.(2) - The name of the publisher, without a space.
    • (3)-bir boşluk olmadan şablonunuzun sürümü.(3) - The version of your template, without a space.
    • (4)-müşterilerin göreceği ad.(4) - The name that customers see.
    • (5)-müşterilerin göreceği yayımcı adı.(5) - The publisher name that customers see.
    • (6)-yayımcının yasal adı.(6) - The publisher legal name.
    • (7)-her simgenin yolu ve adı.(7) - The path and name for each icon.
  5. MS-Resource' a başvuran tüm alanlar için, dosyadaki dizeler/resources.js içindeki uygun değerleri değiştirmeniz gerekir:For all fields referring to ms-resource, you must change the appropriate values inside the strings/resources.json file:

    {
    "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"
    }
    
  6. Kaynağın başarıyla dağıtılabilmesi için, şablonu Azure Stack hub API 'leriile test edin.To ensure that the resource can be deployed successfully, test the template with the Azure Stack Hub APIs.

  7. Şablonunuz bir sanal makine (VM) görüntüsünü kullanıyorsa, Azure Stack hub 'ına BIR VM görüntüsü eklemekiçin yönergeleri izleyin.If your template relies on a virtual machine (VM) image, follow the instructions to add a VM image to Azure Stack Hub.

  8. Azure Resource Manager şablonunuzu /contoso.ToDoList/DeploymentTemplates/ klasörüne kaydedin.Save your Azure Resource Manager template in the /Contoso.TodoList/DeploymentTemplates/ folder.

  9. Market öğesi için simgeleri ve metni seçin.Choose the icons and text for your Marketplace item. Simgeler klasörüne simgeler ekleyin ve dizeler klasöründeki kaynaklar dosyasına metin ekleyin.Add icons to the Icons folder, and add text to the resources file in the Strings folder. Simgeler için küçük, Orta, büyük ve geniş adlandırma kurallarını kullanın.Use the small, medium, large, and wide naming convention for icons. Bu boyutlarda ayrıntılı bir açıklama için Market öğesi Kullanıcı arabirimi başvurusuna bakın.See the Marketplace item UI reference for a detailed description of these sizes.

    Not

    Market öğesini doğru bir şekilde oluşturmak için dört, orta, büyük, geniş) tüm dört simge boyutu gereklidir.All four icon sizes (small, medium, large, wide) are required for building the Marketplace item correctly.

  10. Manifest.jshakkında daha fazla düzenleme için bkz. Başvuru: Market öğesi manifest.jsüzerinde.For any further edits to Manifest.json, see Reference: Marketplace item manifest.json.

  11. Dosyalarınızı değiştirmeyi bitirdiğinizde bir. azpkg dosyasına dönüştürün.When you finish modifying your files, convert it to an .azpkg file. AzureGallery.exe aracını ve daha önce indirdiğiniz örnek Galeri paketini kullanarak dönüştürmeyi gerçekleştirirsiniz.You perform the conversion using the AzureGallery.exe tool and the sample gallery package you downloaded previously. Şu komutu çalıştırın:Run the following command:

    .\AzureGallery.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ü altında olması gerekmez.The output path can be any path you choose, and does not have to be under the C: drive. Ancak, hem dosyadaki manifest.jshem de çıkış paketinin tam yolu var olmalıdır.However, the full path to both the manifest.json file, and the output package, must exist. Örneğin, çıkış yolu ise, C:\<path>\galleryPackageName.azpkg klasörün C:\<path> mevcut olması gerekir.For example, if the output path is C:\<path>\galleryPackageName.azpkg, the folder C:\<path> must exist.

Market öğesi yayımlamaPublish a Marketplace item

  1. Market öğesini (. azpkg) Azure Blob depolama alanına yüklemek için PowerShell veya Azure Depolama Gezgini kullanın.Use PowerShell or Azure Storage Explorer to upload your Marketplace item (.azpkg) to Azure Blob storage. Yerel Azure Stack hub depolama alanına yükleyebilir veya paket için geçici bir konum olan Azure Storage 'a yükleyebilirsiniz.You can upload to local Azure Stack Hub storage or upload to Azure Storage, which is a temporary location for the package. Blobun genel olarak erişilebilir olduğundan emin olun.Make sure that the blob is publicly accessible.

  2. Galeri paketini Azure Stack hub 'a aktarmak için ilk adım, yeni oluşturduğunuz dosyayı Azure Stack hub 'ınıza kopyalamak amacıyla istemci sanal makinesine uzaktan bağlanmamalıdır.To import the gallery package into Azure Stack Hub, the first step is to remotely connect (RDP) to the client VM, in order to copy the file you just created to your Azure Stack Hub.

  3. Bağlam ekleyin:Add a context:

    $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:Run the following script to import the resource into your gallery:

    Add-AzsGalleryItem -GalleryItemUri `
    https://sample.blob.core.windows.net/<temporary blob name>/<offerName.publisherName.version>.azpkg -Verbose
    
  5. Öğesini depolamak için kullanılabilir geçerli bir depolama hesabınız olduğunu doğrulayın.Verify that you have a valid Storage account that is available to store your item. GalleryItemURIAzure Stack hub yönetici portalından değeri alabilirsiniz.You can get the GalleryItemURI value from the Azure Stack Hub administrator portal. Depolama hesabı-> blob özellikleri-. azpkg UZANTıSıYLA > URL 'yi seçin.Select Storage account -> Blob Properties -> URL, with the extension .azpkg. Depolama hesabı, Market 'te yayımlamak için yalnızca geçici kullanım içindir.The storage account is only for temporary use, in order to publish to the marketplace.

    Galeri paketinizi tamamladıktan ve Add-Azsgalleritem kullanarak karşıya yükledikten sonra, özel VM 'Niz artık Market 'te ve kaynak oluştur görünümünde yer almalıdır.After completing your gallery package and uploading it using Add-AzsGalleryItem, your custom VM should now appear on the Marketplace as well as in the Create a resource view. Özel Galeri paketinin Market yönetimi'nde görülemeyeceğini unutmayın.Note that the custom gallery package is not visible in Marketplace Management.

    Özel Market öğesi karşıya yüklendiCustom marketplace item uploaded

  6. Öğe Market 'e başarıyla yayımlandıktan sonra, içeriği depolama hesabından silebilirsiniz.Once your item has been successfully published to the marketplace, you can delete the content from the storage account.

    Tüm varsayılan Galeri yapıtlarına ve özel galeri yapılarınıza artık aşağıdaki URL 'Ler altında kimlik doğrulaması yapılmadan erişilebilir:All default gallery artifacts and your custom gallery artifacts are now accessible without authentication under the following URLs:

    • https://galleryartifacts.adminhosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
    • https://galleryartifacts.hosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
  7. Remove-Azgallerıtem cmdlet 'Ini kullanarak Market öğesini kaldırabilirsiniz.You can remove a Marketplace item by using the Remove-AzGalleryItem cmdlet. Örneğin:For example:

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

Not

Bir öğeyi kaldırdıktan sonra Market Kullanıcı arabirimi bir hata gösterebilir.The Marketplace UI may show an error after you remove an item. Hatayı onarmak için portalda Ayarlar ' a tıklayın.To fix the error, click Settings in the portal. Ardından, Portal özelleştirmesi altında değişiklikleri at ' ı seçin.Then, select Discard modifications under Portal customization.

Başvuru: Market öğesi manifest.jsonReference: Marketplace item manifest.json

Kimlik bilgileriIdentity information

NameName GerekliRequired TürType KısıtlamalarConstraints AçıklamaDescription
AdName XX DizeString [A-Za-z0-9] +[A-Za-z0-9]+
PublisherPublisher XX DizeString [A-Za-z0-9] +[A-Za-z0-9]+
SürümVersion XX DizeString SemVer v2SemVer v2

Meta veriMetadata

NameName GerekliRequired TürType KısıtlamalarConstraints DescriptionDescription
DisplayNameDisplayName XX DizeString 80 karakter önerisiRecommendation of 80 characters Portal 80 karakterden uzunsa öğe adınızı doğru görüntülenmeyebilir.The portal might not display your item name correctly if it's longer than 80 characters.
PublisherDisplayNamePublisherDisplayName XX DizeString 30 karakterlik öneriRecommendation of 30 characters Portal, 30 karakterden uzun olursa Yayımcı adınızı doğru görüntülenmeyebilir.The portal might not display your publisher name correctly if it's longer than 30 characters.
PublisherLegalNamePublisherLegalName XX DizeString En fazla 256 karakterMaximum of 256 characters
ÖzetSummary XX DizeString 60-100 karakter60 to 100 characters
LongSummaryLongSummary XX DizeString 140-256 karakter140 to 256 characters Azure Stack hub 'da henüz geçerli değildir.Not yet applicable in Azure Stack Hub.
DescriptionDescription XX HTMLHTML 500-5.000 karakter500 to 5,000 characters

GörüntülerImages

Market aşağıdaki simgeleri kullanır:The Marketplace uses the following icons:

NameName WidthWidth HeightHeight NotlarNotes
GenişWide 255 piksel255 px 115 piksel115 px Her zaman gerekliAlways required
BüyükLarge 115 piksel115 px 115 piksel115 px Her zaman gerekliAlways required
OrtaMedium 90 piksel90 px 90 piksel90 px Her zaman gerekliAlways required
KüçükSmall 40 piksel40 px 40 piksel40 px Her zaman gerekliAlways required
Ekran görüntüsüScreenshot 533 piksel533 px 324 piksel324 px İsteğe BağlıOptional

KategorilerCategories

Her Market öğesi, öğenin Portal Kullanıcı arabiriminde nerede göründüğünü tanımlayan bir kategori ile etiketlenmelidir.Each Marketplace item should be tagged with a category that identifies where the item appears on the portal UI. Azure Stack hub 'ında (işlem, veri + depolama vb.) Mevcut kategorilerden birini seçebilir veya yeni bir tane seçebilirsiniz.You can choose one of the existing categories in Azure Stack Hub (Compute, Data + Storage, and so on) or choose a new one.

Her Market öğesi, ek içeriğe yönelik çeşitli bağlantılar içerebilir.Each Marketplace item can include various links to additional content. Bağlantılar adların ve URI 'lerin listesi olarak belirtilir:The links are specified as a list of names and URIs:

NameName GerekliRequired TürType KısıtlamalarConstraints DescriptionDescription
DisplayNameDisplayName XX DizeString En fazla 64 karakter.Maximum of 64 characters.
KullanılmamışsaUri XX URIURI

Ek özelliklerAdditional properties

Market yazarları, önceki meta verilere ek olarak aşağıdaki biçimde özel anahtar/değer çifti verileri sağlayabilir:In addition to the preceding metadata, Marketplace authors can provide custom key/value pair data in the following form:

NameName GerekliRequired TürType KısıtlamalarConstraints DescriptionDescription
DisplayNameDisplayName XX DizeString En fazla 25 karakter.Maximum of 25 characters.
DeğerValue XX DizeString En fazla 30 karakter.Maximum of 30 characters.

HTML temizlemeHTML sanitization

HTML 'ye izin veren herhangi bir alan için aşağıdaki öğelere ve özniteliklere izin verilir:For any field that allows HTML, the following elements and attributes are allowed:

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

Başvuru: market öğe kullanıcı arabirimiReference: Marketplace item UI

Market öğelerine yönelik simgeler ve metinler Azure Stack hub portalında görüldüğü gibi aşağıdaki gibidir.Icons and text for Marketplace items as seen in the Azure Stack Hub portal are as follows.

Dikey pencere oluşturmaCreate blade

Dikey pencere oluşturma — Azure Stack hub Market öğeleri

Market öğesi ayrıntıları dikey penceresiMarketplace item details blade

Azure Stack hub Market öğesi ayrıntıları dikey penceresi

Sonraki adımlarNext steps