リレーショナルデータベース
Amplify CLIは現在、サーバーレスAmazon Aurora MySQL 5.6データベースのインポートをサポートしています。以下の手順は、Amazon Aurora Serverlessデータベースを作成し、このデータベースをGraphQLデータソースとしてインポートしテストする方法を示しています。
まず、GraphQL APIを持つAmplifyプロジェクトがない場合は、次の簡単なコマンドを使用して作成してください。
amplify initamplify add apiAWS RDSコンソールにアクセスして「データベースの作成」をクリックします。
データベース作成方法として「標準作成」を選択します
エンジンオプションについては、次のオプションを保持します
データベース機能で「サーバーレス」を選択します
設定で以下の情報を入力します
キャパシティ設定を以下のように選択します
「追加の接続設定」を展開して「Data API」を有効にし、VPCセキュリティグループが設定されていない場合は「新規作成」を選択します
「追加設定」を展開して「初期データベース名」をMarketPlaceとして入力します
「データベースの作成」をクリックします。作成されたら、サイドメニューの「クエリエディタ」をクリックして接続プロンプトを開きます。接続するには、クラスターを選択し、以前設定した認証情報を入力します。
接続後、データベースといくつかのテーブルを作成します。
USE MarketPlace;CREATE TABLE Customers ( id int(11) NOT NULL PRIMARY KEY, name varchar(50) NOT NULL, phone varchar(50) NOT NULL, email varchar(50) NOT NULL);CREATE TABLE Orders ( id int(11) NOT NULL PRIMARY KEY, customerId int(11) NOT NULL, orderDate datetime DEFAULT CURRENT_TIMESTAMP, KEY `customerId` (`customerId`), CONSTRAINT `customer_orders_ibfk_1` FOREIGN KEY (`customerId`) REFERENCES `Customers` (`id`));コマンドラインに戻って、Amplifyプロジェクトのルートから amplify api add-graphql-datasource を実行します。
amplify push でプロジェクトをAWSにプッシュします。
amplify push を実行してプロジェクトをAWSにプッシュします。その後、amplify api console でAppSyncコンソールを開いて、GraphQL APIを通じてRDSデータベースとやり取りを試すことができます。
SQLデータベースをGraphQLから操作する
APIはサーバーレスAmazon Aurora MySQLデータベースで機能するように設定されています。AppSyncコンソールからミューテーションを実行して顧客を作成し、RDSコンソールから照会して確認を取ってみてください。
顧客を作成します:
mutation CreateCustomer { createCustomers( createCustomersInput: { id: 1 name: "Hello" phone: "111-222-3333" email: "customer1@mydomain.com" } ) { id name phone email }}次にRDSコンソールを開いて、簡単なselect文を実行して新しい顧客を確認します:
USE MarketPlace;SELECT * FROM Customers;これはどのように機能しますか?
add-graphql-datasource コマンドは、既存のデータソースを操作するための基本的な機能セットを提供するカスタムスタックをプロジェクトに追加します。新しいスタックは stacks/ ディレクトリ内に、新しいリゾルバーセットは resolvers/ ディレクトリ内に検出され、schema.graphql にいくつかの追加が見つかります。カスタムスタックおよび/またはリゾルバーファイルの詳細は自由に編集できます。データベース内の変更でプロジェクトを更新するために add-graphql-datasource を再度実行できますが、これらは stacks/ または resolvers/ ディレクトリ内の既存のテンプレートを上書きするため注意してください。Amplify CLIで複数の環境を使用する場合、環境ごとに1回データソースを構成するよう求められます。