11 KiB
| tags | status | erstellt | title | |
|---|---|---|---|---|
|
aktiv | 2026-04-12 | Koogle |
Koogle
Ziel
Status
In Bearbeitung
Nächste Schritte
Notizen
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
