Microsoft.AppPlatform 春/アプリ/デプロイ 2022-01-01-preview

注釈

注:Azure Spring Apps Application Deployments(Microsoft.AppPlatform/Spring/apps/deployments)は現在非推奨となり、2028年5月31日に廃止されます。 詳細については、https://aka.ms/asaretirement を参照してください。

Bicep リソース定義

Spring/apps/deployments リソースの種類は、次をターゲットとする操作でデプロイできます。

  • リソース グループの - リソース グループのデプロイ コマンド 参照

各 API バージョンで変更されたプロパティの一覧については、変更ログの参照してください。

リソースの形式

Microsoft.AppPlatform/Spring/apps/deployments リソースを作成するには、次の Bicep をテンプレートに追加します。

resource symbolicname 'Microsoft.AppPlatform/Spring/apps/deployments@2022-01-01-preview' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    active: bool
    deploymentSettings: {
      addonConfigs: {
        {customized property}: {
          {customized property}: any(...)
        }
      }
      containerProbeSettings: {
        disableProbe: bool
      }
      environmentVariables: {
        {customized property}: 'string'
      }
      resourceRequests: {
        cpu: 'string'
        memory: 'string'
      }
    }
    source: {
      version: 'string'
      type: 'string'
      // For remaining properties, see UserSourceInfo objects
    }
  }
  sku: {
    capacity: int
    name: 'string'
    tier: 'string'
  }
}

UserSourceInfo オブジェクト

プロパティを設定して、オブジェクトの型を指定します。

BuildResultの場合は、次を使用します。

{
  buildResultId: 'string'
  type: 'BuildResult'
}

コンテナーの場合は、次を使用します。

{
  customContainer: {
    args: [
      'string'
    ]
    command: [
      'string'
    ]
    containerImage: 'string'
    imageRegistryCredential: {
      password: 'string'
      username: 'string'
    }
    server: 'string'
  }
  type: 'Container'
}

Jarの場合は、次を使用します。

{
  jvmOptions: 'string'
  relativePath: 'string'
  runtimeVersion: 'string'
  type: 'Jar'
}

NetCoreZipの場合は、次の値を使用します。

{
  netCoreMainEntryPath: 'string'
  relativePath: 'string'
  runtimeVersion: 'string'
  type: 'NetCoreZip'
}

ソースの場合は、次を使用します。

{
  artifactSelector: 'string'
  relativePath: 'string'
  runtimeVersion: 'string'
  type: 'Source'
}

プロパティ値

Microsoft.AppPlatform/Spring/apps/deployments

名前 形容 価値
名前 リソース名 string (必須)
Bicep では、子リソースの親リソースを指定できます。 このプロパティを追加する必要があるのは、子リソースが親リソースの外部で宣言されている場合のみです。

詳細については、「親リソースの外部 子リソース」を参照してください。
種類のリソースのシンボリック名: spring/apps
プロパティ デプロイ リソースのプロパティ DeploymentResourceProperties の
エスケーユー デプロイ リソースの SKU SKU

アドオンプロファイル

名前 形容 価値

BuildResultUserSourceInfo (ビルド結果ユーザーソース情報)

名前 形容 価値
buildResultId (ビルド結果イド) 同じ Spring インスタンスの既存の成功したビルド結果のリソース ID。 文字列
アップロードされたソースの種類 'BuildResult' (必須)

コンテナプローブ設定

名前 形容 価値
ディセーブルプローブ liveness プローブと準備プローブを無効にするかどうかを示します ブール (bool)

カスタムコンテナ

名前 形容 価値
引数 エントリポイントの引数。 これが指定されていない場合は、Docker イメージの CMD が使用されます。 文字列[]
命令 Entrypoint 配列。 シェル内では実行されません。 これが指定されていない場合は、Docker イメージの ENTRYPOINT が使用されます。 文字列[]
コンテナ画像 カスタム コンテナーのコンテナー イメージ。 これは、<リポジトリの>の形式である必要があります。レジストリのサーバー名のないタグ<> 文字列
imageRegistryCredential イメージ レジストリの資格情報 ImageRegistryCredential
サーバー コンテナー イメージを含むレジストリの名前 文字列

CustomContainerUserSourceInfo (カスタムコンテナユーザーソース情報)

名前 形容 価値
カスタムコンテナ カスタム コンテナー ペイロード CustomContainer の
アップロードされたソースの種類 'Container' (必須)

デプロイメントリソースプロパティ

