クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

Azure Verified Modulesで、Azure Container Appsを作成してみました。

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

コメントは受け付けていません。