Azure Installatie Handleiding

SQLio deployen in Microsoft Azure

Overzicht

Deze handleiding beschrijft de installatie van SQLio in Microsoft Azure. SQLio draait als Azure App Service met een Azure SQL Database voor de configuratie. Afhankelijk van waar uw target databases staan, zijn er verschillende connectiviteitsopties.

Deployment Scenario's

Scenario Target Databases Connectiviteit
A: Hybrid On-premise Azure Hybrid Connections
B: Full Cloud Azure Directe verbinding (VNet of public endpoint)
C: Gemengd On-premise + Azure Combinatie van beide

Architectuur Overzicht

Microsoft Azure On-Premise Target DB (On-Premise) Hybrid Connection SQL io App Service SQLioDB (Azure SQL) Target DB (Azure) Internet Scenario A Scenario B

Vereisten

Component Vereiste
Azure Subscription Actief Azure abonnement
Azure rechten Contributor of Owner op Resource Group
App Service Plan Basic (B1) of hoger
Azure SQL Database Basic of hoger (voor SQLioDB)
■ Tip: Voor productie wordt minimaal Standard (S1) App Service Plan aanbevolen voor betere performance en SLA.

Stap 1: Resource Group Aanmaken

  1. Ga naar portal.azure.com
  2. Zoek naar Resource groups
  3. Klik op + Create
  4. Configureer:
Veld Waarde
Subscription Uw Azure subscription
Resource group rg-sqlio-prod
Region West Europe (of dichtstbijzijnde)
  1. Klik op Review + create → Create

Stap 2: Azure SQL Database Aanmaken

Database Server aanmaken

  1. Zoek naar SQL databases in Azure Portal
  2. Klik op + Create
  3. Bij Server, klik op Create new
  4. Configureer de server:
Veld Waarde
Server name sql-sqlio-prod (moet uniek zijn)
Location Zelfde als Resource Group
Authentication method Use SQL authentication
Server admin login sqlioadmin
Password Sterk wachtwoord (noteer dit!)

Database aanmaken

Veld Waarde
Database name SQLioDB
Want to use SQL elastic pool? No
Workload environment Production
Compute + storage Basic of Standard (S0) voor start
Backup storage redundancy Locally-redundant (of Geo voor productie)
  1. Klik op Review + create → Create

Firewall configureren

  1. Ga naar de SQL Server resource
  2. Klik op Networking in het linker menu
  3. Onder Firewall rules:
  1. Klik op Save

Database schema installeren

Verbind met de database via SQL Server Management Studio of Azure Data Studio:

Veld Waarde
Server sql-sqlio-prod.database.windows.net
Authentication SQL Server Authentication
Login sqlioadmin
Password Uw wachtwoord
Database SQLioDB

In Azure SQL Database maakt u de database in de portal aan (hierboven) en kunt u niet met USE van database wisselen. De scripts 01 en 02a/02b voor een eigen server gebruikt u hier daarom niet. Voer in plaats daarvan, verbonden met de database SQLioDB, dit script uit. Het maakt de rol SQLioRole en een gebruiker met eigen wachtwoord in de database (een contained user):

-- SQLio v2 - Azure SQL Database: rol en gebruiker
-- Uitvoeren verbonden met de database SQLioDB (niet met master)

DECLARE @Gebruiker  sysname       = N'svc_sqlio';
DECLARE @Wachtwoord nvarchar(128) = N'<<wachtwoord>>';

IF @Wachtwoord LIKE N'<<%'
    THROW 50001, 'Vul bovenin eerst @Wachtwoord in.', 1;

IF DATABASE_PRINCIPAL_ID(N'SQLioRole') IS NULL
    CREATE ROLE [SQLioRole];

GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO [SQLioRole];
GRANT EXECUTE ON SCHEMA::dbo TO [SQLioRole];
GRANT VIEW DEFINITION ON SCHEMA::dbo TO [SQLioRole];

