Google Cloud にデプロイする
始める前に
Google サービス アカウント キーを作成する必要があります。詳細については、Google のサービス キーの作成ガイドを参照してください。
gcloud を使用してアプリケーションのデプロイメントを行うための十分な権限が構成されている IAM ユーザー。
アプリケーションの必要性に応じて、適切な API とサービスが有効化されていること。
すべてのクラウド コンポーネントがインストールされていること。
手順
Google App Engine のサンプル リポジトリのクローンを作成します。
Google サービス アカウント キーを作成します。詳細については、Google のサービス キーの作成ガイドを参照してください。
キー ファイルを取得したら、ターミナルを開き、キー ファイルの場所を参照します。
ファイルを base64 形式でエンコードし (base64 -w 0 < your-key-file>)、コマンドの出力をコピーします。
注: MacOS の一部のバージョンでは、-w 0 は不要です。リポジトリで [リポジトリの設定] に移動し、[パイプライン] の [リポジトリ変数] を選択してから、KEY_FILE という名前の新しい変数を作成し、エンコードされたサービス アカウントの資格情報を貼り付けます。
パイプを構成し、PROJECT および KEY_FILE の変数を追加します。
変数の一覧
PROJECT (*): デプロイするアプリケーションを所有するプロジェクト。
KEY_FILE (*): Google サービス アカウントの base64 形式でエンコードされたキー ファイル。
DEPLOYABLES: List of white space separated yaml files to be passed to gcloud. Default ""
. If left empty, the app.yaml
from the current directory will be used.
VERSION: 作成 / 置換されるアプリのバージョン。
BUCKET: デプロイメントに関連付けられたファイルを保存する Google クラウド ストレージ バケット。
IMAGE: 特定の GCR docker イメージでデプロイします。
PROMOTE: true の場合、デプロイされたバージョンはすべてのトラフィックを受信し、false の場合はトラフィックを受信しません。
STOP_PREVIOUS_VERSION: true の場合、トラフィックを受信している以前のバージョンは停止し、false の場合は以前のバージョンは停止しません。
EXTRA_ARGS: CLI に渡される追加の引数 (詳細については Google アプリのデプロイメント ドキュメントを参照してください)。
DEBUG: Turn on extra debug information. Default false
.
(*) = 必須の変数。
エンド ツー エンドの例
例
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 で Spring Boot ベースの Java アプリ ビルドをデプロイ app.yaml
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 で Spring Boot ベースの Java アプリ ビルドをデプロイ app.yaml
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 で Spring Boot ベースの Java アプリ ビルドをデプロイ WEB-INF/appengine-web.xml
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 で標準 Java アプリ ビルドをデプロイ app.yaml
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 で標準 Java アプリ ビルドをデプロイ WEB-INF/appengine-web.xml
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 で標準 Java アプリ ビルドをデプロイ WEB-INF/appengine-web.xml
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 で標準 Java アプリ ビルドをデプロイ app.yaml
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'
この内容はお役に立ちましたか?