GCP: Python パッケージを本番環境で公開する
このガイドでは、Google Artifact Registry を使用して共有 Python コードをパッケージとして管理する方法について説明します。このアプローチにより、Cloud Functions とサーバー間のコードの重複が排除されます。
ステップ 1: 共有コードを構造化する
共有ロジック (common_logic など) 用の新しい Python パッケージを作成します。
common_logic/ ├── setup.py ├── common_logic/ │ ├── __init__.py
ステップ 2: setup.py を作成する
setup.py ファイルでパッケージ構成を定義します。
common_logic/ ├── setup.py ├── common_logic/ │ ├── __init__.py
ステップ 3: Google Artifact Registry をセットアップする
- Artifact Registry API を有効にします。
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", )
- Python リポジトリを作成します。
gcloud services enable artifactregistry.googleapis.com
ステップ 4: 認証を構成する
- サービス アカウントを作成します。
gcloud artifacts repositories create python-packages \ --repository-format=python \ --location=us-central1 \ --description="Python packages repository"
- 必要な権限を付与します。
gcloud iam service-accounts create artifact-publisher \ --description="Service account for publishing to Artifact Registry"
- キーを作成してダウンロードします。
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"
ステップ 5: パッケージをビルドしてアップロードする
- ビルド ツールをインストールします。
gcloud iam service-accounts keys create key.json \ --iam-account=artifact-publisher@${PROJECT_ID}.iam.gserviceaccount.com
- パッケージをビルドします:
pip install build twine
- Artifact Registry のより糸を構成します。
python -m build
- パッケージをアップロードします:
cat > ~/.pypirc <hr> <h2> ステップ 6: パッケージを使用する </h2> <h3> クラウド機能内 </h3> <ol> <li>requirements.txt ファイルを作成します。 </li> </ol> <pre class="brush:php;toolbar:false"> twine upload --repository common-logic-repo dist/*
- Cloud Function でパッケージを使用します。
--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
サーバーコード内
- サーバーのrequirements.txtに次の内容を追加します。
from common_logic import ... def cloud_function(request): # Your cloud function code using the imported functions pass
- サーバーコードで使用します。
--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
ステップ 7: CI/CD の統合
- サービス アカウント キーを GitHub リポジトリにシークレットとして追加します。
- Cloud Build 構成を更新します。
from common_logic import ... # Your server code using the imported functions
ステップ 8: バージョン管理
- setup.py のバージョンを更新します。
- 新しいバージョンをビルドしてアップロードします。
- Cloud Functions とサーバー コードの両方で、requirements.txt を更新します。
- 両方のコンポーネントをデプロイします。
ベストプラクティス
- パッケージにはセマンティック バージョニングを使用します。
- requirements.txt に特定のバージョンを固定します。
- 新しいバージョンを展開する前に徹底的にテストします。
- バージョン変更の変更ログを保存します。
- PROJECT_ID と LOCATION には環境変数を使用します。
- パッケージに包括的なドキュメントを含めます。
一般的な問題と解決策
認証エラー
- サービス アカウントの権限を確認します。
- key.json が適切にエンコードされていることを確認してください。
- .pypirc 構成を確認します。
パッケージが見つかりません
- リポジトリ URL 形式を確認します。
- パッケージが正常にアップロードされたかどうかを確認します。
- requirements.txt が正しい URL 形式を使用していることを確認してください。
バージョンの競合
- 依存関係の特定のバージョンを固定します。
- テストには仮想環境を使用します。
- 依存関係の要件を明確に文書化します。
以上がGCP が本番環境で Python パッケージを公開するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
