مشاركة عبر


التشغيل السريع: نشر صورة حاوية موجودة باستخدام سطر الأوامر

تتيح لك تطبيقات حاوية Azure تشغيل الخدمات الصغيرة والتطبيقات الحاوية على نظام أساسي بدون خادم. يمكنك، مع تطبيقات الحاوية، التمتع بفوائد تشغيل الحاوية بعد أن تخلف ورائها مخاوف تكوين البنية التحتية السحابية يدويًّا ومنسقي الحاويات المعقدة.

توضح هذه المقالة طريقة توزيع حاوية موجودة إلى تطبيقات حاوية Azure.

إشعار

يتم دعم تخويل التسجيل الخاص من خلال اسم مُستخدم السجل وكلمة المرور.

المتطلبات الأساسية

الإعداد

لتسجيل الدخول إلى Azure من CLI، قم بتشغيل الأمر التالي واتبع المطالبات لإكمال عملية المصادقة.

az login

للتأكد من تشغيل أحدث إصدار من CLI، قم بتشغيل أمر الترقية.

az upgrade

بعد ذلك، قم بتثبيت أو تحديث ملحق Azure Container Apps ل CLI.

إذا تلقيت أخطاء حول المعلمات المفقودة عند تشغيل az containerapp الأوامر في Azure CLI أو cmdlets من Az.App الوحدة النمطية في PowerShell، فتأكد من تثبيت أحدث إصدار من ملحق Azure Container Apps.

az extension add --name containerapp --upgrade

إشعار

بدءا من مايو 2024، لم تعد ملحقات Azure CLI تمكن ميزات المعاينة بشكل افتراضي. للوصول إلى ميزات معاينة تطبيقات الحاوية، قم بتثبيت ملحق Container Apps باستخدام --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

الآن بعد تثبيت الملحق أو الوحدة النمطية Microsoft.App الحالية، قم بتسجيل مساحات الأسماء و Microsoft.OperationalInsights .

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

تعيين متغيرات البيئة

تعيين متغيرات البيئة التالية. <PLACEHOLDERS> استبدل بالقيم الخاصة بك:

RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"

إنشاء مجموعة موارد Azure

إنشاء مجموعة موارد لتنظيم الخدمات المتعلقة بنشر تطبيق الحاوية.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

إنشاء بيئة

يمكن لبيئة Azure Container Apps إنشاء حدود آمنة حول مجموعة من تطبيقات الحاويات. يتم توزيع Container Apps المنتشرة في نفس البيئة في نفس الشبكة الظاهرية وكتابة سجلات إلى نفس مساحة عمل Log Analytics.

لإنشاء البيئة، قم بتشغيل الأمر التالي:

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION"

إنشاء تطبيق حاويات

