Amazon Quick هو رفيق الذكاء الاصطناعي الوكيلي (agentic AI) من أمازون المخصص للعمل. أنت تبني وكلاء يستدلون على بياناتك، ويستدعون موصلات الإجراءات، وينجزون مهامًا متعددة الخطوات. أما ترقية تلك الموارد (وكلاء المحادثة وموصلات الإجراءات وقواعد المعرفة والتدفقات والمساحات) من حساب تطوير إلى حساب إنتاج في AWS، كما تفعل مع أي تطبيق آخر، فقد كانت مهمة يدوية معرضة للأخطاء. يعرض هذا المنشور كيفية أتمتتها باستخدام خادم Model Context Protocol (MCP) idempotent وقابل للتدقيق على Amazon Bedrock AgentCore.
اللبنات الأساسية للحل الوكيلي هي الوكلاء وموصلات الإجراءات وقواعد المعرفة والمساحات: وكلاء محادثة مُهيّأون بتعليمات مخصصة، وموصلات لـ Slack وJira وتكاملات أخرى، وقواعد معرفة مستندة إلى مستنداتك الخاصة، والمساحة (Space) التي تربطها معًا. تجمع الفرق هذه المكونات وتكرر العمل عليها بسرعة في حساب التطوير.
تدير معظم المؤسسات حسابات AWS منفصلة للتطوير والإنتاج، وأحيانًا مع ضمان الجودة (QA) بينهما. عند التحقق من صحة الوكلاء وموصلات الإجراءات وقواعد المعرفة في حساب التطوير، لا توجد طريقة أصلية بنقرة واحدة لترقيتها إلى الحساب التالي. تعيد الفرق بناء كل مورد يدويًا: إعادة إنشاء كل وكيل بالتعليمات نفسها ومطالبات البدء نفسها، وإعادة ربط موصلات إجراءات كل وكيل، وإعادة منح أذونات الموارد، وإعادة توفير حاوية Amazon Simple Storage Service (Amazon S3) وسياسة الحاوية ومصدر البيانات خلف كل قاعدة معرفة. هذا العمل بطيء، ويصعب تدقيقه، ويسهل فيه الوقوع في أخطاء طفيفة، ما يقوّض منظومة الحوكمة التي تحتاجها المؤسسات.
إدارة موارد Amazon Quick عبر واجهة برمجة تطبيقات
موارد Amazon Quick قابلة للبرمجة. تتم إدارة المساحات والوكلاء وموصلات الإجراءات وقواعد المعرفة والتدفقات عبر واجهة برمجة تطبيقات Amazon Quick (الجزء من سطح واجهة برمجة تطبيقات Amazon Quick Sight)، التي توفر دورة حياة الموارد الكاملة: الإنشاء والقراءة والتحديث والحذف والإدراج. أي شيء يهيّئه مستخدم أعمال في Amazon Quick، سواء كان وكيلًا بتعليماته ومطالبات بدء التشغيل، أو موصلًا، أو قاعدة معرفة، أو تدفقًا، يمكننا فحصه وإعادة إنشائه وتحديثه وحوكمته برمجيًا، بما في ذلك الأذونات.
هذا السطح القابل للبرمجة هو ما يجعل الترقية المحوكمة ممكنة. بدلًا من إعادة إنشاء كل مورد يدويًا، نقرأ المورد وأذوناته عبر واجهة برمجة التطبيقات ونعيد تطبيقها في حساب آخر تمامًا كما كانت. يؤلف المُرحِّل في هذا المنشور عمليات الإنشاء والقراءة والتحديث والإدراج في سير عمل واحد قابل للتكرار، ولا يُصدر أبدًا عملية حذف على الحساب الهدف، بحيث تقتصر عملية التشغيل على الإضافة أو التحديث فقط.
في هذا المنشور، نستعرض Quick Resource Migrator، وهو خادم MCP نموذجي مستضاف على بيئة تشغيل Amazon Bedrock AgentCore، وهي إمكانية من Amazon Bedrock AgentCore، يؤتمت الترقية عبر الحسابات لموارد Amazon Quick في استدعاء أداة واحد. إنه يعتمد على الموارد: تختار نوع مورد (وكيل أو موصل أو قاعدة معرفة أو تدفق أو مساحة) وتحدد بواسطة id أو بالاسم أو الكل. وهو idempotent (آمن لإعادة التشغيل)، وينسخ الأذونات بأمانة من خلال وصف المصدر وإعادة تنفيذ الإجراءات نفسها في الهدف. الشيفرة المصدرية الكاملة متاحة في مستودع aws-samples.
نظرة عامة على الحل
يقوم المُرحِّل بترقية مجموعة مختارة من الموارد في استدعاء واحد. وهو عملية upsert: المورد غير الموجود بعد في الهدف يُنشأ، والموجود مسبقًا يُحدَّث في مكانه. كل تحديث محمي بنسخة احتياطية مُصدَّرة (versioned) تُكتب إلى Amazon S3 قبل التغيير، بحيث يحتفظ كل مورد بسجل كامل يمكنك مراجعته والعودة إليه. وتوفر معاينة للقراءة فقط تبلغك بدقة بما ستنشئه عملية التشغيل أو تحدّثه قبل الالتزام، وتعمل عملية الترحيل نفسها على Amazon Bedrock AgentCore، بحيث يمكن تشغيلها من Amazon Quick أو من أي عميل متوافق مع MCP.
ما الذي يتم ترحيله
- نموذج التحديد: اختر نوع مورد (وكيل أو موصل أو قاعدة معرفة أو تدفق أو مساحة) وحدد الموارد بواسطة id أو بالاسم أو الكل. التحديد يعتمد على الموارد. رحّل نوع مورد مباشرة، أو رحّل مساحة لإحضار مواردها المرتبطة معها.
- وكلاء المحادثة: يُعاد إنشاؤهم بتعليماتهم المخصصة وهويتهم ونبرتهم ومطالبات بدء التشغيل ورسالة الترحيب، مع إعادة ربط موصلات إجراءاتهم (مع إعادة تعيينها إلى الحساب الهدف). عند ترحيل مساحة، تُعاد ربط وكلائها بها تلقائيًا.
- موصلات الإجراءات: يُعاد إنشاؤها بتهيئتها. ولا تُقرأ القيم السرية من المصدر أبدًا. تُنشأ الموصلات ببيانات اعتماد مؤقتة ويُعاد المصادقة عليها في الهدف.
- قواعد المعرفة: تُسجَّل قاعدة المعرفة في الحساب الهدف، ويُعاد إنشاء مصدر بياناتها، وتُنسخ أذوناتها. بالنسبة لقواعد المعرفة المدعومة بـ S3، يقوم المُرحِّل أيضًا بتوفير الحاوية الهدف وسياسة الحاوية الخاصة بها (مخرَج مميز لعملية الترحيل). أما المستندات (كائنات S3) نفسها فلا تُنسخ.
- التدفقات: يُعاد إنشاؤها في الحساب الهدف من تعريفها. ولأن معرفات التدفقات تختلف بين الحسابات، تُطابَق التدفقات بالاسم: إذا وُجد تدفق بنفس الاسم في الهدف فسيُحدَّث، وإلا فسيُنشأ تدفق جديد. وتُنسخ أذونات التدفق.
- المساحات (Spaces): يُعاد إنشاؤها في الحساب الهدف ويُعاد ربطها بوكلائها وموصلاتها وقواعد معرفتها (مع إعادة تعيين أسماء موارد أمازون (ARNs) إلى الهدف). قم بترحيل الموارد المرتبطة أولاً حتى تُحلّ أسماء ARN الهدف. تُنسخ أذونات المساحة.
مبادئ التصميم الرئيسية
- اختيار قائم على الموارد. تقوم بترحيل نوع مورد واحد في كل مرة (وكيل، موصل، قاعدة معرفة، تدفق، أو مساحة)، مع الاختيار بالمعرف id أو بالاسم name أو الكل. يُعاد إنشاء الوكلاء مع إعادة إرفاق موصلات الإجراءات الخاصة بهم. تُعاد إنشاء المساحات وربطها بوكلائها وموصلاتها وقواعد معرفتها، مع إعادة تعيين ARNs إلى الحساب الهدف.
- دقة الأذونات. الأذونات ليست مُضمّنة بشكل ثابت. يستدعي الخادم واجهة
Describe*Permissionsالبرمجية (API) المناسبة على كل مورد في المصدر ويعيد تنفيذ قائمة الإجراءات نفسها في الهدف، مع إعادة تعيين المديرين (principals) إلى المستخدمين المسجلين في الحساب الهدف. - قابلية التكرار (Idempotency). كل مورد يتم إنشاؤه أو تحديثه. يصف الخادم الهدف أولاً ويقرر ما إذا كان سينشئ أم يحدّث، بحيث تؤدي إعادة تشغيل الترحيل إلى الحالة نفسها بدلاً من إنتاج نسخ مكررة أو الفشل.
- الحد الأدنى من الامتيازات والعزل. دور المصدر للقراءة فقط. يحمل دور الهدف فقط الإجراءات التي يحتاجها الترحيل. يقوم بيئة التشغيل بمصادقة المتصلين باستخدام رمز ويب JSON من Cognito (JWT) ويمكن أن يعمل في وضع الشبكة الافتراضية الخاصة (VPC).
- تحديثات آمنة وقابلة للعكس. قبل أن يحدّث أداة الترحيل أي مورد هدف موجود، تكتب نسخة موسومة بالإصدار من ذلك المورد وتبعياته إلى حاوية نسخ احتياطي مخصصة. إذا تعذر كتابة تلك النسخة الاحتياطية، يتم إلغاء التحديث. كل مورد تم إنشاؤه أو تحديثه يُلتقط أيضاً نسخة منه، وأداة الاستعادة يمكنها التراجع عن أي مورد إلى إصدار سابق.
البنية المعمارية
تستخدم الحل نموذجاً من ثلاثة حسابات. يستضيف حساب مشغّل مركزي خادم MCP على بيئة تشغيل Amazon Bedrock AgentCore. يفترض الخادم دوراً للقراءة فقط في حساب المصدر ودوراً للقراءة والكتابة في الحساب الهدف باستخدام خدمة AWS Security Token Service (AWS STS)، بحيث لا تُخزّن أي بيانات اعتماد طويلة الأمد في أي مكان.
الشكل 1: بنية خادم MCP لترحيل موارد Amazon Quick
مسؤوليات المكونات
| المكون | المسؤولية |
| بيئة تشغيل AgentCore (حساب المشغّل) | تستضيف خادم MCP (server.py). تفترض أدواراً في حسابي المصدر والهدف وتنسق الترحيل. تعمل في وضع شبكة VPC مع مُصرِّح Cognito JWT. |
| Amazon Cognito (حساب المشغّل) | مجموعة مستخدمين، خادم موارد، وعميل تطبيق من آلة إلى آلة. يصدر رمز JWT (منحة بيانات اعتماد العميل، النطاق invoke) الذي يقدمه المتصلون إلى AgentCore. |
| دور تنفيذ المشغّل | دور تنفيذ AgentCore: سجلات Amazon CloudWatch، القياس عن بُعد، و sts:AssumeRole إلى أدوار المصدر والهدف. |
| دور أداة الترحيل (حساب المصدر) | أذونات وصف/سرد (describe/list) للقراءة فقط في Quick Sight بالإضافة إلى قراءة قاعدة المعرفة. |
| دور أداة الترحيل (الحساب الهدف) | أذونات القراءة والكتابة وQuick Sight للإنشاء/التحديث، والكتابة في قاعدة المعرفة وS3، و ListUsers لحل هوية المبدأ (principal resolution). |
| حاوية النسخ الاحتياطي (حساب المشغّل) | حاوية S3 مشفّرة تخزّن لقطات موجّهة بالنسخ (versioned) قبل التحديث وبعد الترحيل للموارد المستهدفة. تكتب فيها بيئة التشغيل مباشرة، وتقرأ منها عملية الاستعادة. اختيارية (تُعطَّل عند عدم تحديدها). |
الجدول 1: المكوّنات المعمارية
تدفق الترحيل
- حل الموارد: من نوع المورد والمُحدِّد (المعرّف أو الاسم أو الكل)، يتم حل معرّفات الموارد المحددة في الحساب المصدر.
- وصف المصدر: يتم وصف كل مورد مختار لالتقاط إعداداته وأذوناته.
- الموصلات (Connectors): يُعاد إنشاء كل موصل. يُنظَّف إعداد المصادقة ليطابق نموذج الإنشاء (الكتابة) مع أسرار نائبة (placeholders)، ثم تُعاد المصادقة في الهدف. تُنسخ الأذونات.
- قواعد المعرفة: تُنشأ الحاوية الهدف (
knowledge-base-<env>-<account>) وسيلة الحاوية (bucket policy) ومصدر البيانات وقاعدة المعرفة، ثم تُنسخ أذونات قاعدة المعرفة. لا تُنسخ كائنات S3. - الوكلاء (Agents): يُعاد إنشاء كل وكيل مع موصلاته المرتبطة بالإجراءات (بإعادة تعيينها إلى الحساب الهدف)، ثم تُنسخ أذونات الوكيل. تُستعاد روابط الوكيل بالمساحة (space) عند ترحيل المساحة نفسها (انظر خطوة المساحة).
- التدفقات (Flows): إعادة إنشاء كل تدفق من تعريفه، مع المطابقة بالاسم (معرفات التدفقات تختلف بين الحسابات): تحديث تدفق بنفس الاسم في الحساب الهدف أو إنشاء تدفق جديد، ثم نسخ أذونات التدفق.
- المساحات (Spaces): إعادة إنشاء كل مساحة وإعادة ربط وكلائها وموصلاتها وقواعد معرفتها مع إعادة تعيين ARNs إلى الحساب الهدف (قم بترحيل تلك الموارد أولاً)، ثم نسخ أذونات المساحة.
- التقرير: إرجاع تقرير JSON بالموارد التي تم إنشاؤها أو تحديثها، والحاويات، والنسخ الاحتياطية، والأذونات المتجاهلة، وأي أخطاء.
الأدوات التي يوفرها خادم MCP
يوفر الخادم خمس أدوات، جميعها معرّفة في server.py.
preview_migration (قراءة فقط)
preview_migration تأخذ معرّف حساب المصدر، ونوع المورد (agent أو connector أو knowledge base أو flow أو space أو all)، ومحددًا (id أو name أو all)، ومنطقة AWS. وهي تُرجع جردًا للوكلاء وموصلات الإجراءات وقواعد المعرفة والتدفقات التي ستتم ترحيلها، مع الأسماء والأنواع، دون إجراء أي تغيير. استخدمها كتشغيل تجريبي (dry run) للتأكد من النطاق ودعم خطوة موافقة إدارة التغيير قبل الترقية. عند تمرير معرّف الحساب الهدف أيضًا، يضيف الرد تعيينًا من المصدر إلى الهدف يحدد كل مورد بـ CREATE أو UPDATE، بحيث ترى بدقة ما سيغيره الترحيل قبل تشغيله.
migrate_resources (ترحيل كامل)
migrate_resources تأخذ معرّفي حسابي المصدر والهدف، ونوع المورد (agent أو connector أو knowledge base أو flow أو space)، ومحددًا (id أو name أو all)، ومنطقة، وأسماء بيئتي المصدر والهدف (تُستخدمان في اسم حاوية قاعدة المعرفة)، واسم دور خدمة Quick Sight. وهي تنفذ الترحيل الكامل للإنشاء أو التحديث الموضح أعلاه وتُرجع تقريرًا منظماً بكل ما أنشأته وحُدّث ومُنحت، إلى جانب أي أخطاء. ولأنها idempotent، يمكنك تشغيلها بشكل متكرر، على سبيل المثال عند كل إصدار، وستتقارب على نفس الحالة الهدف.
list_backups (قراءة فقط)
list_backups تبحث في كتالوج النسخ الاحتياطية وتعرض الإصدارات المتاحة لكل أصل. النسخ الاحتياطية هي لقطات ما قبل التحديث التي يكتبها أداة الترحيل إلى حاوية النسخ الاحتياطي، بكائن مُصدَّر واحد لكل تحديث، بحيث يمكنك رؤية السجل الكامل لأي مورد تم ترحيله.
get_backup (قراءة فقط)
get_backup تُرجع النسخة الاحتياطية المخزنة الكاملة لأصل وإصدار معينين (الأحدث افتراضيًا)، بما في ذلك تكوين المورد الملتقط وتبعياته.
restore_backup
restore_backup تعيد تطبيق إصدار نسخة احتياطية مخزنة على المورد الهدف، محدّثة إياه في مكانه، أو تعيد إنشاءه إذا لم يعد موجودًا. تأخذ أولاً نسخة احتياطية جديدة قبل الاستعادة، بحيث تكون التراجع نفسه قابلًا للعكس.
نشر الحل
الكود المصدري الكامل وتعليمات النشر خطوة بخطوة موجودة في مستودع aws-samples README. على مستوى عالٍ، تنشر ثلاث حزم AWS CloudFormation، وأدوار AWS Identity and Access Management (IAM) عبر الحسابات، وشبكة VPC، وبيئة AgentCore runtime المصادقة عبر Cognito التي تستضيف خادم MCP، ثم تسجّل تلك البيئة كموصل إجراءات في Amazon Quick.
استخدام أداة الترحيل من خلال Quick App
بتسجيل البيئة كموصل إجراءات، يمكنك تشغيل أداة الترحيل من Amazon Quick بلغة طبيعية، كما يمكنك بناء Quick App: تجربة ويب بالنقر على الأزرار مبنية فوق نفس أدوات MCP. أنت لا تبني تلك الواجهة يدويًا. يتضمن المستودع مطالبة app-builder تلصقها في منشئ تطبيقات Amazon Quick، مستبدلًا معرّفات الموصل والإجراء المؤقتين بمعرفاتك الخاصة لتوليد التطبيق. يحوّل التطبيق سير العمل إلى مسار موجَّه: اختر حسابي المصدر والهدف والموارد المطلوب ترقيتها، واستعرض ما سيتم إنشاؤه أو تحديثه، وشغّل الترحيل، وراجع سجل كل ترحيل سابق، كل واحد مدعوم بلقطات S3 المُصدَّرة التي يكتبها الخادم. تُظهر الشاشات التالية تلك التجربة.
مثال على Quick App
- لأن التطبيق مولَّد من مطالبة، يختلف كل بناء عن الآخر. تُظهر الشاشات التالية أحد هذه الأمثلة. فيه، تطالبك الصفحة الرئيسية بإدخال Source Account ID وTarget Account ID ونوع المورد (agent أو connector أو knowledge base أو flow أو space) والمحدد (id أو name أو all)، مع خيارات إضافية متاحة حسب الحاجة.
الشكل 3: خيارات الترحيل الإضافية المتاحة في الصفحة الرئيسية
- بعد اختيارك Confirm & migrate، ترى ردًا مشابهًا لما يلي:
الشكل 4: رد التأكيد بعد اختيار Confirm and migrate
- بعد التأكيد والترحيل، يجب أن ترى الرد من خادم MCP يعيد الموارد التي تم إنشاؤها/تحديثها.
الشكل 5: رد خادم MCP يسرد الموارد التي تم إنشاؤها أو تحديثها
- افتح علامة التبويب History لعرض كل عملية ترحيل سابقة. يدعم كل إدخال اللقطة المُصدَّرة التي كتبها المُرحِّل إلى Amazon S3، لتحصل على سجل كامل وقابل للتدقيق لما تمت ترقيته ومتى، مع إمكانية فحص أي إصدار سابق.
الشكل 6: علامة التبويب History التي تعرض سجلاً قابلاً للتدقيق لعمليات الترحيل السابقة
- للتراجع، حدد إصدار النسخ الاحتياطي للمورد واختر Restore. يعيد التطبيق تطبيق ذلك الإصدار المحفوظ على الهدف. ولأنه يلتقط أولاً نسخة احتياطية جديدة قبل الاستعادة، فإن التراجع نفسه قابل للعكس.
الشكل 7: التراجع عن مورد إلى إصدار نسخة احتياطية سابقة
الخلاصة
الترويج عبر الحسابات هو توقع أساسي لبرمجيات المؤسسات، وحتى الآن كان هذا القطاع المفقود في Amazon Quick. يحوّل Quick Resource Migrator مهمة بطيئة ويدوية ويصعب تدقيقها إلى مهمة سريعة وقابلة للتكرار وتخضع للحوكمة: استدعاء أداة واحد يعيد إنشاء الوكلاء والموصلات وقواعد المعرفة في الحساب الهدف وينسخ الأذونات بدقة، وكل ذلك بشكل قابل للتكرار الآمن (idempotent)، بحيث يمكنك تشغيله مع كل إصدار.
استنسخ مستودع العيناتوانشره في حساب مُشغِّل (runner)، ثم جرّب الترويج لوكيل أو قاعدة معرفة من بيئة التطوير إلى بيئة الإنتاج. بعد ذلك، كيّف النمط وفق متطلبات الحوكمة والتدعيم الخاصة بك.

