Azure Marketplace Virtual Machine Image Publication

This article defines some basic concepts of the Azure Marketplace and introduces how to publish VM images on the CPP (Cloud Partner Portal).

Within this article, the scope of “Azure Marketplace” is limited to China, “image” and “mirror” are used interchangeably, and the terms “product,” “product/service,” and “offer” all refer to VM images unless otherwise specified.

1. Prerequisites and Preparations

1.1 You must have an Azure account and have registered as an Azure Marketplace service provider. Please refer to the Azure Marketplace Publisher Guide.

1.2 Before you publish an image, please carefully read the Azure China Marketplace Participation Policy and the Azure Marketplace Publisher Agreement, paying particular attention to the sections on product pricing models, product permissions and support, and user data privacy protection.

1.3 To prepare pre-published data and virtual machine image files, please refer to the Virtual Image Creation Guide. Note that you are responsible for the product’s software license and any third-party software dependencies.

1.4 After image creation and local testing are completed, you need to upload images to an Azure Storage account. You can perform testing with tools such as PowerShell or Azure CLI. Please also refer to the testing and uploading sections of the VM Image Creation Guide.

2. Sign in to the Cloud Partner Portal and create a VM offer

  • Sign in to the CPP (Cloud Partner Portal)

  • As shown below, click "New offer" -> "Virtual Machines" in the left-hand navigation bar, then start the image publishing process.

The image content includes four forms: "Offer Settings", "SKUs", "Marketplace", and "Support." Each form consists of a set of text fields to be filled in. Required fields are marked with a red asterisk (*). After each form is filled out, you must click "Save" to prevent content loss.

2.1 Define the offer and SKU

In the Azure Marketplace, each virtual machine Offer corresponds to a particular Offer type. Each Offer is the "parent" of all its SKUs, and can contain one or more SKUs. Publishers can have multiple Offers and decide how to structure them.

The SKU is the smallest purchasable unit in the Azure Marketplace. The SKU allows you to differentiate between images based on features, type, price, and billing model under the same Offer. A virtual machine image contains one operating system disk and zero or more data disks. It is essentially the complete storage profile for a virtual machine. Each disk must have one VHD, and even a blank data disk needs to have a VHD created.

An Offer is displayed under Offers in the Azure Marketplace. Please consider Offer IDs carefully as they will be displayed in the URL:{Publisher}.{OfferIdentifier}?tab=Overview

2.2 Marketplace

The Marketplace primarily includes marketing-related content and laws, as well as sales lead management assets and specifications.

2.3 Support

Support includes Support Department contact details and technical support information.

These four areas are described in detail below.

3. Offer Settings

Offer ID

The Offer ID is the unique identifier that represents the offer within Azure Marketplace. The Offer ID is generally the name of the product or service that the seller intends to sell on the Azure Marketplace.

The Offer ID can only include lowercase letters, numbers, dashes or underscores, may only end with lowercase letters or numbers, and may not exceed 50 characters in length. This identifier will be displayed in the product URL and ARM template. Note that once the Offer request is submitted, the field cannot be modified.

Publisher ID

The Publisher ID dropdown box allows you to select the publisher that will publish the Offer. Note that once the Offer request is submitted, the field cannot be modified.


Offer names are used to identify offers on the Azure Marketplace platform. They are only displayed within the Publishing Platform, and are not displayed externally or to users. Offer names must be no longer than 50 characters or 25 Chinese characters. If possible, please include an identifiable trademark. The offer name may be the same as the title in section 5.

Select “Save” to save your progress. You will add the SKUs for your Offer in the next tab.

4. SKUs

From the “SKU” tab, you can create one or multiple SKUs. Solutions can be differentiated by SKU based on their features sets, the VM image type, throughput/scalability, billing model, or other specific features. Click “New SKU” to create an SKU.


A SKU requires an ID in the URL and the ID must be unique within the Publishing Platform. SKU names may include lower case letters, numbers and dashes, but may not end with a dash. The maximum length is 50 characters and Chinese characters are not supported. Note that once the Offer request is submitted, the field cannot be modified.

SKU Title

The SKU name is the name that appears publicly in the Azure Marketplace and Azure portal. It cannot exceed 25 Chinese characters or 50 characters. If possible, please include an identifiable trademark and avoid including the company name.


The summary is visible to customers, so it should be easy to read and no longer than 100 characters or 50 Chinese characters. The title and summary description of the SKU is displayed on the Plan + Pricing tab of the Azure Marketplace product pages, as well as on the Azure portal product pages. Azure Marketplace examples are given below:


The description field is visible to customers. It is displayed on the product page in the Azure portal. Descriptions should generally include a simple explanation of the SKU. We recommend a length of no more than 100 characters. Descriptions are displayed in the Azure portal as shown below:

Hide this SKU

