注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Python 関数のデプロイ

ベータ版

Python 関数は現在ベータ版であり、すべてのエンロールメントで利用できるわけではありません。

前提条件

このガイドでは、すでに Python 関数を作成して公開していることを前提としています。チュートリアルについては、Python 関数の入門ドキュメントを参照してください。Python SDK を使用してオントロジーをクエリする方法の例については、Python オントロジー SDK ドキュメントを参照してください。

デプロイモードとサーバーレス実行モードの選択

エンロールメントにサーバーレス Python が有効になっている場合、新しいリポジトリはデフォルトでそれを使用します。ほとんどのユースケースではサーバーレス関数を推奨します。デプロイ関数が有用な場合もありますが、サーバーレス実行モードはメンテナンスが少なくて済み、長期間のデプロイメントに関連するコストを回避できます。

デプロイ関数にはサーバーレス関数では利用できない機能があります:

  • 外部ソースは現在サーバーレス関数ではサポートされていません。この場合、関数をデプロイする必要があります。
  • デプロイ関数の長期実行の性質により、関数が再起動に耐えられる場合、ローカルキャッシュが可能になることがあります。

デプロイ関数にはサーバーレス実行にはない制限があります:

  • サーバーレス関数は、単一関数の異なるバージョンをオンデマンドで実行できるため、アップグレードが安全になります。デプロイ関数では、1 度に 1 つの関数バージョンしか実行できません。
  • サーバーレス関数は実行時にのみコストが発生しますが、デプロイ関数はデプロイメントが実行されている間ずっとコストが発生します。
  • サーバーレス関数は、インフラストラクチャが自動的に管理されるため、初期設定と長期メンテナンスが少なくて済みます。

エンロールメントにサーバーレス Python 関数を有効にするには、ユーザーの Palantir 管理者に連絡してください。

アーキテクチャ

Python 関数は、TypeScript 関数と同様にオンデマンドリソースを活用するサーバーレスモードで実行することも、長期間実行されるコンテナにデプロイすることもできます。

エンロールメントにサーバーレス Python 関数が有効になっている場合は、デプロイ関数よりもサーバーレス関数を使用することをお勧めします。デプロイ関数が有用な場合もありますが、サーバーレスエグゼキュータの方が一般的に柔軟です。

関数がデプロイされると、受信実行リクエストを処理するための長期間実行環境が作成されます。環境はリクエストのボリュームに応じてスケールされ、自動プロセスによって時々再起動されます。単一のリポジトリからすべての関数が単一のデプロイメントによってホストされます。

コンピュートコスト

デプロイされた Python 関数は、実行中のデプロイメントに対してコンピュートコストが発生します。サーバーレス関数は実行時にのみコストが発生します。

Python 関数のデプロイ

以下の手順に従って、デプロイされた Python 関数を準備および構成します:

  1. Python 関数リポジトリを開き、Branches タブに移動して、Tags and releases を選択します。
  2. デプロイしたい関数の上にカーソルを合わせ、Open in Ontology Manager を選択します。

Open the Python function in Ontology Manager.

  1. 左側のバージョンセレクターから使用したい Python 関数のバージョンを選択します。
  2. Create and start deployment を選択します。

Create and start deployment of Python function

  1. 環境でサーバーレス関数が有効になっている場合は、サーバーレスとデプロイの間で切り替えるオプションが表示されます。選択が解除されており、デプロイメントが存在しない場合、デフォルトでサーバーレスが使用されます。

A Python function in serverless mode

  1. ドロップダウンで Deployed を選択し、Start を選択してデプロイメントを開始します。

Change mode of Python function

  1. 関数をホストするデプロイメントが開始するのを待ちます。