名前 形容 価値
能動 展開がアクティブかどうかを示します ブール (bool)
deploymentSettings (デプロイメント設定) 展開の展開設定 DeploymentSettings (デプロイメント設定)
ソース デプロイのアップロードされたソース情報。 UserSourceInfo の

DeploymentSettings (デプロイメント設定)

名前 形容 価値
アドオンコンフィグ アドオンのコレクション DeploymentSettingsアドオンコンフィグ
コンテナプローブ設定 コンテナーのライブネスと準備プローブの設定 コンテナプローブ設定
環境変数 環境変数のコレクション DeploymentSettingsEnvironment変数
リソースリクエスト 必要な CPU とメモリに対して要求されたリソース量。 必要な CPU とメモリを表すためにこのフィールドを使用することをお勧めします。古いフィールドの cpu と memoryInGB は後で非推奨になります。 リソースリクエスト

DeploymentSettingsアドオンコンフィグ

名前 形容 価値

DeploymentSettingsEnvironment変数

名前 形容 価値

ImageRegistryCredential

名前 形容 価値
パスワード イメージ レジストリ資格情報のパスワード 文字列
ユーザー名 イメージ レジストリ資格情報のユーザー名 文字列

JarUploadedUserSourceInfo さん

名前 形容 価値
jvmオプション JVM パラメーター 文字列
relativePath (相対パス) ソースを格納するストレージの相対パス 文字列
ランタイムバージョン Jar ファイルのランタイム バージョン 文字列
アップロードされたソースの種類 'Jar' (必須)

NetCoreZipUploadedUserSourceInfo

名前 形容 価値
netCoreMainEntryPath (英語) zip ルートを基準とした .NET 実行可能ファイルへのパス 文字列
relativePath (相対パス) ソースを格納するストレージの相対パス 文字列
ランタイムバージョン .Net ファイルのランタイム バージョン 文字列
アップロードされたソースの種類 'NetCoreZip' (必須)

リソースリクエスト

名前 形容 価値
CPUの 必要な CPU。 1 コアは 1 または 1000m で表すことができます。 Basic レベルの場合は 500m または 1、Standard レベルの場合は {500m、1、2、3、4} です。 文字列
メモリ 必要なメモリ。 1 GB は 1Gi または 1024Mi で表すことができます。 Basic レベルの場合は {512Mi、1Gi、2Gi}、Standard レベルの場合は {512Mi、1Gi、2Gi、...、8Gi} です。 文字列

SKU

名前 形容 価値
キャパシティ ターゲット リソースの現在の容量 整数 (int)
名前 SKU の名前 文字列
レベル SKU の階層 文字列

SourceUploadedUserSourceInfo

名前 形容 価値
アーティファクトセレクタ マルチモジュール プロジェクトのデプロイに使用する成果物のセレクター。 これは次のようになります。
ターゲット モジュール/プロジェクトへの相対パス。
文字列
relativePath (相対パス) ソースを格納するストレージの相対パス 文字列
ランタイムバージョン ソース ファイルのランタイム バージョン 文字列
アップロードされたソースの種類 'Source' (必須)

ユーザーソース情報

名前 形容 価値
BuildResultUserSourceInfoの型 'BuildResult' に設定します。 CustomContainerUserSourceInfoの型 'Container' に設定します。 JarUploadedUserSourceInfoの型 'Jar' に設定します。 NetCoreZipUploadedUserSourceInfo種類として 'NetCoreZip' に設定します。 SourceUploadedUserSourceInfo種類として 'Source' に設定します。 'ビルド結果'
「コンテナ」
「ジャー」
「NetCoreZip」
'Source' (必須)
バージョン ソースのバージョン 文字列

使用例

Bicep サンプル

Spring Cloud Deployment のデプロイの基本的な例。

param resourceName string = 'acctest0001'
param location string = 'westeurope'

resource spring 'Microsoft.AppPlatform/Spring@2023-05-01-preview' = {
  name: resourceName
  location: location
  properties: {
    zoneRedundant: false
  }
  sku: {
    name: 'E0'
  }
}

resource app 'Microsoft.AppPlatform/Spring/apps@2023-05-01-preview' = {
  parent: spring
  name: resourceName
  location: location
  properties: {
    customPersistentDisks: []
    enableEndToEndTLS: false
    public: false
  }
}