This flag allows you to set whether this particular SKU is visible to customers in Azure Marketplace and the Azure portal. You may need to hide the SKU if you only want to provide SKUs through the solution template instead of allowing them to be purchased separately.


There are two price models: Free and BYOL.

For the free model, Microsoft only charges an infrastructure cost and not a software cost. Please refer to the list of Virtual Machine Pricing.

Regarding the BYOL model, the publisher can administer the license to run the virtual machine software and Microsoft only charges for infrastructure costs. In this mode, the customer must contact the service provider by email, phone, or some other means to obtain a license. The service provider can set whether the customer can get a free trial for 30 or 90 days, or no free trial. This calculated from the start of the deployment of the virtual machine.

Operating system family and operating system type

Choose whether your VM is based on a Windows or Linux (or Linux-like) operating system and select the operating system version based on this platform.

OS Friendly Name

Fill in an operating system name such as "Windows Server 2016" or "Linux Ubuntu 16."

Must contain no more than six types. Given customer selection habits and the display of the Azure Management Platform, we recommend that you choose three virtual machine recommended configurations. These virtual machine configurations are specially displayed in the Azure portal when users deploy a virtual machine.

Open port

When the VM is deployed, the default port and communications protocol will be provided. These settings will take effect during the process of deploying the VM. You can modify the port configuration after the SKU has been published. Please note that the public port number and private port number are generally set as the same. Port number 22 TCP is the default SSH login port for Linux virtual machines, while port numbers 3389 TCP and 5986 TCP are the remote login ports for Windows virtual machines. These three port numbers do not need to be added manually.

New disk image version and operating system VHD URL address

The version number of the image must be added in semantic version format, i.e. the version number should be in form “X.Y.Z”, where X, Y, and Z are integers. The SKU version should only be increased incrementally. While you can add up to eight versions of each SKU, only the latest version of the SKU will be displayed in Azure Marketplace; the other versions will only be shown via the API.

During the publishing and authentication process, the URI address where the VHD file is located must be located in Azure Blob Storage. If URI access permissions are not set correctly, an error message saying “this image does not exist” will appear during the image publishing process. After successful publication of the VHD image, Azure Marketplace will no longer require access the VHD file. At this time, the URI properties can be restored to the original settings and the VHD source file can also be deleted. For details about preparing VHD files, please see the Azure Marketplace VM Image Preparation Guide.

First, if you are creating a Linux/Windows image on Azure, after the image is created, first delete the VM, go to Storage and select the VHD file, then click “Break lease” to use when publishing.

Next, set URI address permissions using the following two methods.

a. Method 1: Get the VM image shared access signature (SAS) URL from the Azure portal

A simpler method of generating the SAS URL for the VHD file is to go the Azure portal and look up the Storage and Blob where VHD files are stored, then select the file you want to configure. Next, select “Generate SAS”, then enter the configuration information to generate the SAS URL. See below for details.

b. Method 2: Get the SAS URL from Azure Storage Explorer

Another method of generating the SAS URL is to generate it from Azure Storage Explorer. First, download and install Azure Storage Explorer. You then need to learn to use Azure Storage Explorer. Assuming your VHD file is already present in a particular storage account and container, left-click on the storage account, container or Blob, then select the VHD file that you need to publish. Right-click on “Get a shared access signature”, then select the start time and expiry time. The permissions for the SAS URL must be set to at least read. Select “Create”, then copy the URL details from the next screen.

Of course, you can also refer to Create an SAS for an Azure Storage Blob, and use PowerShell or other command line methods to generate the SAS URL.

Whichever method you use, please ensure that you pay attention to the following parameters when you generate the SAS URL for the VHD file:

  • “Read” permissions are sufficient. Please do not give “write” or “delete” access permissions.
  • To ensure that data is accessible throughout the publishing period, access must last for at least 60 days from the date when the SAS URL was created. To ensure UTC time, select the day before the current date. For example, if the current date is October 6, 2014, then select 10/5/2014.
  • Once configuration is complete, enter the SAS URL in your browser, press enter, then check that you can download the VHD file.

5. Marketplace

The Azure Marketplace primarily includes marketing-related content and laws, as well as the sales lead management policy and practices. This section of the content will mainly be shown in Azure Marketplace.

  • Marketing assets include the offer name, description and logo.
  • Legal assets include the privacy policy, terms of use, and other legal documents.
  • The sales lead management policy allows you to specify how to handle information about potential end users from Azure Marketplace.


The title of the offer is the official name of the offer that appears publicly in the Azure Marketplace. It cannot exceed 25 Chinese characters or 50 characters. If possible, you should include an identifiable trademark, such as “XXX Cloud Platform Firewall 2018”.


The summary is visible to customers, so it should be easy to read and no longer than 50 Chinese characters or 100 characters.


