مرجع خطاف الويب لـ Azure Container Registry

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

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

للحصول على معلومات حول تكوين خطافات الويب لسجل حاوية Azure، راجع استخدام خطافات ويب Azure Container Registry.

طلبات خطافات الويب

طلب HTTP

يقوم خطاف ويب مشغل بإجراء طلب HTTP POST إلى نقطة نهاية URL التي حددتها عند تكوين خطاف الويب.

عناوين HTTP

تتضمن طلبات خطافات الويب Content-Type من application/json إذا لم تحدد عنوان Content-Type مخصصاً لخطاف الويب لديك.

لا تتم إضافة عناوين أخرى للطلب بعيداً عن تلك العناوين المخصصة التي ربما حددتها لخطاف الويب هذا.

حدث الدفع

تم تشغيل خطاف الويب عند دفع صورة حاوية إلى مستودع.

دفع حمولة الحدث

العنصر النوع الوصف
id سلسلة معرف حدث خطاف الويب.
timestamp التاريخ والوقت الوقت الذي تم فيه تشغيل حدث خطاف الويب.
action سلسلة الإجراء الذي قام بتشغيل حدث خطاف الويب.
target نوع معقد الهدف من الحدث الذي قام بتشغيل حدث خطاف الويب.
طلب النوع المعقد الطلب الذي قام بإنشاء حدث خطاف الويب.

الهدف

العنصر النوع الوصف
mediaType سلسلة نوع MIME للعنصر المُشار إليه.
size Int32 عدد وحدات البايت الخاصة بالمحتوى. حقل الطول نفسه.
digest سلسلة شفرة تجزئة المحتوى، كما هو محدد بواسطة مواصفات واجهة برمجة تطبيقات HTTP للإصدار 2 من السجل.
length Int32 عدد وحدات البايت الخاصة بالمحتوى. نفس حجم الحقل.
repository سلسلة اسم المستودع.
tag سلسلة اسم علامة الصورة.

طلب

العنصر النوع الوصف
id سلسلة معرف الطلب الذي بدأ الحدث.
host سلسلة اسم المضيف الذي يمكن الوصول إليه خارجياً لمثيل السجل، كما هو محدد بواسطة عنوان مضيف HTTP للطلبات الواردة.
method سلسلة أسلوب الطلب الذي قام بإنشاء الحدث.
useragent سلسلة عنوان عامل المستخدم للطلب.

مثال على الحمولة: حدث دفع الصورة

{
  "id": "cb8c3971-9adc-488b-xxxx-43cbb4974ff5",
  "timestamp": "2017-11-17T16:52:01.343145347Z",
  "action": "push",
  "target": {
    "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
    "size": 524,
    "digest": "sha256:xxxxd5c8786bb9e621a45ece0dbxxxx1cdc624ad20da9fe62e9d25490f33xxxx",
    "length": 524,
    "repository": "hello-world",
    "tag": "v1"
  },
  "request": {
    "id": "3cbb6949-7549-4fa1-xxxx-a6d5451dffc7",
    "host": "myregistry.azurecr.io",
    "method": "PUT",
    "useragent": "docker/17.09.0-ce go/go1.8.3 git-commit/afdb6d4 kernel/4.10.0-27-generic os/linux arch/amd64 UpstreamClient(Docker-Client/17.09.0-ce \\(linux\\))"
  }
}

مثال على الأمر Docker CLI الذي يقوم بتشغيل خطاف ويب حدث دفع الصورة:

docker push myregistry.azurecr.io/hello-world:v1

حدث دفع المخطط البياني

تم تشغيل خطاف الويب عند دفع مخطط Helm البياني إلى مستودع.

حمولة حدث دفع المخطط البياني

العنصر النوع الوصف
id سلسلة معرف حدث خطاف الويب.
timestamp التاريخ والوقت الوقت الذي تم فيه تشغيل حدث خطاف الويب.
action سلسلة الإجراء الذي قام بتشغيل حدث خطاف الويب.
target نوع معقد الهدف من الحدث الذي قام بتشغيل حدث خطاف الويب.

الهدف

العنصر النوع الوصف
mediaType سلسلة نوع MIME للعنصر المُشار إليه.
size Int32 عدد وحدات البايت الخاصة بالمحتوى.
digest سلسلة شفرة تجزئة المحتوى، كما هو محدد بواسطة مواصفات واجهة برمجة تطبيقات HTTP للإصدار 2 من السجل.
repository سلسلة اسم المستودع.
tag سلسلة اسم علامة المخطط البياني.
name سلسلة اسم المخطط البياني.
version سلسلة إصدار المخطط البياني.

مثال على الحمولة: حدث دفع المخطط البياني

