ファンクションの呼び出し
本ガイドでは、実行パラメータを設定し、実行リクエストを送信することで、デプロイ済みのファンクションを呼び出す方法について説明します。
ファンクションの呼び出しは、入力値の指定および実行リソースの選択に焦点を当てており、ジョブ管理や実行結果の分析は対象外です。
1. ファンクションの呼び出し概要
ファンクションの呼び出しとは、指定した入力を用いて、特定のファンクションバージョンを選択したプロバイダーおよびデバイス上で実行することを意味します。
1 回のファンクションの呼び出しでは、以下が行われます。
- ファンクションは 1 回のみ実行されます。
- 1 つのファンクションバージョンが使用されます。
- 内部的に 1 つの実行ジョブが作成されます。
注意: ジョブのライフサイクル管理および実行結果の確認については、ジョブ管理ガイドを参照してください。
2. ファンクションの呼び出しの前提条件
ファンクションは、以下の条件をすべて満たしている場合にのみ呼び出し可能です。
- ファンクションのステータスが Ready であること
- 少なくとも 1 つのファンクションバージョンが正常にデプロイされていること
- 選択した プロバイダーおよびデバイスが利用可能であること
3. 呼び出すファンクションの選択
ファンクションを 呼び出す手順は以下の通りです。
- プロジェクト内の既存のファンクションを選択します。
- ファンクションの詳細画面を開きます。
- ファンクションの呼び出しセクションへ移動します。
ファンクションの呼び出しセクションでは、すべての実行パラメータを設定します。
4. ファンクションの呼び出し設定
ファンクションの呼び出し設定では、ファンクションをどこで・どのように実行するか、および どの入力を渡すかを定義します。
4.1 プロバイダー
ファンクションを実行する 計算プロバイダーを選択します。
利用可能なプロバイダーは、ファンクション作成時に使用した SDK またはランタイムテンプレートによって異なります。
例:
- Qiskit → IBM Quantum, Quapp
- Braket → Amazon Braket, Quapp
※ 互換性のあるプロバイダーのみが表示されます。
4.2 デバイス
プロバイダーを選択後、実行デバイスを選択します。
デバイスには以下が含まれます。
- Quantum hardware
- Simulators
シミュレーターデバイスには、通常名称に 「simulator」 が含まれます。
4.3 ショット
ショットは、量子回路を実行する回数を指定します。
- デフォルト値: 10
- 整数値のみ指定可能
ショット数を増やすことで統計的な精度は向上しますが、実行コストが増加する可能性があります。
4.4 インプット
インプットは、ファンクションの実行エントリーポイントに直接渡される入力データです。
processing(invocation_input)
以下の 2 種類の入力モードがサポートされています。
Form Data
- 入力は キー・バリュー形式で指定します。
- 構造化されたパラメータ、またはシンプルな入力に適しています。
Raw Input
入力は Raw 値として指定します。
対応フォーマット:
- JSON
- String
- Integer
入力形式は、ファンクションコード内でinvocation_input がどのように処理されているかと一致している必要があります。
5. ファンクションの呼び出し実行
設定が完了した後、以下を実行します。
- リクエストを送信
システムは以下の処理を行います。
- 設定内容の検証
- 実行リクエストの送信
- 選択されたリソースを使用した実行の開始
- 実行結果は
post_processing()によって処理され、バックエンド固有の出力内容が、ユーザーに返却される最終的な呼び出し結果へと変換されます。
各 ファンクションの呼び出しリクエストは 独立して処理されます。
6. ファンクションの呼び出しに関する注意事項・ベストプラクティス
- Ready 状態のファンクションのみ 呼び出し可能
- 各ファンクションの呼び出しでは 1 つのファンクションバージョンのみが実行されるプロバイダーおよびデバイスの 利用可否を事前に確認すること
- 入力データの構造が ファンクションロジックと一致しているかを必ず確認すること
- 開発・テスト時は 最小限の Shots 数を使用することを推奨
7. 次のステップ
呼び出し実行後、開発者は通常以下の作業を行います。
- 実行ステータスの監視
- 実行結果の確認
- 結果の分析、または再実行
これらの内容については、以下のドキュメントを参照してください。
- Platform Capabilities: Job Management
- Developer Guide: Invoke Function (SDK / API)