The detailed description is visible to the customer and is displayed on the image’s product page. The detailed description generally includes a product introduction, user guide, and technical details. It makes up the main portion of the p, so please pay attention to the overall layout and the following points:

  • The product introduction generally includes a product overview, function features, technical architecture, and application scenarios.
  • The user guide generally includes product deployment instructions, login instructions, and usage methods.
  • The technical details generally include installation location, system startup and shutdown, log management, system maintenance, and other considerations.
  • The user guide and technical details can also be written as a product manual and added to Related Links.
  • Pictures cannot be inserted in the detailed description. To add pictures, please refer to the Picture module.
  • The description must be no longer than 3,000 characters or 1,500 Chinese characters, but we recommend a minimum length of 500 characters.

You can add HTML tags to the detailed description, but only basic HTML tags such as p, em, ul, li, ol, strong and b are supported (you can also use plain text, but it will look messier). You can edit using a rich text editor. We recommend two simple rich text editors: HtmlCleaner and Simditor. Both allow you to use simple HTML tags.

  • If you are using HtmlCleaner, as shown below, please edit the text in the Visual Editor, then in the “HTML Editor”, select “Copy to clipboard” to copy the HTML source code.

  • If you are using Simditor, as shown below, once you finish editing the text, select the text with the cursor and right-click. You can select “View selected source code” and copy the source code directly. Alternatively, you can select “View element” (or press F12), right-click to select the DIV tag in which the text block is located, and then press “Copy” -> “Internal HTML” to finish copying. Please note that the source code cannot include complex HTML tags such as DIV or CSS.

Preview subscription ID

The preview subscription ID is the subscription ID used by the Publisher for the interface preview and deployment testing of the image in the Azure portal and Azure Marketplace when the image is published to the "Publisher signoff" status. The subscription ID can be viewed by clicking on the "Cost management + billing" menu in the Azure portal.

You can add up to five links to useful information such as user guides. These links will be displayed after the ARM user guide.

Choose categories

From the category list select as many as 3 categories related to the image. The selected categories will be used to map your Offer to the product categories in Azure Marketplace and Azure Portal.

All logos uploaded to Cloud Partner Portal must comply with the following rules:

  • The Azure layout uses a simple color palette, so please keep the number of main and secondary colors in the logo to a minimum.
  • The main colors in the Azure portal are black and white, so you should avoid using these colors as your logo background, and instead choose colors that will make your logo stand out in Azure portal. We recommend that you use a simple main color, and if you are using a transparent background, please ensure that the logo or text are not in black, white or blue.
  • Avoid using gradient backgrounds in your logo background.
  • Avoid putting any text on your logo, even if the text consists of your company or brand name. The logo should appear “smooth”, and gradients should be avoided.
  • The logo should not be stretched.
  • The logo must comply with the resolution requirements (40x40 for small, 90x90 for medium, 115x115 for large, 255x115 for wide).

Upload Screenshots

The first “cover” image will appear on both the Azure portal and Azure Marketplace image details page. Any further images will only be displayed on the Azure Marketplace image details page. You can upload a maximum of five images. Please refer to Upload a Logo in the previous section for details of image specifications. Images must also conform to the 533x324 resolution requirement.

Lead management

If you want to collect user information and manage sales leads, you need to provide an Azure storage connection string. The system will then save the user data in your storage table. For details, see Azure Marketplace Sales Leads.

Privacy Policy URL

We suggest that the privacy statement URL address be placed on the service provider website.

Terms of use URL

We suggest that the End User License Agreement URL address is placed on the service provider company website.

Is open-source software

Please note that not all free software is open source.

Product Authorization Certificate

Providing Product Authorization Certificiate is mandatory for ISV who will publish offers which is not owned by ISV itself.

Examples of Main Marketplace Information

6. Support

Please note that the technical and customer support information for this service is displayed on the Offer details page. The contact information that you supplied when you registered for Azure Marketplace will not be displayed on the Offer details page.

Fill in the technical support information

Please provide contact information for Technical Support. As far as possible, contact details should be given for the selected company rather than personal details, to prevent this information becoming invalid due to personal changes.

Fill in customer service support information

Please provide contact details for Customer Support. As far as possible, contact details should be given for the selected company rather than personal details, to prevent this information becoming invalid due to personal changes.

After you finished entering the information, please select “Save” to save your progress.

7. Problems with Publishing Images for the Global Azure Marketplace on Azure China Marketplace

The image descriptions in the Global Azure Marketplace are generally based on English. We recommend that when images are published to the Azure China market, the text of the summary and description is mainly in Chinese. Please also note that if an image passes Global Azure testing, it is not guaranteed that it will pass China Azure testing. Images can only be published on the Azure China Marketplace after they have passed China Azure testing.

Next steps

After you have finished creating a VM image, the next steps are to submit onboard requests for Onboard requests and administrator approval.


  • If you have any questions about this documentation, please submit user feedback in the Azure Marketplace.
  • You can also look for solutions in the FAQs.