12 KiB
| tags | |
|---|---|
|
Koogle-Deployment auf Azure
https://KoogleWeb20251231130827.azurewebsites.net
Diagnose: https://koogleweb20251231130827-hdf7bmewhka0hsdd.scm.westeurope-01.azurewebsites.net/detectors
Web-Tools: Azure App Service
Subscription-ID:
f1332eb1-392f-4b16-9ede-7905848ef248
admin-d-chrka als Contributor eingerichtet
az ad signed-in-user show
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"businessPhones": [],
"displayName": "Admin D-Chrka",
"givenName": "Admin",
"id": "70f83097-e12a-48a6-96b4-15760268c994",
"jobTitle": null,
"mail": null,
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": "D-Chrka",
"userPrincipalName": "Admin-D-Chrka@krah-gruppe.de"
}
Azure CLI installieren, Installieren der Azure CLI unter Windows | Microsoft Learn
Resource group:
{
"id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod",
"location": "westeurope",
"managedBy": null,
"name": "rg-koogle-prod",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
App Service Plan (Linux, B1 reicht meist für wenige User)
{
"asyncScalingEnabled": false,
"elasticScaleEnabled": false,
"freeOfferExpirationTime": "2026-01-30T11:45:50.8",
"geoRegion": "West Europe",
"hyperV": false,
"id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/Microsoft.Web/serverfarms/asp-koogle-prod",
"isCustomMode": false,
"isSpot": false,
"isXenon": false,
"kind": "linux",
"location": "westeurope",
"maximumElasticWorkerCount": 1,
"maximumNumberOfWorkers": 0,
"name": "asp-koogle-prod",
"numberOfSites": 0,
"numberOfWorkers": 1,
"perSiteScaling": false,
"provisioningState": "Succeeded",
"reserved": true,
"resourceGroup": "rg-koogle-prod",
"sku": {
"capacity": 1,
"family": "B",
"name": "B1",
"size": "B1",
"tier": "Basic"
},
"status": "Ready",
"subscription": "f1332eb1-392f-4b16-9ede-7905848ef248",
"targetWorkerCount": 0,
"targetWorkerSizeId": 0,
"type": "Microsoft.Web/serverfarms",
"zoneRedundant": false
}
az webapp identity assign -g $RgName -n $WebAppName
$principalId = az webapp show -g $RgName -n $WebAppName --query identity.principalId -o tsv
{
"principalId": "bebabb0b-1f5e-4917-bdde-7bbb70139248",
"tenantId": "94cf90d7-e9ff-49a1-bc3b-a5b94d3cc8ca",
"type": "SystemAssigned",
"userAssignedIdentities": null
}
SQL-Server
az sql server create -g $RgName -n $SqlServerName -l $Location -u "sqladmin" -p (New-Guid).Guid
{
"administratorLogin": "sqladmin",
"administratorLoginPassword": null,
"administrators": null,
"createMode": null,
"externalGovernanceStatus": "Disabled",
"federatedClientId": null,
"fullyQualifiedDomainName": "sql-koogle-prod.database.windows.net",
"id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/Microsoft.Sql/servers/sql-koogle-prod",
"identity": null,
"isIPv6Enabled": null,
"keyId": null,
"kind": "v12.0",
"location": "westeurope",
"minimalTlsVersion": "1.2",
"name": "sql-koogle-prod",
"primaryUserAssignedIdentityId": null,
"privateEndpointConnections": [],
"publicNetworkAccess": "Enabled",
"resourceGroup": "rg-koogle-prod",
"restrictOutboundNetworkAccess": "Disabled",
"retentionDays": -1,
"state": "Ready",
"tags": null,
"type": "Microsoft.Sql/servers",
"version": "12.0",
"workspaceFeature": null
}
az sql server update `
-g $RgName `
-n $SqlServerName `
--admin-password "Magister7000#"
Anmeldung im Azure-Portal muss als admin-d-chrka erfolgen
dann User per SQL anlegen:
CREATE USER [KoogleWeb20251231130827] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [KoogleWeb20251231130827];
ALTER ROLE db_datawriter ADD MEMBER [KoogleWeb20251231130827];
SQL-DB
az sql db create -g $RgName -s $SqlServerName -n $SqlDbName --service-objective S0
{
"autoPauseDelay": null,
"availabilityZone": "NoPreference",
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"collation": "SQL_Latin1_General_CP1_CI_AS",
"createMode": null,
"creationDate": "2025-12-31T12:42:38+00:00",
"currentBackupStorageRedundancy": "Geo",
"currentServiceObjectiveName": "S0",
"currentSku": {
"capacity": 10,
"family": null,
"name": "Standard",
"size": null,
"tier": "Standard"
},
"databaseId": "f3dcbbb9-8a40-4e02-b40c-a8fc4991c04b",
"defaultSecondaryLocation": "northeurope",
"earliestRestoreDate": null,
"edition": "Standard",
"elasticPoolId": null,
"elasticPoolName": null,
"encryptionProtector": null,
"encryptionProtectorAutoRotation": null,
"failoverGroupId": null,
"federatedClientId": null,
"freeLimitExhaustionBehavior": null,
"highAvailabilityReplicaCount": null,
"id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/Microsoft.Sql/servers/sql-koogle-prod/databases/db-koogle",
"identity": null,
"isInfraEncryptionEnabled": false,
"keys": null,
"kind": "v12.0,user",
"ledgerOn": false,
"licenseType": null,
"location": "westeurope",
"longTermRetentionBackupResourceId": null,
"maintenanceConfigurationId": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"managedBy": null,
"manualCutover": null,
"maxLogSizeBytes": null,
"maxSizeBytes": 268435456000,
"minCapacity": null,
"name": "db-koogle",
"pausedDate": null,
"performCutover": null,
"preferredEnclaveType": null,
"readScale": "Disabled",
"recoverableDatabaseId": null,
"recoveryServicesRecoveryPointId": null,
"requestedBackupStorageRedundancy": "Geo",
"requestedServiceObjectiveName": "S0",
"resourceGroup": "rg-koogle-prod",
"restorableDroppedDatabaseId": null,
"restorePointInTime": null,
"resumedDate": null,
"sampleName": null,
"secondaryType": null,
"sku": {
"capacity": 10,
"family": null,
"name": "Standard",
"size": null,
"tier": "Standard"
},
"sourceDatabaseDeletionDate": null,
"sourceDatabaseId": null,
"sourceResourceId": null,
"status": "Online",
"tags": null,
"type": "Microsoft.Sql/servers/databases",
"useFreeLimit": null,
"zoneRedundant": false
}
SQL-Admin
az sql server ad-admin create `
-g $RgName -s $SqlServerName `
--display-name $AadAdminDisplay `
--object-id $AadAdminObjectId
{
"administratorType": "ActiveDirectory",
"azureAdOnlyAuthentication": null,
"id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/Microsoft.Sql/servers/sql-koogle-prod/administrators/ActiveDirectory",
"login": "Admin D-Chrka",
"name": "ActiveDirectory",
"resourceGroup": "rg-koogle-prod",
"sid": "70f83097-e12a-48a6-96b4-15760268c994",
"tenantId": "94cf90d7-e9ff-49a1-bc3b-a5b94d3cc8ca",
"type": "Microsoft.Sql/servers"
}
Zugriff auf SQL vom NB erlauben
# Firewall-Regel für dein Notebook (lokaler Zugriff/Tools wie DataGrip)
$myIp = (Invoke-RestMethod -Uri "https://api.ipify.org")
az sql server firewall-rule create -g $RgName -s $SqlServerName -n "allow-notebook" --start-ip-address $myIp --end-ip-address $myIp
{
"endIpAddress": "91.63.233.49",
"id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/Microsoft.Sql/servers/sql-koogle-prod/firewallRules/allow-notebook",
"name": "allow-notebook",
"resourceGroup": "rg-koogle-prod",
"startIpAddress": "91.63.233.49",
"type": "Microsoft.Sql/servers/firewallRules"
}
App Insights
az monitor app-insights component create -g $RgName -l $Location -a $AppInsightsName
{- Installing ..
"appId": "0490e6aa-f192-4fe9-aefb-0ad9ff66d08c",
"applicationId": "ai-koogle-prod",
"applicationType": "web",
"connectionString": "InstrumentationKey=b3f53de2-82d7-4149-a468-dbdc486b919c;IngestionEndpoint=https://westeurope-5.in.applicationinsights.azure.com/;LiveEndpoint=https://westeurope.livediagnostics.monitor.azure.com/;ApplicationId=0490e6aa-f192-4fe9-aefb-0ad9ff66d08c",
"creationDate": "2025-12-31T12:47:36.840819+00:00",
"disableIpMasking": null,
"etag": "\"a402a9ef-0000-0200-0000-69551b6e0000\"",
"flowType": "Bluefield",
"hockeyAppId": null,
"hockeyAppToken": null,
"id": "/subscriptions/f1332eb1-392f-4b16-9ede-7905848ef248/resourceGroups/rg-koogle-prod/providers/microsoft.insights/components/ai-koogle-prod",
"immediatePurgeDataOn30Days": null,
"ingestionMode": "LogAnalytics",
"instrumentationKey": "b3f53de2-82d7-4149-a468-dbdc486b919c",
"kind": "web",
"location": "westeurope",
"name": "ai-koogle-prod",
"privateLinkScopedResources": null,
"provisioningState": "Succeeded",
"publicNetworkAccessForIngestion": "Enabled",
"publicNetworkAccessForQuery": "Enabled",
"requestSource": "rest",
"resourceGroup": "rg-koogle-prod",
"retentionInDays": 90,
"samplingPercentage": null,
"tags": {},
"tenantId": "f1332eb1-392f-4b16-9ede-7905848ef248",
"type": "microsoft.insights/components"
}
$ikey = az monitor app-insights component show -g $RgName -a $AppInsightsName --query instrumentationKey -o tsv
KEY: b3f53de2-82d7-4149-a468-dbdc486b919c
Settings Web-App
az webapp config appsettings set -g $RgName -n $WebAppName --settings `
ASPNETCORE_ENVIRONMENT=Production `
APPINSIGHTS_INSTRUMENTATIONKEY=$ikey `
WEBSITE_RUN_FROM_PACKAGE=1


