云操作员可从市场下载项到 Azure Stack Hub,并使这些项可供在 Azure Stack Hub 环境中的所有用户使用。 可以选择的项来自精心挑选的 Azure 市场项列表,这些项经过预先测试和支持,可与 Azure Stack Hub 配合使用。 其他项会不断地添加到此列表中,因此请不时地返回查看新内容。
有两种下载市场产品的场景:
- 断开连接或部分连接的场景:需要使用 Marketplace 联合工具连接到互联网以下载 Marketplace 项目。 然后,将下载内容传输到离线 Azure Stack Hub 安装中。 此方案使用 PowerShell。
- 联网场景:需将 Azure Stack Hub 环境连接到 Internet。 使用 Azure Stack Hub 管理员门户查找和下载项。
要获取可下载的 Azure Stack Hub 的 Azure 市场条目的完整列表,请参阅 Azure Marketplace items for Azure Stack Hub。
注释
目录将因 Azure Stack Hub 系统连接到的云而异。 云环境由用于注册 Azure Stack Hub 的 Azure 订阅决定。
注释
还可以使用操作员访问工作站 (OAW) 访问特权终结点 (PEP)、支持场景的管理员门户和 Azure Stack Hub GitHub 工具。 有关详细信息,请参阅 Azure Stack Hub 操作员访问工作站。
通过连接的部署,您可以使用管理员门户下载商城商品。
先决条件
Azure Stack Hub 部署必须具有 Internet 连接,并且已注册到 Azure。
使用门户网站下载市场商品
- 登录到 Azure Stack Hub 管理员门户。 
- 下载市场项之前,请查看可用的存储空间。 稍后,选择要下载的项目时,可以将下载大小与可用存储容量进行比较。 如果容量有限,请考虑使用管理可用空间的选项。 - 若要查看可用空间:在 区域管理中,选择要浏览的区域,然后转到 资源提供程序>存储:   
- 打开 Azure Stack Hub 市场并连接到 Azure。 要做到这一点,请选择“市场管理”服务,然后选择“市场项”,最后选择“从 Azure 中添加”:   
- 每个行项还显示当前可用的版本。 如果某个市场项有多个可用版本,“版本”列会显示“多个”。 可以单击每个项目以查看其说明和其他信息,包括其下载大小:   
- 如果某个项的版本显示为“多个”,你可以选择该项,然后从显示的版本选择器下拉列表中选择特定的版本。 请注意,Microsoft 现在可以通过添加属性来阻止管理员下载由于各种属性(例如,Azure Stack 版本或计费模型)而与其 Azure Stack 不兼容的市场产品。 只有 Microsoft 才能添加以下属性: 
- 选择所需的项,然后选择“下载”。 下载时间因网络连接而异。 下载完成后,可以 Azure Stack Hub 操作员或用户的身份部署新市场项。 
- 若要部署下载的项目,请选择 + 创建资源,然后搜索新市场项的类别。 接下来,选择该项以开始部署过程。 该过程根据市场项的不同而异。 
当 Azure Stack Hub 具有有限或没有 Internet 连接时,可以使用 PowerShell 和 市场联合工具 将市场项下载到具有 Internet 连接的计算机。 然后,将这些项传输到 Azure Stack Hub 环境。 在断开连接的环境中,无法使用 Azure Stack Hub 门户下载市场项。
市场分发工具也可以在联网的情境中使用。
此方案有两个部分:
- 第 1 部分:从市场项下载。 在具有 Internet 访问权限的计算机上,配置 PowerShell,下载聚合工具,然后从 Azure 市场下载商品。
- 第 2 部分:上传并发布到 Azure Stack Hub 市场。 将下载的文件移动到 Azure Stack Hub 环境,然后将其发布到 Azure Stack Hub 市场。
先决条件
- 联网环境(不必是 Azure Stack Hub)。 需要连接才能从 Azure 获取产品列表及其详细信息,并在本地下载所有产品。 完成此操作后,该过程的其余部分不需要 Internet 连接。 它创建之前下载的项目目录,供你在断开连接的环境中使用。
- 一个用于连接离线环境和传输所有必要项目的可移动媒体。
- 具有以下先决条件的断开连接的 Azure Stack Hub 环境:- Azure Stack Hub 部署必须注册到 Azure。
- 已建立 Internet 连接的计算机必须已安装 Azure Stack Hub PowerShell 模块版本 1.2.11 或更高版本。 如果未安装,请安装 Azure Stack Hub 特定的 PowerShell 模块。
- 为了能够导入已下载的市场项,必须配置 Azure Stack Hub 操作员的 PowerShell 环境。
- .NET Framework 4.7 或更高版本。
 
使用以下命令从 PowerShell Gallery 中下载 Azs.Syndication.Admin 模块:
Install-Module -Name Azs.Syndication.Admin
Install-Module -Name Azs.Syndication.Admin -RequiredVersion 0.1.154-preview -AllowPrerelease
注册 Azure Stack Hub 后,可以忽略市场管理边栏选项卡上显示的以下消息,因为这与断开连接的用例无关:
               
              
            
