Azure Bicepの始め方(ステップバイステップ)

Azureのインフラストラクチャを構築する必要がありますか?ARMテンプレートを見て、「わー、複雑そう」と思ったことはありませんか?多くの人々がARMテンプレートの構築の難しさについて不満を述べたため、マイクロソフトはAzure Bicepという抽象化レイヤーを開発しました。

このチュートリアルでは、ゼロから始める方法を学びます。開発環境のセットアップから最初のBicepテンプレートのデプロイまで、すべてを学ぶことができます!

さあ、始めましょう!

前提条件

このチュートリアルは実践的なデモンストレーションです。一緒に進める場合は、以下のものを準備してください:

  • Windows 10 – このチュートリアルのほとんどのデモは他のオペレーティングシステムでも動作しますが、すべてのデモはWindows 10を使用します。
  • Visual Studio Code – このチュートリアルではv1.60.2を使用します。
  • Azureリソースグループ(デプロイ先) – このチュートリアルでは、ATAというリソースグループを使用します。

Azure Bicepとは何ですか?

Bicepは、ARMテンプレートの構築を容易にする特定ドメインの言語です。Bicepは、ARMテンプレートの上にある抽象化レイヤーと考えることができます。ARMはJSONを使用し、特に大規模な展開には複雑になる可能性があります。

Microsoftは、この複雑さを軽減し、開発エクスペリエンスを向上させるためにBicepを作成することを決定しました。これは新しい言語ではなく、JSON ARMテンプレートの改良と考えてください。

Bicep開発環境のセットアップ

Bicepテンプレートの開発を開始するには、最良の結果を得るのに役立つ環境をセットアップする必要があります。そのためには、いくつかのツールが利用できます。まず、VS Code Bicep拡張機能、Bicep CLI、およびオプションでAzure PowerShellモジュールを含む必要な環境を設定しましょう。

VS Code Bicep拡張機能のインストール

VS CodeはBicepテンプレートを構築するための優れた開発ツールです。そのため、MicrosoftはVS Code拡張機能を提供しており、これによりBicepテンプレートの作成が容易になります。VS Codeの開発環境を構築するために、まずVS Codeを準備しましょう。

Visual Studio Codeを開き、拡張機能ボタンをクリックします。

Opening extensions

検索バーに「bicep」と入力します。1つのBicep拡張機能が表示されるはずです。これが表示されたら、インストールをクリックします。しばらくすると、VS CodeにBicep拡張機能がインストールされます。

Search and install bicep extension

次のセクションでBicepテンプレートをコピー/貼り付けする手順がありますが、Bicepテンプレートをゼロから作成する必要がある場面もあるでしょう。VS CodeのBicep拡張機能は、特にそのIntellisense機能によってここで役立ちます。

.bicepの拡張子を持つファイルをVS Codeで開くと、VS Codeはショートカットを提供しようとします。たとえば、Bicepテンプレートでresourceキーワードを使用してAzureリソースを作成します。Bicep拡張機能がインストールされていると、VS Codeはこれを理解します。

Typing the resource command

提供されたメニューオプションのうちの1つを選択すると、毎回正確な構文を覚える必要なく、自動的に記入するためのテンプレートが作成されます。

Blank bicep template

ピリオド( . )は、Bicepテンプレートを作成する際に便利なショートカットです。たとえば、propertiesセクションでこれを入力すると、ストレージアカウントの利用可能なすべてのプロパティが表示されます。

Properties available for a storage account

Bicep CLIのインストール

作成したら、BicepテンプレートをBicep CLIを介して呼び出す必要があります。Bicep CLIをインストールしようとする前に、既にインストールされていないかどうかを確認してください。インストールされているAzure CLIのバージョンによっては、すでにBicep CLIが含まれているかもしれません。確認するには、PowerShellコンソールまたはターミナルを開いてBicep CLIのバージョンを確認します。

	az bicep version

Bicep CLIがインストールされている場合、以下のようにバージョンステートメントが表示されます。

Bicep CLI version

Bicep CLIが見つからないというエラーメッセージが表示される場合は、installサブコマンドを実行してBicep CLIをインストールします。

az bicep install

これで、Bicep CLIが正常にインストールされ、使用準備が整いました。以下に出力が表示されます。

Bicep installed successfully

代替のインストール方法として、Bicep Windows Installerを使用してもBicep CLIをインストールできます。

ストレージアカウントをデプロイするためのBicepテンプレートの作成

あなたはBicepを使用していくつかの複雑なAzureリソースをデプロイできますが、まずはゆっくり始めましょう。最初のBicepテンプレートとして、単純なAzureストレージアカウントを作成し、次のセクションでAzure CLIとPowerShellの両方を使用してデプロイできるようにします。

