本記事は IBM Cloud Code Engineを用いてWebアプリケーションをデプロイしてみる ~概要編~ の続編となります。
概要編をまだご覧になっていない方は、以下の記事をご参照ください。
記事一覧
- 概要編
- 事前準備編 【本記事】
- バックエンド編
- フロントエンド編(完成)/ つまずき集
はじめに
本記事では社内研修で作成したAI Chat Bot をIBM Cloud Code Engine を使用してGitHub からデプロイする際に必要なAPIキーやプロジェクト、名前空間の作成方法について説明します。
1. プロジェクトの作成
デプロイする際の基盤となるプロジェクトを作成します。
1-1. プロジェクトの作成
IBM Cloud サーバレス・プロジェクトにアクセスして プロジェクトの作成ボタン を押します。
1-2. プロジェクト作成の項目を入力する
プロジェクトの作成欄には以下の項目を入力します。
| 項目 | 設定値 |
|---|---|
| ロケーション | Tokyo(jp-tok) |
| 名前 | tdc-rehorenso-project |
| リソースグループ | 利用するリソースグループを指定 |
| タグ | 未記入 |
2. Container Registry 名前空間の作成
次に、Container Registry でビルドしたコンテナを格納するための名前空間を作成します。
2-1.名前空間の作成タブを開く
IBM Cloud 名前空間 を開き、作成 を選択します。
2-2. 名前空間の作成
名前空間の作成欄には以下の項目を入力します。
| 項目 | 値 |
|---|---|
| リソース・グループ | 利用するリソースグループを指定 |
| 名前 | 任意 |
3. IAM APIキーの作成
次に、レジストリー・シークレットの作成 および、 watsonx.ai の連携に利用するための IAM APIキーの作成手順を示します。
3-1. アクセス(IAM)を開く
IBM Cloud にアクセスし、管理タブの アクセス(IAM) を選択します。

3-2. IAM APIキーの作成
メニューバーからAPIキーを選択し、APIキーの作成 ボタンを押します。

3-3. 必要項目の入力
APIキー作成に必要な項目は以下のように設定します。
| 項目 | 値 |
|---|---|
| 名前 | tdc-rehorenso |
| 説明(オプション) | 空欄 |
| 漏洩対策 | 漏洩したキーを無効にする |
| セッションの作成 | いいえ |
各項目の補足として
セッションとは
APIキーでログインした履歴を見たり、途中で止めたりできる仕組みです。
「セッションの作成」はAPIキーでユーザがログインしたかどうかを見ることができるものです。今回は API のみの利用であるためセッションの作成は行いません。
3-4. IAM APIキーの保存
APIキーが出力されるので コピー または ダウンロード を選択して保存をします。

APIキーはここで保存しないと再度表示することができなくなるため、必ずメモ等で控えるようにすること!
4. シークレット・configmap の設定
シークレットとは、 機密性の高い構成情報 (パスワードといった環境変数や SSH 鍵など) を格納し、デプロイ時に利用できる情報です。
また、configmap は 非機密データ情報 (URLといったの環境変数など)をデプロイに含めることができるものです。
Code Engine では以下シークレットとの configmap を設定することができます。
一般シークレット:
パスワードやトークンを格納するためのシークレット
(使用例)パスワード、トークンなど
TLSシークレット:
署名済みTLS証明書チェーンとその秘密鍵を保管するためのシークレット。
(使用例)カスタム・ドメイン・マッピングなど
レジストリー・シークレット:
コンテナ・レジストリにアクセスするため資格情報を保管するシークレット
(使用例)Container Registry や Docker Hub との接続など
SSH シークレット:
Gitリポジトリー(GitHubやGitLabなど)に対する認証で使用する秘密鍵を保管するためのシークレット
(使用例)Gitリポジトリーからビルドなど
HMAC secret:
IBM Cloud Object Storage にアクセスするときに使う Access Key ID と
Secret Access Key を保管するシークレット
(使用例)IBM Cloud Object Storage にアクセスなど
Configmap:
環境変数などのキーと値のペアのセットを保管するもの。 非機密構成データに使用します。
(使用例)プロジェクトID やルーティングアドレスといった環境変数など
4-1. シークレットおよび configmap までの遷移
1.で作成したプロジェクトを選択し、左側のタブのシークレットおよび configmap を選択し、作成 を選択します。
4-2 レジストリー・シークレットの作成
Container Registry にアクセスをするため、レジストリー・シークレット を選択します。
4-3. レジストリー・シークレットの値の入力
レジストリー・シークレットは以下の値を入力します。
| 項目 | 設定値 |
|---|---|
| シークレット名 | tdc-reg-key |
| ターゲット・レジストリー | IBM Container Registry |
| ロケーション | 東京(private.jp.icr.io) |
| IAM APIキー | 3-4 で取得したAPIキー |
| Eメール(オプション) | 未記入 |
5. watsonx.ai のプロジェクトIDの取得
今回のアプリケーションでは watsonx.ai のAPIレスポンスをもらうのに IAM APIキーと watsonx.ai のプロジェクトID が必要となっています。
IAM APIキーは 3-4 で取得したため、watsonx.ai のプロジェクトID を取得する方法を説明します。
5-1. watsonx.ai にアクセス
IBM watsonx へアクセスをし、サイトの下部の 新規プロジェクト作成 を選択します。
5-2. watsonx.ai のプロジェクトの作成
プロジェクトの作成項目では以下のように名前のみを記載し、その他の部分はデフォルトのままで作成します。
| 項目 | 値 |
|---|---|
| 名前 | tdc-rehorenso-ai |
| 説明(オプション) | 空欄 |
| タグ(オプション) | 空欄 |
| ストレージ | Cloud Object Storage-8t (デフォルト) |
5-3. プロジェクト IDの取得
プロジェクトの作成が終わり、プロジェクト内の資産を選択すると下記の通り プロジェクトID が記載されているので、プロジェクトIDをメモにとります。

