2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【UiPath】ストレージバケットとAWS S3を連携する

Posted at

はじめに

UiPath Orchestratorの「ストレージバケット」機能は、AWS S3と連携するができるのですが、設定方法だったり、細かい仕様が分からなかったので、調べてみました。

ストレージバケットとは

ストレージバケットとは、Orchestratorのファイルストレージ機能で、様々なファイルをアップロード、ダウンロードすることができます。
Orchestratorの画面上からでも、Robotからでもファイルを操作することができ、ワークフローが参照するパラメータファイルの置き場に使用したり、アウトプットファイルの置き場としても使用可能です。
また、Action Centerフォームと連携もでき、フォームからファイルをアップロードした際の保存場所や、フォームに画像やPDFファイルなどを埋め込む際のデータの保存先としても使用できます。

プロバイダー

ストレージバケットは、Orchestratorサーバのストレージを使用できる他、AzureやAWSなどのパブリッククラウドの外部ストレージとも連携することができます。Orchestratorのオンプレとクラウドで使用できるプロバイダーは異なります(下の画像はオンプレ版です)。
オンプレの場合は、UiPath.Orchestrator.dll.configを修正し、使用可能なプロバイダーを有効化します。
ストレージバケット.png

S3を使うメリット

プロバイダーは、Orchestratorを使用する方が設定が簡単なのですが、S3など外部のマネージドサービスを使う方が優れているポイントもあります。

  • ストレージの空容量を気にしなくていい
  • バックアップが簡単
  • 世代管理や自動削除などのルールを設定できる

つかうもの

今回は以下の使用して検証を行っています。クラウドは2022年2月時点のもの。

  • UiPath Studio v2021.10.4(UiPath.System.Activities 21.10.3)
  • UiPath Orchestrator Cloud
  • AWS S3

ストレージバケットを設定する

手順1. AWSの設定

S3バケットの作成

S3のバケットを作成します。特に気にする必要もなく、普通に作ればいいです。
S3バケット.png

IAMユーザの作成

OrchestratorがS3へアクセスするための認証用アカウントを作成します。
今回のIAMユーザは、AWSマネージメントコンソールは使用する必要はなく、アクセスキーだけが必要なので、「アクセスキー・プログラムによるアクセス」にチェックを入れます。
IAMユーザ追加1.png

権限は、S3のフルアクセスを付与します。
IAMユーザ追加2.png

ユーザが作成されるとアクセスキーIDとシークレットアクセスキーが発行されます。シークレットは外部に流出しないよう扱いには注意します。万が一、流出したら即時無効化してください。
IAMユーザ追加3.png

アクセス元のOrchestratorに絞る(IPアドレスで制限を付ける)とか、特定のS3バケットしかアクセスできないなどの制約を追加したい場合は、別途IAMユーザにポリシーを追加します。

手順2. ストレージバケットの設定

Orchestratorのバケット追加画面にて、「Amazon S3」を選択し、必要な情報を入力します。
ストレージバケット設定1.png

入力情報が間違っていたり、IAMユーザの権限が間違っていたりしてS3へ正常にアクセスできなかった場合は、ストレージバケット追加後、以下のようなエラーとなります。
ストレージバケット設定2.png

ストレージバケットを使用する

パターン1. Robotからファイルを操作する

アクティビティツリー「Orchestrator」>「ストレージ」にあるアクティビティを使用します。
ロボットからアップロード1.png
ファイルをアップロードするときは、「ストレージ ファイルをアップロード(Upload Storage File)」アクティビティを使います。
ロボットからアップロード2.png
「A\Book1.xlsx」のようにパスを指定してファイルがアップロードすると、S3ではフォルダ「A」の中にファイル「Book1.xlsx」が保存されます。
ロボットからアップロード3.png
ロボットからアップロード4.png

パターン2. Orchestratorからファイルを操作する

Orchestratorの画面からもファイルのアップロード、ダウンロードができます。
ファイルをアップロードする場合は、「\B\Book1.xlsx」のようにプルパスを指定すると、S3にもフォルダ「B」が作成され、その中にファイル「Book1.xlsx」が保存されます。
OCからアップロード1.png
OCからアップロード2.png

ファイルアップロードまたは削除が失敗する場合

Orchestratorからファイルをアップロードしたり、削除したりする際、エラーになることがあります。
OCからアップロード3.png
エラーが出た際は、S3のCORS設定を直すと解決します。オンプレOCを使っている場合は「AllowedOrigins」を使用しているOCのURLにします。
OCからアップロード4.png

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "DELETE"
        ],
        "AllowedOrigins": [
            "https://cloud.uipath.com"
        ],
        "ExposeHeaders": []
    }
]

パターン3. S3からファイルを操作する

S3からフォルダとファイルを作成してみます。
フォルダ「C」にファイル「Book1.xlsx」を入れると、Orchestratorには、フォルダ「C」とファイル「C\Book1.xlsx」が追加されました。
S3からアップロード1.png
S3からアップロード2.png
ロボット、Orchestratorからアップロードする方法と違い、フォルダだけのレコードがストレージバケットに作られてしまうみたいです(実質、ゴミのようなレコードが残ってしまいます)。Orchestratorからフォルダをダウンロードをしようとすると、当然エラーになります。削除もOrchestratorからはできませんでした。
S3からアップロード3.png

さいごに

特定のS3バケットだけ使用できるようにしたりするには、IAMポリシーのカスタマイズなど更に勉強しないといけないことはありますが、デフォルトで使用するだけなら簡単に設定できました。
S3と連携することで、ログのS3保管などの機能が簡単に実現できそうだと思いました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?