Cloud Run スターター チュートリアル

1. 概要

Cloud Run は、HTTP リクエストを介して呼び出し可能なステートレス コンテナを実行できるフルマネージドのサーバーレス プラットフォームです。Cloud Run はサーバーレスです。インフラストラクチャ管理が一切不要なため、最も重要な作業であるアプリケーションの構築に集中できます。

Knative をベースに構築されており、Cloud Run を使用してフルマネージドでコンテナを実行するか、Cloud Run on GKE を使用して Google Kubernetes Engine クラスタ内でコンテナを実行するかを選択できます。

学習内容

このラボでは、次の方法について学びます。

  • Cloud Run アプリケーションをデプロイする

前提条件

  • このラボは、Cloud コンソールと Cloud Shell 環境に精通していることを前提としています。

2. 設定と要件

Cloud プロジェクトのセットアップ

  1. Google Cloud Console にログインして、プロジェクトを新規作成するか、既存のプロジェクトを再利用します。Gmail アカウントも Google Workspace アカウントもまだお持ちでない場合は、アカウントを作成してください。

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • プロジェクト名は、このプロジェクトの参加者に表示される名称です。Google API では使用されない文字列です。この設定はいつでも変更できます。
  • プロジェクト ID は、すべての Google Cloud プロジェクトにおいて一意でなければならず、不変です(設定後は変更できません)。Cloud コンソールでは一意の文字列が自動生成されます。通常は、この内容を意識する必要はありません。ほとんどの Codelab では、プロジェクト ID(通常は PROJECT_ID と識別されます)を参照する必要があります。生成された ID が好みではない場合は、ランダムに別の ID を生成できます。または、ご自身で試して、利用可能かどうかを確認することもできます。このステップ以降は変更できず、プロジェクトを通して同じ ID になります。
  • なお、3 つ目の値として、一部の API が使用するプロジェクト番号があります。これら 3 つの値について詳しくは、こちらのドキュメントをご覧ください。
  1. 次に、Cloud のリソースや API を使用するために、Cloud コンソールで課金を有効にする必要があります。この Codelab の操作をすべて行って、費用が生じたとしても、少額です。このチュートリアルの終了後に請求が発生しないようにリソースをシャットダウンするには、作成したリソースを削除するか、プロジェクト全体を削除します。Google Cloud の新規ユーザーは、300 米ドル分の無料トライアル プログラムをご利用いただけます。

環境設定

検索バーの右にあるアイコンをクリックして、Cloud Shell をアクティブにします。

ecdc43ada29e91b.png

Cloud Shell で、Cloud Run API を有効にします。

gcloud services enable run.googleapis.com

承認を求められたら、[承認] をクリックして続行します。

6356559df3eccdda.png

成功すると次のようなメッセージが表示されます。

Operation "operations/acf.p2-327036483151-73d90d00-47ee-447a-b600-a6badf0eceae" finished successfully.

3. アプリケーションを準備する

まず、HTTP リクエストに応答するシンプルな Express ベースの Node.js アプリケーションを準備します。

Cloud Shell で、starter-nodejs という名前の新しいディレクトリを作成し、そのディレクトリに移動します。

mkdir starter-nodejs
cd starter-nodejs

次のコマンドを実行して、package.json ファイルを作成します。

cat > ./package.json << EOF
{
  "name": "cloudrun-starter-app",
  "version": "1.0.0",
  "description": "Node.js Starter Application",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "author": "",
  "license": "Apache-2.0",
  "dependencies": {
    "express": "^4.18.2"
  }
}
EOF

上記のファイルで特に重要なのは、start スクリプトのコマンドと、Express ウェブ アプリケーション フレームワークへの依存関係が含まれている点です。

次に、同じディレクトリで次のコマンドを実行して index.js ファイルを作成します。

cat > ./index.js << EOF
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  console.log('Received a request.');
  res.send("Hello Cloud Run!");
});

const port = process.env.PORT || 8080;

app.listen(port, () => {
  console.log('Listening on port', port);
});
EOF

このコードは、PORT 環境変数で定義されたポートをリッスンする基本的なウェブサーバーを作成します。これでアプリは完成しました。このアプリをコンテナ化してデプロイします。

4. Cloud Run アプリケーションをデプロイする

次のコマンドを実行して、アプリケーションをデプロイします。

gcloud run deploy starter-app \
  --source . \
  --region us-central1 \
  --allow-unauthenticated \
  --max-instances=3

Artifact Registry リポジトリの作成を確認します。

Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [us-central1] will be created.

Do you want to continue (Y/n)? y

前のコマンドの結果として、次の手順が実行されます。

d661616f9b2fffcf.png

Cloud Console で、Cloud BuildCloud StorageArtifact RegistryCloud Run の各ステップの出力を確認します。

f536961280192919.png

5. 完了

おめでとうございます!Cloud Run にアプリケーションをデプロイしました。

学習した内容

  • Cloud Run にスターター アプリケーションをデプロイする方法

次のステップ:

Cymbal Eats の他の Codelab をご覧ください。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

プロジェクトの削除

課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。