Google Cloud Run أو كيفية تشغيل موقع الويب الثابت الخاص بك في 5 دقائق وأكثر من ذلك بكثير

TLDR. هذه المقالة ليست عميقة للغاية من الناحية الفنية حول كيفية عمل Google Cloud Run. أيضًا ، يمكن لـ Google Cloud Run أن تفعل أكثر من مجرد تشغيل موقع ويب بسيط. توضح المقالة فقط حالة استخدام بسيطة للغاية وتجربتي الأولى معها ونأمل أن تساعد الآخرين الذين قد يكونون فضوليين ولكن لا يعرفون من أين تبدأ (على الرغم من أن Quickstarts الموجودة بالفعل هي على الأرجح كل ما تحتاجه).

كان لدي مشكلة لمدة شهر. ماتت محركات الأقراص الصلبة الخاصة بالملقم بالكامل (fsck لم تنجح في ذلك) وقررنا أخيرًا التخلص منها بعد 10 سنوات. لسوء الحظ ، كان موقع أمي التجاري يعمل هناك. صحيح! إنه مجرد موقع ثابت يحتوي على عدد زيارات منخفض جدًا ، ولكن لا يزال من الجميل جدًا أن يكون لدىها.

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

لحسن الحظ ، حدث Google Next ’19 قبل أسبوعين. بالأمس ، كنت أستمع إلى Google Cloud Platform Podcast على رحلتي وكانت الحلقة تتعلق بمنتج جديد تم الإعلان عنه خلال التالي Next 19: تشغيل Google Cloud. عندما انتهى البث ، رأيته واضحًا: سأستخدم Google Cloud Run!

ولكن ما هو جوجل كلاود تشغيل؟ إنه بدون خادم يتم بالطريقة الصحيحة. معذرة ، باستخدام وظائف Google Cloud ، يمكنك كتابة معالج طلب HTTP Node.js (أو Go ...) في ملف وتحميله. بعد نشر هذه الوظيفة تحصل على عنوان URL وتعيينك ، يمكنك فقط الإشارة إليه. يذهب Google Cloud Run إلى المستوى التالي. بدلاً من تحميل ملفات وظائفك ، يمكنك الآن نشر حاويات. لماذا هذا أفضل؟ لأنه الآن يمكنك وضع كل ما تريد في الحاوية الخاصة بك. بدلاً من انتظار دعم لغتك المفضلة من خلال وظائف السحاب (التي لا يمكن أن تحدث أبدًا) ، يمكنك الآن إنشاء حاوية وتشغيل كل ما تريد فيه. كل ما عليك فعله هو فتح المنفذ 8080 في الحاوية (المزيد حول ذلك لاحقًا). وكما هو الحال مع وظائف السحاب ، فإن كل شيء يعمل خارج نطاق الصندوق ويمكنك توصيل حاوياتك بمنتجات Google Cloud الأخرى. تخيل الاحتمالات.

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

إنشاء مشروع Google Cloud Platform جديد

في حال كانت هذه هي المرة الأولى التي تنشئ فيها مشروعًا جديدًا لبرنامج شركاء Google المعتمدون (Google Cloud Platform) ، فيما يلي كيفية القيام بذلك. إذا كنت تعرف بالفعل كيف ، فما عليك سوى إنشاء مشروع جديد في وحدة التحكم وتسميته ، دعنا نقول MyWebsite ، وانتقل إلى القسم التالي.

أولاً ، انتقل إلى Google Cloud Console وانقر فوق تحديد مشروع في الأعلى. سيؤدي هذا إلى فتح نافذة مشروط ، انقر فوق مشروع جديد.

بعد ذلك ، فقط أدخل اسم المشروع ، قلنا أنه موقع MyWebsite وانقر فوق إنشاء. هناك شيء مهم يجب تذكره في هذه الخطوة: معرف المشروع هو mywebsite-239106 ، اكتبه كما سنستخدمه لاحقًا.

بمجرد إنشاء المشروع ، حدده من نفسه حدد القائمة المنسدلة للمشروع التي نقرنا عليها في البداية.

