次の方法で共有


クイックスタート: ARM テンプレートを使用して App Service アプリを作成する

Azure Resource Manager テンプレート (ARM テンプレート) と Azure CLI を Cloud Shell で使用して、アプリをクラウドにデプロイすることによって、Azure App Service の使用を開始します。 Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 App Service の Free レベルを使用するため、このクイックスタートを完了するのにコストはかかりません。

このクイックスタートを完了するには、アクティブなサブスクリプションが含まれる Azure アカウントが必要です。 Azure アカウントがない場合は、アカウントを無料で作成できます。

ARM API バージョン 2024-11-01 以降では、基本認証が既定で 無効になっている サイトが作成されます。 ユーザーは、必要 に応じて手動で有効にすることができます

最後までスキップする

ARM テンプレートの使用に慣れている場合は、この Resource Manager テンプレートを Azure に配置するボタン。 ボタンを選択して最後までスキップできます。 このボタンをクリックすると、Azure portal で ARM テンプレートが開きます。

Azure portal で、[新規作成] を選択して新しいリソース グループを作成し、[確認と作成] ボタンを選択してアプリをデプロイします。

Azure Resource Manager テンプレート (ARM テンプレート) と Azure CLI を Cloud Shell で使用して、アプリをクラウドにデプロイすることによって、Azure App Service の使用を開始します。 Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 App Service の Free レベルを使用するため、このクイックスタートを完了するのにコストはかかりません。

このクイックスタートを完了するには、アクティブなサブスクリプションが含まれる Azure アカウントが必要です。 Azure アカウントがない場合は、アカウントを無料で作成できます。

ARM API バージョン 2024-11-01 以降では、基本認証が既定で 無効になっている サイトが作成されます。 ユーザーは、必要 に応じて手動で有効にすることができます

最後までスキップする

ARM テンプレートの使用に慣れている場合は、この Resource Manager テンプレートを Azure に配置するボタン。 ボタンを選択して最後までスキップできます。 このボタンをクリックすると、Azure portal で ARM テンプレートが開きます。

Azure portal で、[新規作成] を選択して新しいリソース グループを作成し、[確認と作成] ボタンを選択してアプリをデプロイします。

Azure Resource Manager テンプレート (ARM テンプレート) と Azure CLI を Cloud Shell で使用して、アプリをクラウドにデプロイすることによって、Azure App Service の使用を開始します。 Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 Windows コンテナー アプリをデプロイするには、Premium プランが必要です。 価格の詳細については、App Service の価格のページを参照してください。

ARM API バージョン 2024-11-01 以降では、基本認証が既定で 無効になっている サイトが作成されます。 ユーザーは、必要 に応じて手動で有効にすることができます

最後までスキップする

ARM テンプレートの使用に慣れている場合は、この Resource Manager テンプレートを Azure に配置するボタン。 ボタンを選択して最後までスキップできます。 このボタンをクリックすると、Azure portal で ARM テンプレートが開きます。

Azure portal で、[新規作成] を選択して新しいリソース グループを作成し、[確認と作成] ボタンを選択してアプリをデプロイします。

テンプレートを確認する

このクイックスタートで使用されるテンプレートは Azure クイックスタート テンプレートからのものです。 これは App Service プランおよび App Service アプリを Windows にデプロイします。 .NET Core、.NET Framework、PHP、Node.js、静的 HTML アプリと互換性があります。 Java の場合は、Java アプリの作成に関する記事を参照してください。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "16144177164140676603"
    }
  },
  "parameters": {
    "webAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web app name."
      }
    },
    "___location": {
      "type": "string",
      "defaultValue": "[resourceGroup().___location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "sku": {
      "type": "string",
      "defaultValue": "F1",
      "metadata": {
        "description": "The SKU of App Service Plan."
      }
    },
    "language": {
      "type": "string",
      "defaultValue": ".net",
      "allowedValues": [
        ".net",
        "html"
      ],
      "metadata": {
        "description": "The language stack of the app."
      }
    },
    "helloWorld": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "true = deploy a sample Hello World app."
      }
    },
    "repoUrl": {
      "type": "string",
      "defaultValue": "",
      "metadata": {
        "description": "Optional Git Repo URL"
      }
    }
  },
  "variables": {
    "appServicePlanPortalName": "[format('AppServicePlan-{0}', parameters('webAppName'))]",
    "gitRepoReference": {
      ".net": "https://github.com/Azure-Samples/app-service-web-dotnet-get-started",
      "html": "https://github.com/Azure-Samples/html-docs-hello-world"
    },
    "gitRepoUrl": "[if(bool(parameters('helloWorld')), variables('gitRepoReference')[toLower(parameters('language'))], parameters('repoUrl'))]",
    "configReference": {
      ".net": {
        "comments": ".Net app. No additional configuration needed."
      },
      "html": {
        "comments": "HTML app. No additional configuration needed."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2023-01-01",
      "name": "[variables('appServicePlanPortalName')]",
      "___location": "[parameters('___location')]",
      "sku": {
        "name": "[parameters('sku')]"
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2023-01-01",
      "name": "[parameters('webAppName')]",
      "___location": "[parameters('___location')]",
      "identity": {
        "type": "SystemAssigned"
      },
      "properties": {
        "siteConfig": "[variables('configReference')[parameters('language')]]",
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]",
        "httpsOnly": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]"
      ]
    },
    {
      "condition": "[contains(variables('gitRepoUrl'), 'http')]",
      "type": "Microsoft.Web/sites/sourcecontrols",
      "apiVersion": "2023-01-01",
      "name": "[format('{0}/{1}', parameters('webAppName'), 'web')]",
      "properties": {
        "repoUrl": "[variables('gitRepoUrl')]",
        "branch": "master",
        "isManualIntegration": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
      ]
    }
  ]
}

