10/5 Japan Azure User Group 14周年でAzure Verified ModulesのLTについて話されていたのを聞いて、Azure Container AppsをAzure Verified Modulesで作成してみました。
当日のAVMのセッションは公開されているようです
Bicepのコード
- main.bicep
targetScope = 'subscription'
@maxLength(7)
@description('Optional. The location to deploy resources to.')
param location string
resource coreResourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = {
name: 'xxxx'
location: location
}
module workspace 'br/public:avm/res/operational-insights/workspace:0.7.0' = {
scope: coreResourceGroup
name: 'workspaceDeployment'
params: {
name: 'workspaceProperty'
}
}
module managedEnvironment 'br/public:avm/res/app/managed-environment:0.8.0' = {
scope: coreResourceGroup
name: 'managedEnvironmentDeployment'
params: {
// Required parameters
logAnalyticsWorkspaceResourceId: workspace.outputs.resourceId
name: 'amemin001'
zoneRedundant: false
}
}
module containerApp 'br/public:avm/res/app/container-app:0.11.0' = {
scope: coreResourceGroup
name: 'containerAppDeployment'
params: {
// Required parameters
containers: [
{
image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest'
name: 'simple-hello-world-container'
resources: {
cpu: '0.25'
memory: '0.5Gi'
}
}
]
environmentResourceId: managedEnvironment.outputs.resourceId
name: 'acamin001'
location: location
}
}
- parameter.json
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"value": "eastus"
}
}
}
container appsを動かすmanaged environment作る際、zoneRedundantパラメータ指定しないと、managed environment作成時にエラーになります。(InfrastructureSubnetIdが指定ないとzoneRedundantは有効にできない)
AVMデフォルトオプションがAzureの推奨設定になっていることなので、zoneRedundantがデフォルト有効ではと思われる。
途中でエラーになっても、作成できたリソースがCfnみたくロールバックすることはできなそう。Cfnでもロールバックしないオプションも対応しましたが。
実行
az
az deployment sub create --location 'australiaeast' --name 'lab01' --template-file main.bicep' --parameters parameters.json --verbose
テンプレートとパラメータを指定することもできます
リファレンス
Lab 01 – Demo: Deploying a Storage Account + Customer Managed Key Solution Using AVM modules published in the Public Bicep Registry
https://github.com/Azure-Samples/avm-bicep-labs/tree/main/labs/lab01
Azure Verified Modules
https://azure.github.io/Azure-Verified-Modules