Azure環境を自動的に構築するBicepが超便利!
はじめに
OutlookアドインやSharePoint Frameworkのパーツなどの開発をしていると、Azure Functionsやストレージを使うことが良くあります。 これまではその度に環境をゼロベースで構築していたのですが、そんな労力を削減してくれる便利な機能がAzureには備わっています。 それが、Bicepというものなのですが、これが非常に便利なので触りだけ紹介です。 公式情報はこちらにあるので、詳細知りたい方はどうぞ。 https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/bicep/overview?tabs=bicep
Bicepとは?
Bicepは、Azureリソースをデプロイするための宣言型構文を使用した専用言語です。 これにより、リソースの一貫したデプロイを可能にし、コードを再利用することで様々な環境を再現性を持って繰り返し素早く構築することができるようになります。
使い方
まずはBicepの本体となるファイルを作成します。 Bicepファイルの作成はVSCodeを使うと便利です。 例としてストレージアカウントを自動作成するBicepファイルを記載します。 このコードでは、dataStorageAccountというストレージアカウントを作って、そのストレージアカウントのBlobにConfigという名前のコンテナを作成します。 また、リージョンに関してはパラメータで受け取るようにしています。
// パラメータ
@description('リソースのロケーション')
param location string
// ストレージアカウント
resource dataStorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: 'dataStorageAccount'
location: location
sku: {
name: dataStorageSku
}
kind: 'StorageV2'
properties: {
dnsEndpointType: 'Standard'
publicNetworkAccess: 'Enabled'
supportsHttpsTrafficOnly: true
minimumTlsVersion: 'TLS1\_2'
}
}
// Blobの設定
resource dataStorageBlobServices 'Microsoft.Storage/storageAccounts/blobServices@2023-05-01' = {
name: 'default'
parent: dataStorage
properties: {
containerDeleteRetentionPolicy: {
enabled: true
days: 7
}
deleteRetentionPolicy: {
allowPermanentDelete: false
enabled: true
days: 7
}
}
}
// Configコンテナの作成
resource dataStorageBlobServicesContainer 'Microsoft.Storage/storageAccounts/blobServices/containers@2023-05-01' = {
parent: dataStorageBlobServices
name: 'config'
properties: {
immutableStorageWithVersioning: {
enabled: false
}
defaultEncryptionScope: '$account-encryption-key'
denyEncryptionScopeOverride: false
publicAccess: 'None'
}
}
上記の内容を拡張子「.bicep」のファイルとして保存することで、Bicepファイルが作成できます。 今回は「test.bicep」として保存します。
