你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何发布自定义计算机配置包项目

在开始之前,最好先阅读计算机配置的概述页面。

机器配置自定义 .zip 包必须存储在托管计算机可通过 HTTPS 访问的位置。 示例包括 GitHub 存储库、Azure 存储库、Azure 存储或专用数据中心中的 Web 服务器。

支持 AuditAuditandSet 的配置包以相同的方式发布。 在发布过程中,无需根据包模式执行任何特殊操作。

发布配置包

用于存储配置包的首选位置是 Azure Blob 存储。 对存储帐户没有特殊要求,但最好将该文件托管在计算机附近的某个区域中。 如果不想公开包,可以在 URL 中包含 SAS 令牌,或在专用网络中为计算机实现服务终结点

若要将配置包发布到 Azure Blob 存储,可以按照以下利用 Az.Storage 模块的步骤进行操作。

如果没有存储帐户,请使用以下示例创建一个存储帐户。

# Creates a new resource group, storage account, and container
$ResourceGroup = '<resource-group-name>'
$Location      = '<location-id>'
New-AzResourceGroup -Name $ResourceGroup -Location $Location

$newAccountParams = @{
    ResourceGroupname = $ResourceGroup
    Location          = $Location
    Name              = '<storage-account-name>'
    SkuName           = 'Standard_LRS'
}
$container = New-AzStorageAccount @newAccountParams |
    New-AzStorageContainer -Name machine-configuration -Permission Blob

接下来,获取要在其中存储包的存储帐户的上下文。 如果在前面的示例中创建了存储帐户,则可以从保存在 $container 变量中的存储容器对象获取上下文:

$context = $container.Context

如果使用现有存储容器,可以将容器的连接字符串New-AzStorageContext cmdlet 配合使用:

$connectionString = @(
    'DefaultEndPointsProtocol=https'
    'AccountName=<storage-account-name>'
    'AccountKey=<storage-key-for-the-account>' # ends with '=='
) -join ';'
$context = New-AzStorageContext -ConnectionString $connectionString

接下来,将配置包添加到存储帐户。 本示例将 zip 文件 ./MyConfig.zip 上传到 blob 容器 machine-configuration

$setParams = @{
    Container = 'machine-configuration'
    File      = './MyConfig.zip'
    Context   = $context
}
$blob = Set-AzStorageBlobContent @setParams
$contentUri = $blob.ICloudBlob.Uri.AbsoluteUri

注意

如果在 Cloudshell 中运行这些示例,但在本地创建了 zip 文件,则可以将文件上传到 Cloudshell

虽然下一步是可选的,但应在 URL 中添加共享访问签名 (SAS) 令牌,以确保对包的安全访问。 以下示例生成具有读取访问权限的 blob SAS 令牌,并返回具有共享访问签名令牌的完整 blob URI。 在此示例中,令牌的时间限制为三年。

$startTime = Get-Date
$endTime   = $startTime.AddYears(3)

$tokenParams = @{
    StartTime  = $startTime
    ExpiryTime = $endTime
    Container  = 'machine-configuration'
    Blob       = 'MyConfig.zip'
    Permission = 'r'
    Context    = $context
    FullUri    = $true
}
$contentUri = New-AzStorageBlobSASToken @tokenParams

重要

创建 SAS 令牌后,记下返回的 URI。 创建令牌后,无法检索令牌。 只能创建新令牌。 有关 SAS 令牌的详细信息,请参阅使用共享访问签名 (SAS) 授予对 Azure 存储资源的有限访问权限

下一步