Criar e publicar um item do Marketplace do hub de Azure Stack personalizado

Todos os itens publicados no Marketplace do hub de Azure Stack usam o formato de pacote (. azpkg) da galeria do Azure. A ferramenta de Azure Gallery Packager permite que você crie um pacote personalizado da galeria do Azure que pode ser carregado no Marketplace do Hub de Azure Stack, que pode ser baixado pelos usuários. O processo de implantação usa um modelo de Azure Resource Manager.

Itens do Marketplace

os exemplos neste artigo mostram como criar uma oferta de Marketplace de VM única, do tipo Windows ou do Linux.

Pré-requisitos

Antes de criar o item de Marketplace de VM, faça o seguinte:

  1. Upload a imagem de vm personalizada para o portal de Hub de Azure Stack, seguindo as instruções em adicionar uma imagem de vm ao Hub de Azure Stack.
  2. Siga as instruções neste artigo para empacotar a imagem (criar um. azpkg) e carregá-la no Marketplace do hub de Azure Stack.

Criar um item do Marketplace

Para criar um item do Marketplace personalizado, faça o seguinte:

  1. Baixe a ferramenta de Azure Gallery Packager:

    Packager da Galeria

  2. A ferramenta inclui pacotes de exemplo que estão no formato. azpkg e devem ser extraídos primeiro. Você pode renomear as extensões de arquivo de ". azpkg" para ".zip", ou usar uma ferramenta de arquivador de sua escolha:

    Pacotes de exemplos

  3. depois de extraído, o arquivo de .zip contém os modelos de Azure Resource Manager do Linux ou do Windows que estão disponíveis. Você pode reutilizar os modelos pré-criados do Resource Manager e modificar os respectivos parâmetros com os detalhes do produto do item que será exibido no portal do hub de Azure Stack. Ou, você pode reutilizar o arquivo. azpkg e ignorar as etapas a seguir para personalizar seu próprio pacote da galeria.

  4. criar um modelo de Azure Resource Manager ou usar nossos modelos de exemplo para Windows/Linux. Esses modelos de exemplo são fornecidos na ferramenta de empacotador .zip arquivo que você baixou na etapa 1. Você pode usar o modelo e alterar os campos de texto, ou pode baixar um modelo pré-configurado de GitHub. Para obter mais informações sobre modelos de Azure Resource Manager, consulte Azure Resource Manager modelos.

  5. O pacote da Galeria deve conter a seguinte estrutura:

    Captura de tela da estrutura do pacote da Galeria

  6. Substitua os valores realçados a seguir (aqueles com números) no modelo manifest. JSON pelo valor que você forneceu ao carregar a imagem personalizada.

    Observação

    Nunca codifique os segredos como chaves de produto, senha ou qualquer informação de identificação do cliente no modelo de Azure Resource Manager. Os arquivos JSON de modelo podem ser acessados sem a necessidade de autenticação depois de publicados na galeria. Armazene todos os segredos no Key Vault e chame-os de dentro do modelo.

    É recomendável que, antes de publicar seu próprio modelo personalizado, você tente publicar o exemplo no estado em que se encontra e verifique se ele funciona em seu ambiente. Depois de verificar se essa etapa funciona, exclua o exemplo da galeria e faça alterações iterativas até ficar satisfeito com o resultado.

    O modelo a seguir é um exemplo do arquivo 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"
             }]
        }]
    }
    

    A lista a seguir explica os valores numerados anteriores no modelo de exemplo:

    • (1)-o nome da oferta.
    • (2)-o nome do Publicador, sem um espaço.
    • (3)-a versão do modelo, sem um espaço.
    • (4)-o nome que os clientes veem.
    • (5)-o nome do editor que os clientes veem.
    • (6)-o nome legal do editor.
    • (7)-o caminho e o nome de cada ícone.
  7. Para todos os campos que se referem ao MS-Resource, você deve alterar os valores apropriados dentro do arquivo Strings/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"
    }
    
  8. A estrutura do arquivo de modelos de implantação aparece da seguinte maneira:

    Modelos de implantação

    Substitua os valores da imagem no arquivo createuidefinition. JSON pelo valor que você forneceu ao carregar a imagem personalizada.

  9. Para garantir que o recurso possa ser implantado com êxito, teste o modelo com as APIs do hub de Azure Stack.

  10. Se seu modelo se basear em uma imagem de máquina virtual (VM), siga as instruções para Adicionar uma imagem de VM ao Hub Azure Stack.

  11. Salve seu modelo de Azure Resource Manager na pasta /contoso.TodoList/DeploymentTemplates/

  12. Escolha os ícones e o texto para o item do Marketplace. Adicione ícones à pasta ícones e adicione texto ao arquivo de recursos na pasta cadeias de caracteres . Use a Convenção de nomenclatura pequena, média, grandee ampla para ícones. Consulte a referência da interface do usuário do item do Marketplace para obter uma descrição detalhada desses tamanhos.

    Observação

    Todos os quatro tamanhos de ícone (pequeno, médio, grande, largo) são necessários para a criação correta do item do Marketplace.

  13. Para qualquer edição adicional para manifest. JSON, consulte referência: Marketplace item manifest. JSON.

  14. Quando terminar de modificar os arquivos, converta-o em um arquivo. azpkg. Você executa a conversão usando a ferramenta de AzureGallery.exe e o pacote de exemplo da galeria que você baixou anteriormente. Execute o seguinte comando:

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

    Observação

    O caminho de saída pode ser qualquer caminho que você escolher e não precisa estar na unidade C:. No entanto, o caminho completo para o arquivo manifest. JSON e o pacote de saída deve existir. Por exemplo, se o caminho de saída for C:\<path>\galleryPackageName.azpkg , a pasta C:\<path> deverá existir.

