Azure Container Instance einrichten
Zweck
Diese Seite beschreibt den empfohlenen Weg, um BE-Code als Azure Container Instance (ACI) ohne eigene Serverinfrastruktur zu betreiben. Optional binden Sie den Dienst an Azure Key Vault an, um Zertifikate zentral zu verwalten.
Voraussetzungen
- Aktives Azure-Abonnement mit ausreichenden Rechten zum Anlegen von Ressourcengruppen und Container Instances.
- Azure CLI auf dem Arbeitsplatz installiert oder Zugriff auf das Azure-Portal.
- Zugriff auf die BE-terna Azure Container Registry
becode.azurecr.io; Authentifizierung über ein ACR-Token je Kunde. - Optional: Azure-AD-Service-Principal mit Zugriff auf das Key Vault und ein gültiges SSL-Zertifikat im Key Vault.
Empfohlene Reihenfolge
- Anmeldung an Azure und Container Registry.
- Ressourcengruppe anlegen.
- Azure Container Instance erstellen.
- Container verifizieren und DNS-Weiterleitung einrichten.
- Erreichbarkeit testen und Service-URL im BE-Code-Setup in Business Central pflegen.
Einrichtungsbausteine
Anmeldung
Melden Sie sich an Azure und an der Container Registry an:
az login
az acr login --name becode
docker login becode.azurecr.io -u <token-name> -p <token-password>
Verwenden Sie ein dediziertes ACR-Token je Kunde und nicht das Admin-Konto der Registry.
Ressourcengruppe anlegen
az group create --name myResourceGroup --location westeurope
Ersetzen Sie myResourceGroup durch einen eigenen Namen und westeurope bei Bedarf durch die passende Azure-Region.
Azure Container Instance erstellen
Erstellen Sie die Container Instance, die BE-Code bereitstellt. Passen Sie Ressourcengruppe, Name, Image-Version und Umgebungsvariablen an. Leerzeichen in Variablenwerten vermeiden:
az container create `
--resource-group myResourceGroup `
--name becode `
--image becode.azurecr.io/becode:latest `
--ports 1880 `
--registry-username <token-name> `
--registry-password <token-password> `
--location westeurope `
--vnet myVNET `
--subnet mySubnet `
--os-type Windows `
--environment-variables title="BE-terna" port="1880" `
azureClientID=<client-id> azureTenantID=<tenant-id> azureSubscriptionID=<subscription-id> `
vaultName=<vault-name> certificateName=<certificate-name> `
pfxFileName="C:\certs\cert.pfx" certPemName="C:\certs\cert.pem" privateKeyPemName="C:\certs\privkey.pem" `
flowfile="C:\data\flow.json" settingsfile="C:\data\settings.js" `
--secure-environment-variables azureSecretValue=<secret> certificatePw=<certificate-password> userPw=<strong-password>
Hinweise:
- Liegt das virtuelle Netzwerk in einer anderen Ressourcengruppe als die Container Instance, geben Sie die vollständige VNet-ID statt des Namens an.
--os-typeunterstützt Windows oder Linux; stimmen Sie sich zur passenden Variante mit dem BE-terna-Support ab.- Wenn Sie kein Key Vault nutzen, lassen Sie die Key-Vault-Variablen weg. Ohne
userPwstartet der Container mit dem Demo-Standardkennwort und einem selbstsignierten Zertifikat; produktiv ist das nicht freigegeben.
Container verifizieren
Prüfen Sie den Betriebsstatus und die vergebene Adresse:
az container show --resource-group myResourceGroup --name becode --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState,Containers:containers[0].name,ContainerState:containers[0].instanceView.currentState.detailStatus}"
Richten Sie anschließend die DNS-Weiterleitung auf den FQDN oder eine eigene Subdomain ein.
Erreichbarkeit und Integration
Rufen Sie https://<fqdn>:1880/becode oder https://<dns>:1880/becode im Browser auf. Hinterlegen Sie dieselbe Adresse im BE-Code-Setup in Business Central und verifizieren Sie die Verbindung mit der Aktion Verbindung prüfen.
Process Betriebshinweise Leitplanken für sicheren Betrieb und Secrets-Management.
- Key-Vault-Werte ausschließlich über
--secure-environment-variablessetzen, nie als Klartextvariable. - Zugriff auf das Key Vault auf den Service-Principal des Containers beschränken und regelmäßig prüfen.
- Container ohne VNet-/Firewall-Schutz nicht öffentlich erreichbar machen.
- Image-Updates in einem Wartungsfenster einspielen und anschließend die Verbindung aus Business Central prüfen.
Links