تمرين - تعيين متغيرات البيئة
متغيرات البيئة تمكنك من تكوين إعدادات التطبيق أو البرنامج النصي الذي تشغله الحاوية بشكل ديناميكي. يمكنك استخدام Azure CLI أو PowerShell أو مدخل Microsoft Azure لتعيين المتغيرات عند إنشاء الحاوية. تتيح متغيرات البيئة المؤمنة إمكانية منع عرض المعلومات الحساسة في مخرجات الحاوية.
هنا، ستقوم بإنشاء مثيل Azure Cosmos DB واستخدام متغيرات البيئة لتمرير معلومات الاتصال إلى مثيل حاوية Azure. يستخدم تطبيق في الحاوية المتغيرات لكتابة البيانات وقراءتها من Azure Cosmos DB. ستقوم بإنشاء متغير بيئة ومتغير بيئة آمنة بحيث يمكنك ملاحظة الفرق بينهما.
نشر Azure Cosmos DB
عند نشر Azure Cosmos DB، تقوم بتوفير اسم قاعدة بيانات فريد. لأغراض التعلم، بادر بتشغيل هذا الأمر في Cloud Shell لإنشاء متغير Bash الذي يحمل اسمًا فريدًا.
COSMOS_DB_NAME=aci-cosmos-db-$RANDOMشغل هذا الأمر
az cosmosdb createلإنشاء مثيل Azure Cosmos DB.COSMOS_DB_ENDPOINT=$(az cosmosdb create \ --resource-group learn-deploy-aci-rg \ --name $COSMOS_DB_NAME \ --query documentEndpoint \ --output tsv)يمكن أن يستغرق هذا الأمر بضع دقائق للانتهاء.
$COSMOS_DB_NAME يحدد اسم قاعدة البيانات الفريد. يقوم الأمر بطباعة عنوان نقطة النهاية لقاعدة البيانات. وهنا، الأمر يحفظ الأمر هذا العنوان إلى متغير BashCOSMOS_DB_ENDPOINT.شغل
az cosmosdb keys list للحصول على مفتاح اتصال Azure Cosmos DB وتخزينه في متغير Bash المسمى بـ COSMOS_DB_MASTERKEY.COSMOS_DB_MASTERKEY=$(az cosmosdb keys list \ --resource-group learn-deploy-aci-rg \ --name $COSMOS_DB_NAME \ --query primaryMasterKey \ --output tsv)
نشر حاوية مناسبة للعمل مع قاعدة البيانات
هنا ستنشئ مثيل حاوية Azure الذي يمكنه القراءة من مثيلAzure Cosmos DB الخاص بك وكتابة السجلات إليه.
يحمل متغيران البيئة اللذين قمت بإنشائهما في الجزء الأخير COSMOS_DB_ENDPOINT وCOSMOS_DB_MASTERKEY القيم التي تحتاجها للاتصال بمثيل Azure Cosmos DB.
شغل الأمر التالي
az container create لإنشاء الحاوية.az container create \ --resource-group learn-deploy-aci-rg \ --name aci-demo \ --image mcr.microsoft.com/azuredocs/azure-vote-front:cosmosdb \ --ip-address Public \ --location eastus \ --environment-variables \ COSMOS_DB_ENDPOINT=$COSMOS_DB_ENDPOINT \ COSMOS_DB_MASTERKEY=$COSMOS_DB_MASTERKEYيشير azuredocs/azure-vote-front:cosmosdb إلى صورة حاوية تُشغّل تطبيق تصويت وهمي.
لاحظ
--environment-variablesالوسيطة. تحدد هذه الوسيطة متغيرات البيئة التي يتم تمريرها إلى الحاوية عند بدء تشغيل الحاوية. تم تكوين صورة الحاوية للبحث عن متغيرات البيئة هذه. وهنا، يمكنك تمرير اسم نقطة نهاية Azure Cosmos DB ومفتاح الاتصال الخاص بها.بادر بتشغيل الأمر
az container show للحصول على عنوان IP العام للحاوية.az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo \ --query ipAddress.ip \ --output tsvداخل متصفح، انتقل إلى عنوان IP لحاويتك.
هام
في بعض الأحيان تستغرق الحاويات دقيقة أو دقيقتين لبدء التشغيل الكامل وتكون قادرة على تلقي الاتصالات. إذا لم تكن هناك استجابة عند الانتقال إلى عنوان بروتوكول الإنترنت في المتصفح، فانتظر بضع لحظات وحدّث الصفحة.
بمجرد أن يتوفر التطبيق، سترى هذا.

