Apgūstiet Google Cloud Platform (GCP) pakalpojumu piekļuvi, izmantojot Python klienta bibliotēku. Uzziniet par autentifikāciju, pakalpojumu mijiedarbību un labākajām praksēm, lai veidotu globāli mērogojamas mākoņlietotnes.
Google Cloud Platform atvēršana ar Python: visaptverošs ceļvedis GCP pakalpojumu piekļuvei
Google Cloud Platform (GCP) piedāvā plašu pakalpojumu klāstu mērogojamu un uzticamu lietojumprogrammu veidošanai un izvietošanai. Python ar savu skaidro sintaksi un plašajām bibliotēkām ir populāra izvēle mijiedarbībai ar GCP. Šis ceļvedis sniedz visaptverošu pārskatu par to, kā izmantot Python klienta bibliotēku, lai piekļūtu un pārvaldītu GCP pakalpojumus, kas paredzēti globālai auditorijai ar dažādām tehniskajām zināšanām.
Kāpēc izmantot Python ar GCP?
Python piedāvā vairākas priekšrocības mijiedarbībai ar GCP:
- Vienkārša lietošana: Python lasāmā sintakse vienkāršo izstrādi, padarot GCP lietojumprogrammu apguvi un uzturēšanu vieglāku.
- Visaptverošas bibliotēkas: Google nodrošina labi uzturētu Python klienta bibliotēku, kas īpaši izstrādāta GCP pakalpojumiem.
- Spēcīgs kopienas atbalsts: Liela un aktīva Python kopiena nodrošina plašus resursus, pamācības un atbalstu GCP izstrādei.
- Automatizācija un skriptēšana: Python ir lieliski piemērots uzdevumu automatizēšanai un infrastruktūras pārvaldības skriptēšanai, kas ir būtiski mākoņvidēs.
- Datu zinātne un mašīnmācīšanās: Python ir izvēles valoda datu zinātnei un mašīnmācībai, kas nevainojami integrējas ar GCP mākslīgā intelekta/mašīnmācīšanās pakalpojumiem.
Vides iestatīšana
Pirms sākat, jums būs jāiestata sava Python vide un jāinstalē nepieciešamās bibliotēkas.
1. Instalējiet Python un Pip
Ja jums nav instalēts Python, lejupielādējiet un instalējiet jaunāko versiju no oficiālās Python vietnes (https://www.python.org/downloads/). Pip, Python pakotņu instalētājs, parasti ir iekļauts Python instalācijās.
Pārbaude: Atveriet termināli vai komandrindu un izpildiet šādas komandas:
python --version
pip --version
Šīm komandām vajadzētu parādīt instalētās Python un Pip versijas.
2. Instalējiet Google Cloud klienta bibliotēku Python valodai
`google-cloud-python` bibliotēka nodrošina piekļuvi visiem GCP pakalpojumiem. Instalējiet to, izmantojot Pip:
pip install google-cloud-storage google-cloud-compute google-cloud-pubsub # Piemērs - Instalējiet storage, compute un pubsub pakotnes
Instalējiet tikai tās klienta bibliotēkas, kuras paredzētas jūsu izmantotajiem GCP pakalpojumiem. Tas samazina jūsu lietojumprogrammas atkarību lielumu.
Piemērs (Cloud Storage): Lai instalētu Cloud Storage klienta bibliotēku:
pip install google-cloud-storage
3. Konfigurējiet autentifikāciju
Autentifikācija ir ļoti svarīga, lai piešķirtu jūsu Python lietojumprogrammai atļauju piekļūt GCP resursiem. Ir pieejamas vairākas autentifikācijas metodes:
- Pakalpojumu konti: Ieteicams lietojumprogrammām, kas darbojas GCP (piemēram, Compute Engine, Cloud Functions, Cloud Run).
- Lietotāja akreditācijas dati: Piemēroti vietējai izstrādei un testēšanai.
Pakalpojumu kontu izmantošana (ieteicams produkcijai)
Pakalpojumu konti ir ne-cilvēku konti, kurus var izmantot lietojumprogrammu un pakalpojumu autentificēšanai. Tie nodrošina drošu un kontrolētu veidu, kā piešķirt piekļuvi GCP resursiem.
- Izveidojiet pakalpojuma kontu: Google Cloud konsolē dodieties uz IAM & Admin > Service Accounts un noklikšķiniet uz Create Service Account. Norādiet sava pakalpojuma konta nosaukumu un aprakstu.
- Piešķiriet atļaujas: Piešķiriet savam pakalpojuma kontam atbilstošas lomas, pamatojoties uz GCP resursiem, kuriem jūsu lietojumprogrammai nepieciešama piekļuve (piemēram, `roles/storage.objectAdmin` pilnīgai kontrolei pār Cloud Storage objektiem).
- Lejupielādējiet pakalpojuma konta atslēgu: Izveidojiet JSON atslēgas failu savam pakalpojuma kontam un lejupielādējiet to. Rīkojieties ar šo atslēgas failu ļoti uzmanīgi, jo tas piešķir piekļuvi jūsu GCP resursiem. Glabājiet to droši un nekad nepievienojiet to versiju kontrolei.
- Iestatiet `GOOGLE_APPLICATION_CREDENTIALS` vides mainīgo: Iestatiet `GOOGLE_APPLICATION_CREDENTIALS` vides mainīgo uz lejupielādētā JSON atslēgas faila ceļu.
Piemērs (Linux/macOS):
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
Piemērs (Windows):
set GOOGLE_APPLICATION_CREDENTIALS=C:\path\to\your\service-account-key.json
Svarīga drošības piezīme: Izvairieties no pakalpojuma konta atslēgas iekodēšanas tieši savā kodā. `GOOGLE_APPLICATION_CREDENTIALS` vides mainīgā izmantošana ir ieteicamā pieeja drošības un uzturēšanas nodrošināšanai.
Lietotāja akreditācijas datu izmantošana (vietējai izstrādei)
Vietējai izstrādei un testēšanai varat izmantot savus Google Cloud lietotāja akreditācijas datus.
- Instalējiet Google Cloud SDK (gcloud): Lejupielādējiet un instalējiet Google Cloud SDK no oficiālās vietnes (https://cloud.google.com/sdk/docs/install).
- Autentificējieties ar gcloud: Terminālī vai komandrindā izpildiet šādu komandu:
gcloud auth application-default login
Šī komanda atvērs pārlūkprogrammas logu, kurā varēsiet pierakstīties savā Google Cloud kontā un piešķirt nepieciešamās atļaujas Google Cloud SDK.
Piekļuve GCP pakalpojumiem ar Python
Kad esat iestatījis savu vidi un konfigurējis autentifikāciju, varat sākt piekļūt GCP pakalpojumiem, izmantojot Python klienta bibliotēku. Šeit ir daži piemēri:
1. Cloud Storage
Cloud Storage nodrošina mērogojamu un izturīgu objektu krātuvi. Jūs varat izmantot Python klienta bibliotēku, lai augšupielādētu, lejupielādētu un pārvaldītu objektus savos Cloud Storage konteineros (buckets).
Piemērs: Failu augšupielāde Cloud Storage
from google.cloud import storage
# Aizstājiet ar savu konteinera nosaukumu un faila ceļu
BUCKET_NAME = "your-bucket-name"
FILE_PATH = "/path/to/your/local/file.txt"
OBJECT_NAME = "remote/file.txt" # Nosaukums, kādu vēlaties piešķirt failam Cloud Storage
client = storage.Client()
bucket = client.bucket(BUCKET_NAME)
blob = bucket.blob(OBJECT_NAME)
blob.upload_from_filename(FILE_PATH)
print(f"Fails {FILE_PATH} augšupielādēts uz gs://{BUCKET_NAME}/{OBJECT_NAME}.")
Paskaidrojums:
- `from google.cloud import storage`: Importē Cloud Storage moduli.
- `storage.Client()`: Izveido Cloud Storage klienta objektu, izmantojot iepriekš iestatītos autentifikācijas datus.
- `client.bucket(BUCKET_NAME)`: Iegūst atsauci uz norādīto Cloud Storage konteineru.
- `bucket.blob(OBJECT_NAME)`: Izveido lielu datu objektu (blob) konteinerā ar norādīto nosaukumu.
- `blob.upload_from_filename(FILE_PATH)`: Augšupielādē failu no vietējā faila ceļa uz Cloud Storage lielo datu objektu.
Piemērs: Failu lejupielāde no Cloud Storage
from google.cloud import storage
# Aizstājiet ar savu konteinera nosaukumu, objekta nosaukumu un vietējo faila ceļu
BUCKET_NAME = "your-bucket-name"
OBJECT_NAME = "remote/file.txt"
FILE_PATH = "/path/to/your/local/downloaded_file.txt"
client = storage.Client()
bucket = client.bucket(BUCKET_NAME)
blob = bucket.blob(OBJECT_NAME)
blob.download_to_filename(FILE_PATH)
print(f"Fails gs://{BUCKET_NAME}/{OBJECT_NAME} lejupielādēts uz {FILE_PATH}.")
2. Compute Engine
Compute Engine nodrošina virtuālās mašīnas (VM) GCP platformā. Jūs varat izmantot Python klienta bibliotēku, lai pārvaldītu Compute Engine instances, tostarp tās izveidotu, startētu, apturētu un dzēstu.
Piemērs: Compute Engine instanču saraksta iegūšana
from google.cloud import compute_v1
# Aizstājiet ar savu projekta ID un zonu
PROJECT_ID = "your-project-id"
ZONE = "us-central1-a"
client = compute_v1.InstancesClient()
request = compute_v1.ListInstancesRequest(
project=PROJECT_ID,
zone=ZONE
)
# Veiciet pieprasījumu
pager = client.list(request=request)
print("Instances projektā un zonā:")
# Apstrādājiet atbildi
for response in pager:
print(response)
Paskaidrojums:
- `from google.cloud import compute_v1`: Importē Compute Engine moduli (v1 versija). Apsveriet iespēju izmantot jaunāku versiju, ja tāda ir pieejama.
- `compute_v1.InstancesClient()`: Izveido Compute Engine klienta objektu.
- `compute_v1.ListInstancesRequest()`: Izveido pieprasījumu, lai uzskaitītu instances norādītajā projektā un zonā.
- `client.list(request=request)`: Nosūta pieprasījumu Compute Engine API.
- Kods pēc tam iterē cauri atbildei (pager objekts) un izdrukā informāciju par katru instanci.
3. Cloud Functions
Cloud Functions nodrošina bezservera izpildes vides. Jūs varat izmantot Python klienta bibliotēku, lai izvietotu un pārvaldītu Cloud Functions.
Piemērs: Cloud Function izvietošana (nepieciešams Google Cloud SDK)
Cloud Function izvietošana bieži ietver tiešu Google Cloud SDK (gcloud) izmantošanu, lai gan sarežģītākos scenārijos Cloud Functions API var piekļūt, izmantojot Python klienta bibliotēku. Šis piemērs demonstrē pamata gcloud izvietošanas komandu. Vispirms izveidojiet main.py un requirements.txt:
main.py (piemērs)
def hello_world(request):
return 'Sveika, pasaule!'
requirements.txt (piemērs)
functions-framework
Izvietošanas komanda:
gcloud functions deploy your-function-name --runtime python310 --trigger-http --entry-point hello_world
Paskaidrojums:
- `gcloud functions deploy your-function-name`: Izvieto Cloud Function ar norādīto nosaukumu. Aizstājiet `your-function-name` ar vēlamo funkcijas nosaukumu.
- `--runtime python310`: Norāda Python izpildes vidi (piemēram, python310, python311). Izvēlieties atbalstītu izpildes vidi.
- `--trigger-http`: Konfigurē funkciju, lai to aktivizētu ar HTTP pieprasījumiem.
- `--entry-point hello_world`: Norāda funkciju, kas jāizpilda, kad funkcija tiek aktivizēta. Tas atbilst `hello_world` funkcijai, kas definēta `main.py`.
4. Cloud Run
Cloud Run ļauj izvietot konteinerizētas lietojumprogrammas bezservera vidē. Jūs varat pārvaldīt Cloud Run pakalpojumus, izmantojot Python klienta bibliotēku, bet izvietošana bieži tiek veikta ar Google Cloud SDK vai infrastruktūras kā koda rīkiem, piemēram, Terraform.
Piemērs: Cloud Run pakalpojuma izvietošana (nepieciešams Google Cloud SDK un Docker)
Cloud Run izvietošana bieži sākas ar Dockerfile.
Dockerfile (piemērs):
FROM python:3.10
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["gunicorn", "--bind", "0.0.0.0:8080", "main:app"]
main.py (piemērs) - minimāla Flask lietotne
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "Sveiciens no Cloud Run!"
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0', port=8080)
requirements.txt (piemērs):
flask
gunicorn
Izvietošanas komandas:
# Veidojiet Docker attēlu
docker build -t gcr.io/your-project-id/cloud-run-image .
# Iespiediet attēlu Google Container Registry
docker push gcr.io/your-project-id/cloud-run-image
# Izvietojiet Cloud Run pakalpojumu
gcloud run deploy your-cloud-run-service \
--image gcr.io/your-project-id/cloud-run-image \
--platform managed \
--region us-central1 \
--allow-unauthenticated
Paskaidrojums:
- `docker build`: Veido Docker attēlu no Dockerfile. Aizstājiet `gcr.io/your-project-id/cloud-run-image` ar vēlamo attēla nosaukumu un Google Container Registry ceļu.
- `docker push`: Iespiež Docker attēlu Google Container Registry (GCR). Jums ir jābūt konfigurētam Docker, lai autentificētos ar GCR.
- `gcloud run deploy`: Izvieto Cloud Run pakalpojumu.
- `--image`: Norāda Docker attēlu, kas jāizmanto pakalpojumam.
- `--platform managed`: Norāda, ka pakalpojums jāizvieto pilnībā pārvaldītajā Cloud Run platformā.
- `--region`: Norāda reģionu, kurā pakalpojums jāizvieto.
- `--allow-unauthenticated`: Atļauj neautentificētu piekļuvi pakalpojumam (testēšanas nolūkiem). Produkcijas vidē jums vajadzētu konfigurēt atbilstošu autentifikāciju.
5. Cloud SQL
Cloud SQL nodrošina pārvaldītas relāciju datu bāzes GCP platformā. Jūs varat izmantot Python klienta bibliotēku (kopā ar datu bāzes specifiskām bibliotēkām, piemēram, `psycopg2` priekš PostgreSQL vai `pymysql` priekš MySQL), lai izveidotu savienojumu un pārvaldītu Cloud SQL instances.
Piemērs: Savienojuma izveide ar Cloud SQL PostgreSQL instanci
import psycopg2
# Aizstājiet ar savu Cloud SQL instances savienojuma nosaukumu, datu bāzes nosaukumu, lietotājvārdu un paroli
INSTANCE_CONNECTION_NAME = "your-project-id:your-region:your-instance-name"
DB_NAME = "your_database_name"
DB_USER = "your_username"
DB_PASS = "your_password"
try:
conn = psycopg2.connect(
f"host=/cloudsql/{INSTANCE_CONNECTION_NAME} dbname={DB_NAME} user={DB_USER} password={DB_PASS}"
)
print("Veiksmīgi izveidots savienojums ar Cloud SQL!")
# Šeit veiciet datu bāzes darbības (piemēram, izpildiet vaicājumus)
cur = conn.cursor()
cur.execute("SELECT version();")
db_versija = cur.fetchone()
print(f"Datu bāzes versija: {db_versija}")
except Exception as e:
print(f"Kļūda, savienojoties ar Cloud SQL: {e}")
finally:
if conn:
cur.close()
conn.close()
print("Savienojums aizvērts.")
Paskaidrojums:
- `import psycopg2`: Importē `psycopg2` bibliotēku, kas ir PostgreSQL adapters priekš Python. Jums būs jāinstalē to, izmantojot `pip install psycopg2-binary`.
- `INSTANCE_CONNECTION_NAME`: Šis ir būtisks identifikators, kas norāda, kā izveidot savienojumu ar jūsu Cloud SQL instanci. Šo vērtību varat atrast Google Cloud konsolē savas Cloud SQL instances detalizētajā informācijā.
- `psycopg2.connect()` funkcija izveido savienojumu ar datu bāzi, izmantojot norādītos parametrus.
- Kods pēc tam izpilda vienkāršu vaicājumu, lai iegūtu datu bāzes versiju, un izdrukā to konsolē.
- `finally` bloks nodrošina, ka datu bāzes savienojums tiek pareizi aizvērts, pat ja rodas kļūdas.
Labākās prakses, izmantojot Python ar GCP
Šeit ir dažas labākās prakses, kas jāievēro, izstrādājot GCP lietojumprogrammas ar Python:
- Izmantojiet pakalpojumu kontus: Vienmēr izmantojiet pakalpojumu kontus autentifikācijai, īpaši produkcijas vidēs. Piešķiriet tiem tikai nepieciešamās atļaujas (mazāko privilēģiju princips).
- Pārvaldiet atkarības: Izmantojiet `requirements.txt` failu, lai pārvaldītu savas lietojumprogrammas atkarības. Tas nodrošina konsekventu izvietošanu un vienkāršo atkarību pārvaldību.
- Apstrādājiet kļūdas: Ieviesiet pareizu kļūdu apstrādi, lai graciozi apstrādātu izņēmumus un novērstu lietojumprogrammu avārijas. Izmantojiet try-except blokus, lai notvertu potenciālās kļūdas un reģistrētu tās atkļūdošanai.
- Veiciet efektīvu reģistrēšanu (logošanu): Izmantojiet GCP Cloud Logging pakalpojumu, lai reģistrētu lietojumprogrammu notikumus un kļūdas. Tas sniedz vērtīgu ieskatu jūsu lietojumprogrammas darbībā un palīdz novērst problēmas.
- Izmantojiet vides mainīgos: Glabājiet sensitīvu informāciju, piemēram, API atslēgas un datu bāzes akreditācijas datus, vides mainīgajos. Tas novērš to iekodēšanu jūsu kodā un uzlabo drošību.
- Optimizējiet veiktspēju: Izmantojiet kešatmiņu, asinhronas darbības un citas optimizācijas metodes, lai uzlabotu savu GCP lietojumprogrammu veiktspēju. Apsveriet iespēju izmantot GCP pakalpojumus, piemēram, Cloud CDN, satura piegādei.
- Pārraugiet savas lietojumprogrammas: Izmantojiet GCP Cloud Monitoring pakalpojumu, lai pārraudzītu savu lietojumprogrammu stāvokli un veiktspēju. Iestatiet brīdinājumus, lai saņemtu paziņojumus par jebkādām problēmām.
- Automatizējiet izvietošanu: Izmantojiet infrastruktūras kā koda rīkus, piemēram, Terraform vai izvietošanas konveijerus, lai automatizētu izvietošanas procesu. Tas nodrošina konsekventu un atkārtojamu izvietošanu.
- Izvēlieties pareizo GCP pakalpojumu: Izvēlieties savas lietojumprogrammas vajadzībām atbilstošu GCP pakalpojumu. Apsveriet tādus faktorus kā mērogojamība, izmaksas un darbības sarežģītība. Piemēram, Cloud Functions ir labi piemērotas uz notikumiem balstītiem uzdevumiem, savukārt Cloud Run ir ideāls konteinerizētu lietojumprogrammu izvietošanai.
- Notīriet resursus: Atcerieties notīrīt visus neizmantotos GCP resursus, lai izvairītos no nevajadzīgām izmaksām.
- Atjauniniet bibliotēkas: Regulāri atjauniniet savas Python bibliotēkas, lai gūtu labumu no kļūdu labojumiem, drošības ielāpiem un jaunām funkcijām. Izmantojiet `pip`, lai atjauninātu savas pakotnes: `pip install --upgrade
`. - Izmantojiet virtuālās vides: Izveidojiet virtuālās vides katram projektam, lai izolētu atkarības un izvairītos no konfliktiem starp dažādiem projektiem.
Globālie apsvērumi
Izstrādājot GCP lietojumprogrammas globālai auditorijai, ņemiet vērā sekojošo:
- Datu rezidence: Izprotiet datu rezidences prasības saviem mērķa reģioniem. Izvēlieties GCP reģionus, kas atbilst šīm prasībām.
- Latentums: Minimizējiet latentumu, izvietojot savas lietojumprogrammas reģionos, kas ir ģeogrāfiski tuvu jūsu lietotājiem.
- Lokalizācija: Lokalizējiet savas lietojumprogrammas lietotāja saskarni un saturu dažādām valodām un reģioniem.
- Valūta un maksājumu apstrāde: Ja jūsu lietojumprogramma ietver finanšu darījumus, nodrošiniet, ka atbalstāt valūtas un maksājumu metodes, kas tiek izmantotas jūsu mērķa reģionos.
- Juridiskā un normatīvā atbilstība: Esiet informēts par juridiskajām un normatīvajām prasībām savos mērķa reģionos, piemēram, datu privātuma likumiem (piem., GDPR) un eksporta kontroli.
- Laika joslas: Pareizi apstrādājiet laika joslas, lai nodrošinātu, ka jūsu lietojumprogramma pareizi parāda datumus un laikus lietotājiem dažādās vietās. Izmantojiet bibliotēkas, piemēram, `pytz`, lai pārvaldītu laika joslu konvertēšanu.
- Kultūras jutīgums: Esiet uzmanīgs pret kultūras atšķirībām, izstrādājot savas lietojumprogrammas lietotāja saskarni un saturu.
Biežāko problēmu novēršana
Šeit ir dažas biežāk sastopamās problēmas, ar kurām varat saskarties, lietojot Python ar GCP, un kā tās novērst:
- Autentifikācijas kļūdas: Pārbaudiet, vai jūsu pakalpojuma konta atslēgas fails ir derīgs un vai `GOOGLE_APPLICATION_CREDENTIALS` vides mainīgais ir iestatīts pareizi. Tāpat pārliecinieties, ka pakalpojuma kontam ir nepieciešamās atļaujas piekļūt GCP resursiem.
- Piekļuves lieguma kļūdas: Vēlreiz pārbaudiet IAM lomas, kas piešķirtas jūsu pakalpojuma kontam vai lietotāja kontam. Pārliecinieties, ka tiem ir nepieciešamās atļaujas operācijai, kuru mēģināt veikt.
- Importēšanas kļūdas: Pārbaudiet, vai esat instalējis nepieciešamās Python bibliotēkas, izmantojot `pip`. Pārliecinieties, ka bibliotēku nosaukumi ir pareizi un ka izmantojat pareizo versiju.
- Tīkla savienojamības problēmas: Ja jūsu lietojumprogramma darbojas uz VM instances, pārliecinieties, ka VM ir tīkla savienojums ar internetu un ar GCP pakalpojumiem, kuriem mēģināt piekļūt. Pārbaudiet savus ugunsmūra noteikumus un tīkla konfigurāciju.
- API pieprasījumu limiti: GCP API ir pieprasījumu limiti, lai novērstu ļaunprātīgu izmantošanu. Ja pārsniedzat pieprasījumu limitus, varat saskarties ar kļūdām. Ieviesiet eksponenciālo atkāpšanos vai kešatmiņu, lai samazinātu API zvanu skaitu.
Noslēgums
Python un Google Cloud Platform nodrošina jaudīgu kombināciju mērogojamu, uzticamu un globāli pieejamu lietojumprogrammu veidošanai un izvietošanai. Ievērojot šajā ceļvedī izklāstītās vadlīnijas un labākās prakses, jūs varat efektīvi izmantot Python klienta bibliotēku, lai piekļūtu un pārvaldītu GCP pakalpojumus, kas ļaus jums radīt inovatīvus risinājumus globālai auditorijai.
Atcerieties vienmēr piešķirt prioritāti drošībai, optimizēt veiktspēju un apsvērt savu lietojumprogrammu globālās sekas. Nepārtraukta mācīšanās un eksperimentēšana ir atslēga, lai apgūtu mākoņattīstības mākslu ar Python GCP platformā.