次の方法で共有


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

このクイック スタートでは、Bicep ファイルと Azure Cloud Shell の Azure CLI を使用してクラウドにアプリをデプロイすることで、AzureApp Service の使用を開始します。 App Service の Free レベルを使用するため、このクイックスタートを完了するのにコストはかかりません。

Bicep は、宣言型の構文を使用して Azure リソースをデプロイするドメイン固有言語 (DSL) です。 簡潔な構文、信頼性の高いタイプ セーフ、およびコードの再利用のサポートが提供されます。

JSON の代わりに Bicep を使用して 、Azure Resource Manager テンプレート (ARM テンプレート) を開発できます。 ARM テンプレートを作成するための JSON 構文は冗長になることがあり、複雑な式を必要とします。 Bicep 構文では、その複雑さが軽減され、開発エクスペリエンスが向上します。 Bicep は ARM テンプレート JSON に対する透過的な抽象化であり、JSON テンプレートの機能は一切失われません。 デプロイ時に、Bicep CLI は Bicep ファイルを ARM テンプレート JSON にトランスパイルします。

前提条件

Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。

Bicep を使用してリソースを効果的に作成するには、Bicep 開発環境を設定する必要があります。 Visual Studio Code の Bicep 拡張機能によって、言語サポートとリソース オートコンプリートが提供されます。 この拡張機能は、Bicep ファイルの作成と検証に役立ちます。 このクイックスタートを完了した後、Bicep を使用してリソースを作成する開発者には、この方法をお勧めします。

テンプレートを確認する

このクイック スタートでは、次のテンプレートを使用します。 これは App Service プランおよび App Service アプリを Linux にデプロイします。 また、Azure Samples リポジトリから Hello World アプリ Node.js サンプルをデプロイします。

param webAppName string = uniqueString(resourceGroup().id) // Generate a unique string for the web app name
param sku string = 'F1' // Tier of the App Service plan
param linuxFxVersion string = 'node|20-lts' // Runtime stack of the web app
param location string = resourceGroup().location // Location for all resources
param repositoryUrl string = 'https://github.com/Azure-Samples/nodejs-docs-hello-world'
param branch string = 'main'
var appServicePlanName = toLower('AppServicePlan-${webAppName}')
var webSiteName = toLower('wapp-${webAppName}')

resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: appServicePlanName
  location: location
  properties: {
    reserved: true
  }
  sku: {
    name: sku
  }
  kind: 'linux'
}

resource appService 'Microsoft.Web/sites@2023-12-01' = {
  name: webSiteName
  location: location
  properties: {
    serverFarmId: appServicePlan.id
    siteConfig: {
      linuxFxVersion: linuxFxVersion
    }
  }
}

resource srcControls 'Microsoft.Web/sites/sourcecontrols@2023-12-01' = {
  parent: appService
  name: 'web'
  properties: {
    repoUrl: repositoryUrl
    branch: branch
    isManualIntegration: true
  }
}

このテンプレートには、3 つの Azure リソースが定義されています:

このテンプレートには、便宜上定義済みの次のパラメーターが含まれています。

パラメーター タイプ 既定値 説明
webAppName ひも webApp-<uniqueString> [アプリ名]: 詳細については、「 ARM テンプレートの文字列関数」を参照してください。
location ひも resourceGroup().location アプリの地域。 詳細については、 ARM テンプレートのリソース関数を参照してください。
sku ひも F1 インスタンスのサイズ。
linuxFxVersion ひも NODE|20-LTS プログラミング言語スタックとバージョン。
repositoryUrl ひも https://github.com/Azure-Samples/nodejs-docs-hello-world 外部 Git リポジトリ (省略可能)。
branch ひも master コード サンプルの既定の分岐。

テンプレートのデプロイ

テンプレートをコピーして、任意のエディターまたは IDE の空のファイルに貼り付けます。 次に、ファイルをローカルの作業ディレクトリに保存します。 bicep ファイル拡張子を使用します。

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

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

Azure CLI がインストールされているターミナルを開きます。 次のコードを実行して、Linux 上に Node.js アプリを作成します。

az group create --name myResourceGroup --location "southcentralus" &&
az deployment group create --resource-group myResourceGroup --template-file <path-to-template>

別の言語スタックをデプロイするには、linuxFxVersion を適切な値で更新します。 次の表に例を示します。 現在のバージョンを表示するには、Cloud Shell で次のコマンドを実行します: az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion

言語 例:
。網 linuxFxVersion="DOTNETCORE&#124;3.0"
PHP linuxFxVersion="PHP&#124;7.4"
Node.js linuxFxVersion="NODE&#124;10.15"
ジャワ linuxFxVersion="JAVA&#124;1.8 &#124;TOMCAT&#124;9.0"
Python(プログラミング言語) linuxFxVersion="PYTHON&#124;3.8"

このクイック スタートでは、次のテンプレートを使用します。 これは App Service プランおよび App Service アプリを Windows にデプロイします。 また、Azure Samples リポジトリからサンプルの .NET Hello World アプリをデプロイします。

param webAppName string = uniqueString(resourceGroup().id) // Generate a unique name for the web app
param location string = resourceGroup().location // Location for all resources
param sku string = 'P1V3' // Tier of the App Service plan
param dockerContainerImage string = 'mcr.microsoft.com/dotnet/framework/samples:aspnetapp' // Sample .NET app
var appServicePlanName = toLower('ASP-${webAppName}') // Generate a unique name for the App Service plan

resource appServicePlan 'Microsoft.Web/serverfarms@2021-02-01' = {
  name: appServicePlanName
  location: location
  sku: {
    name: sku
  }
  properties: {
    hyperV: true
  }
}

resource webApp 'Microsoft.Web/sites@2024-04-01' = {
  name: webAppName
  location: location
  kind:'app,container,windows'
  properties: {
    serverFarmId: appServicePlan.id
    siteConfig: {
      windowsFxVersion: 'DOCKER|${dockerContainerImage}'
      appCommandLine: ''
      alwaysOn: true
      minTlsVersion: '1.3'
    }
    httpsOnly: true
  }
}

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

このテンプレートには、便宜上定義済みの次のパラメーターが含まれています。

パラメーター タイプ 既定値 説明
webAppName ひも webApp-<uniqueString> [アプリ名]: 詳細については、「 ARM テンプレートの文字列関数」を参照してください。
location ひも resourceGroup().location アプリの地域。 詳細については、 ARM テンプレートのリソース関数を参照してください。
sku ひも P1V3 インスタンスのサイズ
appServicePlanName ひも toLower('ASP-${webAppName}') App Service プラン名
dockerContainerImage ひも mcr.microsoft.com/dotnet/framework/samples:aspnetapp コンテナー イメージのサンプル

テンプレートのデプロイ

テンプレートをコピーして、任意のエディターまたは IDE に貼り付けます。 次に、ファイルをローカルの作業ディレクトリに保存します。 bicep ファイル拡張子を使用します。

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

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

Azure CLI がインストールされているターミナルを開きます。 .NET アプリを作成するには、次のコードを実行します。

az group create --name myResourceGroup --location "southcentralus" &&
az deployment group create --resource-group myResourceGroup --template-file <path-to-template>

デプロイの検証

アプリの URL を参照し、アプリを作成したことを確認します。

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

このクイック スタート用に作成したリソースが不要になったら、 リソース グループを削除します