ローカルテスト

開発段階で、デプロイする前にコンテナ イメージをローカルで実行し、テストを行うことができます。Cloud Code またはローカルにインストールされた Docker を使用して、ローカルでの実行とテストを行うことができます。Google Cloud サービスにアクセスして、ローカルでテストを行うこともできます。

Knative serving エミュレータで実行する

VS CodeJetBrains IDE 用の Cloud Code プラグインを使用すると、IDE 内の Knative serving エミュレータでコンテナ イメージをローカルで実行し、デバッグできるようになります。エミュレータでは、Knative serving 上で実行するサービスを表す環境を構成できます。

CPU やメモリ割り当てなどのプロパティの構成、環境変数の指定、Cloud SQL データベース接続の設定が実行できます。

  1. VS Code 用または JetBrains IDE 用の Cloud Code をインストールします。
  2. IDE 内でローカルで開発とデバッグを行う手順を行います。

Docker を使用してローカルで実行する

Docker を使用してコンテナ イメージをローカルでテストするには:

  1. 次の Docker コマンドを使用します。

    PORT=8080 && docker run -p 9090:${PORT} -e PORT=${PORT} IMAGE_URL

    IMAGE_URL は、コンテナ イメージへの参照(gcr.io/cloudrun/hello など)に置き換えます。

    PORT 環境変数には、アプリケーションが HTTP または HTTPS リクエストをリッスンするポートを指定します。これは、コンテナ ランタイムの契約要件です。この例では、ポート 8080 を使用します。

  2. ブラウザで http://localhost:9090 を開きます。

コンテナに慣れていない場合は、Docker のスタートガイドをご覧ください。Docker コマンドの詳細については、Docker のドキュメントをご覧ください。

Google Cloud サービスにアクセスしながら Docker を使用してローカルで実行する

Google Cloud クライアント ライブラリを使用してアプリケーションを Google Cloud サービスと統合していて、これらのサービスを外部アクセスから保護していない場合、ローカル コンテナを設定してアプリケーションのデフォルト認証情報を使用し、Google Cloud サービスで認証を行います。

ローカルで実行するには:

  1. サービス アカウントの認証情報を生成、取得、構成する方法については、認証の開始をご覧ください。

  2. 以下の Docker 実行フラグを使用して、ローカル システムからローカル コンテナに認証情報と構成を読み込みます。

    1. --volume-v)フラグを使用して、認証情報のファイルをコンテナに挿入します。この操作を行う前に、マシンに GOOGLE_APPLICATION_CREDENTIALS 環境変数が設定されている必要があります。
      -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
    2. --environment-e)フラグを使用して、コンテナ内に GOOGLE_APPLICATION_CREDENTIALS 変数を設定します。
      -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
  3. (省略可能)この完全構成済みの Docker run コマンドを使用します。

    PORT=8080 && docker run \
    -p 9090:${PORT} \
    -e PORT=${PORT} \
    -e K_SERVICE=dev \
    -e K_CONFIGURATION=dev \
    -e K_REVISION=dev-00001 \
    -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json \
    -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro \
    IMAGE_URL

    上記の例のパスは、

    /tmp/keys/FILE_NAME.json
    認証情報を配置するコンテナ内の場所です。

    他のディレクトリも使用できますが、GOOGLE_APPLICATION_CREDENTIALS 環境変数の値がコンテナ内のバインド マウントの場所と一致している必要があります。

    一部の Google Cloud サービスでは、ローカルのトラブルシューティングが本番環境のパフォーマンスやデータに影響を及ぼさないように、別の構成を使用することをおすすめします。

次のステップ

サービスのデプロイの手順を行い、ビルドしたコンテナをデプロイする。