🌸

Azure App Serviceを作成する

2024/04/20に公開

検証に何かしらWebアプリが欲しいという場合に何かと便利なAppserviceの作成を備忘として残しておきます。

AppServiceとは

非常に簡単に言うとWebアプリケーション等を使用できるAzureのサービスです。
PaaSなので、Win及びLinuxサーバを構築する手間などが不要になります。

以下公式ドキュメントです。
https://learn.microsoft.com/ja-jp/azure/virtual-machines/overview

作成

リソースグループの作成

まずはリソースグループ(リソースを格納するための箱)を作成します。
 1.AzurePortalから「リソースグループ」-「作成」をクリック

2.リソースグループ名、リージョンを入力して「確認及び作成」をクリック
 ※リソースグループ名は後から変更できないので気を付けましょう。

3.確認画面で「作成」をクリックするとリソースグループが作成されます

AppServiceの作成

ここからはAppServiceの作成です。
1.AzurePortalから先ほど作成したリソースグループを選択し「作成」をクリック
2.検索窓に「web アプリ」と入力すると以下のアイコンが表示されるのでクリック

3.パラメータを入れていきます

    3-1.基本タブ
# 設定項目 設定値 備考
1 リソースグループ test20240415_RG AppServiceを作成するリソースグループ名
2 名前 test2024041199 AppService名(一意である必要があります。)
3 公開 コード 今回はコードを選択します
4 ランタイムスタック .NET8(LTS) .NET,Java,PHP,Python等から選択可能です
5 オペレーティングシステム Windows Windows or Linux
6 地域 Japan East リージョンを選択
7 Windowsプラン (新規) AppservicePlan(※1)を作成します。
8 価格プラン(※2) FreeF1 検証用なのでFreeとします。

※1:AppServicePlanはAppServiceを実行するためのコンピューティングリソースを定義しているリソースです。こちらによって価格が変動します。
※2:価格についてはこちらを参照
 https://azure.microsoft.com/ja-jp/pricing/details/app-service/linux/
https://azure.microsoft.com/ja-jp/pricing/details/app-service/windows/

 3-2.デプロイタブ

GitHubの連携ができますが、今回は検証用なので無効とします。

 3-3.ネットワークタブ

 3-4.監視タブ

ApplicationInsghts(Webアプリのパフォーマンスの監視等ができるリソース)の作成ができますが、検証用なので未作成とします

※ApplicationInsghtsについて
https://learn.microsoft.com/ja-jp/azure/azure-monitor/app/app-insights-overview

 3-5.確認及び作成タブ  

値を確認して「作成」をクリック

1分程度でデプロイが完了しました。「リソースに移動」をクリックしましょう

AppServiceの接続確認

・概要ページの「既定のドメイン」にアクセスしてみましょう

・このように画面が表示されました
 ※使用しないときはポータルから停止できます。

・このままだと誰からでもアクセスできてしまうので、以下から接続制限をかけておくことをお勧めします。

ARMテンプレート情報

本日作成したAppserviceとAppServicePlanのARMテンプレートです。
※こちらに使用方法の記載があります。
https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/templates/quickstart-create-templates-use-the-portal

Paramter.json

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"sites_test2024041199_name": {
"value": null
},
"serverfarms_ASP_test20240415RG_a424_name": {
"value": null
}
}
}

template.json

