Google Cloud にデプロイする

robotsnoindex

Google App Engine Deploy パイプを使用すると、アプリケーションを Google App Engine にデプロイできます

始める前に

  • Google サービス アカウント キーを作成する必要があります。詳細については、Google のサービス キーの作成ガイドを参照してください。
  • gcloud を使用してアプリケーションのデプロイメントを行うための十分な権限が構成されている IAM ユーザー。
  • アプリケーションに必要な適切な API とサービスが有効化されていること。
  • すべてのクラウド コンポーネントがインストールされていること。

手順

  1. Google App Engine のサンプル リポジトリのクローンを作成します。
  2. Google サービス アカウント キーを作成します。詳細については、Google のサービス キーの作成ガイドを参照してください。

  3. キー ファイルを取得したら、ターミナルを開き、キー ファイルの場所を参照します。

  4. ファイルを base64 形式でエンコードし (base64 -w 0 < your-key-file>)、コマンドの出力をコピーします。

    注意

    注: MacOS の一部のバージョンでは、-w 0 は不要です。

  5. リポジトリで [設定] に移動し、[パイプライン] の [リポジトリ変数] を選択してから、KEY_FILE という名前の新しい変数を作成し、エンコードされたサービス アカウントの資格情報を貼り付けます。

  6. パイプを構成し、PROJECT および KEY_FILE の変数を追加します。

変数の一覧

PROJECT (*)デプロイするアプリケーションを所有するプロジェクト。

KEY_FILE (*): Google サービス アカウントの base64 エンコードされたキー ファイル。

DEPLOYABLES: gcloud に渡される、空白で区切られた yaml ファイルの一覧。既定は ""。空のままにすると、現在のディレクトリの app.yaml が使用されます。
VERSION: 作成 / 置換されるアプリのバージョン。
BUCKET: デプロイメントに関連付けられたファイルを保存する Google クラウド ストレージ バケット。

IMAGE: 特定の GCR docker イメージでデプロイします。

PROMOTE: true の場合、デプロイされたバージョンはすべてのトラフィックを受信し、false の場合はトラフィックを受信しません。

STOP_PREVIOUS_VERSION: true の場合、トラフィックを受信している以前のバージョンは停止し、false の場合は以前のバージョンは停止しません。

EXTRA_ARGS: CLI に渡される追加の引数 (詳細については Google アプリのデプロイメント ドキュメントを参照してください)。

DEBUG: 追加のデバッグ情報を有効化します。既定: false

(*) = required variable.

エンド ツー エンドの例

image: node:10.15.1
 
pipelines:
  default:
    - step:
        name: Build and Test
        script:
          - npm install
          - npm test
    - step:
        name: Deploy
        script:
          - pipe: atlassian/google-app-engine-deploy:0.2.1
            variables:
              KEY_FILE: $KEY_FILE
              PROJECT: 'my-project'

高度な例

複数の deployable をデプロイ
script:
  - pipe: atlassian/google-app-engine-deploy:0.4.1
    variables:
      KEY_FILE: $KEY_FILE
      PROJECT: 'my-project'
      DEPLOYABLES: 'app-1.yaml app-2.yaml'
      VERSION: 'alpha'
      BUCKET: 'gs://my-bucket'
      IMAGE: 'gcr.io/my/image'
      PROMOTE: 'true'
      STOP_PREVIOUS_VERSION: 'true'
      EXTRA_ARGS: '--verbosity=debug'

Python アプリを gcloud にデプロイ

script:
  - pipe: atlassian/google-app-engine-deploy:0.4.1
    variables:
      KEY_FILE: $KEY_FILE_PYTHON_APP
      PROJECT: 'pipes-example-python3-app'
      DEPLOYABLES: 'hello_world/app.yaml'
      VERSION: '${BITBUCKET_BUILD_NUMBER}'
      PROMOTE: 'true'
      STOP_PREVIOUS_VERSION: 'true'
      EXTRA_ARGS: '--verbosity=debug --quiet'

Maven の app.yaml で Spring Boot ベースの Java アプリ ビルドを gcloud にデプロイ