حاول التصويت للقطط أو الكلاب. يتم تخزين كل صوت في مثيل Azure Cosmos DB.
استخدم متغيرات البيئة المؤمنة لإخفاء معلومات الاتصال
في الجزء السابق، استخدمت متغيرين البيئة لإنشاء الحاوية. بشكل افتراضي، يمكن الوصول إلى متغيرات البيئة هذه من خلال مدخل Microsoft Azure وأدوات سطر الأوامر في النص العادي.
في هذا الجزء، ستتعلم كيفية منع عرض المعلومات الحساسة، مثل مفاتيح الاتصال، في النص العادي.
دعونا نبدأ برؤية السلوك الحالي في أثناء العمل. شغل الأمر التالي
az container show لعرض متغيرات البيئة الخاصة بالحاوية.az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo \ --query containers[0].environmentVariablesسترى أن كلتا القيمتين تظهر في صورة نص عادي. وفيما يلي مثال على ذلك.
[ { "name": "COSMOS_DB_ENDPOINT", "secureValue": null, "value": "https://aci-cosmos.documents.azure.com:443/" }, { "name": "COSMOS_DB_MASTERKEY", "secureValue": null, "value": "Xm5BwdLlCllBvrR26V00000000S2uOusuglhzwkE7dOPMBQ3oA30n3rKd8PKA13700000000095ynys863Ghgw==" } ]على الرغم من أن هذه القيم لا تظهر للمستخدمين من خلال تطبيق التصويت، إلا أنها ممارسة أمنية جيدة لضمان عدم تخزين المعلومات الحساسة مثل مفاتيح الاتصال في نص عادي.
متغيرات البيئة الآمنة تمنع مخرجات النص الواضح. لاستخدام متغيرات بيئة آمنة، يمكنك استخدام الوسيطة
--secure-environment-variablesبدلاً من الوسيطة--environment-variables.شغل الأمر التالي لإنشاء حاوية ثانية، المسماة بـ aci-demo-secure، التي تستخدم متغيرات البيئة الآمنة.
az container create \ --resource-group learn-deploy-aci-rg \ --name aci-demo-secure \ --image mcr.microsoft.com/azuredocs/azure-vote-front:cosmosdb \ --ip-address Public \ --location eastus \ --secure-environment-variables \ COSMOS_DB_ENDPOINT=$COSMOS_DB_ENDPOINT \ COSMOS_DB_MASTERKEY=$COSMOS_DB_MASTERKEYلاحظ استخدام
--secure-environment-variablesالوسيطة.شغل الأمر التالي
az container show لعرض متغيرات البيئة الخاصة بالحاوية.az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo-secure \ --query containers[0].environmentVariablesفي هذه المرة، سترى أن متغيرات البيئة الخاصة بك لا تظهر في نص عادي.
[ { "name": "COSMOS_DB_ENDPOINT", "secureValue": null, "value": null }, { "name": "COSMOS_DB_MASTERKEY", "secureValue": null, "value": null } ]في الواقع، لا تظهر قيم متغيرات البيئة الخاصة بك على الإطلاق. وهذا جيد لأن هذه القيم تشير إلى معلومات حساسة. هنا، كل ما تحتاج إلى معرفته هو أن متغيرات البيئة موجودة.
هل تحتاج إلى مساعدة؟ راجع دليل استكشاف الأخطاء وإصلاحها الذي نقدمه أو يمكنك توفير ملاحظات معينة عبر الإبلاغ عن مشكلة.