5-4. プロジェクト ID を configmap に保存
プロジェクトID を 4.1 の手順に従って configmap に保存をします。
項目と値は以下の通りに記載します。
| 項目 | 値 |
|---|---|
| 定義タイプ | Configmap |
| Configmap名 | watsonx-project-id |
| キー | WATSONX_PROJECT_ID |
| 値 | 5-3 で取得したプロジェクトID |
6. SSH シークレットの作成(オプション)
SSHシークレットとは、Gitリポジトリにアクセスするための秘密鍵となっています。
Gitリポジトリがpublic設定になっていない場合は、SSHシークレットを作成する必要があります。
6-1. SSH鍵の作成
SSH鍵の作成は gitbash または コマンドプロンプト で以下のコマンドを入力すると~/.sshに秘密鍵と公開鍵のキーペアが作成されます。
また、今回のキーはtdc_id_ed25519として設定しました。
ssh-keygen -t ed25519 -C "xxxxx@xxx.xxx" -f ~/.ssh/tdc_id_ed25519
作成した公開鍵tdc_id_ed25519.pubを以下のコマンドでコピーをします。
clip < ~/.ssh/id_ed25519.pub
ここで、今回使用した ssh-keygen のコマンドの詳細を示します。
| パラメータ | 意味 |
|---|---|
| -t | 暗号化方式を「rsa」「dsa」「ecdsa」「ed25519」から指定する |
| -C | コメント(一般的にはGitHubで使用しているメールアドレスを記載) |
| -f | 保存ファイルの場所とファイル名の指定 |
6-2. SSH公開鍵を GitHub に追加
GitHub のリポジトリ → Setting → Deploy keys を選択して、Add deploy key を選択します。

6-3. SSH公開鍵情報を入力
以下のように 6-1 でコピーした公開鍵情報(tdc_id_ed5519.pubの値)を入力します。
| 項目 | 値 |
|---|---|
| Title | tdc-keys |
| Key | 6-1 でコピーした公開鍵 (tdc_id_ed5519.pubの値) |
| Allow Write access | チェックを入れない |
Allow Write access は秘密鍵の所有者がリポジトリに push 操作をできるようにするものです。
今回は、リポジトリを参照してビルドするだけなのでチェックを入れていません。
6-4. SSH秘密鍵をプロジェクトで利用可能にする
次に、Code Engine に秘密鍵を登録します。
登録手順は4-1の手順でシークレットおよび configmap を選択し、 SSHシークレット を選択します。
6-5. SSH秘密鍵をSSHシークレットとして保存
ここで SSH秘密鍵は 6-1 で作成したssh秘密鍵(tdc_id_ed_25519)を登録します。
| 項目 | 値 |
|---|---|
| シークレット名 | tdc-ssh-key |
| SSH秘密鍵 | 6-1 で作成したssh秘密鍵(tdc_id_ed_25519) |
今回はファイルを選択していますが、clipコマンドでコピーした値を貼り付けても問題ありません。
これで Code Engine から GitHub のリポジトリへアクセスすることができるようになりました!!
まとめ
今回はIBM Cloud Code Engineを使用してデプロイする際に必要なプロジェクトの作成やAPIキーの作成を行いました。
次回は、いよいよIBM Cloud Code Engineを使用してバックエンドのデプロイを行います。ぜひ、ご覧ください。
次の記事はこちら【IBM Cloud Code Engineを用いてWebアプリケーションをデプロイしてみる ~バックエンド編~】












