Criar e publicar um item personalizado do Azure Stack Hub Marketplace

Cada artigo publicado no Azure Stack Hub Marketplace utiliza o formato Azure Gallery Package (.azpkg). A ferramenta Azure Gallery Packager permite-lhe criar um pacote personalizado da Azure Gallery que pode fazer o upload para o Azure Stack Hub Marketplace, que pode ser descarregado pelos utilizadores. O processo de implementação utiliza um modelo de Gestor de Recursos Azure.

Artigos de mercado

Os exemplos deste artigo mostram como criar uma única oferta VM Marketplace, de tipo Windows ou Linux.

Pré-requisitos

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

  1. Faça o upload da imagem VM personalizada para o portal Azure Stack Hub, seguindo as instruções em Adicionar uma imagem VM ao Azure Stack Hub.
  2. Siga as instruções deste artigo para embalar a imagem (criar um .azpkg) e carregá-la para o Azure Stack Hub Marketplace.

Criar um item marketplace

Para criar um item de mercado personalizado, faça o seguinte:

  1. Descarregue a ferramenta Azure Gallery Packager:

    Embalador de galeria

  2. A ferramenta inclui pacotes de amostras que estão no formato .azpkg, e deve ser extraído primeiro. Pode mudar o nome das extensões de ficheiros de ".azpkg" para ".zip", ou utilizar uma ferramenta de arquivo à sua escolha:

    Pacotes de amostras

  3. Uma vez extraído, o ficheiro .zip contém os modelos Linux ou Windows Azure Resource Manager que estão disponíveis. Pode reutilizar os modelos de Gestor de Recursos pré-fabricados e modificar os respetivos parâmetros com os detalhes do produto do item que irá apresentar no seu portal Azure Stack Hub. Ou, pode reutilizar o ficheiro .azpkg e saltar os seguintes passos para personalizar o seu próprio pacote de galeria.

  4. Crie um modelo de Gestor de Recursos Azure ou use os nossos modelos de amostra para Windows/Linux. Estes modelos de amostra são fornecidos na ferramenta de embalagem .zip ficheiro que descarregou no passo 1. Pode utilizar o modelo e alterar os campos de texto, ou pode descarregar um modelo pré-configurado a partir de GitHub. Para obter mais informações sobre os modelos do Gestor de Recursos Azure, consulte os modelos do Gestor de Recursos Azure.

  5. A embalagem da Galeria deve conter a seguinte estrutura:

    Screenshot da estrutura do pacote da Galeria

  6. Substitua os seguintes valores destacados (os que têm números) no modelo Manifesto.json pelo valor que forneceu ao carregar a sua imagem personalizada.

    Nota

    Nunca código duro quaisquer segredos tais como chaves de produto, senha ou qualquer informação identificável do cliente no modelo Azure Resource Manager. Os ficheiros JSON do modelo são acessíveis sem a necessidade de autenticação uma vez publicados na galeria. Guarde todos os segredos no Key Vault e ligue-os de dentro do modelo.

    Recomenda-se que, antes de publicar o seu próprio modelo personalizado, tente publicar a amostra como está e certifique-se de que funciona no seu ambiente. Depois de verificar este passo, elimine a amostra da galeria e faça alterações iterativas até que esteja satisfeito com o resultado.

    O modelo a seguir é uma amostra do ficheiro Manifesto.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 da editora, sem espaço.
    • (3) - A versão do seu modelo, sem espaço.
    • (4) - O nome que os clientes vêem.
    • (5) - O nome da editora que os clientes vêem.
    • (6) - O nome jurídico do editor.
    • (7) - O caminho e o nome de cada ícone.
  7. Para todos os campos que se referem ao ms-recurso,deve alterar os valores apropriados dentro do ficheiro 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 de ficheiros de modelos de implantação aparece da seguinte forma:

    Modelos de implementação

    Substitua os valores da imagem no ficheiro createuidefinition.json pelo valor que forneceu ao carregar a sua imagem personalizada.

  9. Para garantir que o recurso pode ser implementado com sucesso, teste o modelo com as APIs do Hub Azure Stack.

  10. Se o seu modelo depender de uma imagem de máquina virtual (VM), siga as instruções para adicionar uma imagem VM ao Azure Stack Hub.

  11. Guarde o seu modelo de Gestor de Recursos Azure na pasta /Contoso.TodoList/DeploymentTemplates.

  12. Escolha os ícones e texto para o seu item Marketplace. Adicione ícones à pasta Ícones e adicione texto ao ficheiro de recursos na pasta Strings. Utilize a pequena,média,grandee ampla convenção de nomeação para ícones. Consulte a referência uI do item Marketplace para uma descrição detalhada destes tamanhos.

    Nota

    Todos os quatro tamanhos de ícone (pequenos, médios, grandes, largos) são necessários para construir corretamente o item Marketplace.

  13. Para mais edições para Manifest.json,consulte Referência: Marketplace item manifest.json.

  14. Quando terminar de modificar os seus ficheiros, converta-os num ficheiro .azpkg. Executa a conversão utilizando a ferramenta AzureGallery.exe e o pacote de galeria de amostras que descarregou anteriormente. Execute o seguinte comando:

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

    Nota

    O caminho de saída pode ser qualquer caminho que escolha, e não tem de estar abaixo do C: unidade. No entanto, deve existir todo o caminho para o ficheiro manifesto.json e para o pacote de saída. Por exemplo, se o caminho de saída C:\<path>\galleryPackageName.azpkg for, a pasta C:\<path> deve existir.

