AWS Machine LearningAktualisiert

Amazon Quick für Unternehmensanforderungen bereitstellen: Automatisierte, nachverfolgbare Ressourcenförderung zwischen Konten

Die Förderung von Amazon Quick-Ressourcen (Agenten, Action-Connectoren, Wissensdatenbanken, Flows und Spaces) von einer Entwicklungs- zu einer Produktions-AWS-Konto-Phase war eine manuelle, fehleranfällige Arbeit. Dieser…

Three-account architecture: a runner account hosts the MCP server on Amazon Bedrock AgentCore and assumes roles into the source and target accounts
Bildquelle · AWS Machine Learning

Amazon Quick ist Amsons agentisches AI-System, das speziell für die Arbeit entwickelt wurde. Man erstellt Agenten, die über die eigenen Daten nachdenken, Action-Connectoren aufrufen und mehrstufige Aufgaben bis zum Abschluss durchführen. Die Verbreitung dieser Ressourcen – Chat-Agenten, Action-Connectoren, Wissensdatenbanken, Flows und Spaces – von einer Entwicklungs- zu einer Produktions-AWS-Konto, wie man es bei jedem anderen Anwendungsprogramm tun würde, war eine manuelle und fehleranfällige Arbeit. Dieser Beitrag zeigt, wie man dies automatisieren kann mit einem idempotenten, nachverfolgbaren Model Context Protocol (MCP)-Server auf Amazon Bedrock AgentCore.

Die Bausteine einer agentischen Lösung sind ihre Agenten, Action-Connectoren, Wissensbases und Spaces: Chat-Agenten mit benutzerdefinierten Anweisungen, Connectoren für Slack, Jira und andere Integrationen, Wissensbases, die auf Ihren eigenen Dokumenten basieren, und der Space, der sie zusammenbindet. Teams konfigurieren und iterieren schnell in einem Entwicklungsaccount darauf.

Die meisten Unternehmen führen separate AWS-Konten für Entwicklung und Produktion ein, manchmal mit einer Qualitätssicherung (QA) dazwischen. Wenn Agenten, Action-Connectoren und Wissensdatenbanken in einem Entwicklungskonto validiert werden, gibt es keinen nativen, einfachen Weg, sie in das nächste Konto zu überführen. Die Teams bauen jedes Ressource manuell wieder auf: Sie erstellen jeden Agenten mit denselben Anweisungen und Anfangsmaterialien neu, fügen die Handlungsverbindungen jedes Agents wieder ein, erteilen den Ressourcen Berechtigungen und reprivisen den Amazon Simple Storage Service (Amazon S3) Bucket, die Bucket-Policy sowie die Datenquelle hinter jeder Wissensdatenbank. Die Arbeit ist langsam, schwer zu überprüfen und leicht fehlerhaft zu sein – was die Governance-Struktur beeinträchtigt, die Unternehmen benötigen.

Verwalten Sie Amazon Quick-Ressourcen über eine API

Amazon Quick-Ressourcen sind programmierbar. Räume, Agenten, Aktionen, Verbindungen, Wissensdatenbanken und Flüsse werden über die Amazon Quick API (ein Teil der Amazon Quick Sight API Surface) verwaltet. Die API bietet das gesamte Lebenszyklusprotokoll für Ressourcen – Erstellen, Lesen, Aktualisieren, Löschen und Listen. Alles, was ein Unternehmensbenutzer in Amazon Quick konfiguriert, wie Agenten mit ihren Anweisungen und Start-Prompts, Verbindungen, Wissensdatenbanken oder Flüsse, kann wir ausgewertet, neu erstellt, aktualisiert und programmierbar verwaltet werden – einschließlich der Berechtigungen.

Diese programmierbare Oberfläche macht die regelgesteuerte Verwaltung möglich. Anstatt jeden Ressourceninhalt manuell neu zu erstellen, lesen wir den Ressourceninhalt und seine Berechtigungen über die API und anwenden sie anschließend in einer anderen Account genau so wie sie waren. Der Migrator in diesem Post führt die Operationen Erstellen, Lesen, Aktualisieren und Listen zu einem wiederholbaren Workflow zusammen, und er gibt nie eine Löschanweisung für das Ziel aus, sodass eine Ausführung nur Hinzufügen oder Aktualisieren bewirkt.