使用市场联合工具下载市场项
在每次断开连接的情况下下载市场条目时,请务必下载市场同步工具。 此工具经常发生更改,每次下载都应使用最新版本。
重要
建议使用 Az 模块而不是 AzureRM,因为 AzureRM 已被弃用。 请参阅以下示例。
- 在具有 Internet 连接的计算机上,以管理员身份打开 PowerShell 控制台。 
- 使用用于注册 Azure Stack Hub 的 Azure 帐户登录到相应的 Azure 云和 Entra ID 目录租户。 若要添加帐户,请在 PowerShell 中运行 - Connect-AzAccount:- Connect-AzAccount -Environment AzureChinaCloud -Tenant '<mydirectory>.partner.onmschina.cn'- 系统会提示输入 Azure 帐户凭据,可能需要使用双重身份验证,具体取决于帐户配置。 - 注释 - 如果会话过期、密码已更改或你需要切换帐户,请在使用 - Connect-AzAccount登录之前先运行以下 cmdlet:- Remove-AzAccount -Scope Process。
- 如果有多个订阅,请运行以下命令以选择用于注册的订阅: - Get-AzSubscription -SubscriptionID 'Your Azure Subscription GUID' | Select-AzSubscription
- 如果您使用的是最新版本的 Azure Stack Hub,并且尚未在先决条件步骤中完成此操作,请下载最新版本的市场联合工具。 
Install-Module -Name Azs.Syndication.Admin
Install-Module -Name Azs.Syndication.Admin -RequiredVersion 0.1.154-preview -AllowPrerelease
- 若要选择要下载的 VM 映像、扩展或解决方案模板等市场项,请运行以下命令: - $products = Select-AzsMarketplaceItem- 此时会显示一个表,其中列出了所选订阅中可用的所有 Azure Stack 注册。 选择与要下载其市场项的 Azure Stack 环境相匹配的注册,然后选择“确定”。   - 现在您应该能看到第二个表格,其中列出了所有可供下载的市场商品。 选择要下载的项,并记下版本。 可以按住 Ctrl 键来选择多个图像。   - 还可以使用 添加条件 选项筛选图像列表。   - 做出选择后,选择确定。 
- 为下载选择的市场项的 ID 保存在 - $products变量中。 使用以下命令下载所选项目。 将目标文件夹路径替换为用于存储从 Azure 市场下载的文件的位置:- $products | Export-AzsMarketplaceItem -RepositoryDir "Destination folder path in quotes"
- 下载所需的时间取决于项目的大小。 下载完成后,该项将出现在脚本中指定的文件夹中。 下载内容包括 VHD 文件(适用于虚拟机),或 .zip 文件(适用于虚拟机扩展和资源提供程序)。 它还可能包含 - .azpkg格式的图库包,这是一个 .zip 文件。
- 如果下载失败,可以通过重新运行以下 PowerShell cmdlet 来重试: - $products | Export-AzsMarketplaceItem -RepositoryDir "Destination folder path in quotes"
- 还应在本地导出 Azs.Syndication.Admin 模块,以便将其复制到从中将市场项导入到 Azure Stack Hub 的计算机。 - 注释 - 导出此模块的目标文件夹应不同于导出市场项的位置。 - Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name Azs.Syndication.Admin -Path "Destination folder path in quotes" -Force
使用 PowerShell 导入下载内容并发布到 Azure Stack Hub 市场
- 你必须在本地将以前下载的文件移动到已连接到 Azure Stack Hub 环境的计算机。 市场联合工具还必须可用于 Azure Stack Hub 环境,因为需要使用该工具来执行导入操作。 - 下图显示了文件夹结构示例。 D:\downloadfolder 包含所有已下载的市场项。 每个子文件夹都是一个市场项目(例如,microsoft.custom-script-linux-arm-2.0.3),并以产品 ID 命名。 每个子文件夹内都有市场物品的下载内容。   
- 按照使用 PowerShell 连接到 Azure Stack Hub 中的说明配置 Azure Stack Hub 操作员 PowerShell 会话。 
- 使用对“默认提供程序订阅”拥有所有者访问权限的标识登录到 Azure Stack Hub。 
- 复制文件夹的名称;例如,microsoft.dsc-arm-2.77.0,并创建具有该名称的文件夹。 
- 将下载的文件夹移动到该文件夹。 此时,你具有 C:\microsoft.dsc-arm-2.77.0\microsoft.dsc-arm-2.77.0\original-sub-folders-are-here 和 C:\microsoft.dsc-arm-2.77.0\microsoft.dsc-arm-2.77.0\productDetails.json。 
- 导入联合模块,然后通过运行以下 cmdlet 启动市场联合工具: - Import-AzsMarketplaceItem -RepositoryDir "C:\microsoft.dsc-arm-2.77.0"
- cmdlet 成功完成后,市场项应在 Azure Stack Hub 市场中可用。 
