Google Cloud にデプロイする

このガイドでは、Bitbucket Pipelines を構成して Google Cloud App Engine に自動的にデプロイする方法について説明します。単純なアプリケーション デプロイメントの前に、認証情報のセットアップ方法について説明します。

次の Bitbucket リポジトリもご覧ください: Deploy to Google App Engine

 

Google Cloud SDK をインストールする

パイプラインに使用するイメージに Cloud SDK がインストールされていない場合、これらのコマンドを使用します。

curl -o /tmp/google-cloud-sdk.tar.gzhttps://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-155.0.0-linux-x86_64.tar.gz
tar -xvf /tmp/google-cloud-sdk.tar.gz-C /tmp/
/tmp/google-cloud-sdk/install.sh-q
source /tmp/google-cloud-sdk/path.bash.inc

イメージにも Python もインストールしておく必要があります。v2.7.9 (以下に使用されている node:4.6.0 イメージにインストールされているバージョン) は機能し、v3.6 は失敗することが確認されています。

次の Bitbucket Pipelines 構成は、Google Cloud SDK をインストールし、バージョンを表示することでテストします。

bitbucket-pipelines.yml
image: node:4.6.0

pipelines:
  default:
    - step:
        script: # Modify the commands below to build your repository.
# Downloading the Google Cloud SDK
          - curl -o /tmp/google-cloud-sdk.tar.gzhttps://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-155.0.0-linux-x86_64.tar.gz
          - tar -xvf /tmp/google-cloud-sdk.tar.gz-C /tmp/
          - /tmp/google-cloud-sdk/install.sh -q
          - source /tmp/google-cloud-sdk/path.bash.inc
- gcloud -v

 

このインストール方法では、インタラクティブ インストーラーの使用を回避するため、特定のバージョンの Cloud SDK を使用していることにご注意ください。SDK の最新バージョンGoogle Cloud Web サイトで確認し、必要に応じてスクリプトを適用できます。

オンライン バリデーターを使用して bitbucket-pipelines.yml ファイルをチェックすることができます。

 

認証情報のセットアップ

アプリケーションの既定の認証情報を使用して、Google Cloud サービスを呼び出すための認証を行います。

最初に、まだプロジェクトで実行していない場合は、Google App Engine の管理 API を有効化する必要があります。[API マネージャ] > [ライブラリ] へ移動して、[Google App Engine Admin API] を検索します。対応する API 管理ページに移動し、ぺージの一番上にあるリンクをクリックして API を有効化します。

API を有効化したら、[API マネージャー] > [認証情報] へ移動し、以下の手順に従って認証情報を生成します。

  1. [認証情報の作成] ドロップダウンで、[サービス アカウント キー] を選択します。
  2. 次のページで、[サービス アカウント] ドロップダウンの [エンジンの既定サービス アカウントを計算する] を選択します。
  3. 形式として JSON を選択します。
  4. [作成] ボタンをクリックします。
  5. 生成された JSON ファイルをローカル マシン上に保存します (これは自動的に行われます)。

認証情報を base64 形式にエンコーディングし、Pipelines の環境変数として保存することで Bitbucket Pipelines に追加できるようになりました。

ターミナルを開き、JSON 認証情報ファイルの場所に移動します。次に、以下のコマンドを実行して、ファイルを base64 形式でエンコードします。コマンドの出力をクリップボードにコピーします。

base64 <your-credentials-file.json>

Bitbucket のリポジトリ設定へ移動し、[Pipelines] > [環境変数] を開きます。GCLOUD_API_KEYFILE の名前で新しい変数を作成し、エンコーディングされたサービス アカウント認証情報を貼り付けます。

GCLOUD_PROJECT の名前で別の変数を追加し、値を Google Cloud プロジェクトのキーに設定します。

 

Google Cloud SDK および Bitbucket Pipelines を使用して認証を試みることで、認証情報が正しくインストールされていることを検証します。

bitbucket-pipelines.yml
image: node:4.6.0

pipelines:
  default:
    - step:
        script: # Modify the commands below to build your repository.
# Downloading the Google Cloud SDK
          - curl -o /tmp/google-cloud-sdk.tar.gzhttps://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-155.0.0-linux-x86_64.tar.gz
          - tar -xvf /tmp/google-cloud-sdk.tar.gz-C /tmp/
          - /tmp/google-cloud-sdk/install.sh -q
          - source /tmp/google-cloud-sdk/path.bash.inc
# Authenticating with the service account key file
          - echo $GCLOUD_API_KEYFILE | base64 --decode --ignore-garbage > ./gcloud-api-key.json
          - gcloud auth activate-service-account --key-file gcloud-api-key.json
# Linking to the Google Cloud project
          - gcloud config set project $GCLOUD_PROJECT

 

上記の bitbucket-pipelines.yml 構成をリポジトリにプッシュすると、サービス アカウント認証情報がアクティブ化された結果が緑色で表示されます。

 

Google Cloud App Engine へのデプロイ

上記の認証ステップを完了した後、お使いのアプリケーション タイプに適したコマンドを使用して Google App Engine へアプリケーションをデプロイできます。yaml 構成ファイルに基づいたアプリケーション タイプの場合、gcloud app deploy コマンドを使用できます。

- gcloud -q app deploy app.yaml

appengine maven プラグインを使用してデプロイされた Java アプリケーションの場合、使用している docker イメージに maven が含まれていることを確認し、パイプライン スクリプトに以下のコマンドを追加します。

- gcloud components install app-engine-java
- 'mvn install appengine:deploy'

 

テストを実行した後で Google App Engine に自動的にデプロイするフル パイプライン構成は次のようになります。

bitbucket-pipelines.yml
image: node:4.6.0

pipelines:
  default:
    - step:
        script: # Modify the commands below to build your repository.
# Downloading the Google Cloud SDK
          - curl -o /tmp/google-cloud-sdk.tar.gzhttps://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-155.0.0-linux-x86_64.tar.gz
          - tar -xvf /tmp/google-cloud-sdk.tar.gz-C /tmp/
          - /tmp/google-cloud-sdk/install.sh -q
          - source /tmp/google-cloud-sdk/path.bash.inc
# Authenticating with the service account key file
          - echo $GCLOUD_API_KEYFILE | base64 --decode --ignore-garbage > ./gcloud-api-key.json
          - gcloud auth activate-service-account --key-file gcloud-api-key.json
# Linking to the Google Cloud project
          - gcloud config set project $GCLOUD_PROJECT
          # Deploying the application
          - gcloud -q app deploy app.yaml

または maven ベースの Java アプリケーションの場合:

bitbucket-pipelines.yml
image: maven:3.5.0-jdk-7

pipelines:
  default:
    - step:
        script: # Modify the commands below to build your repository.
# Downloading the Google Cloud SDK
          - curl -o /tmp/google-cloud-sdk.tar.gzhttps://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-155.0.0-linux-x86_64.tar.gz
          - tar -xvf /tmp/google-cloud-sdk.tar.gz-C /tmp/
          - /tmp/google-cloud-sdk/install.sh -q
          - source /tmp/google-cloud-sdk/path.bash.inc
# Authenticating with the service account key file
          - echo $GCLOUD_API_KEYFILE | base64 --decode --ignore-garbage > ./gcloud-api-key.json
          - gcloud auth activate-service-account --key-file gcloud-api-key.json
# Linking to the Google Cloud project
          - gcloud config set project $GCLOUD_PROJECT
          # Deploying the application
          - gcloud components install app-engine-java
          - 'mvn install appengine:deploy'

 

Remember, you can check your bitbucket-pipelines.yml file with our online validator.

最終更新日 2017 年 11 月 6 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.