In diesem Artikel gehen wir den Quick Resource Migrator durch – ein Beispiel-S MCP-Server, der auf dem Amazon Bedrock AgentCore-Runtime hostiert wird, einer Funktion von Amazon Bedrock AgentCore. Dieser automatisiert die Cross-Account-Promotion von Amazon Quick-Ressourcen mit einem einzigen Tool-Call. Es ist auf Ressourcen basiert: Sie wählen einen Ressourttyp (Agent, Connector, Knowledge Base, Flow oder Space) und filtern danach nach ID, Namen oder allen. Der Prozess ist idempotent – es ist sicher, ihn erneut auszuführen – und die Berechtigungen werden genau kopiert, indem die Quelle beschrieben und dieselben Aktionen im Ziel wiederholt werden. Der vollständige Quellcode ist im aws-samples-Repository verfügbar.

Lösungsüberblick

Der Migrator fördert eine ausgewählte Reihe von Ressourcen in einer einzigen Aktion. Es handelt sich um einen Upsert-Vorgang: Eine noch nicht existierende Ressource wird erstellt, und eine bereits existierende Ressource wird dort aktualisiert. Jede Aktualisierung ist durch eine versionskodierte Backup-Datei auf Amazon S3 vor dem Änderungsvorgang geschützt, sodass jede Ressource eine vollständige Historie behält, die man überprüfen und zurücknehmen kann. Eine Leserechte-Vorauswahl berichtet genau darüber, was eine Ausführung vor dem Commit erzeugen oder aktualisieren würde, und die Migration selbst erfolgt über den Amazon Bedrock AgentCore, sodass sie von Amazon Quick oder jedem MCP-kompatiblen Client gesteuert werden kann.

Was wird migriert

  1. Wahlmodell: Wählen Sie einen Ressourttyp (Agent, Connector, Knowledge Base, Flow oder Space) und wählen Sie Ressourcen nach ID, nach Namen oder alle. Die Auswahl wird durch die Ressource gesteuert. Migrieren Sie einen Ressourttyp direkt oder migrieren Sie einen Space, um seine verknüpften Ressourcen mitzunehmen.
  2. Chat-Agenten: Erstellt mit ihren individuellen Anweisungen, Identität, Tonfall, Start-Prompts und Willkommensnachricht, wobei die Action-Konnektoren erneut an den Ziel-Konto angeschlossen werden (umgepolt). Wenn ein Raum umgezogen wird, werden seine Agenten automatisch neu mit ihm verbunden.
  3. Action-Konnektoren: Erneut erstellt mit ihrer Konfiguration. Geheime Werte werden niemals aus der Quelle gelesen. Die Konnektoren werden mit Platzhalter-Credentials erstellt und erneut authentifiziert im Ziel.
  4. Wissensdatenbanken: Die Wissensdatenbank wird im Zielkonto registriert, ihre Datenquelle wird neu erstellt und die Berechtigungen werden kopiert. Für Wissensdatenbanken, die von S3 unterstützt werden, bereitet der Migrator auch den Ziel-Bucket sowie dessen Bucket-Policy vor (ein separater Ausgangswert der Migration). Die Dokumente (S3-Objekte) selbst werden nicht kopiert.
  5. Flows: Erstellt in der Ziel-Konto nach ihrer Definition. Da die Flow-IDs in den verschiedenen Konten unterschiedlich sind, werden die Flows nach Namen abgeglichen: Ein gleichnamiges Ziel-Flow wird aktualisiert, ansonsten wird ein neuer Flow erstellt. Die Flow-Rechte werden kopiert.
  6. Spaces: Erstellt in der Zielkonto und wieder mit ihren Agenten, Verbindern und Wissensdatenbanken verknüpft (mit den Amazon Resource Names (ARNs) werden auf die Zielkonto umgelegt). Migrieren Sie zuerst die verknüpften Ressourcen, damit die Ziel-ARNs funktioniert. Die Berechtigungen für Spaces werden kopiert.

