Ahtesham-Latif/Tie-Breaker-App

Eine deterministische KI-Entscheidungsengine, unterstützt von Azure AI und React. Erstellt strukturierte Matrizen, SWOT-Profile und kontextbewusste Urteile für jedes A vs. B Dilemma.

Was ist Tie-Breaker-App?

Diese Fähigkeit für KI-Agenten stellt eine vollständige, strukturierte Anleitung zur Bereitstellung einer Node.js-Anwendung auf Azure App Service (Linux) bereit, die eine sichere Verbindung zu einem Azure AI Foundry Agent über Managed Identity herstellt. Sie behandelt die gesamte Cloud-Infrastruktur, von der Auswahl des geeigneten App Service Plans (z.B. Basic B1, um das 403-Stopp-Problem des Free-Tarifs zu vermeiden) bis hin zur Implementierung einer passwortlosen Authentifizierung mit `DefaultAzureCredential` und der korrekten IAM-Rollenzuweisung (Azure AI Developer). Ein besonderer Schwerpunkt liegt auf der korrekten Handhabung von Umgebungsvariablen in Full-Stack-Anwendungen (React/Vite + Node.js), wobei Frontend-Variablen (`VITE_`) zur Build-Zeit in GitHub Secrets gesetzt werden müssen, während Backend-Variablen zur Laufzeit in der Azure Portal-Konfiguration definiert werden. Die Anleitung beschreibt außerdem eine bewährte GitHub Actions CI/CD-Pipeline, bei der GitHub das gesamte Build-Paket (einschließlich `node_modules`) erstellt und bereitstellt, um Konflikte mit Azure's Oryx-Build-Engine zu vermeiden. Diese Fähigkeit ist plattformspezifisch für Azure und GitHub Actions optimiert und richtet sich an Entwickler, die eine robuste, produktionsreife Node.js-Anwendung mit Azure AI-Integration bereitstellen möchten.

Funktioniert mit~Claude Code✓Codex CLI~Cursor
npx skills add Ahtesham-Latif/Tie-Breaker-App

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Azure App Service-Bereitstellung (Node.js)

Diese Fähigkeit beschreibt den fehlerfreien, bewährten Weg zur Bereitstellung einer Node.js-Anwendung auf Azure App Service (Linux) mit sicherer Verbindung zu einem Azure AI Foundry Agent über Managed Identity.

1. Cloud-Infrastruktureinrichtung

  • App Service Plan: Wählen Sie immer einen dedizierten Tarif (z. B. Basic B1) für die Produktion. Free-Tarife (F1) haben strenge CPU-Kontingente von 60 Minuten pro Tag, die die Anwendung zwangsweise herunterfahren (was zu einem 403 Stopped-Fehler führt).

2. Authentifizierung und Verwaltete Identität (Passwortlos)

  1. Code: Verwenden Sie DefaultAzureCredential aus @azure/identity im Node.js-Backend.
  2. Identität aktivieren: Gehen Sie im Azure App Service-Portal zu Einstellungen > Identität und aktivieren Sie Systemseitig zugewiesen.
  3. IAM-Berechtigungen: Gehen Sie im Ziel-Azure-KI-Projekt zu Zugriffssteuerung (IAM) und weisen Sie der verwalteten Identität des App Service die Rolle Azure KI-Entwickler zu. (Hinweis: Cognitive Services OpenAI User ist für Azure Foundry Orchestrierungs-Agenten nicht ausreichend).

3. Umgebungsvariablen (Die Frontend-vs-Backend-Falle)

Beim Bereitstellen einer Full-Stack-App (React/Vite + Node.js) über GitHub Actions müssen Umgebungsvariablen logisch aufgeteilt werden:

Das Frontend (Vite)

  • Variablen mit dem Präfix VITE_ (z. B. Supabase-Schlüssel) werden zur Build-Zeit in die statischen HTML/JS-Dateien eingebettet.
  • Wo sie gesetzt werden: Sie MÜSSEN in GitHub Secrets gespeichert und explizit in Ihrer .github/workflows-Datei im env:-Block für den Schritt npm run build zugeordnet werden.
  • Gefahr: Wenn sie nur in Azure und nicht in GitHub Actions vorhanden sind, erstellt Vite das Frontend mit leeren Variablen.

Das Backend (Node.js)

  • Die Live-Datei server.js liest Umgebungsvariablen zur Laufzeit aus dem Cloud-Container.
  • Wo sie gesetzt werden: Konfigurieren Sie Variablen (z. B. Azure KI-Endpunkte, Backend-Supabase-Schlüssel) direkt im Azure-Portal unter Einstellungen > Umgebungsvariablen.
  • Gefahr: Das Azure App Service-Backend übernimmt NICHT Ihre GitHub Actions-Geheimnisse. Sie müssen diese manuell im Azure-Portal setzen.
  • Wichtig: Variablen werden genau einmal geladen, wenn der Node.js-Prozess startet. Wenn eine Variable hinzugefügt oder geändert wird, müssen Sie auf der Übersichtsseite des App Service explizit auf Neu starten klicken.
  • Um dem Azure Load Balancer zu vertrauen (erforderlich für express-rate-limit), stellen Sie sicher, dass die Express-App app.set('trust proxy', 1); verwendet.

4. GitHub Actions CI/CD-Pipeline

Die sicherste Bereitstellungsstrategie vermeidet widersprüchliche Build-Engines (GitHub vs. Azure Oryx). Lassen Sie GitHub 100% des Builds und der Paketerstellung übernehmen.

Workflow-Best Practices:

  1. GitHub führt npm install und den Frontend-Build (npm run build) aus.
  2. GitHub lädt ein Artefakt hoch, das die kompilierten Ausgaben (dist), die Backend-Dateien (server.js) und entscheidend den node_modules-Ordner enthält.
    • Warum? Wenn node_modules weggelassen wird, versucht die Oryx-Engine von Azure, die App selbst zu erstellen, indem sie npm run build ausführt. Dies wird abstürzen, da die rohen Quelldateien (index.html) nicht hochgeladen wurden.
  3. Verwenden Sie azure/webapps-deploy@v3 mit einem Veröffentlichungsprofil, das als GitHub Secret gespeichert ist.

Verwandte Skills