テンプレートでは、次の 2 つの Azure リソースが定義されています。

このテンプレートには、利便性のために事前に定義されているいくつかのパラメーターが含まれています。 パラメーターの既定値とその説明については、次のテーブルを参照してください:

パラメーター タイプ 既定値 説明
webAppName 文字列 webApp-<uniqueString> 一意の文字列値に基づくアプリ名
appServicePlanName 文字列 webAppPlan-<uniqueString> 一意の文字列値に基づく App Service プラン
位置 文字列 [resourceGroup().___location] アプリのリージョン
sku 文字列 F1 インスタンス サイズ (F1 = Free レベル)
言語 文字列 .NET プログラミング言語スタック (.NET、php、node、html)
helloWorld ブーリアン False True = "Hello World" アプリをデプロイする
repoUrl 文字列 外部 Git リポジトリ (オプション)

このクイックスタートで使用されるテンプレートは Azure クイックスタート テンプレートからのものです。 これは App Service プランおよび App Service アプリを Linux にデプロイします。 これは App Service でサポートされているすべてのプログラミング言語と互換性があります。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "10602523904429381366"
    }
  },
  "parameters": {
    "webAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web app name."
      }
    },
    "___location": {
      "type": "string",
      "defaultValue": "[resourceGroup().___location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "sku": {
      "type": "string",
      "defaultValue": "F1",
      "metadata": {
        "description": "The SKU of App Service Plan."
      }
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "DOTNETCORE|8.0",
      "metadata": {
        "description": "The Runtime stack of current web app"
      }
    },
    "repoUrl": {
      "type": "string",
      "defaultValue": " ",
      "metadata": {
        "description": "Optional Git Repo URL"
      }
    }
  },
  "variables": {
    "appServicePlanPortalName": "[format('AppServicePlan-{0}', parameters('webAppName'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2021-02-01",
      "name": "[variables('appServicePlanPortalName')]",
      "___location": "[parameters('___location')]",
      "sku": {
        "name": "[parameters('sku')]"
      },
      "kind": "linux",
      "properties": {
        "reserved": true
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2021-02-01",
      "name": "[parameters('webAppName')]",
      "___location": "[parameters('___location')]",
      "properties": {
        "httpsOnly": true,
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]",
          "minTlsVersion": "1.2",
          "ftpsState": "FtpsOnly"
        }
      },
      "identity": {
        "type": "SystemAssigned"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]"
      ]
    },
    {
      "condition": "[contains(parameters('repoUrl'), 'http')]",
      "type": "Microsoft.Web/sites/sourcecontrols",
      "apiVersion": "2021-02-01",
      "name": "[format('{0}/{1}', parameters('webAppName'), 'web')]",
      "properties": {
        "repoUrl": "[parameters('repoUrl')]",
        "branch": "master",
        "isManualIntegration": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
      ]
    }
  ]
}

テンプレートでは、次の 2 つの Azure リソースが定義されています。

このテンプレートには、利便性のために事前に定義されているいくつかのパラメーターが含まれています。 パラメーターの既定値とその説明については、次のテーブルを参照してください:

パラメーター タイプ 既定値 説明
webAppName 文字列 webApp-<uniqueString> 一意の文字列値に基づくアプリ名
appServicePlanName 文字列 webAppPlan-<uniqueString> 一意の文字列値に基づく App Service プラン
位置 文字列 [resourceGroup().___location] アプリのリージョン
sku 文字列 F1 インスタンス サイズ (F1 = Free レベル)
linuxFxVersion 文字列 DOTNETCORE|9.0 "プログラミング言語スタック | バージョン"
repoUrl 文字列 外部 Git リポジトリ (オプション)

