Создание и публикация пользовательского элемента Azure Stack Hub Marketplace
Каждый элемент, опубликованный в Azure Stack Hub Marketplace, использует формат пакета коллекции Azure (azpkg). Инструмент пакета Azure Gallery позволяет создать настраиваемый пакет Azure Gallery, который можно отправить в Azure Stack Hub Marketplace, и который затем смогут скачать пользователи. В процессе развертывания используется шаблон Azure Resource Manager.
Товары на Marketplace
В этой статье приведены примеры, которые показывают, как создать одно предложение в Marketplace для виртуальной машины типа Windows или Linux.
Необходимые условия
Перед созданием элемента на торговой площадке виртуальной машины выполните следующее:
- Отправьте пользовательский образ виртуальной машины на портал Azure Stack Hub, следуя инструкциям в Add a VM image to Azure Stack Hub.
- Следуйте инструкциям из этой статьи, чтобы упаковать образ (создать azpkg) и отправить его в Azure Stack Hub Marketplace.
Создание элемента Marketplace
Чтобы создать пользовательский элемент маркетплейса, сделайте следующее:
Скачайте инструмент упаковщика для галереи Azure :
Средство включает примеры пакетов, которые находятся в формате azpkg и должны быть извлечены сначала. Вы можете переименовать расширения файлов из azpkg в ".zip", или использовать средство архиватора по своему усмотрению:
После извлечения .zip-файл содержит доступные шаблоны Linux или Windows Azure Resource Manager. Вы можете повторно использовать предварительно созданные шаблоны Resource Manager и изменить соответствующие параметры с подробными сведениями о продукте элемента, который будет отображаться на портале Azure Stack Hub. Кроме того, можно повторно использовать azpkg-файл и пропустить следующие действия, чтобы настроить собственный пакет коллекции.
Создайте шаблон Azure Resource Manager или используйте примеры шаблонов для Windows/Linux. Шаблоны предоставляются в файле .zip, который вы скачали на шаге 1 в средстве упаковки. Вы можете использовать шаблон и изменить текстовые поля или скачать предварительно настроенный шаблон из GitHub. Дополнительные сведения о шаблонах Azure Resource Manager см. в шаблонах Azure Resource Manager.
Пакет коллекции должен содержать следующую структуру:
Замените следующие выделенные значения (цифрами) в шаблоне Manifest.json значением, указанным при отправке пользовательского образа.
Заметка
Никогда не жестко кодируются какие-либо секреты, такие как ключи продукта, пароль или любые идентифицируемые пользователем сведения в шаблоне Azure Resource Manager. Файлы JSON шаблона доступны без необходимости проверки подлинности после публикации в коллекции. Сохраните все секреты в Key Vault и вызовите их из шаблона.
Перед публикацией собственного пользовательского шаблона рекомендуется опубликовать пример as-is и убедиться, что он работает в вашей среде. После проверки этого шага удалите образец из коллекции и внесите итеративные изменения до тех пор, пока не будете удовлетворены результатом.
Следующий шаблон представляет собой пример файла 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" }] }] }
В следующем списке описаны предыдущие нумерованные значения в примере шаблона:
- (1) — имя предложения.
- (2) — имя издателя без пробела.
- (3) — версия шаблона без пробела.
- (4) — имя, которое видят клиенты.
- (5) — имя издателя, которое видят клиенты.
- (6) — юридическое имя издателя.
- (7) — путь и имя для каждого значка.
Для всех полей, ссылающихся на ms-resource, необходимо изменить соответствующие значения внутри файла строк /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" }
Структура файлов шаблонов развертывания отображается следующим образом:
Замените значения изображения в файле createuidefinition.json значением, указанным при отправке пользовательского образа.
Чтобы убедиться, что ресурс можно развернуть успешно, протестируйте шаблон с помощью API Azure Stack Hub.
Если шаблон использует образ виртуальной машины, следуйте инструкциям, чтобы добавить образ виртуальной машины в Azure Stack Hub.
Сохраните шаблон Azure Resource Manager в папке /Contoso.TodoList/DeploymentTemplates/.
Выберите значки и текст для элемента Marketplace. Добавьте значки в папку Icons и добавьте текст в файл resources в папке Strings. Используйте соглашение об именовании для значков небольшие, средние, крупныеи широкие. См. справочник по пользовательскому интерфейсу элемента Marketplace для получения подробного описания этих размеров.
Заметка
Для правильного создания элемента Marketplace требуются все четыре размера значков (небольшие, средние, крупные, широкие).
Дополнительные изменения в Manifest.jsonсм. в справочнике по элементу Marketplace manifest.json.
После завершения изменения файлов преобразуйте его в azpkg-файл. Вы выполняете преобразование с помощью средства AzureGallery.exe и скачаемого ранее пакета коллекции. Выполните следующую команду:
.\AzureStackHubGallery.exe package -m c:\<path>\<gallery package name>\manifest.json -o c:\Temp
Заметка
Выходной путь может быть любым путьом, который вы выбрали, и не должен находиться под диском C: . Однако полный путь к файлу manifest.json и выходному пакету должен существовать. Например, если выходной путь
C:\<path>\galleryPackageName.azpkg
, папкаC:\<path>
должна существовать.
Публикация элемента Marketplace
Используйте PowerShell или Обозреватель службы хранилища Azure для отправки элемента Marketplace (.azpkg) в BLOB-хранилище Azure. Вы можете загрузить данные в локальное хранилище Azure Stack Hub или в Azure Storage, которая является временным расположением для пакета. Убедитесь, что BLOB является общедоступным.
Чтобы импортировать пакет коллекции в Azure Stack Hub, первым шагом является удаленное подключение (RDP) к клиентской виртуальной машине, чтобы скопировать только что созданный файл в Azure Stack Hub.
Добавьте контекст:
$ArmEndpoint = "https://adminmanagement.local.azurestack.external" Add-AzEnvironment -Name "AzureStackAdmin" -ArmEndpoint $ArmEndpoint Connect-AzAccount -EnvironmentName "AzureStackAdmin"
Выполните следующий скрипт, чтобы импортировать ресурс в коллекцию:
Add-AzsGalleryItem -GalleryItemUri ` https://sample.blob.core.windows.net/<temporary blob name>/<offerName.publisherName.version>.azpkg -Verbose
Если при запуске Add-AzsGalleryItemвозникает ошибка, возможно, установлена две версии модуля
gallery.admin
. Удалите все версии модуля и установите последнюю версию. Инструкции по удалению модулей PowerShell см. в статье Удаление существующих версий модулей PowerShell Azure Stack Hub.Убедитесь, что у вас есть действительная учетная запись для хранения, доступная для хранения ваших элементов. Вы можете получить значение
GalleryItemURI
на портале администрирования Azure Stack Hub. Выберите учетную запись хранения — свойства BLOB-объектов> —> URL-адресс расширением .azpkg. Учетная запись хранения используется только для временного использования для публикации в Marketplace.После завершения пакета коллекции и отправки его с помощью Add-AzsGalleryItemваша пользовательская виртуальная машина теперь должна отображаться как в Marketplace, так и в представлении Создание ресурса. Обратите внимание, что пользовательский пакет галереи не отображается в Marketplace Management.
После успешной публикации элемента в Marketplace можно удалить содержимое из учетной записи хранения.
Все артефакты коллекции по умолчанию и пользовательские артефакты коллекции теперь доступны без проверки подлинности в следующих URL-адресах:
https://galleryartifacts.adminhosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
https://galleryartifacts.hosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
Элемент Marketplace можно удалить с помощью командлета Remove-AzGalleryItem. Например:
Remove-AzsGalleryItem -Name <Gallery package name> -Verbose
Заметка
Пользовательский интерфейс Marketplace может отобразить ошибку после удаления элемента. Чтобы устранить ошибку, щелкните Параметры на портале. Затем выберите Отменить изменения в разделе Настройка портала.
Ссылка: товар на Marketplace manifest.json
Идентификационная информация
Имя | Обязательно | Тип | Ограничения | Описание |
---|---|---|---|---|
Имя | X | Струна | [A-Za-z0-9]+ | |
Издатель | X | Струна | [A-Za-z0-9]+ | |
Версия | X | Струна | SemVer версия 2 |
Метаданные
Имя | Обязательно | Тип | Ограничения | Описание |
---|---|---|---|---|
Отображаемое имя | X | Струна | Рекомендация 80 символов | На портале может не отображаться правильное имя элемента, если оно больше 80 символов. |
ИмяИздателя | X | Струна | Рекомендация 30 символов | На портале может не отображаться правильное имя издателя, если оно больше 30 символов. |
PublisherLegalName | X | Струна | Не более 256 символов | |
Сводка | X | Струна | От 60 до 100 символов | |
Длинное описание | X | Струна | От 140 до 256 символов | Еще не применимо в Azure Stack Hub. |
Описание | X | HTML | От 500 до 5000 символов |
Изображения
В Marketplace используются следующие значки:
Имя | Ширина | Высота | Примечания |
---|---|---|---|
Широкий | 255 пикселей | 115 пикселей | Всегда требуется |
Большой | 115 пикселей | 115 пикселей | Всегда требуется |
Средний | 90 пикселей | 90 пикселей | Всегда требуется |
Маленький | 40 пикселей | 40 пикселей | Всегда требуется |
Снимок экрана | 533 пикселей | 324 пикселей | Необязательный |
Категории
Каждый элемент Marketplace должен быть помечен категорией, которая определяет, где элемент отображается на пользовательском интерфейсе портала. Вы можете выбрать одну из существующих категорий в Azure Stack Hub (вычислительные, данные + хранениеи т. д.) или выбрать новую.
Ссылки
Каждый элемент Marketplace может включать различные ссылки на дополнительное содержимое. Ссылки указываются в виде списка имен и URI:
Имя | Обязательно | Тип | Ограничения | Описание |
---|---|---|---|---|
Отображаемое имя | X | Струна | Не более 64 символов. | |
Ури | X | УРИ |
Дополнительные свойства
Помимо предыдущих метаданных авторы Marketplace могут предоставлять пользовательские данные пары "ключ-значение" в следующей форме:
Имя | Обязательно | Тип | Ограничения | Описание |
---|---|---|---|---|
Имя для отображения | X | Струна | Не более 25 символов. | |
Ценность | X | Струна | Не более 30 символов. |
Очистка HTML
Для любого поля, разрешающего HTML, разрешены следующие элементы и атрибуты:
h1, h2, h3, h4, h5, p, ol, ul, li, a[target|href], br, strong, em, b, i
Ссылка: Пользовательский интерфейс элемента Marketplace
Значки и текст для элементов Marketplace, как показано на портале Azure Stack Hub, приведены ниже.
Создать панель
Раздел сведений об элементе в Marketplace