تمكين الفوترة (وحول التسعير)

لسوء الحظ ، أدركت فقط أنه يجب عليك متابعة هذه الخطوة. لقد قمت بالفعل بتمكين الفواتير الخاصة بي عندما جربت تشغيل Google Cloud Run لأول مرة ، لذلك لم أدرك أن هذا الأمر ضروري حتى الآن. سأفترض فقط أنه ليس لديك أي مشاكل مع هذا. في النهاية ، سيكون تشغيل موقع ويب منخفض الحركة مجانيًا "تقريبًا". راجع Google Cloud Run Pricing لمزيد من التفاصيل.

تمكين Google Cloud Run

على افتراض أنك قد حددت مشروع GCP الخاص بك ، فما عليك سوى الانتقال إلى Google Cloud Run والنقر فوق "ابدأ".

يجب أن ينتهي بك الأمر في Google Cloud Run console.

تثبيت Google Cloud SDK وتفويضه

إذا كان Google Cloud SDK مثبتًا لديك بالفعل وكنت تعرف ما تفعله ، فربما يمكنك تخطي هذه الخطوة (تذكر تحديث Google Cloud SDK وتثبيت مكونات Beta وتحديد مشروعك الذي تم إنشاؤه حديثًا).

إذا كنت تستخدم نظام التشغيل OS X فمن المحتمل أن يكون لديك برنامج Homebrew مثبت. إذا قمت بذلك ، اكتب فقط:

$ المشروب برميل تثبيت google-cloud-sdk

إذا لم يكن لديك Homebrew أوصي بتثبيته. إذا كنت لا ترغب في تثبيته ، فيمكنك اتباع تعليمات التثبيت من Google Cloud SDK ، كما لو كنت تستخدم GNU / Linux.

لذلك ، بمجرد تثبيت Google Cloud SDK ، ستحتاج إلى تخويله باستخدام حساب Google الذي استخدمته لإنشاء مشروعك. اكتب ما يلي:

تسجيل الدخول إلى المصادقة $ gcloud

بعد ذلك ، قم بتثبيت مكونات Google Cloud SDK Beta:

مكونات $ gcloud تثبيت الإصدار التجريبي

أخيرًا ، حدد مشروعك (تذكر معرف المشروع الذي كتبناه من قبل؟):

$ gcloud config set project mywebsite-239016

تثبيت عامل الميناء

مرة أخرى ، في OS X إذا كان لديك Homebrew ، اكتب فقط:

$ الشراب برميل تثبيت عامل ميناء

إذا لم يكن الأمر كذلك ، فما عليك سوى تنزيل Docker واتبع الإرشادات. إنه مستقيم للأمام.

إنشاء الحاوية

وأخيرا ، الجزء المثير للاهتمام. ما سنفعله بعد ذلك هو نشر صفحة HTML بسيطة وتقديمها عبر Google Cloud Run. لنقم أولاً بإنشاء دليل جديد وتنظيم الأشياء قليلاً:

موقع mkdir $
موقع مؤتمر نزع السلاح $
$ mkdir html nginx

في دليل html ، أنشئ ملف index.html باستخدام هذا المحتوى:


 مرحبًا من Google Cloud Run! 

لخدمة هذا الملف ، نحتاج فقط إلى خادم ويب. نحن نستخدم nginx. قلت إن Google Cloud Run يستخدم حاويات ، مما يعني أنه يمكننا ببساطة استخدام حاوية nginx موجودة. المشكلة الوحيدة في حاوية nginx الافتراضية هي أنها تقدم ملفات على المنفذ 80 ، ولكن Google Cloud Run تتوقع حاويات لخدمة الأشياء على المنفذ 8080. لذلك ، سنوفر فقط ملف تكوين جديد لـ nginx لاحقًا.

قم بإنشاء Dockerfile جديد داخل دليل الموقع:

القط Dockerfile
من إنجن إكس
نسخ html / usr / share / nginx / html
نسخ nginx / default.conf /etc/nginx/conf.d/default.conf