DECLARE @Sql nvarchar(max);
IF DATABASE_PRINCIPAL_ID(@Gebruiker) IS NULL
BEGIN
    SET @Sql = N'CREATE USER ' + QUOTENAME(@Gebruiker) + N' WITH PASSWORD = ' + QUOTENAME(@Wachtwoord, '''') + N';';
    EXEC sys.sp_executesql @Sql;
END

IF ISNULL(IS_ROLEMEMBER(N'SQLioRole', @Gebruiker), 0) = 0
BEGIN
    SET @Sql = N'ALTER ROLE [SQLioRole] ADD MEMBER ' + QUOTENAME(@Gebruiker) + N';';
    EXEC sys.sp_executesql @Sql;
END

PRINT 'Klaar.';

Voer daarna, ook verbonden met SQLioDB, het schemascript 03_SQLioDB_Schema.sql uit het installatiepakket uit. Het maakt alle tabellen, relaties en procedures aan.

■ Let op: Azure SQL ondersteunt geen Windows Authentication. Gebruik SQL Authentication voor de applicatie user.

Stap 3: App Service Aanmaken

App Service Plan

  1. Zoek naar App Services in Azure Portal
  2. Klik op + Create
  3. Configureer:
Veld Waarde
Subscription Uw subscription
Resource Group rg-sqlio-prod
Name app-sqlio-prod (moet uniek zijn)
Publish Code
Runtime stack .NET 9 (LTS)
Operating System Windows
Region Zelfde als Resource Group

App Service Plan selecteren

Veld Waarde
Windows Plan Create new: asp-sqlio-prod
Pricing plan Basic B1 (of Standard S1 voor productie)
  1. Klik op Review + create → Create
■■ BELANGRIJK: Hybrid Connections vereisen minimaal Basic (B1) tier. Free en Shared tiers ondersteunen dit niet.

Stap 4: SQLio Deployen

Via Visual Studio

  1. Open de SQLio solution in Visual Studio
  2. Rechtsklik op het project → Publish
  3. Kies Azure → Azure App Service (Windows)
  4. Selecteer uw subscription en de app-sqlio-prod App Service
  5. Klik op Publish

Via Azure CLI

dotnet publish -c Release -o ./publish
az webapp deploy --resource-group rg-sqlio-prod --name app-sqlio-prod --src-path ./publish --type zip

Stap 5: Connection String Configureren

  1. Ga naar de App Service in Azure Portal
  2. Klik op Configuration → Connection strings
  3. Klik op + New connection string
  4. Configureer:
Veld Waarde
Name ConfigConnection
Value (zie hieronder)
Type SQLAzure

Connection string waarde:

Server=tcp:sql-sqlio-prod.database.windows.net,1433;Database=SQLioDB;User ID=svc_sqlio;Password=UW_WACHTWOORD;Encrypt=True;TrustServerCertificate=False;Application Name=SQLio;
  1. Klik op OK en dan Save
■ Na de eerste start: stel in SQLio bij Instellingen eerst de encryptiesleutel in en daarna de licentie, voordat u omgevingen aanmaakt. Zie "Eerste start" in de handleiding Installatie SQLio. Lever geen appsettingsBHS.json mee in de deployment: SQLio maakt dat bestand zelf aan.

Scenario A: Target Databases On-Premise

Hybrid Connections voor On-Premise Databases

Als uw target databases on-premise staan, gebruikt u Azure Hybrid Connections om een veilige verbinding te maken zonder VPN of publieke endpoints.

Hoe werkt Hybrid Connection?

Hybrid Connection Manager draait als Windows Service op een server in uw netwerk. Deze maakt een uitgaande HTTPS verbinding naar Azure en routeert verkeer van de App Service naar uw on-premise SQL Server.

Hybrid Connection aanmaken

  1. Ga naar de App Service in Azure Portal
  2. Klik op Networking in het linker menu
  3. Klik op Hybrid connections
  4. Klik op + Add hybrid connection
  5. Klik op Create new hybrid connection
  6. Configureer:
Veld Waarde
Hybrid connection name hc-sqlserver-prod
Endpoint Host Hostname van uw SQL Server (bijv. SQLSRV01)
Endpoint Port 1433
Service Bus namespace Create new: sb-sqlio-prod
  1. Klik op OK

Hybrid Connection Manager Installeren

  1. In de Hybrid Connection lijst, klik op de zojuist aangemaakte connection
  2. Klik op Download connection manager
  3. Installeer op een server in uw netwerk die toegang heeft tot de SQL Server
  4. Open Hybrid Connection Manager UI
  5. Klik op Add a new Hybrid Connection
  6. Log in met uw Azure account
  7. Selecteer de hybrid connection en klik op Save
■ Tip: De Hybrid Connection Manager server hoeft niet de SQL Server zelf te zijn. Het kan elke Windows server zijn die netwerktoegong heeft tot de SQL Server op poort 1433.

Connection String voor Target Database

In SQLio, configureer de target database met de hostnaam (niet het IP-adres):

Server=SQLSRV01;Database=UwDatabase;User ID=sqlio_user;Password=xxx;TrustServerCertificate=True;Application Name=SQLio;
■ Let op: Gebruik exact dezelfde hostname als geconfigureerd in de Hybrid Connection. De hostname wordt gebruikt voor routing.

Scenario B: Target Databases in Azure

Directe Verbinding met Azure Databases

Als uw target databases ook in Azure staan, kunt u een directe verbinding maken zonder Hybrid Connections.

Azure SQL Database

Configureer de firewall van de target Azure SQL Server:

  1. Ga naar de SQL Server resource van de target database
  2. Klik op Networking
  3. Zet Allow Azure services and resources to access this server op Yes
  4. Klik op Save

Connection string:

Server=tcp:uw-sqlserver.database.windows.net,1433;Database=UwDatabase;User ID=sqlio_user;Password=xxx;Encrypt=True;TrustServerCertificate=False;Application Name=SQLio;

SQL Server op Azure VM

Als uw target database op een SQL Server VM draait:

  1. Configureer een Network Security Group (NSG) rule voor poort 1433
  2. Of plaats de App Service en VM in hetzelfde Virtual Network

Azure SQL Managed Instance

Voor Managed Instance is VNet integratie vereist:

  1. Configureer VNet Integration op de App Service
  2. Zorg dat het VNet toegang heeft tot de Managed Instance

Scenario C: Gemengde Omgeving

Combinatie van On-Premise en Azure

U kunt beide scenario's combineren. SQLio ondersteunt meerdere target databases met verschillende verbindingsmethodes.

Configureer:

In SQLio kunt u per omgeving (Test, Acceptatie, Productie) verschillende target databases configureren, ongeacht waar deze staan.

WebSockets Inschakelen

SQLio gebruikt WebSockets voor real-time updates:

  1. Ga naar de App Service → Configuration
  2. Klik op General settings
  3. Zet Web sockets op On
  4. Klik op Save

Custom Domain en SSL (Optioneel)

  1. Ga naar de App Service → Custom domains
  2. Klik op + Add custom domain
  3. Volg de wizard om uw domein te koppelen
  4. Configureer een SSL certificaat via Certificates

Probleemoplossing

HTTP Error 500.30 - ASP.NET Core app failed to start

Cannot connect to target database

Hybrid Connection status "Not Connected"