はじめに
今回はIBM Cloudで提供するコンテナフル・マネージド・ランタイムソリューションであるCode Engine上にサンプルアプリをデプロイし、watsonx Orchestrateと連携することでアプリの変化を確認する流れについて記載します。
本検証にはIBM Cloudアカウント(IBMid)が前提となっています。
また、検証で利用するソースコードや情報などは事前に用意しています。
なお、今回の検証は2つの記事に分けております。今回の記事は前半パートとなりますので、後半パートは以下の記事をご参照ください。
検証の概要
今回の検証では、上記の通り、事前にGithub上に用意したソースコードをCode Engine上でコンテナ・イメージとしてビルドし、サンプル・アプリをデプロイします。アプリはチャットボット形式の簡単なアプリとなり、watsonx Orchestrateの回答をそのまま反映するUIとして利用する想定です。
ビルドしたコンテナ・イメージはイメージを保管するContainer Registryに格納されます。
その後、watsonx OrechestrateでもAgentの設定を行ってAIチャットボットとして動かしながら、Code Engine上のアプリと連携することで、watsonx Orchestrateの回答結果をCode Engine上のアプリで表示させます。
検証の流れ
APIキーの作成
まずは、環境内での操作のためにAPIキーを作成します。もし既存のAPIキーがある場合、こちらの段階はスキップいただいて構いません。
IBM Cloudにログインし、IBM Cloudのコンソールのダッシュボードが表示されましたら、右上の管理→アクセス(IAM)をクリックします。
ここでIAMは、IBM Cloud上のユーザーやアカウント、アクセス権限などの管理を設定できる仕組み、機能全般のことです。

左側のタブのAPIキーにて作成をクリックします。

APIキーの名前を適宜入力し、作成をクリックします。

APIキーが作成されましたら、コピーしておきます。

Code Engineプロジェクトとシークレットの作成
、左上のナビゲーション・メニューをクリックし、Code Engineカテゴリーに入ります。


プロジェクトを作成するため、プロジェクトボタンをクリックし、作成をクリックします。


プロジェクト作成画面でロケーションを選択し、プロジェクト名を設定します。
今回は東京リージョン(jp-tok)を選択しており、必要に応じてリソース・グループも設定します。その後、右下の作成ボタンをクリックします。

無事作成できたら、リストから作成したプロジェクトが見え、ステータスもアクティブになっています。プロジェクトをクリックしてアクセスします。

次はContainer Registryにアクセスするための権限を付与します。
シークレットおよびConfigmapをクリックします。

新しくシークレットを作成するため、右上の作成ボタンをクリックします。

シークレットを選択する画面が表示されます。繰り返しとなりますが、今回はイメージ保管のためのContainer Registryへのアクセス権限の付与のため、レジストリー・シークレットを選択し、次へをクリックします。

レジストリー・シークレットの作成画面が表示されたら、適宜シークレット名やロケーションなどを適宜入力ください。また、先程コピーしたAPIキーも入力し、作成ボタンをクリックします。
また、画像ではダラスリージョンとなっていますが、全て同じリージョンに合わせてください。例えばCode Engineを東京リージョンで作成した場合、こちらのシークレットも東京リージョンに作成ください。

サンプル・アプリの作成
アプリケーションを作成する流れについてです。作成したプロジェクトにアクセスしますと、左上にアプリケーションボタンがあるのでクリックします。

アプリケーションの作成画面で、アプリケーション名や実行するコードの選択、イメージ参照の入力、その他ポートやユーザーIDの選択、エンドポイントの定義などができます。適宜設定ください。
今回は冒頭に記載した通り、事前にソースコードを作成しているので、それに基づいて新たにコンテナ・イメージをビルドします。なお、コード・リポジトリーURLはこちらを使用しています。https://github.com/Sungyun-Moon/techxchange2025
今回のソースコードはDockerfileに基づいているため、ビルド詳細の指定画面でも適切に選択ください。そのほかタイムアウトやビルド用リソースなども選択可能ですが、今回はデフォルトにしています。
また、先程作成したレジストリー・シークレットやContainer Registryの名前空間を選択し、リポジトリー名も適宜入力ください。
その後、作成ボタンをクリックするとアプリのデプロイが始まります。Statusが対応可能になりましたら、デプロイ完了となります。


サンプル・アプリの確認
アプリケーションタブにて作成したアプリのURLが表示されるようになったら、アクセスします。

アプリとしては立ち上がっていますが、まだ中身のない箱だけの状態であるため、エラーメッセージが表示されることがわかります。

watsonx Orchestrateのインスタンス作成とCode Engineとの連携
カタログにてwatsonx Orchestrateを検索して作成画面に進みます。

Code Engineと同じ東京リージョンを選択し、プランせ選択して作成ボタンをクリックします。なお、今回はTrial版で作成しています。

再度Code Engineのアプリケーションに戻り、Service accessタブにて作成をクリックします。
このService accessはCode Engineのアプリと同アカウント内の他のサービスと連携(binding)するための機能です。


インスタンスの選択画面にて選択できるサービス一覧が表示されますが、ここでwatsonx Orchestrateを選択します。

また、watsonx Orchestrateと連携するための権限として、アクセス・シークレットを作成する必要があります。今回は管理者権限としてManagerを選択しています。
なお、カスタム接頭部(Prifix)には必ずWATSONX_ORCHESTRATEを入力します。
事前に用意したソースコードはこちらの接頭部に基づいて書かれているため、もし他の接頭部を入力した場合はうまく動作しない可能性があります。

サービスバインディングの設定が完了したら、アプリが再デプロイされ、しばらく経つとデプロイ完了となります。
また、下端のService bindingsタブにてwatsonx Orchestrateインスタンスが表示されていることを確認します。


検証の前半パートは以上となります。