このクイックスタートで使用されるテンプレートは Azure クイックスタート テンプレートからのものです。 これは App Service プランおよび App Service アプリを Windows コンテナーにデプロイします。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "10193476814580854111"
    }
  },
  "parameters": {
    "appServiceWebAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web App name."
      }
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "App Service Plan name."
      }
    },
    "skuTier": {
      "type": "string",
      "defaultValue": "P1v3"
    },
    "___location": {
      "type": "string",
      "defaultValue": "[resourceGroup().___location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2023-01-01",
      "name": "[parameters('appServiceWebAppName')]",
      "___location": "[parameters('___location')]",
      "tags": {
        "[format('hidden-related:{0}', resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName')))]": "empty"
      },
      "properties": {
        "siteConfig": {
          "appSettings": [
            {
              "name": "PORT",
              "value": "8080"
            }
          ],
          "appCommandLine": "",
          "windowsFxVersion": "DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp"
        },
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      ]
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2023-01-01",
      "name": "[parameters('appServicePlanName')]",
      "___location": "[parameters('___location')]",
      "sku": {
        "name": "[parameters('skuTier')]"
      },
      "kind": "windows",
      "properties": {
        "hyperV": true
      }
    }
  ]
}

テンプレートでは、次の 2 つの Azure リソースが定義されています。

このテンプレートには、利便性のために事前に定義されているいくつかのパラメーターが含まれています。 パラメーターの既定値とその説明については、次のテーブルを参照してください:

パラメーター タイプ 既定値 説明
webAppName 文字列 webApp-<uniqueString> 一意の文字列値に基づくアプリ名
appServicePlanName 文字列 webAppPlan-<uniqueString> 一意の文字列値に基づく App Service プラン
位置 文字列 [resourceGroup().___location] アプリのリージョン
skuTier 文字列 P1v3 インスタンス サイズ (使用可能な SKU を表示)
appSettings 文字列 [{"name": "PORT","value": "8080"}] App Service リッスン ポート。 8080 である必要があります。
kind 文字列 windows オペレーティング システム
hyperv 文字列 true 分離モード
windowsFxVersion 文字列 DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp コンテナー イメージ

テンプレートのデプロイ

テンプレートをデプロイするために、ここでは Azure CLI を使用します。 Azure portal、Azure PowerShell、REST API を使用することもできます。 他のデプロイ方法については、テンプレートのデプロイに関するページを参照してください。

以下のコードでは、リソース グループ、App Service プラン、Web アプリを作成します。 既定のリソース グループ、App Service プラン、場所が設定されています。 <app-name> を、グローバルに一意であるアプリ名に置き換えてください (有効な文字は、a-z0-9- です)。

次のコマンドを実行して、Windows に .NET Framework アプリをデプロイします。

az group create --name myResourceGroup --___location "southcentralus"

az deployment group create --resource-group myResourceGroup \
--parameters language=".NET" helloWorld="true" webAppName="<app-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-windows/azuredeploy.json"

次のコマンドを実行して、Linux 上に Python アプリを作成します。

az group create --name myResourceGroup --___location "southcentralus"

az deployment group create --resource-group myResourceGroup --parameters webAppName="<app-name>" linuxFxVersion="PYTHON|3.9" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-linux/azuredeploy.json"

別の言語スタックをデプロイするには、linuxFxVersion を適切な値で更新します。 サンプルをテーブルに示します。 現在のバージョンを表示するには、Cloud Shell で次のコマンドを実行します。

az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion
Language
.NET linuxFxVersion="DOTNETCORE|9.0"
ジャワ linuxFxVersion="JAVA|21-java21 TOMCAT|11.0-java21 JBOSSEAP|8-java17"
Node.js linuxFxVersion="NODE|22-lts
Python linuxFxVersion="PYTHON|3.13"
PHP linuxFxVersion="PHP|8.4"

次のコマンドを実行して、.NET アプリを Windows コンテナーにデプロイします。

az group create --name myResourceGroup --___location "southcentralus"

az deployment group create --resource-group myResourceGroup \
--parameters webAppName="<app-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-windows-container/azuredeploy.json"

デプロイの検証

http://<app_name>.azurewebsites.net/ を参照して、作成されていることを確認します。

Windows コードのエクスペリエンスのスクリーンショット。

Linux エクスペリエンスのスクリーンショット。

Windows コンテナーのエクスペリエンスのスクリーンショット。

リソースをクリーンアップする

不要になったら、リソース グループを削除します

次のステップ