جب آپ بوڑھے اور بوڑھے ہوتے جاتے ہیں تو آپ یہ نہیں کرتے۔ اس طرح کی چند سائٹس اور بلاگز کی میزبانی کرنے کے لیے ایک سرور کو مزید برقرار نہیں رکھنا چاہتا، نگرانی کریں کہ آیا پرانی پرانی سائٹوں پر بھی سرٹیفکیٹ کو خفیہ کرنے کی اجازت دیتا ہے اور اسی طرح کم از کم یہ اس کے لیے درست ہے۔ میں :) اور میں نے اسے کسی مکمل زیر انتظام پلیٹ فارم پر منتقل کرنے کا فیصلہ کیا۔ پہلی نظر کے لیے گوگل کلاؤڈ اسٹوریج کافی اچھا حل تھا، لیکن بالٹی بنانے کے بعد، اور مکمل ٹیوٹوریل پر جانے کے بعد میں سمجھتا ہوں کہ https کو فعال کرنا نہ تو آسان ہوگا (لوڈ بیلنسر وغیرہ کا استعمال کرتے ہوئے) اور نہ ہی سستا (itâÃÂ) $0.025 فی پہلے 5 اصول فی گھنٹہ =>$18 فی مہینہ) صرف چند APIs کے لیے گوگل کلاؤڈ رن کا استعمال کیا اور اس کی ادائیگی صرف استعمال شدہ وقت/CPU/RAM کے لیے کی گئی، لیکن ویب سائٹ زیادہ فعال نہ ہونے کی صورت میں بھی کچھ ویب سائٹس کی میزبانی کرنے کے لیے فری ٹائر کافی ہے۔ مفت میں دستاویزات کو پڑھنے کے بعد یہ بہت آسان لگتا ہے، یہاں تک کہ آپ کو GCP کلائنٹ لائبریریوں کا استعمال کرتے وقت کلاؤڈ رن (مکمل طور پر منظم) کنٹینر مثالوں کے اندر دستی طور پر اسناد فراہم کرنے کی ضرورت نہیں ہے! PS: اگر آپ صرف اپنے کنٹینر کی تعیناتی کے لیے حتمی کوڈ چاہتے ہیں تو براہ کرم github.com/kanocz/gclwebgcs پر جائیں پہلے ہمیں فراہم کردہ پورٹ پر سننے کی ضرورت ہے۔ PORT env متغیر: http.ListenAndServe + os.Getenv(âÃÂÃÂPORT nil) ذریعے GCS env ہم Google Cloud Storage بالٹی کا نام بتائیں گے (اسی پروجیکٹ میں ہونا ضروری ہے ctx : = context.background() کلائنٹ، err := storage.NewClient(ctx) bucket = client.Bucket(os.Getenv(âÃÂÃÂGCS اور بھیجنے کے لیے اعتراض پڑھنا: obj := bucket.Object(r.URL.Path[1 // strip firstobjAttrs, err := obj.Attrs(ctx) obj = obj.ReadCompressed(true) // we donâÃÂàمنتقلی کے لیے اسے دوبارہ ڈیکمپریس اور کمپریس کرنا نہیں چاہتا// کاپی ہیڈر w.HeaderSet(content-TypeâÃÂÃÂ, objAttrs.ContentType) ہیڈ سیٹ مواد-لمبائی ہیڈر سیٹ ¢ÃÂÃÂETagâÃÂÃÂ, objAttrs.Etag) // اور ڈیٹا ریڈر بھیجیں، ایرر := obj.NewReader(ctx) io.Copy(w, قاری) واقعی ویب سائٹ پیش کرنے کے لیے ہمیں سرور انڈیکس کی بھی ضرورت ہوتی ہے، نہ پائی جانے والی غلطیوں کو ہینڈل کرنا وغیرہ، لیکن یہ اتنا پیچیدہ بھی نہیں ہے۔ بنانا نہ بھولیں۔ گوگل کلاؤڈ کی تعمیر میں مدد کرنے کے لیے go.mod :) کنٹینر پر تعیناتی کے بجائے اسے رجسٹر کریں۔ gcloud جمع کراتا ہے --tag gcr.io/project1/gclwebgcs (براہ کرم تبدیل کریں۔ پروجیکٹ 1 آپ کے پروجیکٹ کے نام کے ساتھ) اور استعمال کرتے ہوئے سروس بنائیں/اپ ڈیٹ کریں۔ gcloud beta run deploy --image gcr.io/project1/gclwebgcs \ --platform managed --set-env-vars=GCS=GCSbucketName serviceName پر فائلیں اپ لوڈ کرنا نہ بھولیں۔ اسی پروجیکٹ میں GCSbucketName اور نئی سروس کو ڈومین نام تفویض کریں، ssl سرٹیفکیٹ خود بخود فراہم اور منظم ہو جائے گا! یہ سب کچھ ہے :)