IBM Cloud Code Engine入門
IBM Cloud® Code Engineは、Web アプリ、マイクロサービス、イベント・ドリブン機能、バッチ・ジョブなどのコンテナー化されたワークロードを実行する、完全に管理されたサーバーレス・プラットフォームです。Code Engineは、ソース・コードからコンテナー・イメージを作成することもできます。 これらのワークロードはすべて、同じ Kubernetes インフラストラクチャー内でホストされるため、シームレスに連携できます。 Code Engine のエクスペリエンスは、コードのホストに必要なインフラストラクチャーではなく、コードの作成にユーザーが集中できるように設計されています。
まず、Code Engineに対するいくつかの 主要な用語について学習してから、以下のいずれかのオプションを使用して開始します。
Code Engine プロジェクト、アプリケーション、仕事、機能とは?
まずは、Code Engine のいくつかの重要な用語について理解してください。 その後、自分の知識を試して クイズに答えることができる!
用語 | 説明 |
---|---|
プロジェクト | プロジェクトとは、アプリケーション、ジョブ、ビルドなどの Code Engine エンティティーをグループにまとめるものです。 プロジェクトを使用することで、リソースを管理してエンティティーへのアクセスを提供できます。 |
アプリケーション | アプリケーション (アプリ) は、HTTP 要求を処理するコードを実行します。 着信要求のために、アプリケーションには URL があります。 アプリケーションの実行インスタンス数は、着信ワークロードに応じて、自動的にスケール・アップまたはスケール・ダウン (ゼロまで) します。 |
ビルド | ビルド (イメージ・ビルド) は、ソース・コードからコンテナー・イメージを作成するために使用できるメカニズムです。Code Engineは、Dockerfile または Cloud Native Buildpacks からのビルドをサポートしています。 |
関数 | 関数は、 HTTP リクエストに応答してタスクを実行するステートレスなコード・スニペットである。 |
ジョブ | ジョブは、あなたの実行コードの1つ以上のインスタンスを並列に実行します。 着信要求を処理する HTTP Server が含まれているアプリケーションとは異なり、ジョブは一度実行したら終了するように設計されています。 |
用語について詳しくは、Code Engine の用語を参照してください。
何を選択すべきかわからない場合は、 Code Engine の計画を参照してください。
最初の Code Engine アプリのデプロイ
icr.io/codeengine/helloworld
イメージを使用して、最初のCode Engineアプリを作成します。
- Code Engine コンソールを開きます。
- 「始めましょう」 を選択します。
- 選択可能なプロジェクトのリストからプロジェクトを選択します。 新規作成することもできます。 アプリをデプロイするには、選択したプロジェクトがなければならないことに注意してください。
- **「アプリケーション」**を選択します。
- アプリケーションの名前を入力します(例:
myapp
)。 プロジェクト内で固有のアプリケーション名を使用してください。 - コンテナー・イメージを実行することを選択し、イメージ参照に
icr.io/codeengine/helloworld
を指定します。 この例では、デフォルト値を変更する必要はありません。 この例で使用されるコードについて詳しくは、helloworld
を参照してください。 - 「作成」 をクリックします。
- アプリケーションの状況が**「準備完了 (Ready)」**に変わったら、アプリケーションをテストできます。 **「アプリケーションのテスト (Test application)」をクリックしてから、「アプリケーションのテスト (Test application)」ペインで「要求の送信」をクリックします。 Web ページでアプリケーションを開くには、「アプリケーション URL (Application URL)」**をクリックします。
出力例
Hello World from:
. ___ __ ____ ____
./ __)/ \( \( __)
( (__( O )) D ( ) _)
.\___)\__/(____/(____)
.____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
.) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-5b5895fdf7-abcd
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1
z=Set env var 'SHOW' to see all variables
最初のアプリケーションを Code Engine にデプロイしてテストすることができました。 チュートリアル: アプリケーションのデプロイ または Code Engineでのアプリケーションの操作 に移動して、アプリケーションに関する追加のオプションを試すことができます。
最初の Code Engine ジョブの実行
icr.io/codeengine/helloworld
イメージを使用して、最初のCode Engineジョブを作成して実行します。
- Code Engine コンソールを開きます。
- 「始めましょう」 を選択します。
- 選択可能なプロジェクトのリストからプロジェクトを選択します。 新規作成することもできます。 ジョブを作成するには、選択したプロジェクトがなければならないことに注意してください。
- **「ジョブ」**を選択します。
- ジョブの名前を入力する。例えば、
myjob
。 ジョブには、プロジェクト内で固有の名前を使用します。 - イメージ参照に
icr.io/codeengine/helloworld
を指定します。 この例では、デフォルト値を変更する必要はありません。 この例で使用されるコードについて詳しくは、helloworld
を参照してください。 - 「作成」 をクリックします。
- ジョブ・ページで、ジョブの実行依頼をクリックして、現在の構成に基づいてジョブを実行依頼します。
- 「ジョブの実行依頼」ペインで、すべてのデフォルト値を受け入れ、ジョブの実行依頼を再度クリックしてジョブを実行します。
ロギングを有効にすると、以下の例がログに表示されます。 ロギングを有効にしてジョブを実行する方法については、ログの表示を参照してください。
ロギング・インスタンスからの出力例
Hello World from:
. ___ __ ____ ____
./ __)/ \( \( __)
( (__( O )) D ( ) _)
.\___)\__/(____/(____)
.____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
.) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_DOMAIN=us-east.codeengine.appdomain.cloud
CE_JOB=myjob
CE_JOBRUN=myjob-jobrun-xgpmz
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myjob-jobrun-abcde-0-0
JOB_INDEX=0
...
z=Set env var 'SHOW' to see all variables
コンソールからジョブを作成して実行しました。 チュートリアル: ジョブの実行またはCode Engine でのジョブの実行に移動して、ジョブの他のオプションを試してみてください。
最初の機能の実行
サンプル関数コードを使用して、最初の Code Engine 関数を作成して実行します。
- Code Engine コンソールを開きます。
- 「始めましょう」 を選択します。
- 選択可能なプロジェクトのリストからプロジェクトを選択します。 新規作成することもできます。 関数を作成するには、プロジェクトを選択する必要があることに注意してください。
- 機能を選択する。
- 関数の名前を入力します。 関数の名前は、プロジェクト内でユニークなものを使ってください。
- 「Node.js 18」 を選択します。
- 「作成」 をクリックします。 関数はサンプル・コードを使用して作成されます。 このコードは、 「関数」->「構成」 ページで編集できます。
- テスト機能]をクリックし、[テスト機能]ペインで[ リクエストの送信 ]をクリックします。 ウェブページで関数を開くには、 関数 URL をクリックします。
出力例
{"args":{"__ce_headers":{"Accept-Encoding":"gzip, deflate, br","User-Agent":"got (https://github.com/sindresorhus/got)","X-Request-Id":"12340a7b-11c0-4de3-f16b-a6abc27f4146"},"__ce_method":"GET","__ce_path":"/"},"env":{"HOME":"/root","PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/lib/nodejs/bin","PWD":"/nodejsAction","SHLVL":"1","_":"/usr/local/lib/nodejs/bin/node","__OW_ALLOW_CONCURRENT":"true","container":"oci"}}
あなたは最初の関数を Code Engine にデプロイし、テストした。 「 ローカル・ソースからの関数の実行 」または「 関数の操作 」に移動して、関数の追加オプションを試してください。
ソース・コードからの最初のコンテナー・イメージの作成
最初の Code Engine ビルドを作成して実行してから、そのコンテナー・イメージをアプリケーションにデプロイします。
Code Engine は、ユーザーのアカウントの Container Registry の名前空間にイメージを自動的にプッシュできます。 名前空間を自動で作成することもできます。 イメージを別のContainer Registryアカウントまたはプライベート Docker Hub アカウントにプッシュするには、プライベート・コンテナー・レジストリーへのアクセス権限の追加を参照してください。
- Code Engine コンソールを開きます。
- 「始めましょう」 を選択します。
- 選択可能なプロジェクトのリストからプロジェクトを選択します。 新規作成することもできます。 アプリをデプロイするには、選択したプロジェクトがなければならないことに注意してください。
- **「アプリケーション」**を選択します。
- アプリケーションの名前を入力します。 プロジェクト内で固有のアプリケーション名を使用してください。
- コンテナー・イメージを実行することを選択し、イメージ参照に
icr.io/codeengine/helloworld
を指定します。 この例では、デフォルト値を変更する必要はありません。 この例で使用されるコードについて詳しくは、helloworld
を参照してください。 - **「ソース・コード (Source code)」**を選択します。
- **「ビルドの詳細を指定 (Specify build details)」**をクリックします。
- 各ページのデフォルトを受け入れて、 「次へ」 をクリックし、 「完了」 をクリックします。
- 「作成」 をクリックします。
ビルド実行が実行されると、ビルドされたコンテナー・イメージが Container Registry に送信され、アプリケーションが自動的にそのイメージをプルしてデプロイします。 アプリケーションの状況が**「準備完了 (Ready)」**に変わったら、それを試行できます。 **「アプリケーションのテスト (Test application)」をクリックしてから、「アプリケーションのテスト (Test application)」ペインで「要求の送信」をクリックします。 Web ページでアプリケーションを開くには、「アプリケーション URL (Application URL)」**をクリックします。
出力例
Hello World from:
___ __ ____ ____
/ __)/ \( \( __)
( (__( O )) D ( ) _)
\___)\__/(____/(____)
____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-6db6d89dc7-k6qc7
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1
ソース・コードを Code Engine に送信し、コンテナー・イメージを作成し、アプリケーションにデプロイする、という作業をすべて 1 つのインターフェースから実行しました。
コンテナー・イメージのビルドに移動し、ビルドの他のオプションを調べて試してみてください。
Code Engine の次のステップ
これらの Code Engine タスクを、コンソールまたは Code Engine CLI で実行する方法について確認します。
コード・サンプルがさらに必要ですか? IBM Cloud Code Engine GitHub repoをチェックアウトします。