LoginSignup
0
0

Oracle Integration CloudでREST Adapterを使ってObject Storageからファイル取得する

Last updated at Posted at 2023-11-13

はじめに

この記事ではOracle Integration Cloud(OIC)からObject Storageにおいてあるファイルをデータとして取り込み連携する方法について説明します。OICはObject Storageに対応するAdapterとしてREST Adapterが利用可能で連携することでSaaSやIaaSなど様々なサービスと連携することができます。

前提

事前準備

Object Storageへファイルを配置

適当なcsvファイルをObject Storageへ配置します。

cities.csv
"PREF_CODE","CITY_CODE","CITY_NAME","BIG_CITY_FLAG"
1,"01101","札幌市中央区","1"
1,"01102","札幌市北区","1"
1,"01103","札幌市東区","1"
1,"01105","札幌市豊平区","1"
1,"01106","札幌市南区","1"
1,"01109","札幌市手稲区","1"
1,"01110","札幌市清田区","1"

image.png

必要な情報の収集

次にOICで作成するアプリケーションに必要な情報を収集します。

Object Storage関連の情報

Object Storageの以下の情報を取得します。

  • connection url
  • namespace name
  • bucket name
  • object name

Object Storageのメニューから"View Object Details"をクリックします。

image.png

表示されたURLの以下の{}部分をそれぞれコピーしてメモしておきます。

https://xxx/n/{namespaceName}/b/{bucketName}/o/{objectName}

connection urlは https://xxx の部分です。

image.png

Tenancy OCID

以下の手順でTenancy OCIDをメモしておきます。

image.png

User OCID

以下の手順でUser OCIDをメモしておきます。

image.png

Private KeyとFinger Print

User OCIDをコピーした画面を下にスクロールすると左下にAPI Keysというリンクがあるのでクリック、"Add API Key"をクリック、"Generate API Key Pair"を選択した状態で"Download Private Key"を押してPrivate Keyをダウンロードし、最後に"Add"をクリックします。

image.png

フィンガープリントが表示されるのでこちらもコピーしておきます。

image.png

こちらによるとOIC から正常に呼び出すには、Private KeyがRSA (PKCS1) 形式である必要があるとのことなので、変換します。以下のコマンドを実行します。

ssh-keygen -p -f <Private Keyファイル名> -N "" -t rsa -m pem

接続の作成

ここからOICを使って統合アプリケーションを作成していきます。
REST Adapterを使ってObject Storageにアクセスするための接続を定義します。
OICコンソールのメニューから接続をクリックし、"作成"をクリックします。

image.png

任意の名前を入力し、Roleに呼び出しを指定して"作成"をクリックします。

image.png

メモしておいた情報をもとに各項目を入力します。

入力項目
Connection Type REST API Base URL
Connection URL ここで取得したもの
セキュリティ・ポリシー OCI Signature Version 1
Tenancy OCID ここで取得したもの
User OCID ここで取得したもの
Private Key ここで取得したもの
Finger Print ここで取得したもの

image.png

テスト→保存をクリックし、"<"で前の画面に戻ります。

フローの作成

次に統合フローを作成します。
メニューから統合をクリックし、"作成"をクリックします。

image.png

スケジュールを選択します。

image.png

任意の名前を入力し、"作成"をクリックします。

image.png

フローを作成する画面に遷移するので先ほど定義したREST APIの接続を選択します。

image.png

以下のように設定して"続行"をクリックします。

入力項目
エンドポイントにどのような名前をつけますか。 任意の値
エンドポイントの相対リソース名は何ですか。 /n/{namespaceName}/b/{bucketName}/o/{objectName}
このエンドポイントのパラメータを追加して確認 チェック
子のエンドポイントを構成してレスポンスを受信 チェック

image.png

そのまま"続行"をクリックします。

image.png

以下のように設定し、"続行"をクリックします。

image.png

終了をクリックします。

image.png

次に定義したREST APIの接続へリクエストパラメータをマッピングから設定します。
マップのメニューから編集をクリックします。

image.png

最初にnamespace nameを右クリック→ターゲット・ノードの作成をクリックします。

image.png

次に開発者モードのアイコンをクリックします。

image.png

下にTextareaが表示され、編集できるようになるのでここでメモした値を""をつけて入力します。入力したら"✓"で保存して"×"で閉じます。

image.png

同様の手順でbucket name, object nameを設定します。値はここでメモしたものです。
設定できたら"検証"をクリックして、"<"を押して前の画面に戻ります。

image.png

これでREST APIを使ってObject Storageにあるファイルを取得することができましたが、この時点ではマッピングするデータとして取り込まれていないので、OICで扱えるようにファイルを読み込む必要があります。

右のメニューのアクションからステージ・ファイル・アクションをドラッグアンドドロップで先ほど作成したRESTの下に配置します。

image.png

任意の名前を入力し、"続行"をクリックします。

image.png

以下のように設定し、"続行"をクリックします。

image.png

"続行"をクリックします。

image.png

ここで作成したcsvファイルを指定し、レコード名に"cities", レコードセット名に"city"を入力し、"続行"をクリックします。

image.png

"終了"をクリックします。

image.png

最後に取得したデータをログ出力させます。
ロガーのアクションをを先ほど追加したステージ・ファイルの下に配置します。

image.png

なぜか日本語名だとエラーになるのでロガーという名前をlogerなどに変更し、
readfileのレスポンスからcityをドラッグアンドドロップで右にあるロガー・メッセージに設定します。

image.png

最後にこのアプリケーションの実行をトレースできるようにビジネス識別子を設定します。右上にある(I)のあいこんをクリックし、入力ソースにあるstartTimeをビジネス識別子フィールドにドラッグアンドドロップします。

image.png

最後に保存して統合フローの完成です。

実行

最後に実行して動作を確認します。

統合のページでアクティブ化をクリックします。

image.png

デバッグにチェックして"アクティブ化"をクリックします。

image.png

しばらくしたらアクティブになるので、"・・・"から"実行"をクリックします。

image.png

そのまま実行します。

image.png

アクティビティ・ストリームが表示され、フローの実行が確認できます。

image.png

ログを確認します。取得したデータがログ出力されているのが確認できます。

image.png

以上です。

補足

ちなみにOIC3だとObject Storageへの接続用のアクションが対応されており、REST Adapterを使わなくてもObject Storageへ接続できるようです。これもいずれ試してみたいと思います。詳細はこちら

image.png

0
0
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
0
0