Azure App Serviceを作成する
検証に何かしらWebアプリが欲しいという場合に何かと便利なAppserviceの作成を備忘として残しておきます。
AppServiceとは
非常に簡単に言うとWebアプリケーション等を使用できるAzureのサービスです。
PaaSなので、Win及びLinuxサーバを構築する手間などが不要になります。
以下公式ドキュメントです。
作成
リソースグループの作成
まずはリソースグループ(リソースを格納するための箱)を作成します。
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/
3-2.デプロイタブ
GitHubの連携ができますが、今回は検証用なので無効とします。
3-3.ネットワークタブ
3-4.監視タブ
ApplicationInsghts(Webアプリのパフォーマンスの監視等ができるリソース)の作成ができますが、検証用なので未作成とします
※ApplicationInsghtsについて
3-5.確認及び作成タブ
値を確認して「作成」をクリック
1分程度でデプロイが完了しました。「リソースに移動」をクリックしましょう
AppServiceの接続確認
・概要ページの「既定のドメイン」にアクセスしてみましょう
・このように画面が表示されました
※使用しないときはポータルから停止できます。
・このままだと誰からでもアクセスできてしまうので、以下から接続制限をかけておくことをお勧めします。
ARMテンプレート情報
本日作成したAppserviceとAppServicePlanのARMテンプレートです。
※こちらに使用方法の記載があります。
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