Schlüsseldesignprinzipien

  1. Ressourcengesteuerte Auswahl. Sie migrieren ein Ressourttyp pro Mal (Agent, Connector, Knowledge Base, Flow oder Space), wählen nach ID, nach Namen oder alle zusammen. Agenten werden neu erstellt, mit den wieder anliegenden Action-Connectors. Spaces werden neu erstellt und wieder mit ihren Agents, Connectors und Knowledge Bases verbunden, wobei die ARNs auf das Zielkonto umgelegt werden.
  2. Ehrlichkeit bezüglich der Berechtigungen. Die Berechtigungen sind nicht fest in die Codezeile eingebaut. Der Server ruft für jedes Quellressource den zugehörigen Describe*Permissions API-Request auf und wiederholt die gleiche Aktionenliste im Zielsystem, indem die Identitäten auf registrierte Benutzer im Zielkonto umgepunktet werden.
  3. Idempotenz. Jeder Ressource wird erstellt oder aktualisiert. Der Server beschreibt zunächst das Ziel und entscheidet dann, ob die Ressource erstellt oder aktualisiert werden soll. Dadurch konvergiert die Wiederausführung der Migration in denselben Zustand, anstatt Duplikate zu erzeugen oder Fehler zu verursachen.
  4. Minimale Privilegien und Isolation. Die Quellrolle ist nur für Lesefunktionen vorgesehen. Die Zielrolle enthält nur die Aktionen, die die Migration benötigt. Der Laufzeitprozess authentifiziert Anrufer mit einem Cognito JSON Web Token (JWT) und kann im Modus der virtuellen privaten Cloud (VPC) ausgeführt werden.
  5. Sichere, umkehrbare Updates. Bevor der Migrator die bestehenden Zielressourcen aktualisiert, schreibt er eine versionsgeschützte Screenshot dieser Ressourcen sowie deren Abhängigkeiten in einen speziellen Backup-Bucket. Falls der Backup-Datei nicht geschrieben werden kann, wird die Aktualisierung abgebrochen. Jede erstellte oder aktualisierte Ressource wird ebenfalls gesnapped, und ein Wiederherstellungstool kann jede Ressource auf eine frühere Version zurückversetzen.

Architektur

Die Lösung verwendet ein dreifaches-Konto-Modell. Ein zentrales Runner-Konto hostet den MCP-Server auf Amazon Bedrock AgentCore Runtime. Der Server übernimmt in dem Quellkonto eine Leserechte-Rolle und in dem Zielkonto eine Lesen- und Schreibrechte-Rolle unter Verwendung des AWS Security Token Service (AWS STS), sodass keine langfristigen Zugangsdaten irgendwo gespeichert werden.

Three-account architecture: a runner account hosts the MCP server on Amazon Bedrock AgentCore and assumes roles into the source and target accounts

Abbildung 1: Architektur des Amazon Quick Resource Migrator MCP-Servers

Komponentenverantwortlichkeiten

Komponente Verantwortung
AgentCore-Runzeit (Runner-Konto) Verwaltet den MCP-Server (server.py). Übernimmt Rollen in den Quell- und Zielkonten und orchestriert die Migration. Läuft im VPC-Netzwerkmodus mit einem Cognito-JWT-Autorisator.
Amazon Cognito (Laufaccount) Benutzerpool, Ressourcenserver und ein Maschine-zu-Maschine-App-Klient. Er sendet das JWT (Client-Credentials-Grant, Scope invoke) an AgentCore, den die Anrufer vorlegen.
Runde-Ausführungsrolle Die AgentCore-Execution-Rolle: Amazon CloudWatch Logs, Telemetrie und sts:AssumeRole in die Quell- und Zielrollen.
Migrator-Rolle (Quellenkonto) Leseberechtigte Schnelle Sicht beschreibt/listet Berechtigungen sowie die Wissensdatenbank lesen.
Migrator-Rolle (Ziel-Konto) Read-Write Quick Sight: Rechte zur Erstellung/Änderung, Wissensdatenbank und S3-Schreiben sowie ListUsers für die Lösung von Principal-Fragen.
Backup-Bucket (Runner-Konto) Verschlüsselter S3-Bucket, der versionsierte vor-Update- und nach-Migration-Snapshots der Zielressourcen speichert. Die Laufzeitumgebung schreibt direkt darauf. Die Wiederherstellung liest von dort. Optional (deaktiviert, wenn nicht gesetzt).

Tabelle 1: Architekturelemente

Migrationsfluss

  1. Ressourcen lösen: Aus dem Ressourttyp und dem Selektor (id, Name oder alle) lösen Sie die konkreten Ressourcidenken in der Quellkontrolle auf.
  2. Beschreiben Sie die Quelle: Beschreiben Sie jedes ausgewählte Ressource, um ihre Konfiguration und Berechtigungen zu erfassen.
  3. Verbindungsstücke: jedes Verbindungsstück neu erstellen. Die Authentifizierungskonfiguration wird auf das Erstellen (Schreiben)-Modell mit Platzhalter-Geheimnissen gesäubert, anschließend wird sie erneut authentifiziert im Ziel. Kopierberechtigungen.
  4. Wissensbases: Erstellen Sie den Ziel-Speicher (knowledge-base-<env>-<account>), Bucket-Policy, Datenquelle und Wissensdatenbank – dann kopieren Sie die Berechtigungen der Wissensdatenbank. S3-Objekte werden nicht kopiert.
  5. Agenten: Erstellen Sie jeden Agent mit den zugehörigen Aktionsverbindungen (umgeleitet auf das Zielkonto), dann kopieren Sie die Agentrechte. Die Verbindung zwischen Agent und Raum wird wiederhergestellt, sobald der Raum selbst migriert wird (siehe Schritt zum Raum).
  6. Flüsse: Erstellen jeden Fluss aus seiner Definition, mit einem Namen gekennzeichnet (Fluss-IDs unterscheiden sich zwischen den Konten): Aktualisieren einen gleichen-Namenigen Ziel-Fluss oder erstellen einen neuen, dann kopieren die Flusseinstellungen.
  7. Spaces: Erstellen Sie jeden Space neu und verbinden Sie seine Agenten, Verbindungsstellen und Wissensdatenbanken mit ARNs, die auf das Zielkonto umgelegt sind (migrieren Sie diese Ressourcen zuerst), dann kopieren Sie die Berechtigungen des Spaces.
  8. Bericht: Gib ein JSON-Bericht über die erstellten oder aktualisierten Ressourcen, Buckets, Backups, überschüssige Berechtigungen und alle Fehler zurück.

