AWS CDKでAWS AppSyncを構築する方法(TypeScript版)
概要
AWS CDK(Cloud Development Kit)は、AWS上のリソースをPython / Java / .NET / TypeScriptを使って構築することができるフレームワークです。 AWS AppSyncはAWS上にGraphQLサーバーを構築することができるマネージドサービスです。 Amazon API Gatewayを使うことでREST APIを構築できますが、GraphQLのAPIを立てたい場合はAWS AppSyncを使います。
GraphQLには以下のような特徴があります。
- 型指定されたスキーマ
- 必要なフィールドのみ取得
- サーバー側からの情報のプッシュ
- 概要
- 動作確認
- AWS CDKのCLIをインストール
- AWS CDKのプロジェクトを作成
- AWS AppSyncを構築するためのパッケージを追加する
- AWS AppSyncを構築するコードを追加する
- AWS CDKで構築したリソースをデプロイする
- リソースを削除する
動作確認
- aws-cdk@1.6.1
AWS CDKのCLIをインストール
$ npm i -g aws-cdk
AWS CDKのプロジェクトを作成
# ディレクトリを作成 $ mkdir appsync # ディレクトリに移動 $ cd appsync # AWS CDKプロジェクトを作成 $ cdk init app --language=typescript
この時点でのディレクトリは以下のようになっています。
$ tree . -I node_modules . ├── README.md ├── bin │ └── appsync.ts ├── cdk.json ├── lib │ └── appsync-stack.ts ├── package-lock.json ├── package.json └── tsconfig.json
AWS AppSyncを構築するためのパッケージを追加する
AWS CDKでは、AWSの各リソースを構築するためのクラスはそれぞれ別パッケージとなっています。 次のコマンドでAWS AppSyncを構築するためのパッケージをインストールします。
$ npm i @aws-cdk/aws-appsync
AWS AppSyncを構築するコードを追加する
lib/appsync-stack.ts
に以下のコードを追加します。
import cdk = require("@aws-cdk/core"); // 以下の行を追加 import appsync = require("@aws-cdk/aws-appsync"); export class AppsyncStack extends cdk.Stack { constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // 以下の行を追加 new appsync.CfnGraphQLApi(this, "AppSyncAPI", { name: "MyAppSyncAPI", authenticationType: "API_KEY" }); } }
AWS CDKで構築したリソースをデプロイする
# TypeScriptをコンパイル $ npx tsc # リソースをデプロイ $ cdk deploy
マネジメントコンソールにてAWS AppSyncのAPIが出来上がっているのが確認できます。
リソースを削除する
# リソースを削除する $ cdk destroy