GitHub でデータ アプリを自動的にデプロイ
TiDB Cloud は、 JSON 構文を使用してデータ アプリの構成全体をコードとして表現するコンフィグレーション as Code (CaC) アプローチを提供します。
データ アプリを GitHub に接続することで、 TiDB Cloud はCaC アプローチを使用して、データ アプリの構成を設定ファイルとして優先 GitHub リポジトリとブランチにプッシュできます。
GitHub 接続で自動同期とデプロイメントが有効になっている場合は、GitHub 上の構成ファイルを更新してデータ アプリを変更することもできます。構成ファイルの変更を GitHub にプッシュすると、新しい構成がTiDB Cloudに自動的にデプロイされます。
このドキュメントでは、GitHub を使用してデータ アプリを自動的にデプロイする方法と、GitHub 接続を管理する方法について説明します。
始める前に
データ アプリを GitHub に接続する前に、次のものを用意してください。
- GitHub アカウント。
- ターゲット ブランチを含む GitHub リポジトリ。
注記:
GitHub リポジトリは、データ アプリを接続した後にデータアプリ構成ファイル保存するために使用されます。構成ファイル内の情報 (クラスター 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
までにディレクトリにコミットされていることがわかります。これは、データ アプリが GitHub に正常に接続されていることを意味します。ディレクトリ構造は次のとおりです。
├── <Your Data App directory on GitHub>
│ ├── data_sources
│ │ └── cluster.json # specifies the linked 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 上のファイルを更新してデータ アプリを変更する
設定ファイルを更新するときは、次の点に注意してください。
ファイルディレクトリ | 注記 |
---|---|
data_source/cluster.json | このファイルを更新するときは、リンクされたクラスターにアクセスできることを確認してください。クラスター ID はクラスター URL から取得できます。たとえば、クラスター URL がhttps://tidbcloud.com/console/clusters/1234567891234567890/overview の場合、クラスター ID は1234567891234567890 です。 |
http_endpoints/config.json | エンドポイントを変更するときは、 HTTPエンドポイント構成で説明したルールに従ってください。 |
http_endpoints/sql/method-<endpoint-path>.sql | http_endpoints/sql ディレクトリ内の SQL ファイルを追加または削除するには、対応するエンドポイント構成も更新する必要があります。 |
datapp_config.json | dataapp_config.json ファイルが別のデータ アプリからコピーされ、現在のデータ アプリの ID に更新する場合を除き、このファイルのapp_id フィールドを変更しないでください。そうしないと、この変更によってトリガーされたデプロイメントが失敗します。 |
これらのファイル内のフィールド構成の詳細については、 データアプリ構成ファイル参照してください。
ファイルの変更がコミットされプッシュされると、 TiDB Cloud はGitHub に最新の変更を加えたデータ アプリを自動的にデプロイします。デプロイ履歴でデプロイのステータスとコミット情報を確認できます。
オプション 2: TiDB Cloudコンソールでデータ アプリを変更する
TiDB Cloudコンソールでデータアプリのエンドポイントを変更する実行した後 (エンドポイントの変更など)、次のように変更を確認して GitHub にデプロイできます。
右上隅の[デプロイ] をクリックします。変更内容を確認するためのダイアログが表示されます。
レビューに応じて、次のいずれかを実行します。
- 現在の下書きに基づいてさらに変更を加えたい場合は、このダイアログを閉じて変更を加えます。
- 現在の変更を最後のデプロイメントに戻す場合は、 「下書きを破棄」をクリックします。
- 現在の変更に問題がなければ、変更の説明(オプション)を記入し、 「デプロイ and Push to GitHub」をクリックします。デプロイのステータスが上部のバナーに表示されます。
デプロイが成功すると、 TiDB Cloudコンソールで行われた変更が自動的に GitHub にプッシュされます。
既存のデータアプリの構成をインポートする
既存のデータ アプリの構成を新しいデータ アプリにインポートするには、次の手順を実行します。
既存のデータ アプリの構成ファイルを GitHub 上の新しいブランチまたはディレクトリにコピーします。
プロジェクトのデータサービスページ目、GitHub に接続せずに新しいデータアプリを作成する 。
自動同期とデプロイメントが有効になっている新しいデータアプリをGitHubに接続する新しいデータ アプリのターゲット リポジトリ、ブランチ、ディレクトリを指定するときは、コピーした構成ファイルを含む新しいパスを使用します。
新しいデータ アプリの ID と名前を取得します。左側のペインで新しいデータ アプリの名前をクリックすると、右側のペインの[データ アプリのプロパティ]領域でアプリ ID と名前を取得できます。
GitHub の新しいパスで、
datapp_config.json
ファイルのapp_id
とapp_name
を取得した ID と名前に更新し、変更をプッシュします。ファイルの変更が GitHub にプッシュされると、 TiDB Cloud は最新の変更を反映した新しいデータ アプリを自動的にデプロイします。
GitHub からインポートされた構成を表示するには、 TiDB Cloudコンソールの Web ページを更新します。
デプロイメント履歴でデプロイメントのステータスとコミット情報を表示することもできます。
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
によって同期されなくなります。