このクイック スタートでは、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 リソースが定義されています:
- Microsoft.Web/serverfarms: App Service プランを作成します。
- Microsoft.Web/sites: App Service アプリを作成します。
- Microsoft.Web/sites/sourcecontrols: 外部 Git デプロイ構成を作成します。
このテンプレートには、便宜上定義済みの次のパラメーターが含まれています。
パラメーター | タイプ | 既定値 | 説明 |
---|---|---|---|
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-z
、 0-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|3.0" |
PHP | linuxFxVersion="PHP|7.4" |
Node.js | linuxFxVersion="NODE|10.15" |
ジャワ | linuxFxVersion="JAVA|1.8 |TOMCAT|9.0" |
Python(プログラミング言語) | linuxFxVersion="PYTHON|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 リソースが定義されています。
- Microsoft.Web/serverfarms: App Service プランを作成します。
- Microsoft.Web/sites: App Service アプリを作成します。
このテンプレートには、便宜上定義済みの次のパラメーターが含まれています。
パラメーター | タイプ | 既定値 | 説明 |
---|---|---|---|
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-z
、 0-9
、ハイフン (-
) です。
Azure CLI がインストールされているターミナルを開きます。 .NET アプリを作成するには、次のコードを実行します。
az group create --name myResourceGroup --location "southcentralus" &&
az deployment group create --resource-group myResourceGroup --template-file <path-to-template>
デプロイの検証
アプリの URL を参照し、アプリを作成したことを確認します。
リソースをクリーンアップする
このクイック スタート用に作成したリソースが不要になったら、 リソース グループを削除します。