ローカル開発とCLI
Squid を使ってローカルで開発すると、本番環境にデプロイする前にアプリケーションをテストし、コードに変更を加えることができます。
Squid CLI(Command Line Interface)は、Squid と通信し、バックエンドコードを生成し、プロジェクトをローカルで実行するための簡単な方法を提供します。
Squid で開発する場合、アプリケーション内で管理するアーキテクチャコンポーネントは 2 つあります。
- クライアントアプリケーション(群)- 開発しているクライアントアプリケーション/フロントエンドです。Squid Client SDK を使用し、しばしばクライアントフレームワーク(React、Angular、mobile など)と組み合わせて利用します。
- アプリケーションバックエンド - Squid によって実行される TypeScript プロジェクトで、アプリケーションのバックエンドをカスタマイズするために使用します。Squid Backend SDK にアクセスできます。
ローカルで開発するには、まず Squid CLI を使ってバックエンドプロジェクトを作成する必要があります。
インストール
CLI をインストールするには、次の npm コマンドを実行します。
npm install -g @squidcloud/cli
権限エラーが表示される場合は、npm の公式ガイドをお読みください。
init コマンド
アプリケーション用の新しいバックエンドプロジェクトを作成するには、init コマンドを使用します。
プロジェクトのルートディレクトリに移動し、squid init コマンドを実行します。Squid Console のアプリケーション概要ページから完全なコマンドをコピーできます。
コマンドにアクセスするには、Console で Initialize Backend ボタンをクリックします。Console が、アカウントとアプリケーションに対して正しい値を含む適切なコマンドを自動的に生成します。
コマンドは次のようになります。
cd YOUR_APP_DIRECTORY
squid init YOUR_APP_NAME-backend --appId YOUR_APP_ID --apiKey YOUR_API_KEY --environmentId TARGET_ENVIRONMENT_ID --squidDeveloperId YOUR_SQUID_DEVELOPER_ID --region YOUR_REGION
コマンドを実行すると、新しく作成されたバックエンドディレクトリ内に次の主要ファイルが生成されます。
.env- application ID、region、Squid Developer ID、environment ID が含まれます。これらの値はローカル開発に必要です。 このファイルは、squid init-envコマンド(Squid Console からも参照可能)を使って個別に生成することもできます。/src/service/example-service.ts- バックエンドコードの出発点として使用できるファイルです。
機密情報を含み、開発者ごとに固有の .env ファイルは、自動的に .gitignore に追加されます。
開発環境のセキュリティと完全性を確保するために、このファイルをバージョン管理システムに含めないでください。
start コマンド
Squid にデプロイする前に、素早い修正やデバッグを行うためにバックエンドをローカルで開発・テストできます。
バックエンドプロジェクトをローカルで実行するには、次のコマンドを使用します。このコマンドは dev 環境に接続されたローカル版のバックエンドを起動します。
squid start
このコマンドを実行した後、environmentId: 'dev' と squidDeveloperId: YOUR_SQUID_DEVELOPER_ID オプションを設定することで、ローカルバックエンドと通信するように Squid クライアントアプリケーションを初期化できます。実際のコードはクライアントアプリケーションによって異なる場合があります。
import { Squid } from '@squidcloud/client';
const squid = new Squid({
appId: 'YOUR_APP_ID',
region: 'YOUR_REGION', // example: 'us-east-1.aws'
environmentId: 'dev',
squidDeveloperId: 'YOUR_SQUID_DEVELOPER_ID',
});
この時点で、クライアントアプリケーションはローカルバックエンドと並行して実行し、通信できます。クライアントとバックエンドの両方のコードを変更し、変更内容をすぐにテストできます。
バックエンドのログ出力を拡張する
場合によっては、Squid が Squid のコアバックエンドからローカルバックエンドへログメッセージを送信します。これらのメッセージを表示できるようにするには、受け取りたいメッセージの種類を subscribe(購読)する必要があります。
これは、先ほど作成した .env ファイルで SQUID_LOG_TYPES 環境変数を設定することで行います。利用可能なログタイプは ALL、QUERY、MUTATION、AI、API、ERROR で、今後さらに追加される予定です。任意の順序で組み合わせることができ、カンマ区切りで指定します。
SQUID_LOG_TYPES=QUERY,MUTATION,AI,API,ERROR
deploy コマンド
バックエンドのデプロイは dev または prod 環境で行えます。dev にデプロイすると、バックエンドが本番稼働した際にどのように動作するかをテストできます。バックエンドには引き続き変更を加えられますが、それらの変更を有効化するには再デプロイが必要です。
本番環境へプロジェクトを投入する準備ができたら、squid deploy コマンドを使用できます。
deploy コマンドを実行する前に、クライアントコード設定で environmentId 属性が prod に設定されていることを確認してください。
また、本番利用では squidDeveloperId オプションを削除してください。
dev 環境の下でプロジェクト用に connector を作成している場合、デプロイ前にまず prod 環境でもこれらを再作成する必要があります。
バックエンドをデプロイするには、まずプロジェクトのルートディレクトリに移動します。
次に、Squid Console のアプリケーション概要ページからコピーできる deploy コマンドを実行します。正しい deploy コマンドにアクセスするには、Console で Deploy Backend ボタンをクリックします。Console が、アカウントとアプリケーションに対して正しい値を含む適切なコマンドを自動的に生成します。コマンドは次のようになります。
squid deploy --apiKey YOUR_API_KEY --environmentId TARGET_ENVIRONMENT_ID
デプロイが成功すると、Squid Console にバックエンド関数の更新された一覧が反映されます。 この機能には、Console の backend セクションからアクセスしてください。
コマンドラインでパラメータが指定されていない場合、deploy コマンドは .env ファイルからそれらを読み取ります。