Rumah > pembangunan bahagian belakang > Tutorial Python > GCP menerbitkan pakej python dalam pengeluaran

GCP menerbitkan pakej python dalam pengeluaran

Mary-Kate Olsen
Lepaskan: 2024-11-20 12:29:13
asal
580 orang telah melayarinya

GCP publish python package in production

GCP: Terbitkan Pakej Python dalam Pengeluaran

Panduan ini menerangkan cara menggunakan Google Artifact Registry untuk mengurus kod Python yang dikongsi sebagai pakej. Pendekatan ini menghapuskan pertindihan kod antara Fungsi Awan dan pelayan anda.


Langkah 1: Susun Kod Dikongsi Anda

Buat pakej Python baharu untuk logik kongsi anda (cth. common_logic).

common_logic/
├── setup.py
├── common_logic/
│   ├── __init__.py
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Cipta setup.py

Tentukan konfigurasi pakej anda dalam fail setup.py:

common_logic/
├── setup.py
├── common_logic/
│   ├── __init__.py
Salin selepas log masuk
Salin selepas log masuk

Langkah 3: Sediakan Pendaftaran Artifak Google

  1. Dayakan API Pendaftaran Artifak:
from setuptools import setup, find_packages

setup(
    name="common_logic",
    version="0.1.0",
    packages=find_packages(),
    install_requires=[
        "pandas>=1.3.0",
    ],
    author="Your Name",
    author_email="your.email@example.com",
    description="Common logic for app",
)
Salin selepas log masuk
  1. Buat repositori Python:
   gcloud services enable artifactregistry.googleapis.com
Salin selepas log masuk

Langkah 4: Konfigurasikan Pengesahan

  1. Buat akaun perkhidmatan:
   gcloud artifacts repositories create python-packages \
       --repository-format=python \
       --location=us-central1 \
       --description="Python packages repository"
Salin selepas log masuk
  1. Berikan kebenaran yang diperlukan:
   gcloud iam service-accounts create artifact-publisher \
       --description="Service account for publishing to Artifact Registry"
Salin selepas log masuk
  1. Buat dan muat turun kunci:
   gcloud artifacts repositories add-iam-policy-binding python-packages \
       --location=us-central1 \
       --member="serviceAccount:artifact-publisher@${PROJECT_ID}.iam.gserviceaccount.com" \
       --role="roles/artifactregistry.writer"
Salin selepas log masuk

Langkah 5: Bina dan Muat Naik Pakej

  1. Pasang alat binaan:
   gcloud iam service-accounts keys create key.json \
       --iam-account=artifact-publisher@${PROJECT_ID}.iam.gserviceaccount.com
Salin selepas log masuk
  1. Bina pakej:
   pip install build twine
Salin selepas log masuk
  1. Konfigurasikan benang untuk Pendaftaran Artifak:
   python -m build
Salin selepas log masuk
  1. Muat naik pakej:
   cat > ~/.pypirc << EOL
   [distutils]
   index-servers = common-logic-repo
   [common-logic-repo]
   repository: https://us-central1-python.pkg.dev/${PROJECT_ID}/python-packages/
   username: _json_key_base64
   password: $(base64 -w0 key.json)
   EOL
Salin selepas log masuk

Langkah 6: Gunakan Pakej

Dalam Fungsi Awan

  1. Buat fail requirements.txt:
   twine upload --repository common-logic-repo dist/*
Salin selepas log masuk
  1. Gunakan pakej dalam Fungsi Awan anda:
   --index-url https://pypi.org/simple
   --extra-index-url https://oauth2accesstoken:${ARTIFACT_REGISTRY_TOKEN}@us-central1-python.pkg.dev/${PROJECT_ID}/python-packages/simple/
   common-logic==0.1.0
Salin selepas log masuk
Salin selepas log masuk

Dalam Kod Pelayan

  1. Tambahkan pada keperluan pelayan anda.txt:
   from common_logic import ...

   def cloud_function(request):
       # Your cloud function code using the imported functions
       pass
Salin selepas log masuk
  1. Gunakannya dalam kod pelayan anda:
   --index-url https://pypi.org/simple
   --extra-index-url https://oauth2accesstoken:${ARTIFACT_REGISTRY_TOKEN}@us-central1-python.pkg.dev/${PROJECT_ID}/python-packages/simple/
   common-logic==0.1.0
Salin selepas log masuk
Salin selepas log masuk

Langkah 7: Integrasi CI/CD

  1. Tambahkan kunci akaun perkhidmatan sebagai rahsia dalam repositori GitHub anda.
  2. Kemas kini konfigurasi Cloud Build anda:
   from common_logic import ...
   # Your server code using the imported functions
Salin selepas log masuk

Langkah 8: Pengurusan Versi

  1. Kemas kini versi dalam setup.py.
  2. Bina dan muat naik versi baharu.
  3. Kemas kini requirements.txt dalam kedua-dua Fungsi Awan dan kod pelayan.
  4. Letakkan kedua-dua komponen.

Amalan Terbaik

  • Gunakan versi semantik untuk pakej anda.
  • Sematkan versi khusus dalam requirements.txt.
  • Uji versi baharu dengan teliti sebelum digunakan.
  • Simpan log perubahan perubahan versi.
  • Gunakan pembolehubah persekitaran untuk PROJECT_ID dan LOCATION.
  • Sertakan dokumentasi komprehensif dalam pakej anda.

Isu dan Penyelesaian Biasa

Ralat Pengesahan

  • Sahkan kebenaran akaun perkhidmatan.
  • Pastikan key.json dikodkan dengan betul.
  • Semak konfigurasi .pypirc.

Pakej Tidak Ditemui

  • Sahkan format URL repositori.
  • Semak sama ada pakej berjaya dimuat naik.
  • Pastikan requirements.txt menggunakan format URL yang betul.

Konflik Versi

  • Sematkan versi kebergantungan tertentu.
  • Gunakan persekitaran maya untuk ujian.
  • Dokumenkan keperluan pergantungan dengan jelas.

Atas ialah kandungan terperinci GCP menerbitkan pakej python dalam pengeluaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan