UiPath Documentation
functions
latest
false
Functions ユーザー ガイド
  • 概要
    • Functions について
  • JavaScript 関数
  • Python の関数
  • デプロイして実行する
重要 :
このコンテンツは機械翻訳によって処理されています。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。

HTTP トリガーとルーティング

JavaScript 関数の HTTP トリガーの動作。入力ソース、パス パラメーター、認証スコープ、ペイロード制限、デプロイ済みトリガーの呼び出しなどがあります。

methodとpathを宣言する JavaScript 関数は、HTTP エンドポイントとして公開されます。これが、 関数をコード化されたアプリのバックエンドとして使用できる理由です。アプリは エンドポイントを呼び出し、関数はブラウザーに到達してはならない資格情報とビジネス ルールを保持します。

export default defineFunction({
  name: "get-order",
  method: "GET",
  path: "/orders/:id",
  input: defineSchema<{ id: string }>(),
  handler: async (input, ctx) => fetchOrder(input.id),
});
export default defineFunction({
  name: "get-order",
  method: "GET",
  path: "/orders/:id",
  input: defineSchema<{ id: string }>(),
  handler: async (input, ctx) => fetchOrder(input.id),
});

サポートされているメソッドは次のとおりです。

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE

入力の取得元です​

メソッド入力として読み取られたデータの要求
GETクエリ文字列
POST、PUT、PATCH、DELETEJSON 要求本文です。

パス パラメーターも結合されるため、 /orders/:id は残りの入力とともに id を指定します。すべてのパス パラメーターは、入力の型で宣言する必要があります。派生スキーマは閉じられているため、宣言されていないスキーマは不明なプロパティとして拒否されます。

パス パラメーターは本文の下で結合されるため、同じ名前の本文フィールドが優先されます。一意の名前を使用すると、サイレント上書きは回避されます。

パス パラメーター​

パターン一致する文字列を取得
:paramセグメントは 1 つだけです — /users/:id は /users/42 に一致します。
:param{regex}1 つのセグメント、制約付き — /users/:id{[0-9]+}
:param?セグメント、または何もないか — /listと /list/open に一致する/list/:filter?
*末尾のキャッチオール (裸のプレフィックスを含む)

値は、名前でキー設定される ctx.paramsの文字列としても使用できます。宣言順序に関係なく、より具体的なルートが優先されるため、リテラル /users/me が /users/:idよりも優先されます。ルーティングは、ローカル serve 内でもデプロイ時も同じように動作します。

デプロイ済みトリガーの呼び出し​

関数がパブリッシュおよびデプロイされると、その path は Orchestrator HTTP トリガーのスラッグになり、トリガーはルート照合によって受信要求を解決します。呼び出し元はベアラー トークンを送信します。プラットフォームは、呼び出し元の ID を として関数に渡 ctx.user。

デプロイされたトリガーは、パッケージのプレフィックス名で登録されます。パッケージ orders-functions 内の get-order という関数は orders-functions_get-orderとして登録されます。関数を名前で解決するには、そのプレフィックス形式が必要です。

URL を手動で構築するのではなく、コード化されたアプリから UiPath TypeScript SDK の Functions サービスを使用します。

注:

SDK の Functions.invoke()を介して関数が呼び出された場合、パス パラメーターは URL に置換されません — 宣言されたスラグは書き込まれたまま送信され、値はクエリ パラメーターとして、または本文で移動します。ハンドラーは引き続き正しい入力を受け取りますが、 ctx.params リテラル パターンを保持し、正規表現で制約されたパラメーターは一致しません。解決されたパスを作成するには、呼び出し元に URL を構築する必要があります。

認証​

呼び出し元は、外部アプリケーションからのベアラー トークンで認証します。そのトークンに必要なスコープは、呼び出し元が実行する場所によって異なります。

デプロイ済みのコード化されたアプリが、外部アプリケーションに登録されているスコープを要求すると、デプロイ時にスコープがアプリに挿入されます。関数の呼び出し元に必要な Orchestrator スコープにアプリを登録します。例:

uip admin external-apps create "My App" \
  --non-confidential \
  --redirect-uri "https://<org>.uipath.host/my-app" \
  --user-scope "OR.Execution,OR.Folders"
uip admin external-apps create "My App" \
  --non-confidential \
  --redirect-uri "https://<org>.uipath.host/my-app" \
  --user-scope "OR.Execution,OR.Folders"

アプリがジョブを開始したり、結果を読み取ったりする場合にも、OR.Jobsが必要です。

同じアプリを ローカルで実行すると、代わりにそのスコープ文字列が uipath.json から取得されます。このスコープでは、 OR.Default (Orchestrator に呼び出し元のフォルダーとテナント ロールの割り当てを適用させるスコープ) を要求することもできます。

openid profile email offline_access OR.Default OR.Execution OR.Folders
openid profile email offline_access OR.Default OR.Execution OR.Folders
注:

OR.Default 外部アプリケーションの登録に追加することはできません。API はそれを不明なスコープとして拒否します。したがって、 uipath.jsonを介してローカルに実行されるアプリでは使用できますが、デプロイ済みのコード化されたアプリでは利用できません。

ペイロードの制限​

HTTP トリガーは要求をジョブ引数として渡すため、要求と応答の両方に制限があります。

方向上限量制限を超える
要求10,000 文字のシリアル化された入力500、 errorCode 4801 、メッセージ JobArguments length should be less than 10000 characters
レスポンス約 512 KB200 本文が空で、エラーがない

空の応答は設計対象の応答です。ステータスは成功と表示され、損失は何も報告されていません。ペイロードがいずれかの制限を超える可能性がある場合は、代わりに関数をジョブとして呼び出します。ジョブは大きな入力と出力を添付ファイルとして運びます。「 関数を呼び出す」をご覧ください。

ヒント:

データ自体 (ストレージ バケットのパス、または呼び出し元が個別に取得する識別子) ではなく参照を返すことで、制限によって設計が制約されるのを防ぎます。

次のステップ​

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得