このページでは、Cloud Run for Anthos サービスの開発を始める前に知っておくべきことを説明します。
コードの必要条件
サービスを開発する場合、次の要件を満たす必要があります。
- サービスはリクエストをリッスンする必要があります。リクエストの送信に使われるポートを構成できます。Cloud Run for Anthos コンテナ インスタンス内では、リクエスト送信先ポートが
PORT
環境変数の値に常に反映されます。このPORT
環境変数が存在するかどうかをコードで検査してください。存在する場合は、移植性が最大になるようそのポートでリッスンするのが適切です。 - サービスはステートレスである必要があります。永続的なローカル状態に依存することはできません。
- サービスは、リクエスト処理の範囲外のバックグラウンド アクティビティを実行することはできません。
これらの制約については、コンテナ ランタイムの契約をご覧ください。
プログラミング言語のサポート
Cloud Run for Anthos では、任意のプログラミング言語でコードを作成できます。
ウェブサーバーの使用
ウェブサーバーを使用して必要なポートをリッスンし、受信リクエストの処理とルーティングを行うことができます。Node.js で開発する場合は Express.js を、Python で開発する場合は Flask を使用できます。Ruby の場合は Sinatra を使用できます。
コードのコンテナ化
Cloud Run for Anthos にデプロイするには、コンテナ イメージを提供する必要があります。コンテナ イメージには、コード、そのパッケージ、必要なバイナリ依存関係、使用するオペレーティング システム、サービスの実行に必要なものがすべて含まれています。
Dockerfile というファイルは、コンテナ イメージのビルド方法を宣言するために使用されています。
多くの場合、Dockerfile はベースイメージから始まります(例: FROM golang:1.11
)。OS や言語の作成者によって管理されているベースイメージは Docker Hub で確認できます。Cloud Build は、Docker Hub から pull する前にキャッシュ内のイメージを確認します。サードパーティのビルドツールを使用する場合は、同じキャッシュ内のイメージを確認するように Docker デーモンを構成できます。Google が管理しているベースイメージは Google Cloud Marketplace にあります。
独自のバイナリを使用する場合は、Linux ABI x86_64 用にコンパイルする必要があります。
Dockerfiles の詳細については、次のドキュメントをご覧ください。
- 構文の詳細については Dockerfile リファレンスを、ヒントについては Docker ファイルを作成するためのベスト プラクティスをご覧ください。
- さらに詳しい情報については、コンテナをビルドするためのベスト プラクティスをご覧ください。
次のステップ
- サービスコードと Dockerfile を入手したら、コンテナ イメージをビルドして、ローカルでテストを繰り返します。
- 既存のウェブ アプリケーションを移行する場合は、サービスを Cloud Run for Anthos に移行するをご覧ください。
- Cloud Run for Anthos でサービスの設計、実装、テスト、デプロイを行う際のベスト プラクティスについては、開発のヒントをご覧ください。