IBM Cloud Code Engine で関数 Functions を試してみる
この記事は IBM Cloud Advent Calendar 2024 の 3 日目の記事です。
IBM Cloud Code Engine で関数 Functions を試してみるメモです。
背景
IBM TechXchange Japan 2024 で登壇したもの や IBM TechXchange 2024 Las Vegas で登壇したもの では xR と IBM Cloud の橋渡しとして Code Engine を使っているのですが、いままでアプリケーション型のコンテナまるごと使う形で作っていたのですが、IBM TechXchange 2024 Las Vegas で Code Engine のブースで「関数使ってみるのもイイよー。」と聞いていて、たしかにそうだなと思ったので試してみます。
ここのところアプリケーション型でうまく行っちゃって、なんだか Dockerfile をうまく使いこなせてる感があった楽しかったので、そのまま知見を発展させちゃってたんですよね。
はじめてみる
リポジトリー・ソース・コードを使用した関数ワークロードの作成 | IBM Cloud 資料
こちらの資料が参考になりました。

アプリケーションを作っていたサーバレスプロジェクトの関数のほうに進みます。
作成ボタンをクリックします。

- 名前
- 任意の名前(function- ではじまると分かりやすいです)
- コード
- Node.js 20
- コードバンドルオプション
- コード・リポジトリーないのソースからビルド

サンプルリポジトリをそのまま使います。
- コード・リポジトリー URL
- コード・リポジトリー・シークレット
- なし
- 公開リポジトリ取得なので
- なし
- ブランチ名
- main
- コンテキスト。ディレクトリー
- helloworld-samples/function-codebundle-nodejs
ということで、CodeEngine/helloworld-samples/function-codebundle-nodejs at main · IBM/CodeEngine 以下の仕組みを使います。

ビルド出力は、ビルド出力を指定するためのヘルプボタンをクリックします。

このようなサイドメニューが出てきます。

レジストリーサーバーを IBM レジストリー東京 を指定しました。

レジストリーシークレットは Code Engine 管理対象シークレットを指定。
名前空間は、すでにアプリケーション型のほうで作ってあるものを指定します。

リポジトリーは任意の名前を入れます。

Done ボタンをクリックします。

コードバンドルの場所が設定されました。

リソースとスケーリングはそのまま使います。

ドメインマッピングはパブリックを選択します。

作成ボタンをクリックします。

作成中です。

作成できたので、関数のテストボタンをクリックします。

関数の URL ボタンをクリックします。

動作を確認できました!
やってみての所感
アプリケーション型と同じように Git リポジトリで構造が指定できるあたりが楽しかったです!
IBM Cloud Functions から Code Engine への移行 | IBM Cloud 資料
なんで見落としてたんだろうなーと思ってたら、関数的な振る舞いをする IBM Cloud Functions で以前できたところが Code Engine でできるようになってきたところのキャッチアップが抜けていたみたいです。
そして今回触ってみたところで、こちらのような良い記事も見つかりました。ありがとうございます。
一度触ってみると雰囲気がつかみやすくて助かりました。
ローカル・ソース・コードからの関数ワークロードの作成 | IBM Cloud 資料
今回はアプリケーション型の理解からの移行ということでリポジトリからの反映を試してみましたが、ローカルソースのほうでもライブラリの依存関係とか非同期処理が書けるとかできるっぽいので、リポジトリを置かなくてもある程度書くこともできそうな印象です。
シンプルな LINE Bot とか watsonx.ai とかとの連携であれば、うまくいけそうですねー。
というわけで、ひとつ理解が深まりました!