resource deployment 'Microsoft.AppPlatform/Spring/apps/deployments@2023-05-01-preview' = {
  parent: app
  name: resourceName
  properties: {
    deploymentSettings: {
      environmentVariables: {}
    }
    source: {
      customContainer: {
        args: []
        command: []
        containerImage: 'springio/gs-spring-boot-docker'
        languageFramework: ''
        server: 'docker.io'
      }
      type: 'Container'
    }
  }
  sku: {
    capacity: 1
    name: 'E0'
    tier: 'Enterprise'
  }
}

Azure クイック スタートのサンプル

Azure クイック スタート テンプレート、このリソースの種類をデプロイするための Bicep サンプルが含まれています。

Bicep ファイル 形容
単純な Azure Spring Apps マイクロサービス アプリケーション をデプロイする このテンプレートは、Azure 上で実行する単純な Azure Spring Apps マイクロサービス アプリケーションをデプロイします。

ARM テンプレート リソース定義

Spring/apps/deployments リソースの種類は、次をターゲットとする操作でデプロイできます。

  • リソース グループの - リソース グループのデプロイ コマンド 参照

各 API バージョンで変更されたプロパティの一覧については、変更ログの参照してください。

リソースの形式

Microsoft.AppPlatform/Spring/apps/deployments リソースを作成するには、次の JSON をテンプレートに追加します。

{
  "type": "Microsoft.AppPlatform/Spring/apps/deployments",
  "apiVersion": "2022-01-01-preview",
  "name": "string",
  "properties": {
    "active": "bool",
    "deploymentSettings": {
      "addonConfigs": {
        "{customized property}": {
          "{customized property}": {}
        }
      },
      "containerProbeSettings": {
        "disableProbe": "bool"
      },
      "environmentVariables": {
        "{customized property}": "string"
      },
      "resourceRequests": {
        "cpu": "string",
        "memory": "string"
      }
    },
    "source": {
      "version": "string",
      "type": "string"
      // For remaining properties, see UserSourceInfo objects
    }
  },
  "sku": {
    "capacity": "int",
    "name": "string",
    "tier": "string"
  }
}

UserSourceInfo オブジェクト

プロパティを設定して、オブジェクトの型を指定します。

BuildResultの場合は、次を使用します。

{
  "buildResultId": "string",
  "type": "BuildResult"
}

コンテナーの場合は、次を使用します。

{
  "customContainer": {
    "args": [ "string" ],
    "command": [ "string" ],
    "containerImage": "string",
    "imageRegistryCredential": {
      "password": "string",
      "username": "string"
    },
    "server": "string"
  },
  "type": "Container"
}

Jarの場合は、次を使用します。

{
  "jvmOptions": "string",
  "relativePath": "string",
  "runtimeVersion": "string",
  "type": "Jar"
}

NetCoreZipの場合は、次の値を使用します。

{
  "netCoreMainEntryPath": "string",
  "relativePath": "string",
  "runtimeVersion": "string",
  "type": "NetCoreZip"
}

ソースの場合は、次を使用します。

{
  "artifactSelector": "string",
  "relativePath": "string",
  "runtimeVersion": "string",
  "type": "Source"
}

プロパティ値

Microsoft.AppPlatform/Spring/apps/deployments

名前 形容 価値
apiVersion (英語) API のバージョン '2022-01-01-プレビュー'
名前 リソース名 string (必須)
プロパティ デプロイ リソースのプロパティ DeploymentResourceProperties の
エスケーユー デプロイ リソースの SKU SKU
リソースの種類 「Microsoft.AppPlatform/Spring/apps/deployments」

アドオンプロファイル

名前 形容 価値

BuildResultUserSourceInfo (ビルド結果ユーザーソース情報)

名前 形容 価値
buildResultId (ビルド結果イド) 同じ Spring インスタンスの既存の成功したビルド結果のリソース ID。 文字列
アップロードされたソースの種類 'BuildResult' (必須)

コンテナプローブ設定

名前 形容 価値
ディセーブルプローブ liveness プローブと準備プローブを無効にするかどうかを示します ブール (bool)

カスタムコンテナ

名前 形容 価値
引数 エントリポイントの引数。 これが指定されていない場合は、Docker イメージの CMD が使用されます。 文字列[]
命令 Entrypoint 配列。 シェル内では実行されません。 これが指定されていない場合は、Docker イメージの ENTRYPOINT が使用されます。 文字列[]
コンテナ画像 カスタム コンテナーのコンテナー イメージ。 これは、<リポジトリの>の形式である必要があります。レジストリのサーバー名のないタグ<> 文字列
imageRegistryCredential イメージ レジストリの資格情報 ImageRegistryCredential
サーバー コンテナー イメージを含むレジストリの名前 文字列