{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"sites_test2024041199_name": {
"defaultValue": "test2024041199",
"type": "String"
},
"serverfarms_ASP_test20240415RG_a424_name": {
"defaultValue": "ASP-test20240415RG-a424",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2023-01-01",
"name": "[parameters('serverfarms_ASP_test20240415RG_a424_name')]",
"location": "Japan East",
"sku": {
"name": "F1",
"tier": "Free",
"size": "F1",
"family": "F",
"capacity": 0
},
"kind": "app",
"properties": {
"perSiteScaling": false,
"elasticScaleEnabled": false,
"maximumElasticWorkerCount": 1,
"isSpot": false,
"reserved": false,
"isXenon": false,
"hyperV": false,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0,
"zoneRedundant": false
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2023-01-01",
"name": "[parameters('sites_test2024041199_name')]",
"location": "Japan East",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('serverfarms_ASP_test20240415RG_a424_name'))]"
],
"kind": "app",
"properties": {
"enabled": true,
"hostNameSslStates": [
{
"name": "[concat(parameters('sites_test2024041199_name'), '.azurewebsites.net')]",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "[concat(parameters('sites_test2024041199_name'), '.scm.azurewebsites.net')]",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('serverfarms_ASP_test20240415RG_a424_name'))]",
"reserved": false,
"isXenon": false,
"hyperV": false,
"vnetRouteAllEnabled": false,
"vnetImagePullEnabled": false,
"vnetContentShareEnabled": false,
"siteConfig": {
"numberOfWorkers": 1,
"acrUseManagedIdentityCreds": false,
"alwaysOn": false,
"http20Enabled": false,
"functionAppScaleLimit": 0,
"minimumElasticInstanceCount": 0
},
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": "Required",
"hostNamesDisabled": false,
"customDomainVerificationId": "FFDB91C5D56EFDA3A1E0E3794DB1A89DCE05C2DEEAD829DDAD003D1F4F81E8B8",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"httpsOnly": true,
"redundancyMode": "None",
"publicNetworkAccess": "Enabled",
"storageAccountRequired": false,
"keyVaultReferenceIdentity": "SystemAssigned"
}
},
{
"type": "Microsoft.Web/sites/basicPublishingCredentialsPolicies",
"apiVersion": "2023-01-01",
"name": "[concat(parameters('sites_test2024041199_name'), '/ftp')]",
"location": "Japan East",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('sites_test2024041199_name'))]"
],
"properties": {
"allow": false
}
},
{
"type": "Microsoft.Web/sites/basicPublishingCredentialsPolicies",
"apiVersion": "2023-01-01",
"name": "[concat(parameters('sites_test2024041199_name'), '/scm')]",
"location": "Japan East",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('sites_test2024041199_name'))]"
],
"properties": {
"allow": false
}
},
{
"type": "Microsoft.Web/sites/config",
"apiVersion": "2023-01-01",
"name": "[concat(parameters('sites_test2024041199_name'), '/web')]",
"location": "Japan East",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('sites_test2024041199_name'))]"
],
"properties": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v8.0",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"acrUseManagedIdentityCreds": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"publishingUsername": "$test2024041199",
"scmType": "None",
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": false,
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\wwwroot",
"preloadEnabled": false
}
],
"loadBalancing": "LeastRequests",
"experiments": {
"rampUpRules": []
},
"autoHealEnabled": false,
"vnetRouteAllEnabled": false,
"vnetPrivatePortsCount": 0,
"publicNetworkAccess": "Enabled",
"localMySqlEnabled": false,
"ipSecurityRestrictions": [
{
"ipAddress": "Any",
"action": "Allow",
"priority": 2147483647,
"name": "Allow all",
"description": "Allow all access"
}
],
"scmIpSecurityRestrictions": [
{
"ipAddress": "Any",
"action": "Allow",
"priority": 2147483647,
"name": "Allow all",
"description": "Allow all access"
}
],
"scmIpSecurityRestrictionsUseMain": false,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "FtpsOnly",
"preWarmedInstanceCount": 0,
"elasticWebAppScaleLimit": 0,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {}
}
},
{
"type": "Microsoft.Web/sites/hostNameBindings",
"apiVersion": "2023-01-01",
"name": "[concat(parameters('sites_test2024041199_name'), '/', parameters('sites_test2024041199_name'), '.azurewebsites.net')]",
"location": "Japan East",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('sites_test2024041199_name'))]"
],
"properties": {
"siteName": "test2024041199",
"hostNameType": "Verified"
}
}
]
}

Discussion