1. بررسی اجمالی
برنامههای Google App Engine به راحتی ایجاد میشوند، نگهداری آنها آسان است و با توجه به تغییر نیازهای ترافیک و ذخیرهسازی دادههای شما، مقیاسبندی آن آسان است. با App Engine، هیچ سروری برای نگهداری وجود ندارد. شما به سادگی برنامه خود را آپلود می کنید و آماده است.
در این کد لبه، نحوه استقرار یک برنامه وب ساده پایتون که با چارچوب وب Flask نوشته شده است را یاد خواهید گرفت. اگرچه این نمونه از Flask استفاده میکند، اما میتوانید از چارچوبهای وب دیگر، از جمله جنگو ، پیرامید ، بطری و web.py استفاده کنید.
این آموزش از https://cloud.google.com/appengine/docs/standard/python3/quickstart اقتباس شده است
چیزی که یاد خواهید گرفت
- نحوه ایجاد یک سرور ساده پایتون در Google App Engine.
- نحوه به روز رسانی کد بدون حذف سرور
آنچه شما نیاز دارید
- آشنایی با استفاده از پایتون
- آشنایی با ویرایشگرهای متن استاندارد لینوکس مانند vim، emacs یا nano
نظرسنجی
چگونه از این آموزش استفاده خواهید کرد؟
تجربه خود را با پایتون چگونه ارزیابی می کنید؟
تجربه خود را با خدمات Google Cloud چگونه ارزیابی می کنید؟
2. راه اندازی و الزامات
تنظیم محیط خود به خود
- به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
- نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
- شناسه پروژه در تمام پروژههای Google Cloud منحصربهفرد است و تغییرناپذیر است (پس از تنظیم نمیتوان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام
PROJECT_ID
شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، میتوانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند. - برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
- در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورتحساب فراتر از این آموزش، میتوانید منابعی را که ایجاد کردهاید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
Cloud Shell را فعال کنید
- از Cloud Console، روی Activate Cloud Shell کلیک کنید .
اگر این اولین باری است که Cloud Shell را راه اندازی می کنید، با یک صفحه میانی روبرو می شوید که آن را توصیف می کند. اگر با یک صفحه میانی مواجه شدید، روی Continue کلیک کنید.
تهیه و اتصال به Cloud Shell فقط باید چند لحظه طول بکشد.
این ماشین مجازی با تمام ابزارهای توسعه مورد نیاز بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی ارائه میکند و در Google Cloud اجرا میشود، که عملکرد و احراز هویت شبکه را بسیار افزایش میدهد. بسیاری از کارهای شما، اگر نه همه، در این کد لبه با مرورگر قابل انجام است.
پس از اتصال به Cloud Shell، باید ببینید که احراز هویت شده اید و پروژه به ID پروژه شما تنظیم شده است.
- برای تایید احراز هویت، دستور زیر را در Cloud Shell اجرا کنید:
gcloud auth list
خروجی فرمان
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- دستور زیر را در Cloud Shell اجرا کنید تا تأیید کنید که دستور gcloud از پروژه شما اطلاع دارد:
gcloud config list project
خروجی فرمان
[core] project = <PROJECT_ID>
اگر اینطور نیست، می توانید آن را با این دستور تنظیم کنید:
gcloud config set project <PROJECT_ID>
خروجی فرمان
Updated property [core/project].
3. برنامه وب را بنویسید
پس از راه اندازی Cloud Shell، می توانید از خط فرمان برای فراخوانی دستور Cloud SDK gcloud
یا سایر ابزارهای موجود در نمونه ماشین مجازی استفاده کنید. میتوانید از دایرکتوری $HOME
خود در فضای ذخیرهسازی دیسک دائمی برای ذخیره فایلها در پروژهها و بین جلسات Cloud Shell استفاده کنید. دایرکتوری $HOME
شما برای شما خصوصی است و سایر کاربران نمی توانند به آن دسترسی داشته باشند.
بیایید با ایجاد یک پوشه جدید در پوشه $HOME
خود برای برنامه شروع کنیم:
mkdir ~/helloworld cd ~/helloworld
فایلی به نام main.py
ایجاد کنید:
touch main.py
فایل را با ویرایشگر خط فرمان دلخواه خود (nano، vim، یا emacs) یا با کلیک کردن روی دکمه Cloud Shell Editor ویرایش کنید:
برای ویرایش مستقیم فایل با Cloud Shell Editor از این دستور استفاده کنید:
cloudshell edit main.py
main.py
import flask
# If `entrypoint` is not defined in app.yaml, App Engine will look for an app
# called `app` in `main.py`.
app = flask.Flask(__name__)
@app.get("/")
def hello():
"""Return a friendly HTTP greeting."""
return "Hello World!\n"
if __name__ == "__main__":
# Used when running locally only. When deploying to Google App
# Engine, a webserver process such as Gunicorn will serve the app. This
# can be configured by adding an `entrypoint` to app.yaml.
app.run(host="localhost", port=8080, debug=True)
4. وابستگی ها را تعریف کنید
برای مشخص کردن وابستگی های برنامه وب خود، به ترمینال برگردید و یک فایل requirements.txt
در دایرکتوری ریشه پروژه خود ایجاد کنید، با نسخه دقیق Flask برای استفاده:
touch requirements.txt
برای ویرایش فایل با Cloud Shell Editor از این دستور استفاده کنید:
cloudshell edit requirements.txt
الزامات. txt
# https://pypi.org/project/Flask
Flask==3.0.2
5. استقرار را پیکربندی کنید
برای استقرار برنامه وب خود در App Engine، به یک فایل app.yaml
نیاز دارید. این فایل پیکربندی تنظیمات برنامه وب شما را برای App Engine تعریف می کند.
از ترمینال، فایل app.yaml
را در فهرست اصلی پروژه خود ایجاد و ویرایش کنید:
touch app.yaml
برای ویرایش فایل با Cloud Shell Editor از این دستور استفاده کنید:
cloudshell edit app.yaml
app.yaml
runtime: python312
6. برنامه وب را مستقر کنید
از ترمینال، محتوای دایرکتوری خود را بررسی کنید:
ls
شما باید 3 فایل زیر را داشته باشید:
app.yaml main.py requirements.txt
برنامه وب خود را با دستور زیر اجرا کنید:
gcloud app deploy
اولین بار، باید یک منطقه استقرار را انتخاب کنید:
Please choose the region where you want your App Engine application located: [1] asia-east2 ... [7] australia-southeast1 [8] europe-west [9] europe-west2 ... [12] northamerica-northeast1 [13] southamerica-east1 ... [19] us-west4 ... Please enter your numeric choice:
تأیید راه اندازی استقرار:
Creating App Engine application in project [PROJECT_ID] and region [REGION]....done. Services to deploy: descriptor: [~/helloworld/app.yaml] source: [~/helloworld] target project: [PROJECT_ID] target service: [default] target version: [YYYYMMDDtHHMMSS] target url: [https://PROJECT_ID.REGION_ID.r.appspot.com] Do you want to continue (Y/n)?
برنامه شما مستقر می شود:
Beginning deployment of service [default]... Created .gcloudignore file. See `gcloud topic gcloudignore` for details. Uploading 3 files to Google Cloud Storage 100% File upload done. Updating service [default]...done. Setting traffic split for service [default]...done. Deployed service [default] to [https://PROJECT_ID.REGION_ID.r.appspot.com]
برنامه وب شما اکنون آماده است تا به درخواست های HTTP در https://PROJECT_ID.REGION_ID.r.appspot.com
پاسخ دهد.
7. برنامه وب را تست کنید
برنامه وب شما آماده است تا به درخواست های HTTP در https://PROJECT_ID.REGION_ID.r.appspot.com
پاسخ دهد.
ابتدا، نام میزبان برنامه وب خود را با دستور gcloud app describe
بازیابی کنید:
APPENGINE_HOSTNAME=$(gcloud app describe --format "value(defaultHostname)")
برنامه وب خود را با این درخواست ساده HTTP GET آزمایش کنید:
curl https://$APPENGINE_HOSTNAME
شما باید پاسخ زیر را دریافت کنید:
Hello World!
خلاصه
در مراحل قبلی، یک برنامه وب ساده پایتون را راه اندازی کردید، آن را اجرا کردید و آن را در App Engine مستقر کردید.
8. برنامه وب را به روز کنید
برنامه وب خود را با تغییر بدنه تابع hello()
در فایل main.py
خود تغییر دهید.
برای ویرایش فایل با Cloud Shell Editor از این دستور استفاده کنید:
cloudshell edit main.py
main.py
import flask
# If `entrypoint` is not defined in app.yaml, App Engine will look for an app
# called `app` in `main.py`.
app = flask.Flask(__name__)
@app.get("/")
def hello():
"""Return a friendly HTTP greeting."""
# return "Hello World!\n" # ← Replace this line
who = flask.request.args.get("who", "World")
return f"Hello {who}!\n"
if __name__ == "__main__":
# Used when running locally only. When deploying to Google App
# Engine, a webserver process such as Gunicorn will serve the app. This
# can be configured by adding an `entrypoint` to app.yaml.
app.run(host="localhost", port=8080, debug=True)
از ترمینال، برای بهروزرسانی برنامه وب خود، مجدداً مستقر شوید:
gcloud app deploy --quiet
نسخه جدید برنامه شما مستقر می شود:
Beginning deployment of service [default]... Uploading 1 file to Google Cloud Storage ... Deployed service [default] to [https://PROJECT_ID.REGION_ID.r.appspot.com]
نسخه جدید برنامه وب خود را دقیقاً همانطور که قبلاً انجام دادید آزمایش کنید:
curl https://$APPENGINE_HOSTNAME
شما باید همان پاسخ را دریافت کنید:
Hello World!
آن را با پارامتر اختیاری تست کنید:
curl https://$APPENGINE_HOSTNAME?who=Universe
شما باید پاسخ زیر را دریافت کنید:
Hello Universe!
خلاصه
در این مرحله، برنامه وب خود را بدون هیچ وقفه ای در سرویس به روز کرده و مجدداً مستقر کردید.
9. تبریک می گویم!
شما یاد گرفتید که اولین برنامه وب App Engine خود را در پایتون بنویسید!
بیشتر بدانید
- مستندات موتور برنامه: https://cloud.google.com/appengine
- برای نوشتن یک برنامه پایتون کامل در App Engine، این آموزش را کاوش کنید: https://cloud.google.com/appengine/docs/standard/python3/building-app
مجوز
این اثر تحت مجوز Creative Commons Attribution 2.0 Generic مجوز دارد.