ローカル開発とCLI
Squid をローカルで開発すると、本番環境にデプロイする前にアプリケーションをテストし、コードに変更を加えることができます。
Squid CLI(Command Line Interface)は、Squid と通信し、バックエンドコードを生成し、プロジェクトをローカルで実行するための簡単な方法を提供します。
Squid で開発する際、アプリケーション内で管理するアーキテクチャ上のコンポーネントは 2 つあります。
- クライアントアプリケーション(複数可)- 開発しているクライアントアプリケーション、またはフロントエンドです。多くの場合、クライアントフレームワーク(React、Angular、モバイルなど)と組み合わせて Squid Client SDK を使用します。
- アプリケーションバックエンド - Squid によって実行され、アプリケーションのバックエンドをカスタマイズするために使用される TypeScript プロジェクトです。Squid Backend SDK にアクセスできます。
ローカルで開発するには、まず Squid CLI を使ってバックエンドプロジェクトを作成する必要があります。
インストール
CLI をインストールするには、次の npm コマンドを実行します。
npm install -g @squidcloud/cli
権限エラーが表示される場合は、npm の公式ガイドを参照してください。
init コマンド
アプリケーション用の新しいバックエンドプロジェクトを作成するには、init コマンドを使用します。
プロジェクトのルートディレクトリに移動し、squid init コマンドを実行します。Squid Console のapplication overview pageから完全なコマンドをコピーできます。
このコマンドにアクセスするには、コンソールで Initialize Backend ボタンをクリックします。コンソールが、アカウントとアプリケーションに対して正しい値が入った適切なコマンドを自動生成します。
コマンドは次のようになります。
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 environment に接続されたローカル版のバックエンドを起動します。
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 environment variable を設定することで行います。利用可能なログタイプは ALL, QUERY, MUTATION, AI, API, ERROR で、今後さらに追加される予定です。任意の順序で組み合わせ、カンマ区切りで指定できます。
SQUID_LOG_TYPES=QUERY,MUTATION,AI,API,ERROR
deploy コマンド
バックエンドのデプロイは dev または prod environments のいずれかで行えます。dev へのデプロイにより、
バックエンドが本番稼働した際にどのように動作するかをテストできます。バックエンドには引き続き変更を加えられますが、それらの変更を有効化するには再デプロイが必要です。
プロジェクトを本番環境へ反映する準備ができたら、squid deploy コマンドを使用できます。
deploy コマンドを実行する前に、クライアントコードの設定で environmentId 属性が prod に設定されていることを確認してください。
また、本番利用では squidDeveloperId オプションを削除してください。
dev environment 配下でプロジェクト用の connectors を作成している場合、デプロイ前にそれらを prod environment で先に再作成する必要があります。
バックエンドをデプロイするには、まずプロジェクトのルートディレクトリに移動します。
次に、Squid Console の
application overview page からコピーできる deploy コマンドを実行します。正しい deploy コマンドにアクセスするには、
コンソールで Deploy Backend ボタンをクリックします。コンソールが、アカウントとアプリケーションに対して正しい値が入った適切なコマンドを自動生成します。コマンドは次のようになります。
squid deploy --apiKey YOUR_API_KEY --environmentId TARGET_ENVIRONMENT_ID
デプロイが成功すると、Squid Console にはバックエンド関数の更新された一覧が反映されます。この機能へは、Console の backend セクションでアクセスできます。
コマンドラインでパラメータが指定されていない場合、deploy コマンドは .env ファイルからそれらを読み取ります。