Werkzeuge, die vom MCP-Server ausgegeben werden

Der Server zeigt fünf Tools an, die alle in server.py definiert sind.

preview_migration (lesbar nur für Lesen)

preview_migration nimmt einen Quell-Konto-ID, einen Ressourttyp (Agent, Connector, Knowledge Base, Flow, Space oder alle), einen Selektor (id, Name oder alle) und eine AWS-Region entgegen. Es gibt eine Liste der Agenten, Action-Connectoren, Knowledge-Bases und Flows, die migriert werden sollten, mit Namen und Typen, ohne jegliche Änderungen vorzunehmen. Verwenden Sie es als Testläufe, um den Umfang zu bestätigen und eine Verfahrensschritte zur Veränderungsverwaltung vor der Einführung zu unterstützen. Wenn Sie auch eine Ziel-Konto-ID übergeben, fügt die Antwort eine Zuordnung von Quelle zu Ziel hinzu, die jede Ressource als „CREATE“ oder „UPDATE“ markiert, sodass Sie genau sehen können, was bei der Migration verändert werden würde, bevor sie ausgeführt wird.

migrate_resources (volle Migration)

migrate_resources nimmt die Quell- und Ziel-KontoinIDs, den Ressourttyp (Agent, Connector, Knowledge Base, Flow oder Space), einen Selektor (id, Name oder alle), eine Region, die Namen der Quellen- und Zielumgebung (verwendet in dem Namen des Bucket-Namens der Knowledge Base) sowie den Namen des Quick Sight-Dienstrollennamens entgegen. Es führt die vollständige Migration von „Create-or-Update“ aus und gibt ein strukturierte Bericht über alles, was er erstellt, aktualisiert oder vergibt hat, samt Fehlern zurück. Da es idempotent ist, kann es wiederholt ausgeführt werden, beispielsweise bei jeder Veröffentlichung, und es konvergiert in denselben Zielzustand.

list_backups (lesbar nur)

list_backups durchsucht das Backup-Katalog und listet die verfügbaren Versionen jedes Assets auf. Die Backups sind vor der Aktualisierung-Snapshots, die der Migrator in den Backup-Bucket schreibt – ein versionsbezogener Objekt pro Aktualisierung – sodass Sie die gesamte Historie jedes migrierten Ressourcen sehen können.

get_backup (lesbar nur)

get_backup gibt den vollständigen gespeicherten Backup-Ordner für einen bestimmten Asset und eine Version zurück (standardmäßig die neueste), einschließlich der erfassten Ressourcenkonfiguration und deren Abhängigkeiten.

Restore-Backup

restore_backup wiederholt die gespeicherte Backup-Version auf das Zielressource, aktualisiert sie dort oder erstellt sie neu, falls sie nicht mehr existiert. Zunächst wird eine frische vor dem Restore-Backup genommen, sodass der Rückkehrprozess selbst rückgängig gemacht werden kann.

Lokalisieren die Lösung

Die vollständige Quelle und die Schritt-für-Schritt-Installationanleitungen befinden sich im aws-samples-Repository README. Auf hohem Niveau werden drei AWS CloudFormation-Stacks, die Cross-Account-AWS Identity and Access Management (IAM)-Rollen, das VPC-Netzwerk und der Cognito-authentifizierte AgentCore-Runtime, der den MCP-Server hostet, deployed. Anschließend wird dieser Runtime als Action Connector in Amazon Quick registriert.

Verwenden Sie den Migrator über eine Quick App

