クイック スタート: Bicep モジュールをプライベート モジュール レジストリに発行する
Bicep モジュールをプライベート モジュール レジストリに発行する方法と、Bicep ファイルからモジュールを呼び出す方法について説明します。 プライベート モジュール レジストリを使用すると、組織内で Bicep モジュールを共有できます。 詳細については、「Bicep モジュール用のプライベート レジストリを作成する」を参照してください。
前提条件
Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
モジュール レジストリを使用するには、Bicep CLI バージョン 0.4.1008 以降が必要です。 Azure CLI で使用するには、Azure CLI バージョン 2.31.0 以降も必要です。Azure PowerShell で使用するには、Azure PowerShell バージョン 7.0.0 以降も必要です。
Bicep レジストリは Azure Container Registry (ACR) でホストされます。 作成するには、「クイック スタート: Bicep ファイルを使用したコンテナー レジストリの作成」を参照してください。
Bicep の開発環境を設定するには、「Bicep ツールをインストールする」を参照してください。 これらの手順を完了すると、Visual Studio Code と Bicep 拡張機能、または Visual Studio と Bicep 拡張機能を利用できるようになります。
Bicep モジュールを作成する
モジュールとは、別の Bicep ファイルからデプロイされる Bicep ファイルです。 すべての Bicep ファイルをモジュールとして使用できます。 このクイック スタートでは、次の Bicep ファイルを使用できます。 これにより、ストレージ アカウントが作成されます。
@minLength(3)
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_RAGRS'
'Standard_ZRS'
'Premium_LRS'
'Premium_ZRS'
'Standard_GZRS'
'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'
param location string
var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageSKU
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
}
}
output storageEndpoint object = stg.properties.primaryEndpoints
Bicep ファイルを storage.bicep として保存します。
モジュールの発行
Azure コンテナー レジストリ (ACR) をお持ちでない場合は、「前提条件」を参照して作成してください。 ACR のログイン サーバー名が必要です。 ログイン サーバー名の形式は <registry-name>.azurecr.io
です。 ログイン サーバー名を取得するには、次の操作を行います。
az acr show --resource-group <resource-group-name> --name <registry-name> --query loginServer
次の構文を使用して、Bicep ファイルをモジュールとしてプライベート モジュール レジストリに発行します。
az bicep publish --file storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html
前のサンプルでは、./storage.bicep が発行する Bicep ファイルです。 必要に応じて、ファイル パスを更新します。 モジュール パスの構文は次のとおりです。
br:<registry-name>.azurecr.io/<file-path>:<tag>
- br は、Bicep レジストリのスキーマ名です。
- ファイル パスは、Azure Container Registry では
repository
と呼ばれます。/
文字で区切ることで、複数のセグメントをファイル パスに含めることができます。 このファイル パスは、レジストリに存在しない場合に作成されます。 - タグは、モジュールのバージョンを指定するために使用します。
発行されたモジュールを確認するために、ACR リポジトリを一覧表示できます。
az acr repository list --name <registry-name> --output table
モジュールを呼び出す
モジュールを呼び出すには、Visual Studio Code で新しい Bicep ファイルを作成します。 新しい Bicep ファイルで、次の行を入力します。
module stgModule 'br:<registry-name>.azurecr.io/bicep/modules/storage:v1'
<registry-name> を一意のレジストリ名に置き換えます。 モジュールをローカル キャッシュに復元するには少し時間がかかります。 モジュールが復元された後、モジュール パスの下にある赤い波線は削除されます。 行の末尾に = とスペースを追加し、次のスクリーンショットに示されているように "required-properties" を選択します。 モジュール構造が自動的に設定されます。
次の例は、完成した Bicep ファイルです。
@minLength(3)
@maxLength(11)
param namePrefix string
param location string = resourceGroup().location
module stgModule 'br:ace1207.azurecr.io/bicep/modules/storage:v1' = {
name: 'stgStorage'
params: {
location: location
storagePrefix: namePrefix
}
}
Bicep ファイルをローカルに保存し、その Bicep ファイルを Azure CLI または Azure PowerShell を使用してデプロイします。
resourceGroupName = "{provide-a-resource-group-name}"
templateFile="{provide-the-path-to-the-bicep-file}"
az group create --name $resourceGroupName --location eastus
az deployment group create --resource-group $resourceGroupName --template-file $templateFile
Azure portal で、ストレージ アカウントが正常に作成されたことを確認します。
リソースをクリーンアップする
Azure リソースが不要になったら、Azure CLI か Azure PowerShell のどちらかのモジュールを使用してクイックスタート リソース グループを削除します。
resourceGroupName = "{provide-the-resource-group-name}"
az group delete --name $resourceGroupName