コンテンツにスキップ

PlaidCloud GitからPanelアプリをデプロイする

ここでは、ご自分のマシン上のPanelアプリのコードから、公開されたURLまでの全体の流れを、ワークスペースに組み込まれたマネージドのGitサービスである PlaidCloud Git をソースとして説明します。PlaidCloud Gitはマネージドなので、アプリのデプロイ元となる接続には、サーバーのURL、ユーザー名、トークンは不要です。PlaidCloudがユーザーに代わって認証します。

手順は5つです。

  1. 最小限のPanelアプリを書きます。
  2. PlaidCloud Gitリポジトリに置きます。
  3. マネージドのPlaidCloud Git接続を作成します。
  4. リポジトリを指すサーバーアプリを公開します。
  5. 配信されたアプリを開きます。起動しない場合はビルドログを確認します。

各ステップには、その部分に関する詳細なガイドへのリンクがあります。このページは、それらを1つの流れにまとめたものです。

  • ワークスペースからGitを開き、PlaidCloud Gitにアクセスできることを確認します。デフォルトでは、ワークスペースの組織には apps リポジトリ(と udfs リポジトリ)があり、Panelアプリの置き場所として最適です。
  • マシンからコードをプッシュする場合は、ローカルにgitをインストールしてください(GitのWeb UIでファイルを追加することもできます)。

アプリには、Panelアプリを構築して.servable()としてマークするPythonファイルであるエントリポイントが必要です。必要に応じて、追加のパッケージ用の requirements.txt も、リポジトリのルートまたはエントリポイントの隣に置きます。

apps/
├── app.py # entry point — calls .servable()
└── requirements.txt # optional; extra dependencies (repo root or next to app.py)

app.pyを作成します。

import panel as pn
pn.extension()
pn.pane.Markdown("# Hello from PlaidCloud Git 👋\n\nServed straight from your workspace repository.").servable()

これで完全なアプリです。PlaidCloudが配信するのは.servable()の呼び出しです。panel、bokeh、PlaidCloudのクライアントライブラリ(plaidcloud-rpc、plaidcloud-utilities)はプリインストールされているため、requirements.txtには追加のパッケージだけを記載します。より充実した例、依存関係、ライトとダークのテーマ設定については、Panelアプリの作成を参照してください。

2. アプリをPlaidCloud Gitリポジトリに置く

Section titled “2. アプリをPlaidCloud Gitリポジトリに置く”

ワークスペースにある既存の apps リポジトリを使用するか、新しく作成します。次に、コードをその中に入れます。

PlaidCloud経由でサインインするため、Gitアカウントには別のパスワードがありません。リポジトリの読み取りと書き込みのスコープを持つパーソナルアクセストークンを生成し(アバター → Settings → Applications)、Gitがパスワードを求めたときにそれを使用します。リポジトリのコードボタンからHTTPSのクローンURLをコピーし、次のように実行します。

ターミナルウィンドウ
git clone https://<your-git-host>/<org>/apps.git
cd apps
# add app.py (and requirements.txt), then:
git add app.py requirements.txt
git commit -m "Add hello panel app"
git push

リポジトリのパス(<org>/apps)を控えておいてください。<org>はワークスペースの組織名です。このパスは次のステップで入力します。クローン、コミット、プッシュの詳細は、リポジトリにあります。

ここでのトークンは、ご自身がコードをプッシュするためだけのものです。 次に作成する接続はマネージドでトークンは不要なので、両者を混同しないでください。

3. マネージドのPlaidCloud Git接続を作成する

Section titled “3. マネージドのPlaidCloud Git接続を作成する”

接続は、Panelのデプロイにコードの場所を伝えます。PlaidCloud Gitでは、接続はマネージドで、ホストと認証情報はPlaidCloudが提供するため、入力するのはリポジトリの対象だけです。

  1. Tools > Connectionsを開き、新規接続をクリックして、PlaidCloud Gitを選択します。
  2. 接続にアカウント名を付けます(例:Apps Repo)。
  3. Repository Pathを、ステップ2で控えたパスの<org>/appsに設定し、デフォルトブランチをmainに設定します。アプリがサブディレクトリにある場合を除き、開始パスは空白のままにします。
  4. 作成をクリックします。

サーバーURL、ユーザー、パスワード、SSL/SSHのフィールドはありません。PlaidCloud Gitはマネージドなので、ホストと認証はプラットフォームが処理します。接続の使用方法とセキュリティモデル(ワークスペース内で誰が使用できるか)を含むフォームの詳細については、PlaidCloud Git接続を参照してください。

古いワークスペースのビルドをお使いの場合は、 フォームにサーバーURLや認証情報のフィールドが表示されていても、空白のままにしてください。どちらの場合も、プラットフォームがユーザーに代わって認証します。

次に、サーバーのデプロイをその接続に向けます。

  1. マイPanelアプリを開き、新しいサーバーアプリをクリックします。
  2. ディレクトリ設定で、アプリ名とURLスラッグを設定します。スラッグはアプリのURLと内部名になるため、小文字、数字、ハイフンを使い、先頭は文字、40文字以内にします(例:hello-panel)。
  3. Git接続と公開ウォッチャーで、次の項目を設定します。
    • Git接続 — ステップ3で作成したPlaidCloud Git接続です。
    • ブランチ — mainです。このブランチにプッシュすると、アプリが自動的に再ビルドされ、再デプロイされます。
    • エントリポイント — app.pyです。
  4. ランタイムで、CPU、メモリ、デザイン(PlaidCloudの最新の外観にはFAST)、アイドルの時間枠を選択します。サインインなしでアプリにアクセスできるようにする場合にのみ、パブリックアクセスを許可をオンにします。
  5. 公開をクリックします。

このダイアログのすべてのフィールドについては、Panelアプリの作成で説明しています。

5. アプリを開く。起動しない場合はログを確認する

Section titled “5. アプリを開く。起動しない場合はログを確認する”

公開すると、アプリのビルドが行われます。PlaidCloudはブランチをクローンし、requirements.txt(リポジトリのルートのものと、アプリのフォルダーのもの。存在する場合)をインストールして、コンテナーイメージをビルドします。ステータスはマイPanelアプリの一覧に表示され、自動的に更新されます。

  • ステータスが準備完了になったら、https://<your-tenant-host>/serve/<slug>/でアプリを開きます。アイドル状態の後の最初のリクエストでは、起動に約15秒かかります。
  • ビルドが失敗した場合は、アプリを開いてビルドログを確認します。依存関係の不足やインポートエラーは、ここに表示されます。各ステータスの意味、ログの読み方、再ビルドの実行方法については、Panelアプリの使用を参照してください。

以降は、接続のブランチにプッシュするたびに、アプリが自動的に再ビルドされ、再デプロイされます。app.pyを編集してgit pushすれば、変更が反映されます。(ただし、アプリがロックされている場合は除きます。アプリのロックを参照してください。その場合、ロックを解除するまでプッシュはスキップされます。)