4.1 KiB
4.1 KiB
Azure Setup für Teams Browser Bot
Voraussetzungen
- Azure CLI installiert und eingeloggt
- GitHub Repository erstellt unter
valueonag/service-teams-browser-bot
1. Azure Container App erstellen
1.1 Resource Group (falls nicht vorhanden)
az group create \
--name rg-poweron-int \
--location westeurope
1.2 Container Apps Environment
az containerapp env create \
--name cae-poweron-int \
--resource-group rg-poweron-int \
--location westeurope
1.3 Container App erstellen
az containerapp create \
--name teams-browser-bot \
--resource-group rg-poweron-int \
--environment cae-poweron-int \
--image ghcr.io/valueonag/service-teams-browser-bot:latest \
--target-port 4100 \
--ingress external \
--cpu 2 \
--memory 4Gi \
--min-replicas 0 \
--max-replicas 3 \
--env-vars \
NODE_ENV=production \
PORT=4100 \
GATEWAY_WS_URL=wss://gateway-int.poweron-center.net/api/teamsbot/bot/ws \
BOT_NAME="PowerOn AI" \
BOT_HEADLESS=true \
LOG_LEVEL=info \
SCREENSHOT_ON_ERROR=true
1.4 Container App URL notieren
az containerapp show \
--name teams-browser-bot \
--resource-group rg-poweron-int \
--query properties.configuration.ingress.fqdn \
--output tsv
Ergebnis z.B.: teams-browser-bot.happysky-12345.westeurope.azurecontainerapps.io
2. GitHub Actions Setup
2.1 Azure Service Principal erstellen
az ad sp create-for-rbac \
--name "github-teams-browser-bot" \
--role contributor \
--scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/rg-poweron-int \
--sdk-auth
2.2 GitHub Secret hinzufügen
- GitHub Repo → Settings → Secrets and variables → Actions
- New repository secret:
AZURE_CREDENTIALS - Wert: JSON Output vom vorherigen Befehl
2.3 GitHub Container Registry Zugriff
Der Workflow verwendet GITHUB_TOKEN automatisch für ghcr.io.
Falls Azure die Images nicht pullen kann:
# PAT mit read:packages Scope erstellen auf GitHub
# Dann in Azure:
az containerapp registry set \
--name teams-browser-bot \
--resource-group rg-poweron-int \
--server ghcr.io \
--username <GITHUB_USERNAME> \
--password <GITHUB_PAT>
3. Gateway Konfiguration
3.1 Environment Variable im Gateway
In env_int.env (oder Azure App Service Configuration):
TEAMSBOT_BROWSER_BOT_URL=https://teams-browser-bot.happysky-12345.westeurope.azurecontainerapps.io
3.2 Gateway neu deployen
# Push to int branch triggers deployment
git push origin int
4. DNS (Optional)
Falls du eine eigene Domain verwenden möchtest:
az containerapp hostname add \
--name teams-browser-bot \
--resource-group rg-poweron-int \
--hostname bot.poweron.swiss
# Dann DNS A-Record oder CNAME auf die Container App zeigen
5. Monitoring
Logs anzeigen
az containerapp logs show \
--name teams-browser-bot \
--resource-group rg-poweron-int \
--follow
Metriken
az containerapp show \
--name teams-browser-bot \
--resource-group rg-poweron-int \
--query properties.latestRevisionFqdn
6. Kosten
Azure Container Apps (Consumption Plan):
- vCPU: ~$0.000024/vCPU-second
- Memory: ~$0.000003/GiB-second
- Requests: Erste 2M/Monat kostenlos
Geschätzte Kosten bei 10h Bot-Nutzung/Tag:
- ~$15-25/Monat (deutlich günstiger als die alte VM!)
7. Troubleshooting
Container startet nicht
# Logs prüfen
az containerapp logs show \
--name teams-browser-bot \
--resource-group rg-poweron-int \
--type system
# Revision Status
az containerapp revision list \
--name teams-browser-bot \
--resource-group rg-poweron-int \
--output table
Playwright/Chrome Probleme
Container Apps unterstützen keine GPU. Falls Chrome-Probleme:
- Sicherstellen dass
BOT_HEADLESS=true - Shared memory erhöhen (im Dockerfile bereits konfiguriert)
WebSocket Verbindung fehlschlägt
- Prüfen ob Gateway CORS erlaubt
- Prüfen ob Container App WebSockets unterstützt (Standard: ja)
- Gateway Logs prüfen