Share via


クイック スタート: 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 CodeBicep 拡張機能、または Visual StudioBicep 拡張機能を利用できるようになります。

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@2021-06-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" を選択します。 モジュール構造が自動的に設定されます。

Visual Studio Code Bicep 拡張機能の必須プロパティ

次の例は、完成した 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

次のステップ