1. VS Codeを開き、main.bicepという新しいファイルを作成します。ここで示されているようにファイルの名前を正確に指定する必要はありませんが、テンプレートをmainと呼び、.bicep拡張子を使用するのが一般的です。

2. 下記のBicepテンプレートコードをファイルにコピーして保存します。このテンプレートにはBicepテンプレートを構成するさまざまな属性が含まれています。

最初に、すべてのBicepテンプレートに共通するいくつかの属性が表示されます:

  • リソース識別子(resource myStorage) – Bicepに新しいリソースmyStorageを作成するよう指示します。この名前はBicepテンプレート内の特定のリソースを識別します。これはAzureで作成されるリソースの名前ではありません。
  • Microsoft.Storage/storageAccounts@2019-06-01 – リソースプロバイダMicrosoft.Storage、リソースタイプstorageAccounts、および使用するAPIバージョン(2019-06-01)で構成されたタイプを定義します。
  • name Azureで表示されるリソースの名前(Azureリソースのルールと制限に注意してください)
  • location – リソースを作成するAzureリージョン。

storageAccounts リソースタイプに固有の属性も見ることができます:

  • SKU – プロパティ name で定義されたストレージアカウント SKU (Standard_LRS)
  • kind – ストレージアカウントのタイプ (StorageV2)。
  • properties この例では accessTier のような独自のセクションを持たないリソース固有のプロパティです。これらのプロパティは、ARM テンプレート で見つけることができるものと同じです。
resource myStorage 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  name: 'ata2021bicepdiskstorage'
  location: 'uksouth'
  SKU: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
        
  }
}

PowerShell を使用した Bicep テンプレートのデプロイ

前述のように、Bicep テンプレートをデプロイする方法は 2 つあります。Azure CLI と Azure PowerShell モジュールを使用する方法です。まず、PowerShell を使用して Bicep テンプレートをデプロイします。

このセクションを開始する前に、Azure PowerShell モジュールがインストールされており、Azure に認証されていることを確認してください。

デプロイするAzureリソースは、Bicepテンプレートを使用することは、ARMテンプレートを展開することと同じです。Microsoftは基本的に、New-AzResourceGroupDeploymentなどの既存のPowerShell ARM cmdletにBicep言語のサポートを追加しました。

PowerShellコンソールで、New-AzResourceGroupDeploymentコマンドレットを使用して、Bicepテンプレートのパスと展開先のResourceGroupNameを指定して新しいリソースグループデプロイを呼び出します。ARMテンプレートとまったく同じようにBicepテンプレートを使用できることに気付くでしょう。

New-AzResourceGroupDeployment -TemplateFile main.bicep -ResourceGroupName ATA

デプロイが成功した場合、PowerShellセッションでProvisioningStateプロパティが成功と表示される以下の出力が表示されるはずです。以上です!

Deploying resource with Bicep

リソースが正常に作成されたか確認するには、Azure Portalにログインし、リソースグループに移動して、そのリソースグループ内に新しく作成されたストレージアカウントが表示されます。

Azure Portal

デモとしてストレージアカウントを作成している場合は、削除するのを忘れないでください!ResourceNameはBicepテンプレートで提供されたnameと一致していることに注意してください。

Remove-AzResource -ResourceName ata2021bicepdiskstorage -ResourceGroupName ATA -ResourceType "Microsoft.Storage/storageAccounts"

次に、以下の出力が表示されます。

Removing an Azure storage account

Azure CLIを使用してBicepテンプレートをデプロイする

このチュートリアルを締めくくるために、さっき構築したBicepテンプレートをAzure CLIでデプロイする方法について説明します。

確認してください Azure CLI v2.2.0+ がインストールされ、サインインされていることを、このセクションを始める前に。

PowerShellまたは他のターミナルを開いた状態で、az deployment group createコマンドを使用してARMデプロイメントを実行します。このコマンドは、PowerShellと同様にARMデプロイメントを実行します。必ずresource-groupと、前もって作成したBicepテンプレートをtemplate-fileパラメータで指定してデプロイしてください。

az deployment group create --resource-group ATA --template-file main.bicep

provisioningStateSucceededと表示されたら、以下に示すように、ARMはBicepテンプレートを読み取り、その中のすべての指示を実行しました!

provisioningState as Succeeded
Output in JSON from az deployment command

az resource delete -g ATA -n ata2021bicepdiskstorage --resource-type "Microsoft.Storage/storageAccounts"を使用してリソースをクリーンアップすることを忘れないでください。

結論

これで、Azure Bicepの開発環境を作成し、Azureでリソースを作成しました。次のステップは何でしょうか?おそらく、Bicepに関するMicrosoft Learnが提供するものを見てみることですか?

同僚にBicepが組織のお手伝いになる方法をデモンストレーションすることはいかがでしょうか?

Source:
https://adamtheautomator.com/azure-bicep/