次の方法で共有


カスタム マシン構成パッケージの成果物の公開方法

開始する前に、マシン構成の概要ページを参照することをお勧めします。

マシン構成のカスタム .zip パッケージは、マネージド マシンから HTTPS 経由でアクセスできる場所に格納する必要があります。 たとえば、GitHub リポジトリ、Azure リポジトリ、Azure Storage、またはプライベート データセンター内の Web サーバーなどです。

AuditAuditandSet をサポートする構成パッケージは、同じ方法で公開されます。 パッケージ モードに基づいた公開時には、特別なことを行う必要はありません。

構成パッケージの公開

構成パッケージの保存先として推奨される場所は Azure Blob Storage です。 ストレージ アカウントに特別な要件はありませんが、自分のコンピューターの近くのリージョンでファイルをホストすることをお勧めします。 パッケージを公開したくない場合は、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 コマンドレットでコンテナーの接続文字列を使用できます。

$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

Note

Cloudshell でこれらの例を実行していても、zip ファイルをローカルに作成した場合は、Cloudshell にファイルをアップロードできます。

この次の手順は省略可能ですが、パッケージへの安全なアクセスを確保するために、URL に共有アクセス署名 (SAS) トークンを追加する必要があります。 次の例では、読み取りアクセス権を持つ BLOB SAS トークンを生成し、共有アクセス署名トークンを含む完全な BLOB URI を返します。 この例では、トークンの制限時間は 3 年です。

$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 トークンの詳細については、「Shared Access Signatures (SAS) を使用して Azure Storage リソースへの制限付きアクセスを許可する」を参照してください。

次のステップ