GitHub Actions を使用してサーバーレス プラットフォームにデプロイ
Google Cloud Japan Team
※この投稿は米国時間 2020 年 12 月 15 日に、Google Cloud blog に投稿されたものの抄訳です。
サーバーレス コンピューティングを導入するとインフラストラクチャを意識する必要がなくなるため、デベロッパーは優れたアプリケーションの構築に専念できます。Google Cloud Platform は Cloud Functions、App Engine、Cloud Run の 3 つのサーバーレス コンピューティング プラットフォームを提供しており、いずれもサーバー管理不要、事前プロビジョニング不要、自動スケーリング、使用したリソースのみの支払いというメリットがあります。
サーバーレス アプリケーションはすばやく簡単に提供を開始できますが、長期間にわたって動かし続けるには継続的インテグレーションと継続的デリバリー(CI / CD)のシステムが重要です。ところが CI / CD システムは複雑さで有名になってしまっています。そこで、テスト用インフラストラクチャを抽象化し、デベロッパー中心の CI / CD システムを構築することで負荷の削減を目指すのが GitHub Actions です。使い始めるのは簡単で、構成ファイルをリポジトリに追加すればビルド、テスト、デプロイを自動化できます。Google は、Google Cloud Platform の統合 GitHub アクションを GitHub で提供しています。
ここでは、統合 GitHub アクションを使って Google Cloud Platform のサーバーレス オプションにデプロイする方法をご説明します。Google のサーバーレス ホスティングのオプションや Google Cloud Platform の幅広いホスティング オプションをご覧になり、最適なプラットフォームを選択する際の参考にしてください。
Cloud Functions
Cloud Functions は Google Cloud の Functions as a Service プラットフォームで、イベントや HTTP リクエストに応答する単一目的のスタンドアロン関数を作成できます。通知メールの送信、データベースのサニタイズやメンテナンス、Webhook との統合、バックグラウンド タスクの処理などといった、コードの部品として使うのに便利です。
google-github-actions/deploy-cloud-functions を使うと、関数名とランタイムを指定して HTTP 関数をデプロイできます。
Pub/Sub メッセージ、Firebase イベント、Cloud Storage バケットの変更などのイベントによってトリガーされるバックグラウンド関数をデプロイするには、トリガーのタイプとリソースを指定します。
Cloud Storage に新しいオブジェクトが作成されたときにトリガーされる関数は、次のような入力でデプロイできます。
イベント トリガーの指定に関する詳細をご覧ください。
App Engine
App Engine は先進的なウェブ アプリケーションをホストするサーバーレス プラットフォームの元祖です。App Engine を使用すると、一般的なプログラミング言語の中からランタイムを選択して、ソースからデプロイできます。
ソースコードをデプロイするには google-github-actions/deploy-appengine アクションを使用します。その際にはデプロイの権限があるサービス アカウント キーと App Engine アプリの設定ファイル app.yaml(アプリケーションと同じディレクトリに配置され、デプロイメントで使用するサービスを定義する)を指定します。
サービス アカウントには複数のプロジェクトに対する権限が付与されている場合もあるので、正しいプロジェクトにデプロイされるようプロジェクト ID も設定します。
Cloud Run
Cloud Run は任意の言語、ライブラリ、バイナリのステートレスなコンテナをホストします。REST API のバックエンド、軽量のデータ処理、自動化されたサービス(Webhook や予約タスクなど)などの用途に最適です。
Google Container Registry や Artifact Registry でホストされているコンテナ イメージを Cloud Run にデプロイして新しいサービスやリビジョンを作成するには、google-github-actions/deploy-cloudrun アクションを使用します。
イメージをビルドする必要がある場合は、組み込みの Docker ツールを使ってイメージをビルドして push するか、次にご紹介する setup-gcloud アクションで gcloud CLI ツールを使って Cloud Build でビルドを実行します。
Cloud SDK の設定
Cloud SDK(gcloud CLI ツール)は Google Cloud Platform とのインタラクションでよく使用されるツールです。gcloud CLI ツールをパスに追加し、多くの Google Cloud サービスとインタラクションできるようにするには、setup-gcloud アクションを使います。このアクションで export_default_credentials を使うと、他の Google Cloud Platform アクションの認証もできます。これを行うとパスが GOOGLE_APPLICATION_CREDENTIALS 環境変数としてデフォルトのアプリケーション認証情報にエクスポートされ、後のステップでサービスが自動的に認証されるようになります。これを行っておくと、他のアクションで credentials を入力として指定する必要はありません。
ぜひお試しください
Google と GitHub によって簡単に CI / CD パイプラインを構築できるようになりました。今すぐ Google Cloud の GitHub アクションをお試しください。
Google の GitHub アクションをお試しのうえ、使用感についてのフィードバックをお寄せください。
サンプルのワークフローをお試しください。
テスト環境を制御する必要がある場合は、Google Cloud でセルフホストの GitHub Actions ランナーをセットアップすることもできます。
2020 年 12 月 16 日午前 11 時(太平洋時間) / 午後 2 時(東部時間)から GitHub Actions と Google Cloud による CI / CD パイプラインの自動化の詳細をご説明します。ぜひご覧ください。
-Developer Relations エンジニア Averi Kitsch