Azure Marketplace预览版托管应用自动化部署技术问询
Azure Marketplace预览版托管应用自动化部署问题解答
问题1:是否有支持的方式(Azure CLI/PowerShell/REST API)获取Marketplace预览版产品的最新artifact/模板URI?
- 可通过以下官方支持方式获取:
- Partner Center REST API:调用针对预览版listing的artifact查询接口(如
/products/{product-id}/skus/{sku-id}/listings/{listing-id}/preview-artifacts),需使用产品发布者账号的身份验证令牌(应用+用户令牌或服务主体令牌)。 - Azure PowerShell Partner Center模块:安装
PartnerCenter模块后,执行Get-PartnerProductSkuListingArtifact命令,指定产品ID、SKU ID和预览版listing ID,即可返回包含模板URI的artifact详情。 - Marketplace Catalog API:通过
Microsoft.Marketplace.Catalog提供的接口查询预览版产品的artifact信息,调用者需拥有产品发布者权限。
- Partner Center REST API:调用针对预览版listing的artifact查询接口(如
问题2:是否可通过Azure CLI、Azure PowerShell、REST API程序化部署Azure Managed Application(预览版Marketplace产品),且无需手动引用ARM模板URI?
- 可以,无需手动指定模板URI:
- Azure CLI:使用
az managedapp create命令,通过--plan参数传入发布者ID、产品ID、SKU ID(格式:publisher-name/product-name/sku-name),CLI会自动拉取对应预览版的最新部署模板。 - Azure PowerShell:执行
New-AzManagedApplication命令,设置-MarketplaceIdentifier参数为publisher.product.sku格式,系统会自动关联并获取预览版的最新模板。 - REST API:调用
Microsoft.Solutions/applications的createOrUpdate接口,在请求体的plan属性中指定publisher、product、name(SKU)字段,无需手动填写templateLink。
- Azure CLI:使用
问题3:使用带templateLink的Microsoft.Resources/deployments是自动化预览版部署的正确方式吗?
- 不是。这种方式本质是直接部署ARM模板,未利用托管应用的封装特性,且每次预览版发布都会生成新的artifact ID导致模板URI变更,需要手动维护链接,无法实现无干预的自动化,完全不符合预览版快速迭代的需求。
问题4:或者是否应使用Microsoft.Solutions/applications资源(托管应用部署)?
- 是的,这是部署Azure Marketplace托管应用的标准且官方推荐方式。它会自动处理:
- 从Marketplace拉取对应预览版的最新模板
- 创建并管理托管资源组
- 关联Marketplace产品的生命周期(后续版本更新可自动关联)
完全适配预览版迭代场景,无需手动跟踪模板URI。
问题5:针对Partner Center预览版受众部署的自动化,是否有官方指导或最佳实践?
- 官方推荐的最佳实践包括:
- 权限配置:使用同时具备Partner Center产品管理权限和Azure资源部署权限的服务主体(Service Principal)作为自动化流程的身份,避免使用个人账号。
- 触发机制:每次预览版发布后,通过Partner Center的Webhook或API轮询触发部署流程,自动获取最新产品元数据。
- 部署验证:通过Azure Resource Graph查询托管应用状态,或检查托管资源组内的资源健康状态,完成自动化验证。
- 资源销毁:直接删除
Microsoft.Solutions/applications资源,系统会自动清理关联的托管资源组,无需手动逐个删除资源。
内容的提问来源于stack exchange,提问作者moizhmed
相关产品推荐
相关产品推荐

