النشر التلقائي لوظائف serverless من بوابة

الصورة

باستخدام مثال gitlab bot ، سأوضح كيف يمكنك أتمتة عملية الإصدار للوظائف الخالية من الخادم عن طريق تحديثها تلقائيًا من مستودع git. نمر من الألعاب إلى التطوير العملي على سيرفر.

ما هو بوت غيتلاب؟


تخيل أنك تحتاج إلى أتمتة عملية التفاعل لإنشاء المهام / الأخطاء في متعقبك ، على سبيل المثال Gitlab (Issues) أو Jira. قد تحتاج إلى إضافة فنان تلقائيًا وفقًا للعلامات ، أو نقل المهمة إلى معلم معين ، أو إضافة تعليق ، أو إغلاق الخطأ السيئ. كل هذا يتم بسهولة جدا باستخدام وظائف serverless. على سبيل المثال ، سنقوم بإضافة تعليق (ملاحظة في مصطلحات Gitlab) إلى مهمة تم إنشاؤها حديثًا (العدد).

ونظرًا لأن الروبوت قد يتغير كثيرًا ، فسنقوم تلقائيًا بإصداره من خلال مزامنة الوظيفة تلقائيًا مع مستودع git حيث يقع.

بيئة الإعداد


أولاً نحتاج إلى إنشاء مشروع على Gitlab. إذا لم يكن لديك حساب Gitlab ، يمكنك إنشاء حساب هنا . يمكنك إنشاء مشروع عام جديد ، على سبيل المثال ، عن طريق توجيه مشروعي https://gitlab.com/bbelky/gitbotswf بالنقر فوق الزر Fork في الركن الأيمن العلوي.

الصورة

لتتمكن من تعديل رمز bot ، يلزمك استنساخه محليًا. في الواقع ، لأغراض هذا الدليل ، يمكننا القيام بذلك عبر الإنترنت ، لكننا سنكون أقرب إلى الحياة الحقيقية. افتح المحطة الطرفية واستنساخ مستودع بوابة. يمكن العثور على الرابط في الركن الأيمن العلوي من مشروعك Clone > Clone مع HTTPS . احفظه كعنوان URL لـ Gitlab ، وسيظل مفيدًا لنا.

git clone <link to your repo> cd gitbotswf/ ls README.md main.go 

يوجد ملف main.go في مستودع النسخ. هذا هو الروبوت لدينا مكتوب في جولانج. الروبوت بسيط للغاية: يتلقى webhook من Gitlab في حالة إنشاء مهمة جديدة (Issue) ويضيف تعليقًا (ملاحظة في مصطلحات Gitlab) إلى المهمة التي تم إنشاؤها. هناك تعليقات في main.go لمساعدتك في معرفة كيفية عمل الروبوت. لن نتناول هذا بمزيد من التفصيل.

لا تغلق المحطة - بعد قليل سنحتاج إلى تعديل ملف main.go.

نحتاج أيضًا إلى إنشاء واجهة برمجة تطبيقات Gitlab Token للوصول إلى واجهة برمجة تطبيقات hitlab.

  1. انتقل إلى ملف تعريف Gitlab الخاص بك> الإعدادات > رموز الوصول.
  2. إنشاء رمز مميز جديد بنطاق api.
  3. انسخها واحفظها كـ GITLABTOKEN .

الروبوت


الوقت لإنشاء الروبوت نفسه. لنقم بإنشاء وظيفة بدون خادم مع رمز برنامج الروبوت الخاص بنا استنادًا إلى منصة Swifty بدون خادم . إذا لم يكن لديك بالفعل حساب على Rusonyx Swifty ، فقد حان الوقت لإنشاء حساب. نريد أتمتة عملية نشر وظيفة جديدة ، لذلك دعونا نقوم بالتسلسل التالي: قم بتوصيل مستودع git الخاص بنا ، وخلق وظيفة بناءً على الكود من git ، ووضع رمز gitlab api في مستودع آمن.

الصورة

  1. تسجيل الدخول إلى Swifty وحدد المستودعات
  2. انقر فوق Attach Repo ، وحدد نوع عنوان URL الخاص بـ Git والصق عنوان URL الخاص بـ Gitlab .
  3. تذكر أن تقوم بتحديد خيار "مستودع النسخ" تلقائيًا وانقر فوق "تم".

الصورة

سيتم الآن مزامنة Swifty تلقائيًا مع المستودع الخاص بك (قم بإجراء السحب) كل 30 دقيقة. الآن قم بإنشاء الوظيفة نفسها:

  1. انتقل إلى وظائف > وظيفة جديدة > من علامة تبويب الريبو (قوالب) .
  2. حدد المستودع المضافة حديثًا ، على سبيل المثال ، gitlab.com/bbelky/gitbotswf.git . تشاهد الآن الملفات من مستودعك.
  3. حدد ملف main.go ، انقر فوق "التالي".
  4. حدد خيار المزامنة مع مستودع التخزين ، وأدخل اسم وظيفة gitbotswf ، وانقر فوق إنشاء .

الصورة

نحتاج الآن إلى مشغل HTTP API ، عند الاتصال ، ستطلق الوظيفة:

  1. انتقل إلى المشغلات > إضافة مشغل > علامة تبويب واجهة برمجة تطبيقات REST .
  2. انسخ عنوان URL الناتج واحفظه كـ BOT_URL .

الصورة

رائع ، الآن لدينا مستودع ووظيفة تتم مزامنتها تلقائيًا. أضف الآن Gitlab API Token إلى Swifty Accounts - مستودع آمن ومشفّر لكلمات المرور والرموز.

  1. انتقل إلى الحسابات > إنشاء حساب .
  2. اختر النوع العام .
  3. اسم GITLABTOKEN ونسخ الرمز المميز الخاص بك. حفظ.

الصورة

أضف الآن الرمز المميز إلى الوظيفة:

  1. انتقل إلى وظائف > وظيفة gitbotswf > الوصول وانقر فوق إضافة .
  2. حدد نوع الحسابات ، GITLABTOKEN وانقر فوق إضافة .

قم بتشغيل webhook


في المرحلة الأخيرة ، نحتاج إلى إنشاء Webhook على Gitlab يتم إطلاقه في كل مرة يتم فيها إنشاء إصدار جديد. دعنا ننتقل إلى Gitlab.

  1. اختر مشروعك> الإعدادات > التكامل .
  2. أضف BOT_URL المحفوظة مسبقًا إلى حقل عنوان URL .
  3. حدد المربع بجوار أحداث القضايا وانقر فوق إضافة webhook .

اختبار


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

التحديث والإطلاق التلقائي للبوت


ماذا لو كنا بحاجة لتحديث الروبوت لدينا؟ بفضل التكامل مع git ، كل ما عليك فعله هو تحديث الكود الخاص بك (تغيير نص الملاحظة ، على سبيل المثال) ، قم بتشغيل الكود في Gitlab وسوف يقوم Swifty بتحديث وظيفتك تلقائيًا!

لذلك ، افتح ملف main.go في الجهاز وقم بتغيير متغير الملاحظة :

 note := "Comments%20changed!" 

تحديث بوابة:

 git add * git commit -m "changes" git push origin master 

الذهاب serverless!

Source: https://habr.com/ru/post/ar439920/


All Articles