関数コンテキスト
ID、プラットフォームの座標、およびランタイムがすべての JavaScript 関数ハンドラーに渡す要求データ。
すべてのハンドラーは、2 番目の引数としてコンテキスト オブジェクトを受け取ります。このファイルには、誰が関数を呼び出したか、関数自身のプラットフォーム ID、およびアウトバウンド プラットフォーム呼び出しを送信する場所が記載されるため、いずれも入力として渡す必要はありません。
handler: async (input, ctx) => {
ctx.user?.accessToken // the caller's OAuth token
ctx.user?.sub // the caller's user id
ctx.robot?.accessToken // the function's own platform token
ctx.robot?.key // the serverless robot key
ctx.platform?.baseUrl // e.g. "https://cloud.uipath.com"
ctx.platform?.orgId // organization id
ctx.platform?.tenantId // tenant id
ctx.platform?.folderKey // folder of the invocation, if any
ctx.params // path parameters, as strings
ctx.headers // request headers, lowercase keys
}
handler: async (input, ctx) => {
ctx.user?.accessToken // the caller's OAuth token
ctx.user?.sub // the caller's user id
ctx.robot?.accessToken // the function's own platform token
ctx.robot?.key // the serverless robot key
ctx.platform?.baseUrl // e.g. "https://cloud.uipath.com"
ctx.platform?.orgId // organization id
ctx.platform?.tenantId // tenant id
ctx.platform?.folderKey // folder of the invocation, if any
ctx.params // path parameters, as strings
ctx.headers // request headers, lowercase keys
}
2 つの ID
関数には呼び出しごとに 2 つの ID が渡され、どちらを選択するかはセキュリティ上の決定です。
ctx.user | ctx.robot | |
|---|---|---|
| 誰のものですか | 関数を呼び出した呼び出し元 | 関数独自のプラットフォーム ID |
| 適用される権限 | 呼び出し元自身の | 関数のサービス アカウント |
| これは以下に使用します | サインインしているユーザーの代理として動作する | 呼び出し元が直接アクセスしてはならないリソースの読み取り |
ctx.user.accessToken は、呼び出し元が自分の権限で許可されている範囲のみを表示する必要がある場合に適用されます。ctx.robot.accessToken は、関数が呼び出し元が到達できないもの (制限されたフォルダー内の資格情報など) に到達する必要がある場合に適用されます。詳しくは、「 プラットフォーム サービスにアクセスする」をご覧ください。
ctx.robot は、より特権的な ID です。要求に到着したリソース名を読み取るハンドラーは、関数独自の特権を持つ呼び出し元の要求の代理として機能します。フェッチは、コード内の固定されたセットに制限する必要があります。
プラットフォームの座標
ctx.platform は、プラットフォームのアウトバウンド呼び出しに baseUrl、 orgId 、 tenantId を提供します。これらは実行時から取得され、呼び出し元からは送信されないため、関数がトラフィックを送信する場所に要求をリダイレクトすることはできず、入力フィールドとして受け入れてはなりません。
これはオール・オア・ナッシングです。この 3 つすべてが利用できない限り、ctx.platformnullされます。フォルダーレス呼び出しの場合、folderKey単独でnullできます。
どこで利用できるのか
| HTTP トリガー | Job | ローカル serve | |
|---|---|---|---|
ctx.user | 発信者の ID | 発信者 ID なし | 要求がベアラー トークンを持っている場合に存在します |
ctx.robot | はい | はい | null |
ctx.platform | はい | はい | UIPATH_BASE_URL、UIPATH_ORG_ID、UIPATH_TENANT_IDが設定されている場合のみ |
ctx.params, ctx.headers | はい | 空 — HTTP 要求がありません | はい |
ctx.robot はローカルでnullされるため、プラットフォーム トークンを必要とするコードは、ローカル開発用の環境変数にフォールバックする必要があります。
const token = ctx.robot?.accessToken || process.env["UIPATH_ACCESS_TOKEN"] || "";
const token = ctx.robot?.accessToken || process.env["UIPATH_ACCESS_TOKEN"] || "";
次のステップ
- プラットフォーム サービスへのアクセス
- テストおよびデバッグする
- コンテキスト参照 — 完全な型とすべてのフィールドです。