الآن بعد أن تم إنشاء بيئة، يمكنك نشر تطبيق الحاوية الأول الخاص بك.

  1. تعيين متغيرات البيئة.

    <PLACEHOLDERS> استبدل بقيمك. سيكون اسم المستخدم الأساسي عادة بتنسيق عنوان بريد إلكتروني (على سبيل المثال، username@domain.com).

     CONTAINER_APP_NAME=my-container-app
     KEY_VAULT_NAME=my-key-vault
     USER_PRINCIPAL_NAME=<USER_PRINCIPAL_NAME>
     SECRET_NAME=my-secret-name
     CONTAINER_IMAGE_NAME=<CONTAINER_IMAGE_NAME>
     REGISTRY_SERVER=<REGISTRY_SERVER>
     REGISTRY_USERNAME=<REGISTRY_USERNAME>
    
  2. إنشاء مخزن المفاتيح.

    يحافظ تخزين كلمة مرور سجل الحاوية باستخدام خدمة مثل Azure Key Vault على أمان القيم في جميع الأوقات. توضح الخطوات الواردة في هذا القسم كيفية إنشاء مخزن مفاتيح وتخزين كلمة مرور سجل الحاوية الخاصة بك في Key Vault، ثم استرداد كلمة المرور لاستخدامها في التعليمات البرمجية الخاصة بك.

     az keyvault create --name $KEY_VAULT_NAME --resource-group $RESOURCE_GROUP
    
  3. امنح حساب المستخدم الخاص بك أذونات لإدارة الأسرار في مخزن المفاتيح.

     KEY_VAULT_ID=$(az keyvault show --name $KEY_VAULT_NAME --query id --output tsv)
     az role assignment create --role "Key Vault Secrets Officer" --assignee "$USER_PRINCIPAL_NAME" --scope "$KEY_VAULT_ID"
    
  4. قم بتخزين كلمة مرور سجل الحاوية في مخزن المفاتيح.

    استبدل <REGISTRY_PASSWORD> بقيمتك.

     az keyvault secret set --vault-name $KEY_VAULT_NAME --name $SECRET_NAME --value "<REGISTRY_PASSWORD>"
    
  5. استرداد كلمة مرور سجل الحاوية من مخزن المفاتيح.

     REGISTRY_PASSWORD=$(az keyvault secret show --name $SECRET_NAME --vault-name $KEY_VAULT_NAME --query value --output tsv)
    
  6. نشر صورة حاوية إلى Azure Container Apps.

     az containerapp create \
       --name $CONTAINER_APP_NAME \
       --location $LOCATION \
       --resource-group $RESOURCE_GROUP \
       --image $CONTAINER_IMAGE_NAME \
       --environment $CONTAINERAPPS_ENVIRONMENT \
       --registry-server $REGISTRY_SERVER \
       --registry-username $REGISTRY_USERNAME \
       --registry-password $REGISTRY_PASSWORD
    

    إن قمت بتمكين الدخول على تطبيق الحاوية الخاص بك، يمكنك إضافة الأمر--query properties.configuration.ingress.fqdn إلى create لإرجاع عنوان URL العام للتطبيق.

  1. تعيين متغيرات البيئة.

     CONTAINER_APP_NAME=my-container-app
     CONTAINER_IMAGE_NAME=mcr.microsoft.com/k8se/quickstart:latest
    
  2. نشر صورة حاوية إلى Azure Container Apps.

     az containerapp create \
       --image $CONTAINER_IMAGE_NAME \
       --name $CONTAINER_APP_NAME \
       --resource-group $RESOURCE_GROUP \
       --environment $CONTAINERAPPS_ENVIRONMENT
    

    إن قمت بتمكين الدخول على تطبيق الحاوية الخاص بك، يمكنك إضافة الأمر--query properties.configuration.ingress.fqdn إلى create لإرجاع عنوان URL العام للتطبيق.


تحقق من النشر

للتحقق من عملية نشر ناجحة، يمكنك الاستعلام عن مساحة عمل تحليلات التسجيل. قد تضطر إلى الانتظار بضع دقائق بعد التوزيع حتى تصل التحليلات لأول مرة قبل أن تتمكن من الاستعلام عن السجلات. يعتمد هذا على تسجيل وحدة التحكم الذي تم تنفيذه في تطبيق الحاوية.

استخدم الأوامر التالية لعرض رسائل سجل وحدة التحكم.

LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az containerapp env show --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP --query properties.appLogsConfiguration.logAnalyticsConfiguration.customerId --out tsv`

az monitor log-analytics query \
  --workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
  --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == $CONTAINER_APP_NAME | project ContainerAppName_s, Log_s, TimeGenerated" \
  --out table

تنظيف الموارد

في حال عدم استمرارك في استخدام هذا التطبيق، فقم بتشغيل الأمر التالي لحذف مجموعة الموارد مع جميع الموارد التي تم إنشاؤها في هذا التشغيل السريع.

تنبيه

يحذف الأمر التالي مجموعة الموارد المحددة وجميع الموارد المضمنة فيها. إذا كانت هناك موارد خارج نطاق هذا التشغيل السريع في مجموعة الموارد المحددة، فسيتم حذفها أيضًا.

az group delete --name $RESOURCE_GROUP

تلميح

هل تواجه مشكلات؟ اسمحوا لنا أن نعرف على GitHub عن طريق فتح مشكلة في Azure Container Apps repo.

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