CustomContainerUserSourceInfo (カスタムコンテナユーザーソース情報)

名前 形容 価値
カスタムコンテナ カスタム コンテナー ペイロード CustomContainer の
アップロードされたソースの種類 'Container' (必須)

デプロイメントリソースプロパティ

名前 形容 価値
能動 展開がアクティブかどうかを示します ブール (bool)
deploymentSettings (デプロイメント設定) 展開の展開設定 DeploymentSettings (デプロイメント設定)
ソース デプロイのアップロードされたソース情報。 UserSourceInfo の

DeploymentSettings (デプロイメント設定)

名前 形容 価値
アドオンコンフィグ アドオンのコレクション DeploymentSettingsアドオンコンフィグ
コンテナプローブ設定 コンテナーのライブネスと準備プローブの設定 コンテナプローブ設定
環境変数 環境変数のコレクション DeploymentSettingsEnvironment変数
リソースリクエスト 必要な CPU とメモリに対して要求されたリソース量。 必要な CPU とメモリを表すためにこのフィールドを使用することをお勧めします。古いフィールドの cpu と memoryInGB は後で非推奨になります。 リソースリクエスト

DeploymentSettingsアドオンコンフィグ

名前 形容 価値

DeploymentSettingsEnvironment変数

名前 形容 価値

ImageRegistryCredential

名前 形容 価値
パスワード イメージ レジストリ資格情報のパスワード 文字列
ユーザー名 イメージ レジストリ資格情報のユーザー名 文字列

JarUploadedUserSourceInfo さん

名前 形容 価値
jvmオプション JVM パラメーター 文字列
relativePath (相対パス) ソースを格納するストレージの相対パス 文字列
ランタイムバージョン Jar ファイルのランタイム バージョン 文字列
アップロードされたソースの種類 'Jar' (必須)

NetCoreZipUploadedUserSourceInfo

名前 形容 価値
netCoreMainEntryPath (英語) zip ルートを基準とした .NET 実行可能ファイルへのパス 文字列
relativePath (相対パス) ソースを格納するストレージの相対パス 文字列
ランタイムバージョン .Net ファイルのランタイム バージョン 文字列
アップロードされたソースの種類 'NetCoreZip' (必須)

リソースリクエスト

名前 形容 価値
CPUの 必要な CPU。 1 コアは 1 または 1000m で表すことができます。 Basic レベルの場合は 500m または 1、Standard レベルの場合は {500m、1、2、3、4} です。 文字列
メモリ 必要なメモリ。 1 GB は 1Gi または 1024Mi で表すことができます。 Basic レベルの場合は {512Mi、1Gi、2Gi}、Standard レベルの場合は {512Mi、1Gi、2Gi、...、8Gi} です。 文字列

SKU

名前 形容 価値
キャパシティ ターゲット リソースの現在の容量 整数 (int)
名前 SKU の名前 文字列
レベル SKU の階層 文字列

SourceUploadedUserSourceInfo

名前 形容 価値
アーティファクトセレクタ マルチモジュール プロジェクトのデプロイに使用する成果物のセレクター。 これは次のようになります。
ターゲット モジュール/プロジェクトへの相対パス。
文字列
relativePath (相対パス) ソースを格納するストレージの相対パス 文字列
ランタイムバージョン ソース ファイルのランタイム バージョン 文字列
アップロードされたソースの種類 'Source' (必須)

ユーザーソース情報

名前 形容 価値
BuildResultUserSourceInfoの型 'BuildResult' に設定します。 CustomContainerUserSourceInfoの型 'Container' に設定します。 JarUploadedUserSourceInfoの型 'Jar' に設定します。 NetCoreZipUploadedUserSourceInfo種類として 'NetCoreZip' に設定します。 SourceUploadedUserSourceInfo種類として 'Source' に設定します。 'ビルド結果'
「コンテナ」
「ジャー」
「NetCoreZip」
'Source' (必須)
バージョン ソースのバージョン 文字列

使用例

Azure のクイック スタート テンプレート

このリソースの種類 デプロイする Azure クイック スタート テンプレート 次に示します。

テンプレート 形容
単純な Azure Spring Apps マイクロサービス アプリケーション をデプロイする

