よくある質問 Code Engine
IBM Cloud® Code Engine サービスについてのよくある質問に対する回答。
IBM Cloud Code Engine とは何ですか?
Code Engineは、IBMによって開発されており、多数のオープン・ソース・コンポーネントで構築されています。 その目的は Kubernetes の機能を拡張することにより、モダンで、ソース中心にコンテナー化され、サーバーレスなアプリを作成して Kubernetes クラスターで実行できるようにすることです。 このプラットフォームは、12-Factor App、コンテナー、または関数といった、クラウドで実行するアプリのタイプを決定しなければならない今日の開発者のニーズに対処するように設計されています。 詳しくは、Code Engine の概要を参照してください。
Code Engine では、アプリケーションのデプロイ、ジョブの実行、さらにはソース・コードのビルドまで、単一のダッシュボードから行えます。
プロジェクトとは何ですか?
プロジェクトとは、アプリケーション、ジョブ、ビルドなどの Code Engine エンティティーをグループにまとめるものです。 プロジェクトの基盤は Kubernetes 名前空間です。 プロジェクトの名前は、IBM Cloud® リソース・グループ、ユーザー・アカウント、およびリージョン内で固有でなければなりません。 プロジェクトを使用することで、リソースを管理してエンティティーへのアクセスを提供できます。
プロジェクトは、以下の項目を提供します。
- エンティティー名のために固有の名前空間を提供します。
- プロジェクトのリソースへのアクセス (インバウンド・アクセス) を管理します。
- バッキング・サービス、レジストリー、およびリポジトリーへのアクセス (アウトバウンド・アクセス) を管理します。
- Transport Layer Service (TLS) 用の証明書が自動的に生成されます。
プロジェクトについて詳しくは、プロジェクトの管理を参照してください。
コード・サンプルはどこにありますか?
Code Engine の機能を知るために役立つコード・サンプルが用意されています。 GitHub 上の Code Engine コード・サンプル・リポジトリーにアクセスしてください。
メモリーがさらに必要です。 制限を緩和することはできますか?
Code Engineを使用するために Docker ハブ・アカウントが必要ですか?
Code Engine では、 Docker ハブ・アカウントは必要ありません。 Code Engine はコンテナーを実行しますが、 Code Engineにワークロードをデプロイするためにコンテナー・テクノロジーを理解する必要はありません。 ソース・コードと Code Engine を使用してコンテナー・イメージを作成し、アカウントが所有する IBM Cloud Container Registry 名前空間に保管できます。 IBM Cloud Container Registry はデフォルトのコンテナー・レジストリーとして使用されますが、 Code Engine は、 IBM Cloudからアクセスできる他のパブリック・レジストリーおよびプライベート・レジストリーからイメージをプッシュおよびプルできます。
ローカル・システム上の Docker ビルドと Code Engine 上のビルドの違いは何ですか?
ローカル・システム上で実行する Docker ビルドの結果は、Code Engine で同じ Dockerfile を使用してビルドを実行した場合に得られるコンテナー・イメージと同じです。 ただし、Code Engine でのビルドは、ローカル・システムではなく Code Engine システムで実行されます。 Code Engine でのビルドには、以下に示す複数の利点があります。
- Docker Desktop などのソフトウェアをローカルにインストールする必要がありません。
- Code Engine で提供されるリソースを使用できます。 例えば、IBM Cloud で高速にコンテナー・レジストリー・イメージをプッシュまたはプルすることができます。
- Dockerfile の代わりにビルドパック・ビルド方式を使用して、コンテナー・イメージをビルドできます。この方式では、各種言語のソースが検出され、それを元に自動的にコンテナーがビルドされます。
- Intel ベース以外のプロセッサーでビルドされたイメージがある場合は、 Code Engine で再ビルドできます。
Intel 以外のプロセッサーで作成されたイメージが Code Engineで機能しないのはなぜですか?
コンテナー・レジストリーに存在するイメージがあり、そのイメージが非 Intel ベースのプロセッサーでビルドされた場合、 Code Engine はコンテナー・イメージを実行できません。 Code Engine は Intel ベースの処理を使用します。 Intel 処理 (x86 プロセッサー) を使用する場合は、独自のイメージを作成できます。 Code Engine にビルド・プロセスを処理させることもできます。 詳しくは、ビルドの計画を参照してください。
Code Engine アプリは WebSocket をサポートしていますか?
はい。 WebSockets を使用しているサンプルアプリは、 Code Engine のサンプルリポジトリ( GitHub )でご覧いただけます。
アイドル状態でない接続であっても、アプリケーションへの接続はすべて 10 分が最大時間です。 Code Engine では、timeout
の値を使用してこの接続時間を構成できます。 CLI を使用する場合は、--timeout
コマンドまたは app create
コマンドで app update
オプションを使用します。 コンソールから 、[リソースとスケーリング] タブでアプリの Timeout
の値を設定できます。 WebSocket を使用するアプリでは、接続がクローズされたらクライアントからアプリに再接続する必要があります。
そのため、持続接続が必要なアプリの場合は、timeout
値に達する前に新規接続を作成してください。
するCode EngineアプリのサポートgRPC?
はい。 gRPC を使用しているサンプルアプリは、 Code Engine のサンプルリポジトリ( GitHub )でご覧いただけます。
gRPC は HTTP/2に依存するため、ポート名を h2c
に設定し、ポート値を 8080
に設定する必要があります。そうすると、 Code Engine アプリケーションが HTTP/2 トラフィックをサポートできるようになります。 Code Engine CLI を使用して、 app create
コマンドまたは app update
コマンドで --port h2c:8080
オプションを構成し、 gRPCを使用するようにアプリケーションを構成します。 gRPC を参照してください。
Code Engine は、 Code Engine プロジェクト内の特定のエンティティーへのアクセスを制限する方法を提供しますか?
いいえ。 Code Engineで、任意の Code Engine エンティティーに適用される役割のスコープは、現行コンテキストとして選択されたプロジェクトのみに限定されます。 したがって、 Code Engine プロジェクト内の個々のリソースに対する許可を制御することはできません。
Code Engine は、デプロイされた関数の OpenAPI 仕様を提供しますか?
いいえ、 Code Engine は、デプロイする関数の OpenAPI 仕様を生成または提供しません。 コードから OpenAPI 仕様を生成するために、多くのプログラミング言語で使用可能なパッケージおよびツールがあります。
Code Engine サービスの使用条件を確認するにはどうすればよいですか?
最新のサービス・レベル・アグリーメント条件については、サービスのご利用条件を参照してください。
フィードバックを送信するにはどうすればよいですか?
Code Engine についてのお客様からのフィードバックは、IBM にとって重要です。改善する助けにもなります。 フィードバックを送る方法は複数あります。
- クリックオープンドキュメントの問題ドキュメント ページの最後にある をクリックして、問題を開き、コメントを入力します。
- Slack でフィードバックを共有する。 あなたは #code-engineチャンネルで議論に参加することができます。