Publicar um item marketplace

  1. Utilize o PowerShell ou Explorador de Armazenamento do Azure para carregar o seu item Marketplace (.azpkg) para o armazenamento da Azure Blob. Você pode fazer upload para o armazenamento local do Azure Stack Hub ou fazer upload para a Azure Armazenamento, que é um local temporário para o pacote. Certifique-se de que a bolha está acessível ao público.

  2. Para importar o pacote de galeria para O Azure Stack Hub, o primeiro passo é ligar remotamente (RDP) ao VM cliente, de forma a copiar o ficheiro que acabou de criar para o seu Azure Stack Hub.

  3. Adicione um contexto:

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

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

    Se tiver um erro ao executar Add-AzsGalleryItem,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 etapas sobre a desinstalação dos seus módulos PowerShell, consulte desinstalar as versões existentes dos módulos Azure Stack Hub PowerShell.

  5. Verifique se tem uma conta Armazenamento válida que esteja disponível para guardar o seu artigo. Pode obter o GalleryItemURI valor do portal de administradores Azure Stack Hub. Selecione Armazenamento conta - Blob Properties - > URL,com a extensão .azpkg. A conta de armazenamento é apenas para uso temporário, a fim de publicar no mercado.

    Depois de completar o seu pacote de galeria e de o fazer o upload utilizando o Add-AzsGalleryItem,o seu VM personalizado deve agora aparecer no Marketplace, bem como na vista Criar um recurso. Note que o pacote de galeria personalizado não é visível na Marketplace Management.

    Item de mercado personalizado carregadoItem de mercado personalizado

  6. Uma vez que o seu item tenha sido publicado com sucesso no mercado, pode eliminar o conteúdo da conta de armazenamento.

    Todos os artefactos de galeria padrão e os artefactos da sua galeria personalizada estão agora acessíveis sem autenticação nos 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. Pode remover um item marketplace utilizando o cmdlet Remove-AzGalleryItem. Por exemplo:

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

Nota

A UI do Mercado pode apresentar um erro depois de remover um item. Para corrigir o erro, clique Definições no portal. Em seguida, selecione Descartar modificações sob a personalização do Portal.

Referência: Marketplace item manifest.json

Informação de identidade

Name Necessário Tipo 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

Name Necessário Tipo Restrições Description
DisplayName X String Recomendação de 80 caracteres O portal pode não exibir o seu nome de produto corretamente se for superior a 80 caracteres.
Nome de Editordisplay X String Recomendação de 30 caracteres O portal pode não exibir corretamente o nome do seu editor se for superior a 30 caracteres.
Nome editorlegal 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.
Description X HTML 500 a 5.000 caracteres

Imagens

O Marketplace utiliza os seguintes ícones:

Name Width Height Notas
Largo 255 px 115 px Sempre requerido
Grande 115 px 115 px Sempre requerido
Médio 90 px 90 px Sempre requerido
Pequeno 40 px 40 px Sempre requerido
Captura de ecrã 533 px 324 px Opcional

Categorias

Cada item do Marketplace deve ser marcado com uma categoria que identifique onde o item aparece no portal UI. Pode escolher uma das categorias existentes no Azure Stack Hub(Computação,Dados + Armazenamento,e assim por diante) ou escolher uma nova.

Cada item do Marketplace pode incluir várias ligações a conteúdos adicionais. Os links são especificados como uma lista de nomes e URIs:

Name Necessário Tipo Restrições Description
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 personalizados de chave/valor de pares na seguinte forma:

Name Necessário Tipo Restrições Description
DisplayName X String Máximo de 25 caracteres.
Valor X String Máximo de 30 caracteres.

Saneamento HTML

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

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

Referência: Marketplace item UI

Os ícones e texto para itens marketplace como visto no portal Azure Stack Hub são os seguintes.

Criar painel

Criar itens de mercado de hub de pilha de azure

Lâmina de detalhes de item do mercado

Azure Stack Hub Marketplace item de item

Passos seguintes