AppSheet は、Google Cloud SQL、アマゾン ウェブ サービス(AWS)、またはその他の PostgreSQL をサポートするクラウド ホスティング プロバイダでホストされている PostgreSQL データベースからアプリを構築できます。
PostgreSQL データベースからアプリを構築するには、PostgreSQL データソースを追加します。
- [My Account] > [Sources] タブに移動します。
- [+ New Data Source] をクリックします。
- データソースの名前を入力し、[Cloud Database] または [On-premises Database] をクリックします。
[Add database connection information] ダイアログが表示されます。 - データベースの接続情報を構成します。
- [Type]: [Postgres] を選択します。
- [Server]: Postgres データベース サーバーのホスト名または IP アドレスを入力します。
- [Database]: データベース名を入力します。
- [Username]: データベース ユーザーのユーザー名を入力します。
- [Password]: データベース ユーザーのパスワードを入力します。
- [SSL]: 接続に必要な SSL モードを選択します。詳細については、SSL を使用するをご覧ください。
- [Test] をクリックして接続の詳細をテストします。
- テストが成功したら、[Authorize Access] をクリックして、AppSheet アカウントにデータソースを保存します。
AppSheet が PostgreSQL データにアクセスするには、PostgreSQL インスタンスがクラウド(Google Cloud SQLd、Amazon RDS、またはその他のクラウド ホスティング プロバイダ)でホストされている必要があります。
AppSheet サーバーがデータにアクセスするには、ネットワークと PostgreSQL の両方が、AppSheet サーバーからデータベースへの受信接続を受け入れる必要があります。詳しくは、IP アドレスとファイアウォール情報を管理するをご覧ください。
PostgreSQL データソースがアカウントに追加されると、PostgreSQL テーブルまたはビューを任意のアプリに追加できます。アプリで新しいテーブルを追加すると、具体的なデータソースと、そのデータ・ソースからのテーブルまたはビューを選択できます。
アプリに追加されると、AppSheet はすべてのデータソースを同様に扱います。実際、PostgreSQL データソースからのデータと他のソースからのデータを同じアプリ内で組み合わせることは一般的であり、自然なことです。
PostgreSQL データベースにアプリのクローンを作成する
PostgreSQL データベースに既存のアプリのクローンを作成すると、AppSheet は、PostgreSQL のデフォルトのスキーマ(「public」スキーマ)にクローン作成済みアプリのテーブルを作成します。PostgreSQL のユーザー作成のスキーマへのアプリのクローン作成は、サポートされていません。
Postgres の UNIQUEID (UUID) キーの使用について
Appsheet の UNIQUEID("UUID") 式は、531B2ABA-C263-4433-A61E-AD14FCC1031C の形式で大文字の UUID Key-Value を生成します。Postgres は、新しく追加されたレコードの UUID Key-Value を受け入れますが、Key-Value を自動的に小文字に変換します。
Postgres Key-Value が自動的に変換されると、クライアントとワークフローで、新しく追加されたレコードの更新が正常に機能しなくなる場合があります。追加の直後に行われる更新は、大文字のキーを使用して新しく追加されたレコードを見つけようとします。更新内の大文字のキーは新しく追加されたレコード内の小文字のキーと一致しなくなるため、これらの更新は失敗します。更新は失敗し、更新の Audit History には UpdateDeletedRecord が含まれます。
UpdateDeletedRecord は、サーバーがその Key-Value に基づいて更新されたレコードを見つけられなかったことを示します。サーバーは、更新されたレコードが削除されたために見つからなかったと想定します。これは次のように正当に発生します。
1. ユーザー 1 がレコードを追加する
2. ユーザー 2 が新しく追加されたレコードを読み取る
3. ユーザー 1(または他のユーザー)が新しく追加されたレコードを削除する
4. ユーザー 2 が新しく追加されたレコードを更新しようとする
この問題は、Appsheet テーブルの最初の Key-Value を次に指定することで回避できます。
LOWER(UNIQUEID("UUID"))
SSL を使用する
AppSheet は、セキュア ソケット レイヤ(SSL)接続を使用して PostgreSQL インスタンスに接続することもできます。PostgreSQL データソースを作成または編集する際、SSL を必須とした場合、データベースが SSL をサポートし、有効なサーバー証明書がある場合にのみ、接続が確立されます。
PostgreSQL インスタンスは、VeriSign や GeoTrust などの広く認知されている認証局によって生成されたサーバー証明書を使用することを強くおすすめします。これにより、証明書が関連するすべての暗号化基準とフォーマット基準を確実に満たすことになります。Google Cloud や Amazon RDS など、一部のクラウド ストレージ プロバイダも、ホストしている PostgreSQL インスタンス用にサーバー証明書を生成しています。現在、TinyCA によって生成されたサーバー証明書はサポートされていません。
また、SHA-2 ハッシュ アルゴリズムを使ってサーバー証明書に署名することもおすすめします。これは、SHA-1 アルゴリズムはもはや完全に安全とはみなされず、Microsoft、Amazon、Google を含む多くのクラウド プロバイダが SHA-2 や SHA-3 への移行を進めているからです。
Amazon RDS で PostgreSQL を使用する
PostgreSQL インスタンスが Amazon RDS でホストされている場合、[Publicly Accessible] 設定を [Yes] に設定する必要があります。サーバーが AppSheet からのトラフィックを確実に受け入れるようにするには、Amazon RDS のセキュリティ グループ設定に移動し、EC2 Management Console に入り、[Edit inbound rules] を選択して、AppSheet の IP アドレスからのすべてのトラフィックを受け入れるルールを作成します。これについては、IP アドレスとファイアウォール情報を管理するをご覧ください。
アプリで作成したファイルを保存する
データベース サーバーは、ファイル システムを持たないという点で、他のクラウド ストレージ プロバイダと異なります。これにより、ファイル(画像やドキュメントなど)を保存する際の AppSheet の動作が変更されます。アプリが写真をキャプチャする必要がある場合、それらは通常、クラウド ストレージのデータソースの隣のフォルダに保存されます。PostgreSQL テーブルの場合、画像ファイルとドキュメント ファイルは、アプリ作成者のプライマリ AppSheet アカウントに関連付けられたメインのクラウド ファイル システム(通常は Google ドライブ/Dropbox/Office 365/Box)に保存されます。ファイルは、アカウントのデフォルトのフォルダパスのサブフォルダ(通常、/appsheet/data)に保存されます。アカウント ページの [Settings] タブで、デフォルトのフォルダパスの表示や変更ができます。
データの種類
|
PostgreSQL タイプ |
AppSheet タイプ |
メモ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AppSheet の |
|
|
|
|
|
|
|
|
|
|
|
|
他のタイプは現在サポートされていませんが、AppSheet は Text にマッピングを試みます。
Array 型の列(例: integer[]、text[])は現在サポートされていないため、スキップされます。