Publicar um item do marketplace

  1. Use o PowerShell ou Gerenciador de Armazenamento do Azure para carregar o item do Marketplace (. azpkg) no armazenamento de blobs do Azure. você pode carregar para o armazenamento de Hub de Azure Stack local ou carregar para o Azure Armazenamento, que é um local temporário para o pacote. Verifique se o blob está acessível publicamente.

  2. Para importar o pacote da galeria para o Hub de Azure Stack, a primeira etapa é conectar-se remotamente (RDP) à VM do cliente, para copiar o arquivo que você acabou de criar para o Hub de Azure Stack.

  3. Adicione um contexto:

    $ArmEndpoint = "https://adminmanagement.local.azurestack.external"
    Add-AzEnvironment -Name "AzureStackAdmin" -ArmEndpoint $ArmEndpoint
    Connect-AzAccount -EnvironmentName "AzureStackAdmin"
    
  4. Execute o script a seguir para importar o recurso para a Galeria:

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

    Se você encontrar um erro ao executar Add-AzsGalleryItem, você poderá ter duas versões do módulo instaladas. Remova todas as versões do módulo e instale a versão mais recente. Para obter as etapas de desinstalação de seus módulos do PowerShell, consulte desinstalar versões existentes dos módulos do PowerShell do hub de Azure Stack.

  5. verifique se você tem uma conta de Armazenamento válida que esteja disponível para armazenar seu item. Você pode obter o GalleryItemURI valor no portal do administrador do hub de Azure Stack. selecione Armazenamento conta- Blob propriedades- > URL, com a extensão. azpkg. A conta de armazenamento é apenas para uso temporário, a fim de publicar no Marketplace.

    Depois de concluir o pacote da galeria e carregá-lo usando Add-AzsGalleryItem, sua VM personalizada agora deverá aparecer no Marketplace, bem como na exibição criar um recurso . Observe que o pacote da Galeria personalizada não está visível no Gerenciamento do Marketplace.

    Custom marketplace item uploadedItem

  6. Depois que o item for publicado com êxito no Marketplace, você poderá excluir o conteúdo da conta de armazenamento.

    Todos os artefatos da Galeria padrão e seus artefatos de galeria personalizados agora estão acessíveis sem autenticação nas seguintes URLs:

    • https://galleryartifacts.adminhosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
    • https://galleryartifacts.hosting.[Region].[externalFQDN]/artifact/20161101/[TemplateName]/DeploymentTemplates/Template.json
  7. Você pode remover um item do Marketplace usando o cmdlet Remove-AzGalleryItem . Por exemplo:

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

Observação

A interface do usuário do Marketplace pode mostrar um erro após a remoção de um item. para corrigir o erro, clique em Configurações no portal. Em seguida, selecione descartar modificações em personalização do portal.

Referência: item manifest.json do Marketplace

Informações de identidade

Nome Obrigatório Type Restrições Descrição
Nome X String [A-Za-z0-9]+
Publisher X String [A-Za-z0-9]+
Versão X String SemVer v2

Metadados

Nome Obrigatório Type Restrições Descrição
DisplayName X String Recomendação de 80 caracteres O portal poderá não exibir o nome do item corretamente se ele tiver mais de 80 caracteres.
PublisherDisplayName X String Recomendação de 30 caracteres O portal poderá não exibir o nome do editor corretamente se ele tiver mais de 30 caracteres.
PublisherLegalName X String Máximo de 256 caracteres
Resumo X String 60 a 100 caracteres
LongSummary X String 140 a 256 caracteres Ainda não aplicável no Azure Stack Hub.
Descrição X HTML 500 a 5.000 caracteres

Imagens

O Marketplace usa os seguintes ícones:

Nome Largura Altura Observações
Ampla 255 px 115 px Sempre necessário
grande 115 px 115 px Sempre necessário
Médio 90 px 90 px Sempre necessário
Pequena 40 px 40 px Sempre necessário
Captura de tela 533 px 324 px Opcional

Categorias

Cada item do Marketplace deve ser marcado com uma categoria que identifica onde o item aparece na interface do usuário do portal. Você pode escolher uma das categorias existentes no Azure Stack Hub(Computação, Dados + Armazenamentoe assim por diante) ou escolher uma nova.

Cada item do Marketplace pode incluir vários links para conteúdo adicional. Os links são especificados como uma lista de nomes e URIs:

Nome Obrigatório Type Restrições Descrição
DisplayName X String Máximo de 64 caracteres.
Uri X URI

Propriedades adicionais

Além dos metadados anteriores, os autores do Marketplace podem fornecer dados de pares de chave/valor personalizados no seguinte formato:

Nome Obrigatório Type Restrições Descrição
DisplayName X String Máximo de 25 caracteres.
Valor X String Máximo de 30 caracteres.

Limpeza de HTML

Para qualquer campo que permita HTML, os seguintes elementos e atributos são permitidos:

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

Referência: interface do usuário do item do Marketplace

Os ícones e o texto dos itens do Marketplace, como visto no portal do hub de Azure Stack, são os seguintes.

Folha Criar

Criar folha--Azure Stack itens do Marketplace do Hub

Folha de detalhes do item do Marketplace

Folha detalhes do item do Marketplace do hub de Azure Stack

Próximas etapas