- 概要
- Python の関数
- デプロイして実行する
bindings.json で Orchestrator または Integration Service のリソースを宣言し、ローカル実行中に解決されることを確認し、テナント間で再マッピング可能にします。
bindings.json は手動で管理されます。必要な構造 uipath init ファイルが存在しない場合は、そのファイルが作成され、既存のファイルはそのまま残されます。関数がアクセスするすべてのプラットフォーム リソースに対してバインドを宣言し、パッケージを別のテナントで実行したときにリソースを再マッピングできるようにします。この背後にある解決メカニズムについては、「 リソースのバインド」をご覧ください。
前提条件
uipath newで作成された Python 関数プロジェクト。uipath authで確立される認証済みセッション。- 開発の基準となるテナントにリソースがすでに存在している。
- 手順 1 のコネクション検索のために UiPath CLI (
uip) がインストールされている。
接続バインドを宣言する
-
Integration Service からコネクション ID を取得します。
uip is connections list uipath-microsoft-outlook365uip is connections list uipath-microsoft-outlook365 -
プロジェクトのルートで
bindings.jsonを開きます。 -
keyとConnectionId.defaultValueの両方のコネクション ID を使用して、resources配列にエントリを追加します。{ "resource": "connection", "key": "<connection-id>", "value": { "ConnectionId": { "defaultValue": "<connection-id>", "isExpression": false, "displayName": "Microsoft Outlook 365 Connection" }, "Connector": { "defaultValue": "uipath-microsoft-outlook365", "isExpression": false, "displayName": "Connector" } }, "metadata": { "Connector": "uipath-microsoft-outlook365", "UseConnectionService": "True", "BindingsVersion": "2.2" } }{ "resource": "connection", "key": "<connection-id>", "value": { "ConnectionId": { "defaultValue": "<connection-id>", "isExpression": false, "displayName": "Microsoft Outlook 365 Connection" }, "Connector": { "defaultValue": "uipath-microsoft-outlook365", "isExpression": false, "displayName": "Connector" } }, "metadata": { "Connector": "uipath-microsoft-outlook365", "UseConnectionService": "True", "BindingsVersion": "2.2" } } -
関数でモジュールレベルの定数と同じ ID を宣言し、それを SDK 呼び出しに渡します。
OUTLOOK_CONNECTION_KEY = "<connection-id>" conn = sdk.connections.retrieve(OUTLOOK_CONNECTION_KEY)OUTLOOK_CONNECTION_KEY = "<connection-id>" conn = sdk.connections.retrieve(OUTLOOK_CONNECTION_KEY) -
関数をローカルで実行します。
uipath run main -f input.jsonuipath run main -f input.json
結果の
実行ログには、宣言されたバインディングごとに 1 行が含まれます。
No resource overwrite matched for connection key='connection.<connection-id>' on retrieve
No resource overwrite matched for connection key='connection.<connection-id>' on retrieve
この行は、上書きルックアップが実行され、設計時 ID にフォールバックしたことを確認します。これは、テナント マッピングが存在しないため、ローカルでは期待される結果です。行に bindings.jsonの ID とは異なる ID が付けられている場合、コード定数とバインディングが一致しません。
他のリソースの種類のバインドを宣言した場合、同じパターンに従い、異なる value 形状になります。アセット、バケット、キュー、プロセス、アプリ、およびインデックスは、 ではなく name と folderPath を使用します ConnectionIdこれらの key は、この 2 つをドットで結合します。
バインドをテナント間で再マッピング可能にする
-
関数プロジェクトをソリューションに登録します。
uip solution project add ./my-solution/my-functionuip solution project add ./my-solution/my-function -
プロジェクトの宣言されたバインドからソリューションのリソース リストを同期します。
uip solution resource refreshuip solution resource refresh -
結果のリソース リストを確認します。
uip solution resource list --source localuip solution resource list --source local
結果の
宣言されたすべてのバインドがソリューションのローカル リソース リストに表示されます。デプロイでは、各エントリが対象のテナント内のリソースにマッピングされるため、同じパッケージがそのテナントの独自の接続に対して実行されます。ソリューションのパッケージ化とパブリッシュについては、「 uip solution pack」をご覧ください。
ターゲット テナントでマッピングされていないバインドは、ジョブを失敗しません。この呼び出しは設計時の識別子にフォールバックするため、ソリューションを昇格する前に、すべてのバインドが対象のテナントのリソース マッピングに表示されていることを確認します。
次のステップ
- Integration Service アクティビティを呼び出し — 宣言されたコネクションを使用してコネクタ操作に到達します。
- パッケージ化してパブリッシュする — 関数を Orchestrator にデプロイします。