في Dockerfile هذا ، نقول فقط لـ Docker لإنشاء حاوية جديدة تستند إلى حاوية nginx ونقوم بإضافة دليل html (الذي يحتوي على index.html) بالإضافة إلى ملف تكوين nginx الذي سنقوم بإنشائه بعد ذلك.

في دليل nginx ، قم بإنشاء ملف default.conf (لاحظ كيف نستمع إلى المنفذ 8080):

$ القط nginx / default.conf
الخادم {
    الاستماع 8080 ؛
    server_name المضيف المحلي ؛
    موقعك / {
        root / usr / share / nginx / html؛
        index index.html index.htm؛
    }
    # إعادة توجيه صفحات خطأ الخادم إلى الصفحة الثابتة / 50x.html
    error_page 500 502 503 504 /50x.html؛
    location = /50x.html {
        root / usr / share / nginx / html؛
    }
}

بعد كل هذا ، يجب أن يكون لديك بنية الدليل هذه:

شجرة $
.
ock Dockerfile
├── أتش تي أم أل
index.html
└── nginx
    └── default.conf

لاحظ أنه في دليل html أو في أي مكان آخر ، يمكنك إضافة المزيد من الملفات: المزيد من ملفات HTML ، ملفات CSS ، الصور ، إلخ. إذا كان موقع ويب كبيرًا ، فمن المحتمل أن يكون من الأفضل تحميل محتوى إلى Google Cloud Storage والحفاظ على الحاوية صغيرة.

بناء ونشر الحاوية

الآن يمكننا بناء الحاوية ودفعها. يتم ذلك باستخدام أمر Google Cloud SDK:

$ gcloud builds submit --tag gcr.io/mywebsite-239106/hello

لقد حددنا مشروعنا mywebsite-239106 واسمًا لخدمة الترحيب الجديدة في Google Cloud Run.

أخيرًا ، يمكننا نشر الحاوية الجديدة في Google Cloud Run:

$ gcloud beta run نشر --image gcr.io/mywebsite-239106/hello

إذا سارت الأمور بشكل جيد ، فسترى رسالة مثل هذا:

تم نشر خدمة [hello] المراجعة [hello-00001] وهي تقدم خدمة المرور على https://hello-7ss2wutasq-uc.a.run.app

ويبدو أن عنوان URL الذي تم إنشاؤه قيد التشغيل!

يمكنك أيضًا إلقاء نظرة على وحدة التحكم في Google Cloud Run لمزيد من التفاصيل:

بعد ذلك ، يمكنك إجراء تغييرات على موقع الويب الخاص بك ومواصلة بناء الحاوية الجديدة ونشرها. سيقوم Google Cloud Run بسرد جميع المراجعات التي قمت بنشرها.

تعيين مجال

الشيء التالي الذي يمكنك القيام به هو تعيين مجال لخدمة Google Cloud Run الجديدة. لن أتطرق لهذا الأمر هنا لأنه يتطلب منك تحديث سجلات نظام أسماء النطاقات الخاصة بك ويعتمد ذلك حقًا على الخدمة التي تستخدمها ، لكن يجب أن أقول إن هذه العملية مستقيمة للغاية. بمجرد الانتهاء من النشر ، ستحتاج فقط إلى النقر فوق إدارة المجالات المخصصة (انظر الصورة أعلاه).

يا! وأفضل جزء في هذا الأمر هو أن الشهادات تدار بالفعل من أجلك. لقد فوجئت بسعادة أنه من دون القيام بأي شيء ، تم إعداد شهادة Let's Encrypt بالفعل لنطاقي وأن كلا من HTTP و HTTPS كانا يعملان كجاذبية.

وأنه كان عليه!

بالمناسبة ، ذكرت شيئا عن Firebase والعمل. نستخدم Firebase ومواد Google Cloud Platform الأخرى في العمل. أردت فقط مشاركة مشروع جديد كنا نعمل عليه منذ بضعة أشهر. إنه مفهوم جديد رائع لمشاركة الشاشة ولديه اسم فضولي أيضًا. التحقق من ذلك: https://www.rumpus.co/