エグゼキュタブル
クライアントにサーバー上で実行される関数へのアクセスを提供します。
エグゼキュタブルは、シークレット、データベース、コネクタなどのバックエンドリソースへのアクセスが必要な関数に有用です。
バックエンド関数をクライアントから利用可能にするには、SquidService
クラスを拡張したクラス内の関数に @executable
デコレーターを付与してください。
注意
Squid のエグゼキュタブルを使用する場合、これらのバックエンド関数はクライアントから直接アクセス可能であり、バックエンドリソースやシークレットへの無制限の権限を持っています。つまり、認可されたユーザーだけがこれらの関数を実行できるよう、十分な注意が必要です。
以下はエグゼキュタブルの例です:
Backend code
import { executable, SquidService } from '@squidcloud/backend';
export class ExampleService extends SquidService {
@executable()
concat(str1: string, str2: string): string {
return `${str1}${str2}`;
}
}
Squid がエグゼキュタブルおよび同一サービス内のその他の関数を検出できるようにするため、サービスが service/index.ts
ファイルでエクスポートされていることを確認してください:
export * from './example-service';
この関数は Squid Client SDK を使用してクライアントから実行できます。最初のパラメーターはエグゼキュタブル関数の名前で、その後に関数のシグネチャに一致するパラメーターを指定します:
Client code
const result = await squid.executeFunction('concat', 'string1', 'string2');
console.log(result); // Prints 'string1string2'