{
  "id": "6356e9e0-627f-4fed-xxxx-d9059b5143ac",
  "timestamp": "2019-03-05T23:45:31.2614267Z",
  "action": "chart_push",
  "target": {
    "mediaType": "application/vnd.acr.helm.chart",
    "size": 25265,
    "digest": "sha256:xxxx8075264b5ba7c14c23672xxxx52ae6a3ebac1c47916e4efe19cd624dxxxx",
    "repository": "repo",
    "tag": "wordpress-5.4.0.tgz",
    "name": "wordpress",
    "version": "5.4.0.tgz"
  }
}

مثال على الأمر Azure CLI الذي يقوم بتشغيل خطاف ويب حدث chart_push:

az acr helm push wordpress-5.4.0.tgz --name MyRegistry

حذف الحدث

خطاف الويب الذي تم تشغيله عند حذف مستودع صورة أو بيان. لا يتم تشغيلها عند حذف علامة.

حذف حمولة الحدث

العنصر النوع الوصف
id سلسلة معرف حدث خطاف الويب.
timestamp التاريخ والوقت الوقت الذي تم فيه تشغيل حدث خطاف الويب.
action سلسلة الإجراء الذي قام بتشغيل حدث خطاف الويب.
target نوع معقد الهدف من الحدث الذي قام بتشغيل حدث خطاف الويب.
طلب النوع المعقد الطلب الذي قام بإنشاء حدث خطاف الويب.

الهدف

العنصر النوع الوصف
mediaType سلسلة نوع MIME للعنصر المُشار إليه.
digest سلسلة شفرة تجزئة المحتوى، كما هو محدد بواسطة مواصفات واجهة برمجة تطبيقات HTTP للإصدار 2 من السجل.
repository سلسلة اسم المستودع.

طلب

العنصر النوع الوصف
id سلسلة معرف الطلب الذي بدأ الحدث.
host سلسلة اسم المضيف الذي يمكن الوصول إليه خارجياً لمثيل السجل، كما هو محدد بواسطة عنوان مضيف HTTP للطلبات الواردة.
method سلسلة أسلوب الطلب الذي قام بإنشاء الحدث.
useragent سلسلة عنوان عامل المستخدم للطلب.

مثال على الحمولة: حدث حذف الصورة

{
    "id": "afc359ce-df7f-4e32-xxxx-1ff8aa80927b",
    "timestamp": "2017-11-17T16:54:53.657764628Z",
    "action": "delete",
    "target": {
      "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
      "digest": "sha256:xxxxd5c8786bb9e621a45ece0dbxxxx1cdc624ad20da9fe62e9d25490f33xxxx",
      "repository": "hello-world"
    },
    "request": {
      "id": "3d78b540-ab61-4f75-xxxx-7ca9ecf559b3",
      "host": "myregistry.azurecr.io",
      "method": "DELETE",
      "useragent": "python-requests/2.18.4"
    }
  }

مثال على أوامر Azure CLI التي تشغل خطاف ويب حدث delete:

# Delete repository
az acr repository delete --name MyRegistry --repository MyRepository

# Delete image
az acr repository delete --name MyRegistry --image MyRepository:MyTag

حدث حذف المخطط البياني

خطاف ويب تم تشغيله عند حذف مستودع أو مخطط Helm البياني.

حمولة حدث حذف المخطط البياني

العنصر النوع الوصف
id سلسلة معرف حدث خطاف الويب.
timestamp التاريخ والوقت الوقت الذي تم فيه تشغيل حدث خطاف الويب.
action سلسلة الإجراء الذي قام بتشغيل حدث خطاف الويب.
target نوع معقد الهدف من الحدث الذي قام بتشغيل حدث خطاف الويب.

الهدف

العنصر النوع الوصف
mediaType سلسلة نوع MIME للعنصر المُشار إليه.
size Int32 عدد وحدات البايت الخاصة بالمحتوى.
digest سلسلة شفرة تجزئة المحتوى، كما هو محدد بواسطة مواصفات واجهة برمجة تطبيقات HTTP للإصدار 2 من السجل.
repository سلسلة اسم المستودع.
tag سلسلة اسم علامة المخطط البياني.
name سلسلة اسم المخطط البياني.
version سلسلة إصدار المخطط البياني.

مثال على الحمولة: حدث حذف المخطط البياني

{
  "id": "338a3ef7-ad68-4128-xxxx-fdd3af8e8f67",
  "timestamp": "2019-03-06T00:10:48.1270754Z",
  "action": "chart_delete",
  "target": {
    "mediaType": "application/vnd.acr.helm.chart",
    "size": 25265,
    "digest": "sha256:xxxx8075264b5ba7c14c23672xxxx52ae6a3ebac1c47916e4efe19cd624dxxxx",
    "repository": "repo",
    "tag": "wordpress-5.4.0.tgz",
    "name": "wordpress",
    "version": "5.4.0.tgz"
  }
}

مثال على الأمر Azure CLI الذي يقوم بتشغيل خطاف ويب حدث chart_delete:

az acr helm delete wordpress --version 5.4.0 --name MyRegistry

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

استخدام خطافات ويب Azure Container Registry