Functions
ファンクション内で例外を適切にキャッチしていない場合、またはファンクションコードの最後でコンテキストを閉じていない場合にタイムアウトの問題が発生します。この問題は、必要なすべてのモジュールファイルをインストールしていない場合にも発生する可能性があります。この問題を解決するには、以下を試してください:
コードが例外を適切にキャッチして処理していることを確認する
ファンクションの最後にcontext.close()が追加されているか確認する
スタックに基づいて必要なすべてのモジュールファイルがインストールされていることを確認する
Basic I/OおよびAdvanced I/Oファンクションの実行時間制限は30秒です。EventおよびCronファンクションの実行時間制限は15分です。
ローカルマシンのfunctions/{function_name}フォルダパスに移動し、Node.jsファンクションの場合はNodeモジュールをインストールし、Javaファンクションの場合はlibフォルダ内にJAR依存関係をインストールします。Pythonファンクションの場合は、必要なPythonパッケージをインストールできます。
Basic I/Oファンクションの場合、リクエストデータはGETメソッドを使用してクエリパラメーターで送信する必要があります。ファンクションにネイティブHTTPリクエストを行う必要がある場合は、CatalystのAdvanced I/Oファンクションを使用できます。Advanced I/OファンクションはネイティブのHTTPリクエストとレスポンスを処理でき、要件に応じてリクエストペイロードを送信できます。
このエラーは、Javaファンクションの.classファイルが見つからない場合にのみ発生します。Catalystコンソール経由でコードをアップロードした場合は、問題を解決するために.classファイルと一緒にアップロードしたことを確認する必要があります。ただし、CLI経由でファンクションを初期化した場合は、catalyst deployコマンドを使用できます。このコマンドはコードを自動的にコンパイルし、不足している依存ファイルを作成し、コードをCatalyst環境にアップロードします。
Catalystファンクションのリクエストボディでデータを取得するには、渡す入力タイプに適切なボディパーサーを使用する必要があります。
Basic I/OファンクションはネイティブHTTPリクエストとレスポンスヘッダーをサポートしていません。そのため、Basic I/Oファンクションではレスポンスヘッダーとレスポンスタイプを設定できません。代わりに、ネイティブHTTPリクエストとレスポンスヘッダーをサポートするAdvanced I/Oファンクションを使用できます。
この問題を解決するには、ファンクション内のコードをエクスポートして公開する必要があります。Node.jsファンクション内にmodule.exports={module_variable_name}が追加されていることを確認してください。
Event Functionsは、Event Listenerに構成したイベントが発生した場合にのみ呼び出すことができます。必要なイベントがまだ発生していない場合は、イベントリスナーをトリガーしてイベントファンクションを自動的に呼び出す適切な操作を実行できます。また、CLIからサンプルペイロードを渡してイベントファンクションをテストし、実行を検証することもできます。
「CONCURRENCY_LIMIT_REACHED FOR THE FEATURE FUNCTIONS」例外は、定義された制限を超えてファンクションを同時に呼び出した場合に発生します。429エラーコードが発生しない最大呼び出し制限は、本番環境では10msで実行されるファンクションに対して1500同時実行、開発環境では10msで実行されるファンクションに対して1000同時実行です。
HTTP Error: 409が発生した場合、同じ名前のファンクションがすでにCatalystコンソールに存在していることを意味します。
catalyst-config.json ファイルで名前を変更するか、CLIを使用して またはコンソールから直接 リモートコンソールの既存のファンクションを削除できます。
Catalystリモートコンソールでファンクションを作成した場合、エディタでアクセスする前にローカルマシンにダウンロードする必要があります。ローカルマシンでファンクションを作成した場合は、ステップ3に進んでください。
EclipseエディタでCatalyst Javaファンクションにアクセスするには:
以下のCatalyst CLIコマンドを実行して、リモートコンソールからファンクションのコードをダウンロードします:
$ catalyst pull
詳細な説明については、Pull Resourcesヘルプページ を参照してください。
これにより、プロジェクトホームにファンクションを含むfunctionsディレクトリが自動的に作成されます。
Eclipseエディタを開きます。File に移動し、Open Projects From File System を選択します。
ポップアップでInput Source の横にあるDirectory をクリックします。
CLIを使用して作成されたfunctionsフォルダを選択し、OK をクリックします。
Add project からworking sets のチェックが外れていることを確認します。
Eclipseはそのフォルダ内のJavaファンクションを自動検出します。リストから必要なファンクションを選択します。
Finish をクリックします。
これで、CatalystファンクションがEclipseでアクセスできるようになりました。
前の回答で説明したように、EclipseでJavaファンクションを開きます。
パッケージエクスプローラーからプロジェクトを右クリックし、Build Path をクリックしてから**Configure Build Path…**をクリックします。
Libraries タブをクリックし、Add External JARs を選択します。
ポップアップウィンドウで含めるJARを選択し、Open をクリックします。
選択したJARがJARs and class folders on the build path に含まれます。Apply and Close をクリックします。
JARを含めたファンクションをコーディングし、CLIから以下のコマンドを実行してコードをテストします:
catalyst serve
このコマンドの詳細については、Serve Resourcesヘルプページ を参照してください。
その後、追加のJARファイルを気にすることなく、CLIからファンクションを直接デプロイできます。以下のCLIコマンドを実行して、外部JARと一緒にJavaファンクションをリモートコンソールにデプロイします:
catalyst deploy –only functions
このコマンドの詳細については、Deploy Resourcesヘルプページ を参照してください。
ファンクションがデプロイされた後、Catalystコンソール からJARがファンクショングループに追加されたかどうかを確認できます。
Circuits
Circuit URLをリクエストURLとして使用し、リクエストの認可のためのアクセストークンとともにリクエストボディにJSON形式で入力を渡すPOSTリクエストでAPIを通じてCircuitを呼び出すまたは実行できます。また、必要なプラットフォームのExecute Circuit SDKメソッドを使用して、ビジネスロジック内でCircuitを呼び出すこともできます。Catalystコンソールでは、入力JSONを渡して出力を検証することでCircuitをテストすることもできます。