Azure にデプロイする
このテンプレートは、Azure 上で実行する単純な Azure Spring Apps マイクロサービス アプリケーションをデプロイします。

Terraform (AzAPI プロバイダー) リソース定義

Spring/apps/deployments リソースの種類は、次をターゲットとする操作でデプロイできます。

  • リソース グループ

各 API バージョンで変更されたプロパティの一覧については、変更ログの参照してください。

リソースの形式

Microsoft.AppPlatform/Spring/apps/deployments リソースを作成するには、次の Terraform をテンプレートに追加します。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.AppPlatform/Spring/apps/deployments@2022-01-01-preview"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      active = bool
      deploymentSettings = {
        addonConfigs = {
          {customized property} = {
            {customized property} = ?
          }
        }
        containerProbeSettings = {
          disableProbe = bool
        }
        environmentVariables = {
          {customized property} = "string"
        }
        resourceRequests = {
          cpu = "string"
          memory = "string"
        }
      }
      source = {
        version = "string"
        type = "string"
        // For remaining properties, see UserSourceInfo objects
      }
    }
    sku = {
      capacity = int
      name = "string"
      tier = "string"
    }
  }
}

UserSourceInfo オブジェクト

プロパティを設定して、オブジェクトの型を指定します。

BuildResultの場合は、次を使用します。

{
  buildResultId = "string"
  type = "BuildResult"
}

コンテナーの場合は、次を使用します。

{
  customContainer = {
    args = [
      "string"
    ]
    command = [
      "string"
    ]
    containerImage = "string"
    imageRegistryCredential = {
      password = "string"
      username = "string"
    }
    server = "string"
  }
  type = "Container"
}

Jarの場合は、次を使用します。

{
  jvmOptions = "string"
  relativePath = "string"
  runtimeVersion = "string"
  type = "Jar"
}

NetCoreZipの場合は、次の値を使用します。

{
  netCoreMainEntryPath = "string"
  relativePath = "string"
  runtimeVersion = "string"
  type = "NetCoreZip"
}

ソースの場合は、次を使用します。

{
  artifactSelector = "string"
  relativePath = "string"
  runtimeVersion = "string"
  type = "Source"
}

プロパティ値

Microsoft.AppPlatform/Spring/apps/deployments

名前 形容 価値
名前 リソース名 string (必須)
parent_id このリソースの親であるリソースの ID。 種類のリソースの ID: Spring/apps
プロパティ デプロイ リソースのプロパティ DeploymentResourceProperties の
エスケーユー デプロイ リソースの SKU SKU
リソースの種類 "Microsoft.AppPlatform/Spring/apps/deployments@2022-01-01-preview" (英語)

アドオンプロファイル

名前 形容 価値

BuildResultUserSourceInfo (ビルド結果ユーザーソース情報)

名前 形容 価値
buildResultId (ビルド結果イド) 同じ Spring インスタンスの既存の成功したビルド結果のリソース ID。 文字列
アップロードされたソースの種類 'BuildResult' (必須)

コンテナプローブ設定

名前 形容 価値
ディセーブルプローブ liveness プローブと準備プローブを無効にするかどうかを示します ブール (bool)

カスタムコンテナ

名前 形容 価値
引数 エントリポイントの引数。 これが指定されていない場合は、Docker イメージの CMD が使用されます。 文字列[]
命令 Entrypoint 配列。 シェル内では実行されません。 これが指定されていない場合は、Docker イメージの ENTRYPOINT が使用されます。 文字列[]
コンテナ画像 カスタム コンテナーのコンテナー イメージ。 これは、<リポジトリの>の形式である必要があります。レジストリのサーバー名のないタグ<> 文字列
imageRegistryCredential イメージ レジストリの資格情報 ImageRegistryCredential
サーバー コンテナー イメージを含むレジストリの名前 文字列

CustomContainerUserSourceInfo (カスタムコンテナユーザーソース情報)

名前 形容 価値
カスタムコンテナ カスタム コンテナー ペイロード CustomContainer の
アップロードされたソースの種類 'Container' (必須)

デプロイメントリソースプロパティ

名前 形容 価値
能動 展開がアクティブかどうかを示します ブール (bool)
deploymentSettings (デプロイメント設定) 展開の展開設定 DeploymentSettings (デプロイメント設定)
ソース デプロイのアップロードされたソース情報。 UserSourceInfo の

DeploymentSettings (デプロイメント設定)

