البرنامج التعليمي: دفع صورة حاوية مُحدثة إلى سجل حاويات منسوخ جغرافيًا لإجراء عمليات نشر لتطبيقات الويب الإقليمية

هذا هو الجزء الثالث في سلسلة برامج تعليمية مُكونة من ثلاثة أجزاء. في ⁧⁩البرنامج التعليمي السابق⁧⁩، تم تكوين النسخ الجغرافي لإجراء عمليتي نشر مختلفتين لتطبيقات الويب الإقليمية. وفي هذا البرنامج التعليمي، ستتمكن من تعديل التطبيق أولاً، ثم إنشاء صورة حاوية جديدة، ودفعها إلى سجلك المنسوخ جغرافيًا. وأخيرًا، يمكنك عرض التغيير، وقد تم نشرها تلقائيًا من خلال خطافات الويب في Azure Container Registry، لكلٍ من مثيلي تطبيقات الويب.

في هذا البرنامج التعليمي، وهو الجزء الأخير في هذه السلسلة، سيمكنك تنفيذ الإجراءات التالية:

  • تعديل HTML لتطبيقات الويب
  • إنشاء صورة Docker ووضع علامة لها
  • دفع التغيير إلى Azure Container Registry
  • عرض التطبيق المُحدث في منطقتين مختلفتين

إذا لم تكن قد قمت بعد بتكوين عمليتي النشر الإقليمي ⁧⁩لتطبيقات الويب للحاويات⁧⁩، فارجع إلى البرنامج التعليمي السابق في هذه السلسلة، ⁧⁩نشر تطبيق ويب من Azure Container Registry⁧⁩.

تعديل تطبيق الويب

في هذه الخطوة، قم بإجراء تغيير على تطبيق الويب؛ بحيث يكون ملحوظًا بشدة بمجرد دفع صورة الحاوية المُحدثة إلى Azure Container Registry.

ابحث عن ⁧AcrHelloworld/Views/Home/Index.cshtml⁩ الملف في مصدر التطبيق الذي ⁧⁩نسخته من GitHub⁧⁩ في برنامج تعليمي سابق، وافتحه في برنامج تحرير النصوص المُفضل لديك. أضِف السطر التالي أسفل سطر ⁧<h1>⁩ الموجود:

<h1>MODIFIED</h1>

يجب أن يبدو ⁧Index.cshtml⁩ الذي قمت بتعديله مشابهًا لما يلي:

@{
    ViewData["Title"] = "Azure Container Registry :: Geo-replication";
}
<style>
    body {
        background-image: url('images/azure-regions.png');
        background-size: cover;
    }
    .footer {
        position: fixed;
        bottom: 0px;
        width: 100%;
    }
</style>

<h1 style="text-align:center;color:blue">Hello World from:  @ViewData["REGION"]</h1>
<h1>MODIFIED</h1>
<div class="footer">
    <ul>
        <li>Registry URL: @ViewData["REGISTRYURL"]</li>
        <li>Registry IP: @ViewData["REGISTRYIP"]</li>
        <li>Registry Region: @ViewData["REGION"]</li>
    </ul>
</div>

إعادة إنشاء الصورة

الآن بعد أن قمت بتحديث تطبيق الويب، قم بإعادة إنشاء صورة حاويته. كما كان الحال من قبل، استخدم اسم الصورة المُؤهل بالكامل، بما في ذلك اسم المجال المُؤهل بالكامل لخادم تسجيل الدخول (FQDN)، للعلامة:

docker build . -f ./AcrHelloworld/Dockerfile -t <acrName>.azurecr.io/acr-helloworld:v1

ادفع الصورة إلى Azure Container Registry

بعد ذلك، ادفع صورة حاوية ⁧⁩acr-helloworld⁧⁩ المُحدّثة إلى سجلك المنسوخ جغرافيًا. وهنا، عليك تنفيذ أمر ⁧docker push⁩ واحد لنشر الصورة المُحدّثة إلى النسخ المتماثلة للسجل في كل من منطقتي ⁧⁩غرب الولايات المتحدة⁧⁩ ⁧⁩وشرق الولايات المتحدة⁧⁩.

docker push <acrName>.azurecr.io/acr-helloworld:v1

يجب أن يكون إخراج ⁧docker push⁩ مشابهًا لما يلي:

