IBM App ConnectとAWS DynamoDB low-level API連携
投稿者:平間 博
こんにちは。
私たちIntegrationチームはシステム/アプリケーションを統合するソリューションエンジニアであり、API、メッセージ・データ、ファイルを使った様々なデータソースやアプリケーションの統合において、製品の選定から設計・構築、そして導入後のサポートを行っております。
このBlogでは、私自身がワークショップを通して体験したIBM App Connect EnterpriseとDynamoDBを連携するフロー開発において、有料コネクタ(DynamoDBコネクタは有料)を使わずに、直接AWS DynamoDB low-level APIを呼び出してフローを開発する方法をご紹介します。
– IBM App Connect Enterpriseのコネクタとは?
IBM App Connect Enterpriseはアプリケーション、サービス、そして各種データソース(リレーションナルデータベース、ファイル、NoSQL)の連携する処理を「フロー」と呼び、IBM App Connect Enterpriseユーザーは「フロー」と呼ばれる統合アセットの開発者となります。
開発者が、IBM App Connect Enterprise上でフローを開発/実装する上で、連携対象を容易に接続・操作する仕組みを「コネクタ」と呼びます。
App Connect Enterpriseには有料/無料を含む無数のコネクタ※1があり、その内訳は特定製品/サービスにフォーカスしたコネクタが占めていますが、汎用プロトコル(HTTP/JDBCなど)もサポートしています。
IBM App Connect Enterpriseのコネクタには、フローの開発者が連携対象を操作する上で必要な固有技術/プロトコルを(極論として)理解していなくとも扱えることが特徴としてあげられます。これには良い点と悪い点が明確に存在します。
〇 良い点
”実装要件にコネクタが提供する機能が一致する場合”
フローの開発コストが減少し、開発期間も短縮ができる
〇 悪い点
”実装要件にコネクタが提供する機能が不一致”
フローの開発コストが増大し、開発期間も拡大するか、そもそもフローを開発できない
– AWS DynamoDB low-level APIとの連携!
製品/サービス用コネクタを採用できない場合でも、必ずしもフロー開発をあきらめる必要はありません。IBM App Connect Enterpriseは汎用プロトコルを扱うコネクタを無料で提供しています。
それでは、今回のテーマ「AWS DynamoDB low-level APIを使ったフロー」で実装するフローの構成をみていきます。
AWSが管理しているAPIへのアクセスは、年々アクセス要件が厳しくなっており、「API リクエストに対する AWS Signature Version 4※2」へ準拠する必要があります。
今回は、署名データの生成にLambda※3を使っておりますが、この部分はEC2/Fargateでも構いません。
– AWS DynamoDB low-level APIを使ったフローの実装!
前項で説明した構成に基づきフローを実装していきます。
なお、今回のフロー開発はIBM App Connect Enterprise as a Serviceが標準提供するWeb版開発Toolsである「App Connect Designer」を使っていきます。
(1)コネクタの準備
IBM API ConnectのWeb Desingerへログインして、コネクタ「AWS Lambda」とコネクタ「HTTP」を準備します。
(2)フローの開発
続いて、IBM API ConnectからのAPI Callを中継するフローを定義します。開発するフローはIBM App Connectが標準提供するOpenAPI v3のフレームワークに沿って開発していきます。
(3)IBM API Connectへの連携
最後に作成したフローをIBM API Connectへ公開します。
IBM App Connect Enterprise as a ServiceとIBM API Connect as a Sreviceは同じリージョンで構成した場合、IBM App ConnectからIBM API Connectへフロー(API)をプッシュすることができます。
ここまでが実装方法のご紹介となります。最後に作成したフローをIntegrationノード(統合アセットを実行するランタイム)へデプロイすることで、自動的にIBM API Connectに公開APIの登録まで済みます。
※1 IBM App Connect Entrepriseのコネクタリスト(https://explorer.automation.ibm.com/)
※2 AWS Signature 4(https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_sigv.html)
※3 App ConnectよりAWS low-level APIを呼び出す処理がテーマであるため、AWS Lambda関数の内容紹介は省略