GitHub を使用してデータアプリを自動的にデプロイ
TiDB Cloudは、 JSON構文を使用してデータアプリの構成全体をコードとして表現する、コンフィグレーションコード(CaC)アプローチを提供します。
データアプリをGitHubに接続することで、 TiDB CloudはCaC方式を使用し、データアプリの設定を設定ファイルとして、指定したGitHubリポジトリとブランチにプッシュできます。
GitHub接続で自動同期とデプロイが有効になっている場合、GitHub上の設定ファイルを更新することでデータアプリを変更することもできます。設定ファイルの変更をGitHubにプッシュすると、新しい設定がTiDB Cloudに自動的にデプロイされます。
このドキュメントでは、GitHub を使用してデータ アプリを自動的にデプロイする方法と、GitHub 接続を管理する方法について説明します。
始める前に
データアプリをGitHubに接続する前に、以下のものを用意してください。
- GitHubアカウント。
- ターゲットブランチを含むGitHubリポジトリ。
注記:
GitHub リポジトリは、データ アプリを接続した後、データアプリデータアプリの設定ファイルを保存するために使用されます。構成ファイル内の情報 ( TiDB Cloud StarterインスタンスまたはTiDB Cloud Dedicatedクラスターの ID、エンドポイント URL など) が機密である場合は、パブリック リポジトリではなくプライベート リポジトリを必ず使用してください。
ステップ1:データアプリをGitHubに接続する
アプリを作成するときに、データ アプリを GitHub に接続できます。詳細については、データアプリを作成する参照してください。
アプリ作成時にGitHub接続を有効にしなかった場合でも、以下の手順で有効にすることができます。
プロジェクトのデータサービスページに移動します。
左側のペインで、対象のデータアプリの名前をクリックすると、その詳細が表示されます。
「設定」タブで、 「GitHubに接続」エリアの「接続」をクリックします。接続設定用のダイアログボックスが表示されます。
ダイアログボックスで、以下の手順を実行してください。
GitHubで「インストール」をクリックし、画面の指示に従って、 TiDB Cloud Data Serviceをアプリケーションとして対象のリポジトリにインストールしてください。
「承認」をクリックして、GitHub上のアプリケーションへのアクセスを承認してください。
データアプリの設定ファイルを保存する対象リポジトリ、ブランチ、およびディレクトリを指定してください。
注記:
- ディレクトリ名はスラッシュ(
/)で始まる必要があります。例えば、/mydataのようになります。指定したディレクトリが対象のリポジトリとブランチに存在しない場合は、自動的に作成されます。 - リポジトリ、ブランチ、ディレクトリの組み合わせによって構成ファイルのパスが識別されます。このパスはデータアプリ間で一意である必要があります。指定したパスが既に他のデータアプリで使用されている場合は、新しいパスを指定する必要があります。そうしないと、現在のデータアプリ用にTiDB Cloudコンソールで構成されたエンドポイントによって、指定したパス内のファイルが上書きされます。
- 指定したパスに別のデータ アプリからコピーされた構成ファイルが含まれており、これらのファイルを現在のデータ アプリにインポートする場合は、「誰でもデータ既存のデータアプリの設定をインポートするインポートする」を参照してください。
- ディレクトリ名はスラッシュ(
TiDB CloudコンソールまたはGitHubで行われたデータアプリの変更を相互に同期させるには、 「自動同期とデプロイの設定」を有効にします。
- この機能を有効にすると、指定したGitHubディレクトリで行われた変更がTiDB Cloudに自動的にデプロイされ、 TiDB Cloudコンソールで行われた変更もGitHubにプッシュされます。関連するデプロイおよびコミット情報は、データアプリのデプロイ履歴で確認できます。
- この機能を無効にすると、指定したGitHubディレクトリで行われた変更はTiDB Cloudにデプロイされず、 TiDB Cloudコンソールで行われた変更もGitHubにプッシュされません。
「接続確認」をクリックしてください。
ステップ2. データアプリの設定をGitHubと同期する
データアプリデータアプリを作成するときに GitHub 接続が有効になっている場合、 TiDB Cloud はアプリの作成直後にこのデータ アプリの構成ファイルを GitHub にプッシュします。
アプリ作成後にGitHub接続が有効になっている場合は、データアプリの設定をGitHubと同期するためにデプロイ操作を実行する必要があります。たとえば、 [デプロイ]タブをクリックし、このデータアプリのデプロイを再デプロイすることができます。
デプロイ操作後、指定したGitHubディレクトリを確認してください。 tidb-cloud-data-serviceによってData Appの設定ファイルがディレクトリにコミットされていることが確認できます。これは、Data AppがGitHubに正常に接続されたことを意味します。ディレクトリ構造は以下のとおりです。
├── <Your Data App directory on GitHub>
│ ├── data_sources
│ │ └── cluster.json # specifies the linked TiDB Cloud Starter instances or TiDB Cloud Dedicated clusters.
│ ├── dataapp_config.json # specifies the Data APP ID, name, type, version, and description.
│ ├── http_endpoints
│ │ ├── config.json # specifies the endpoints.
│ │ └── sql # contains SQL files of the endpoints.
│ │ ├── <method>-<endpoint-path1>.sql
│ │ ├── <method>-<endpoint-path2>.sql
│ │ └── <method>-<endpoint-path3>.sql
ステップ3.データアプリを変更する
自動同期とデプロイが有効になっている場合、GitHubまたはTiDB Cloudコンソールのいずれかを使用してデータアプリを変更できます。
注記:
GitHubとTiDB Cloudコンソールで同時にデータアプリを変更した場合、競合を解決するために、コンソールで行った変更を破棄するか、コンソールの変更をGitHubの変更よりも優先するかを選択できます。
オプション1:GitHub上のファイルを更新してデータアプリを修正する
設定ファイルを更新する際は、以下の点に注意してください。
これらのファイルのフィールド構成の詳細については、 データアプリの設定ファイルを参照してください。
ファイルの変更がコミットされプッシュされると、 TiDB CloudはGitHub上の最新の変更内容を反映したデータアプリを自動的にデプロイします。デプロイのステータスとコミット情報は、デプロイ履歴で確認できます。
オプション2: TiDB Cloudコンソールでデータアプリを変更する
TiDB Cloudコンソールでデータアプリのエンドポイントデータアプリのエンドポイントを変更する後 (エンドポイントの変更など)、次のように変更を確認して GitHub にデプロイできます。
右上隅の「デプロイ」をクリックしてください。変更内容を確認するためのダイアログが表示されます。
レビュー内容に応じて、以下のいずれかを実行してください。
- 現在の草稿に基づいてさらに変更を加えたい場合は、このダイアログを閉じて変更を行ってください。
- 現在の変更を前回のデプロイメントの状態に戻したい場合は、 「下書きを破棄」をクリックしてください。
- 変更内容に問題がなければ、変更内容の説明(任意)を入力し、 「デプロイてGitHubにプッシュ」をクリックします。デプロイ状況は上部のバナーに表示されます。
デプロイが成功すると、 TiDB Cloudコンソールで行われた変更は自動的にGitHubにプッシュされます。
既存のデータアプリの設定をインポートする
既存のデータアプリの設定を新しいデータアプリにインポートするには、次の手順を実行します。
既存のデータアプリの設定ファイルを、GitHub上の新しいブランチまたはディレクトリにコピーします。
プロジェクトのデータサービスページで、GitHub に接続せずに新しいデータアプリを作成する。
自動同期とデプロイメントを有効にして、新しいデータアプリをGitHubに接続します。新しいデータ アプリのターゲット リポジトリ、ブランチ、ディレクトリを指定するときは、コピーした構成ファイルを含む新しいパスを使用します。
新しいデータアプリのIDと名前を取得します。左側のペインで新しいデータアプリの名前をクリックすると、右側のペインの「データアプリのプロパティ」領域にアプリのIDと名前が表示されます。
GitHub の新しいパスで、
app_idファイル内のapp_nameとdatapp_config.jsonを取得した ID と名前に更新し、変更をプッシュしてください。ファイルの変更がGitHubにプッシュされると、 TiDB Cloudは最新の変更内容を反映した新しいデータアプリを自動的にデプロイします。
GitHubからインポートされた設定を表示するには、 TiDB Cloudコンソールのウェブページを更新してください。
デプロイ履歴では、デプロイ状況やコミット情報も確認できます。
GitHub接続を編集する
データアプリのGitHub接続を編集する場合(リポジトリ、ブランチ、ディレクトリの切り替えなど)、以下の手順を実行してください。
プロジェクトのデータサービスページに移動します。
左側のペインで、対象のデータアプリの名前をクリックすると、その詳細が表示されます。
「GitHubに接続」エリアで、 接続設定用のダイアログボックスが表示されます。
ダイアログボックスで、データアプリのリポジトリ、ブランチ、およびディレクトリを変更します。
注記:
- ディレクトリ名はスラッシュ(
/)で始まる必要があります。例えば、/mydataのようになります。指定したディレクトリが対象のリポジトリとブランチに存在しない場合は、自動的に作成されます。 - リポジトリ、ブランチ、ディレクトリの組み合わせによって構成ファイルのパスが識別されます。このパスはデータアプリ間で一意である必要があります。指定したパスが既に他のデータアプリで使用されている場合は、新しいパスを指定する必要があります。そうしないと、現在のデータアプリ用にTiDB Cloudコンソールで構成されたエンドポイントによって、指定したパス内のファイルが上書きされます。
- 指定したパスに別のデータ アプリからコピーされた構成ファイルが含まれており、これらのファイルを現在のデータ アプリにインポートする場合は、「誰でもデータ既存のデータアプリの設定をインポートするインポートする」を参照してください。
- ディレクトリ名はスラッシュ(
TiDB CloudコンソールまたはGitHubで行われたデータアプリの変更を相互に同期させるには、 「自動同期とデプロイの設定」を有効にします。
- この機能を有効にすると、指定したGitHubディレクトリで行われた変更がTiDB Cloudに自動的にデプロイされ、 TiDB Cloudコンソールで行われた変更もGitHubにプッシュされます。関連するデプロイおよびコミット情報は、データアプリのデプロイ履歴で確認できます。
- この機能を無効にすると、指定したGitHubディレクトリで行われた変更はTiDB Cloudにデプロイされず、 TiDB Cloudコンソールで行われた変更もGitHubにプッシュされません。
「接続確認」をクリックしてください。
GitHub接続を削除
データアプリをGitHubに接続しなくなった場合は、以下の手順に従ってください。
- プロジェクトのデータサービスページに移動します。
- 左側のペインで、対象のデータアプリの名前をクリックすると、その詳細が表示されます。
- 「設定」タブで、 「GitHubに接続」エリアの「切断」をクリックします。
- 切断を確定するには、 「切断」をクリックしてください。
接続解除操作後、データ アプリの設定ファイルは GitHub ディレクトリに残りますが、 tidb-cloud-data-serviceによって同期されなくなります。