$ docker push uniqueregistryname.azurecr.io/acr-helloworld:v1
The push refers to a repository [uniqueregistryname.azurecr.io/acr-helloworld]
5b9454e91555: Pushed
d6803756744a: Layer already exists
b7b1f3a15779: Layer already exists
a89567dff12d: Layer already exists
59c7b561ff56: Layer already exists
9a2f9413d9e4: Layer already exists
a75caa09eb1f: Layer already exists
v1: digest: sha256:4c3f2211569346fbe2d1006c18cbea2a4a9dcc1eb3a078608cef70d3a186ec7a size: 1792

عرض سجلات خطافات الويب

في أثناء النسخ المتماثل للصورة، يمكنك ملاحظة بدء تشغيل خطافات الويب لـ Azure Container Registry.

لمشاهدة خطافات الويب الإقليمية التي تم إنشاؤها عند نشر الحاوية إلى ⁧⁩تطبيقات الويب للحاويات⁧⁩ في برنامج تعليمي سابق، انتقل إلى سجل الحاوية في مدخل Azure، ثم حدِّد ⁧⁩خطافات الويب⁧⁩ ضمن ⁧⁩الخدمات⁧⁩.

خطافات ويب سجلات الحاويات في مدخل Azure

حدِّد كلاً من خطافات الويب للاطلاع على سجل الاستدعاءات والاستجابات به. يجب أن ترى صفًا لإجراء ⁧⁩الدفع⁧⁩ في سجلات كل من خطافي الويب. هنا، يُظهِر سجل خطاف الويب الموجود في منطقة ⁧⁩غرب الولايات المتحدة⁧⁩ إجراء ⁧⁩الدفع⁧⁩ الذي تم تشغيله من خلال ⁧docker push⁩ في الخطوة السابقة:

سجل خطافات الويب لسجل الحاويات في مدخل Azure (غرب الولايات المتحدة)

عرض تطبيق الويب المُحدّث

تعمل خطافات الويب على إخطار تطبيقات الويب بأنه تم دفع صورة جديدة إلى السجل، والذي يقوم تلقائيًا بنشر الحاوية المُحدّثة إلى تطبيقي الويب الإقليميين.

تحقّق من تحديث التطبيق في كل من عمليتي النشر؛ عن طريق التنقل إلى كل من عمليتي نشر تطبيقات الويب الإقليمية في مستعرض ويب.⁧ ⁩، وكتذكير، يمكنك العثور على عنوان URL لتطبيق الويب المنشور في أعلى يمين علامة تبويب النظرة العامة لكل خدمة من خدمات التطبيقات.

نظرة عامة على خدمات التطبيقات في مدخل Azure

للاطّلاع على التطبيق المُحدّث، حدِّد الرابط في النظرة العامة حول خدمة التطبيق. إليك مثال لعرض تطبيق يعمل في ⁧⁩غرب الولايات المتحدة⁧⁩:

عرض في المستعرض لتطبيق ويب مُعدّل يعمل في منطقة غرب الولايات المتحدة

تحقّق من أن صورة الحاوية المُحدّثة تم نشرها أيضًا في عملية نشر ⁧⁩شرق الولايات المتحدة⁧⁩ من خلال عرضها في المستعرض لديك.

عرض في المستعرض لتطبيق ويب مُعدّل يعمل في منطقة شرق الولايات المتحدة

باستخدام ⁧docker push⁩ واحد، أجريت التحديث التلقائي لتطبيق الويب الذي يعمل في كل من عمليتي النشر الإقليمي لتطبيقات الويب. وقد خدم Azure Container Registry صور الحاويات من المستودعات الموجودة في أقرب موقع لكلٍ من عمليات النشر.

الخطوات التالية

في هذا البرنامج التعليمي، قمت بتحديث ودفع نسخة جديدة من حاوية تطبيق الويب إلى سجلك المنسوخ جغرافيًا. وعملت خطافات الويب في Azure Container Registry على إخطار تطبيقات الويب للحاويات بالتحديث، مما أدى إلى سحب محلي من أقرب نسخة متماثلة في السجل.

ACR Build: الإنشاء والتصحيح المُؤتمت للصور

بالإضافة إلى النسخ المتماثل الجغرافي، يُعد ACR Build ميزةً أخرى من Azure Container Registry، والتي يمكن أن تساعد في تحسين تدفق نشر الحاويات لديك. ابدأ بنظرة عامة حول ACR Build للاطّلاع بشكل عام على إمكانياته:

⁩أتمتة نظام التشغيل وتصحيح أطر العمل باستخدام ACR Build⁧