script:
  - pipe: atlassian/google-app-engine-deploy:0.4.1
    variables:
      KEY_FILE: $KEY_FILE
      PROJECT: 'pipes-java-maven-spring-boot'
      DEPLOYABLES: 'target/appengine-staging/app.yaml'
      VERSION: '${BITBUCKET_BUILD_NUMBER}'
      EXTRA_ARGS: '--verbosity=debug'

Gradle の app.yaml で Spring Boot ベースの Java アプリ ビルドを gcloud にデプロイ

script:
  - pipe: atlassian/google-app-engine-deploy:0.4.1
    variables:
      KEY_FILE: $KEY_FILE
      PROJECT: 'pipes-java-gradle-spring-boot'
      DEPLOYABLES: 'build/staged-app/app.yaml'
      # DEPLOYABLES: 'src/main/WEB-INF/appengine-web.xml' # or you can provide web.xml
      VERSION: '${BITBUCKET_BUILD_NUMBER}'
      EXTRA_ARGS: '--verbosity=debug'

Gradle の WEB-INF/appengine-web.xml で Spring Boot ベースの Java アプリ ビルドを gcloud にデプロイ

script:
  - pipe: atlassian/google-app-engine-deploy:0.4.1
    variables:
      KEY_FILE: $KEY_FILE
      PROJECT: 'pipes-java-gradle-spring-boot'
      DEPLOYABLES: 'src/main/WEB-INF/appengine-web.xml'
      VERSION: '${BITBUCKET_BUILD_NUMBER}'
      EXTRA_ARGS: '--verbosity=debug'

Maven の app.yaml で標準 Java アプリ ビルドを gcloud にデプロイ

script:
  - pipe: atlassian/google-app-engine-deploy:0.4.1
    variables:
      KEY_FILE: $KEY_FILE
      PROJECT: 'pipes-example-java-app-maven'
      DEPLOYABLES: 'target/appengine-staging/app.yaml'
      VERSION: '${BITBUCKET_BUILD_NUMBER}'
      PROMOTE: 'true'
      STOP_PREVIOUS_VERSION: 'true'
      EXTRA_ARGS: '--verbosity=debug'

Maven の WEB-INF/appengine-web.xml で標準 Java アプリ ビルドを gcloud にデプロイ

script:
  - pipe: atlassian/google-app-engine-deploy:0.4.1
    variables:
      KEY_FILE: $KEY_FILE
      PROJECT: 'pipes-example-java-app-maven'
      DEPLOYABLES: 'target/appengine-staging/WEB-INF/appengine-web.xml'
      VERSION: '${BITBUCKET_BUILD_NUMBER}'
      PROMOTE: 'true'
      STOP_PREVIOUS_VERSION: 'true'
      EXTRA_ARGS: '--verbosity=debug'

Gradle の WEB-INF/appengine-web.xml を使用して標準 Java アプリ ビルドを gcloud にデプロイ

script:
  - pipe: atlassian/google-app-engine-deploy:0.4.1
    variables:
      KEY_FILE: $KEY_FILE
      PROJECT: 'pipes-example-java-app-gradle'
      DEPLOYABLES: 'build/exploded-helloworld/WEB-INF/appengine-web.xml'
      VERSION: '${BITBUCKET_BUILD_NUMBER}'
      PROMOTE: 'true'
      STOP_PREVIOUS_VERSION: 'true'
      EXTRA_ARGS: '--verbosity=debug'

Gradle の app.yaml を使用して標準 Java アプリ ビルドを gcloud にデプロイ

script:
  - pipe: atlassian/google-app-engine-deploy:0.4.1
    variables:
      KEY_FILE: $KEY_FILE
      PROJECT: 'pipes-example-java-app-gradle'
      DEPLOYABLES: 'build/staged-app/app.yaml'
      VERSION: '${BITBUCKET_BUILD_NUMBER}'
      PROMOTE: 'true'
      STOP_PREVIOUS_VERSION: 'true'
      EXTRA_ARGS: '--verbosity=debug'
最終更新日 2020 年 6 月 24 日

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

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