名前 形容 価値
アドオンコンフィグ アドオンのコレクション DeploymentSettingsアドオンコンフィグ
コンテナプローブ設定 コンテナーのライブネスと準備プローブの設定 コンテナプローブ設定
環境変数 環境変数のコレクション DeploymentSettingsEnvironment変数
リソースリクエスト 必要な CPU とメモリに対して要求されたリソース量。 必要な CPU とメモリを表すためにこのフィールドを使用することをお勧めします。古いフィールドの cpu と memoryInGB は後で非推奨になります。 リソースリクエスト

DeploymentSettingsアドオンコンフィグ

名前 形容 価値

DeploymentSettingsEnvironment変数

名前 形容 価値

ImageRegistryCredential

名前 形容 価値
パスワード イメージ レジストリ資格情報のパスワード 文字列
ユーザー名 イメージ レジストリ資格情報のユーザー名 文字列

JarUploadedUserSourceInfo さん

名前 形容 価値
jvmオプション JVM パラメーター 文字列
relativePath (相対パス) ソースを格納するストレージの相対パス 文字列
ランタイムバージョン Jar ファイルのランタイム バージョン 文字列
アップロードされたソースの種類 'Jar' (必須)

NetCoreZipUploadedUserSourceInfo

名前 形容 価値
netCoreMainEntryPath (英語) zip ルートを基準とした .NET 実行可能ファイルへのパス 文字列
relativePath (相対パス) ソースを格納するストレージの相対パス 文字列
ランタイムバージョン .Net ファイルのランタイム バージョン 文字列
アップロードされたソースの種類 'NetCoreZip' (必須)

リソースリクエスト

名前 形容 価値
CPUの 必要な CPU。 1 コアは 1 または 1000m で表すことができます。 Basic レベルの場合は 500m または 1、Standard レベルの場合は {500m、1、2、3、4} です。 文字列
メモリ 必要なメモリ。 1 GB は 1Gi または 1024Mi で表すことができます。 Basic レベルの場合は {512Mi、1Gi、2Gi}、Standard レベルの場合は {512Mi、1Gi、2Gi、...、8Gi} です。 文字列

SKU

名前 形容 価値
キャパシティ ターゲット リソースの現在の容量 整数 (int)
名前 SKU の名前 文字列
レベル SKU の階層 文字列

SourceUploadedUserSourceInfo

名前 形容 価値
アーティファクトセレクタ マルチモジュール プロジェクトのデプロイに使用する成果物のセレクター。 これは次のようになります。
ターゲット モジュール/プロジェクトへの相対パス。
文字列
relativePath (相対パス) ソースを格納するストレージの相対パス 文字列
ランタイムバージョン ソース ファイルのランタイム バージョン 文字列
アップロードされたソースの種類 'Source' (必須)

ユーザーソース情報

名前 形容 価値
BuildResultUserSourceInfoの型 'BuildResult' に設定します。 CustomContainerUserSourceInfoの型 'Container' に設定します。 JarUploadedUserSourceInfoの型 'Jar' に設定します。 NetCoreZipUploadedUserSourceInfo種類として 'NetCoreZip' に設定します。 SourceUploadedUserSourceInfo種類として 'Source' に設定します。 'ビルド結果'
「コンテナ」
「ジャー」
「NetCoreZip」
'Source' (必須)
バージョン ソースのバージョン 文字列

使用例

Terraformサンプル

Spring Cloud Deployment のデプロイの基本的な例。

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "Spring" {
  type      = "Microsoft.AppPlatform/Spring@2023-05-01-preview"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      zoneRedundant = false
    }
    sku = {
      name = "E0"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "app" {
  type      = "Microsoft.AppPlatform/Spring/apps@2023-05-01-preview"
  parent_id = azapi_resource.Spring.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      customPersistentDisks = [
      ]
      enableEndToEndTLS = false
      public            = false
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "deployment" {
  type      = "Microsoft.AppPlatform/Spring/apps/deployments@2023-05-01-preview"
  parent_id = azapi_resource.app.id
  name      = var.resource_name
  body = {
    properties = {
      deploymentSettings = {
        environmentVariables = {
        }
      }
      source = {
        customContainer = {
          args = [
          ]
          command = [
          ]
          containerImage    = "springio/gs-spring-boot-docker"
          languageFramework = ""
          server            = "docker.io"
        }
        type = "Container"
      }
    }
    sku = {
      capacity = 1
      name     = "E0"
      tier     = "Enterprise"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}