Indem Sie den Laufzeitprozess als Aktionskonektor registrieren, können Sie den Migrator von Amazon Quick in natürlicher Sprache steuern und außerdem eine Quick App erstellen: eine Punkt-und-Klick-Weboberführung, die auf denselben MCP-Tools basiert. Die Benutzeroberfläche wird nicht manuell erstellt. Das Repository enthält einen bereitgestellten App-Builder-Prompt, den Sie in den Amazon Quick App Builder einfügen, um den Platzhalter-Konektor und die Action-IDs durch eigene zu ersetzen und so die App zu generieren. Die App verwandelt den Workflow in einen geleiteten Prozess: wählen Sie eine Quelle- und Zielkontoverwaltung sowie die Ressourcen, die migriert werden sollen, überprüfen Sie, was erstellt oder aktualisiert wird, führen Sie die Migration durch und prüfen Sie das Historie jeder vergangenen Migration – jede davon wird von den verschlüsselten S3-Snapshots des Servers unterstützt. Die folgenden Bildschirme zeigen diese Erfahrung.

Ein Beispiel für eine schnelle App

  1. Da die App aus einem Prompt erstellt wird, unterscheiden sich die jede Mal generierten Versionen. Die folgenden Bildschirme zeigen ein solches Beispiel. Dort wird die Anfahrtsseite mit dem ID des Quellenkontos, dem ID des Zielkontos, dem Ressourttyp (Agent, Connector, Knowledge Base, Flow oder Space) und dem Selektor (id, Name oder alle) ausgegeben, und zusätzliche Optionen sind je nach Bedarf verfügbar.

Quick App landing page with fields for source and target account IDs, resource type, and selector

Additional migration options on the Quick App landing page

Abbildung 3: Weitere Migrationsmöglichkeiten sind auf der Anlaufseite verfügbar

  1. Nachdem Sie Bestätigen & Migrieren gewählt haben, sehen Sie eine Antwort wie folgt:
Confirmation view shown after choosing Confirm and migrate

Abbildung 4: Die Bestätigungsantwort nach dem Auswählen von „Bestätigen“ und der Migration

  1. Nach der Bestätigung und dem Migrationsvorgang sollten Sie eine Antwort vom MCP-Server sehen, der die erstellten bzw. aktualisierten Ressourcen zurückgibt.
MCP server response listing the resources that were created or updated

Abbildung 5: Die Antwort des MCP-Servers mit einer Liste der erstellten oder aktualisierten Ressourcen

  1. Öffnen Sie die Tabe „History“, um alle vergangenen Migrationsvorgänge zu sehen. Jeder Eintrag wird durch den versionsgeschützten Snapshot unterstützt, den der Migrator in Amazon S3 gespeichert hat. So erhalten Sie eine vollständige, nachverfolgbare Aufzeichnung davon, was und wann migriert wurde, und Sie können auch eine frühere Version überprüfen.
History tab showing a record of past migrations

Abbildung 6: Die „History“-Tabelle zeigt eine nachvollziehbare Aufzeichnung der vergangenen Migrationen

  1. Um die Änderungen rückgängig zu machen, wählen Sie die Backup-Version einer Ressource aus und klicken Sie auf Restore. Das App-Programm setzt dann die gespeicherte Version wieder auf den Zielort. Da eine frische Backup-Version zuerst erstellt wird, ist die Rückgabe selbst wieder rückgängig machbar.
Restoring a resource to an earlier backup version

Abbildung 7: Zurückversetzen einer Ressource auf eine frühere Backup-Version

Schlussfolgerung

Die Förderung von Cross-Account-Konfigurationen ist eine grundlegende Erwartung für Unternehmenssoftware – bisher war dies jedoch das fehlende Element bei Amazon Quick. Der Quick Resource Migrator verwandelt eine langsame, manuelle und schwer zu überprüfende Aufgabe in eine schnelle, wiederholbare und regulierte Aufgabe: Ein einziger Toolschritt erstellt Agenten, Verbindungen und Wissensdatenbanken im Zielkonto neu und kopiert die Berechtigungen genau und idempotent, sodass man ihn bei jeder Veröffentlichung ausführen kann.

Klonen Sie den Beispielrepositorium, setzen Sie es in eine Runner-Konto ein und versuchen Sie, einen Agent oder eine Wissensdatenbank von der Entwicklung in die Produktion zu bringen. Anschließend anpassen Sie das Muster entsprechend Ihren eigenen Governance- und Hardening-Anforderungen.


Über die Autoren

Originalquelle

AWS Machine Learning

Hinweise zum Inhalt

Originalveröffentlichung und Rechte liegen bei der Quelle.

Maschinelle Übersetzung · Original beachten