クイックスタート: Visual Studio Code を使用して Bicep ファイルを作成する
このクイックスタートでは、Visual Studio Code を使って Bicep ファイルを作成する方法を説明します。 ストレージ アカウントと仮想ネットワークを作成します。 また、Bicep 拡張機能で開発を簡略化するためのタイプ セーフ、構文検証、オートコンプリートがどのように提供されるのかについても説明します。
Visual Studio でも、同様の作成エクスペリエンスがサポートされています。 詳しくは、「クイック スタート: Visual Studio を使用して Bicep ファイルを作成する」をご覧ください。
前提条件
Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
Bicep の開発環境を設定するには、「Bicep ツールをインストールする」を参照してください。 これらの手順を完了すると、Visual Studio Code と Bicep 拡張機能がインストールされます。 また、最新の Azure CLI バージョンまたは Azure PowerShell モジュールも用意します。
リソース スニペットを追加する
Bicep 拡張機能を含む Visual Studio Code では、開発を易しくするための定義済みのスニペットが提供されます。 このクイックスタートでは、仮想ネットワークを作成するスニペットを追加します。
Visual Studio Code を起動し、main.bicep という名前の新しいファイルを作成します。 main.bicep に「vnet」と入力し、一覧から res-vnet を選んで、TAB または ENTER キーを押します。
ヒント
これらの IntelliSense オプションが Visual Studio Code に表示されない場合は、「前提条件」で指定されているように Bicep 拡張機能をインストールしてあることを確認してください。 この拡張機能をインストールしている場合は、Bicep ファイルを開いた後、Bicep 言語サービスが起動されるまで少し時間を置いてください。 通常これはすぐに起動し、起動するまで IntelliSense オプションは表示されません。 右下隅の通知は、このサービスが起動中であることを示します。 その通知が消えたとき、このサービスが実行されています。
これで、Bicep ファイルには次のコードが追加されました。
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
name: 'name'
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: 'Subnet-1'
properties: {
addressPrefix: '10.0.0.0/24'
}
}
{
name: 'Subnet-2'
properties: {
addressPrefix: '10.0.1.0/24'
}
}
]
}
}
このスニペット内で、仮想ネットワークを定義するために必要なすべての値を見つけます。 2 つの波形の下線に気付かれたかもしれません。 黄色の波型の下線は古い API バージョンに関連する警告を示し、赤色の波型の下線はパラメータ定義が見つからないことに起因するエラーを示します。 Bicep リンターによって、Bicep ファイルに構文エラーとベスト プラクティス違反がないかどうかがチェックされます。 @2019-11-01
の上にカーソルを置くと、ポップアップ ペインに [Use more recent API version for 'Microsoft.Network/virtualNetworks'] と表示されます。 ポップアップ ペインから [クイック修正] を選択し、[2024-05-01 で置換] を選択して API バージョンを更新します。
または、@2019-11-01
を削除し、@
に置き換えます。 最新の API バージョンを選択します。
次のセクションでは、パラメータ定義がないエラーを修正します。
必要に応じてこのコードを変更することもできます。 たとえば、name
は仮想ネットワークの名前としてわかりにくいので、name
プロパティを exampleVnet
に変更します。
name: 'exampleVNet'
パラメーターの追加
前のセクションで追加したコード スニペットには、赤い波下線で示されているように、パラメーター定義 location
がありません。 ファイルの先頭に次を追加します。
param location
location の後にスペースを追加すると、そのパラメータに使用できるデータ型が IntelliSense によって提案されることがわかります。 [string] を選択します。
次のように、パラメータに既定値を指定します。
param location string = resourceGroup().location
前の行は、リソース グループの場所を仮想ネットワーク リソースに割り当てています。 既定値で使われる関数について詳しくは、resourceGroup()
を参照してください。
ファイルの先頭に、(このクイックスタートで後ほど作成する) ストレージ アカウント名のための別のパラメーターを、既定値で追加します。
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
詳しくは、補間と uniqueString()
に関する記事をご覧ください。
このパラメーターは問題なく機能しますが、ストレージ アカウントの名前には長さの制限があります。 名前は 3 文字以上、24 文字以下にする必要があります。 これらの要件は、パラメーターにデコレーターを追加して指定できます。
パラメーターの上に行を追加して、「 @ 」と入力します。 使用できるデコレータが表示されます。 minLength と maxLength の両方にデコレーターがあることに注意してください。
両方のデコレーターを追加して、文字数制限を指定します (例: 以下では 3 と 24)。
@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
また、パラメーターの説明を追加することもできます。 Bicep ファイルをデプロイする人が指定する値を理解するのに役立つ情報を含めます。
@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
これで、パラメータを使用する準備は完了です。
リソースを追加する
スニペットを使用してストレージ アカウントを定義するのではなく、IntelliSense を使用して値を設定します。 IntelliSense によって、この手順は手動で値を入力するよりも簡単になります。
リソースを定義するには、resource
キーワードを使用します。 仮想ネットワークの下に「resource storageAccount」と入力します。
resource storageAccount
storageAccount は、デプロイするリソースのシンボリック名です。 この名前は、Bicep ファイルの他の部分にあるリソースを参照するために使用できます。
シンボリック名の後にスペースを追加すると、リソースの種類の一覧が表示されます。 続けて「storageacc」と入力すると、使用できるオプションから選択できるようになります。
[Microsoft.Storage/storageAccounts] を選択すると、使用できる API バージョンが表示されます。 最新のバージョンを選びます。 次のスクリーンショットでは、これは 2023-05-01 です。
リソースの種類の一重引用符の後に = とスペースを追加します。 リソースにプロパティを追加するためのオプションが表示されます。 [required-properties] を選択します。
このオプションを選択すると、デプロイに必要なリソースの種類のすべてのプロパティが追加されます。 このオプションを選択すると、ストレージ アカウントに次のプロパティが追加されます。
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name:
location:
sku: {
name:
}
kind:
}
もうほとんど終わりであり、次のステップではそれらのプロパティの値を指定します。
ここでも IntelliSense が役立ちます。 name
を storageAccountName
に設定します。これは、ストレージ アカウントの名前を含むパラメーターです。 location
には、先ほど作成したパラメータである location
に設定します。 sku.name
と kind
を追加する際に、IntelliSense によって有効なオプションが表示されます。
必須のプロパティと共に省略可能なプロパティを追加するには、カーソルを目的の場所に置いて、Ctrl+Space キーを押します。 次のスクリーンショットは、IntelliSense で使用可能なプロパティがどのように提案されるのかを示したものです。
完了すると、次のようになります。
@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param location string = resourceGroup().location
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-05-01' = {
name: 'exampleVNet'
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: 'Subnet-1'
properties: {
addressPrefix: '10.0.0.0/24'
}
}
{
name: 'Subnet-2'
properties: {
addressPrefix: '10.0.1.0/24'
}
}
]
}
}
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
Bicep の構文について詳しくは、Bicep ファイルの構造と構文に関する記事をご覧ください。
リソースを視覚化する
Bicep Visualizer では、ファイル内のリソースのグラフィック表現が示されます。
ツールを開くには、右上隅にある Bicep Visualizer ボタンを選びます。
このビジュアライザーでは、Bicep ファイルで定義されているリソースと、それらの依存関係の間のコネクタが示されます。 このクイックスタートで定義した 2 つのリソースには依存関係がないので、それらの間にコネクタはありません。
Bicep ファイルをデプロイする
Visual Studio Code 内で Bicep ファイルを右クリックして、[Bicep ファイルのデプロイ] を選びます。
[Please enter name for deployment] テキスト ボックスに「deployStorageAndVNet」と入力し、Enter キーを押します。
上部の [リソース グループの選択] ボックスで、[新しいリソース グループの作成] を選択します。
リソース グループ名として「exampleRG」と入力し、Enter キーを押します。
リソース グループの場所を選択し、[米国中部] または任意の場所を選択して、Enter キーを押します。
[パラメーター ファイルの選択] から [なし] を選択します。
リソースが作成されるまでしばらくかかります。 詳細については、Visual Studio Code での Bicep ファイルのデプロイに関するページを参照してください。
Azure CLI または Azure PowerShell を使って、Bicep ファイルをデプロイすることもできます。
az group create --name exampleRG --location eastus
az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageAccountName=uniquename
デプロイが完了すると、デプロイが成功したことを示すメッセージが表示されます。
リソースをクリーンアップする
Azure リソースが不要になったら、Azure CLI か Azure PowerShell のどちらかのモジュールを使用してクイックスタート リソース グループを削除します。
az group delete --name exampleRG
次のステップ
「Bicep に関する Learn モジュール」をご覧ください。