views4GCPのストレージサービスについてまとめてみた。Exp:302システム開発本部所属Googleインフラ好きTweetShareHatenaGKE大好きマン、SREチームの吉村と申します。今回は少し浮気して、GCPにある古参のコンテナ実行環境のCloudBuildをご紹介します。BuildCloudBuildの実行トリガーの少なさに涙を流したことはありませんか?リポジトリ連携できないけどCloudBuildを動かしたい!そんなご要望にCloudFunctionsがお応え致します。GCSへのファイル更新をトリガーに、GCSのバケットへアップロードされたzipファイルをコンテナにマウントしてサーバーレス処理を試してみます。1日120分無料のCloudBuildを使って、手軽にコンテナを利用したサーバーレス処理を体験しましょう。目次CloudBuildAPIの利用方法Node.jsからGoogleAPIを利用する方法CloudFunctionsからCloudBuildを利用する方法CloudBuildAPIの利用方法CloudBuildはRESTのAPIを持ってます。リファレンスcurlコマンドを使ってCloudBuildを走らせてみましょう。https://cloudbuild.googleapis.com/v1/projects/[プロジェクト名]/builds\?alt\=json動きましたか?ローカルでgcloudコマンドを利用すると簡単にGoogleAPIへのアクセストークンを取得できます。実行した環境に正しいIAM権限があれば、リポジトリ連携しなくてもCloudBuildは起動します。リリースサイクル高速化!!Node.jsからGoogleAPIを利用する方法googleapisを利用するとgcloudコマンドと同様に、プログラムの中でGoogleAPIへのアクセストークンが取得できます。Client以下のコマンドを実行してください。request以下のコードを書きます。});};main()コードを実行します。test.js動きましたか?crulコマンドで実行した結果と同じになったと思います。CloudFunctionsからCloudBuildを利用する方法それではCloudFunctionsからCloudBuildを実行してみましょう!これまでのローカル実行と異なり、実行するユーザはCloudFunctionsのサービスアカウントになります。CloudFunctionsのサービスアカウントにCloudBuildの権限付与してください。※デフォルトのサービスアカウントを利用する場合は、プロジェクトの編集権限が付いてるので、権限設定不要です。処理フローを下記に示します。デプロイ準備をします。test-function準備した環境へ以下のコードを書きます。[プロジェクト名],[バケット名],[ファイル名]はご自身の環境に合わせてください。}}functionsをデプロイします。以下のコマンドを実行してください。GCSへファイルアップロードしてfunctionsを実行してみましょう。[バケット名]CloudBuildのログを確認してみましょう。ログの末尾に以下の記載があれば成功です!お疲れ様でした。package.jsonPUSHDONEいかがでしてたでしょうか?GCPではフルマネージドなサービスを組み合わせ、簡単にコンテナを利用したサーバーレス処理が可能です。常駐するアプリケーション構成は不可能ですが、CloudBuildの利便性とCloudFunctionsの接着力で様々な処理が可能になります。サービス間の通信はGCP内部でのgoogleapi認証が透過的に行われており、外部からの脅威を防ぎます。コスト・パフォーマンス・セキュリティと三拍子揃ったGCPを利用してシステムを構築してみませんか?GKE上で常駐してくれるコンテナ達も素敵ですが、CloudBuild上に来てくれるコンテナ達も魅力的です。Buildに追加された新機能(主にGitHubとの連携強化)を紹介!超簡単。