CloudComposer のDAGをCircleCIで更新する

Cloud Composer(Airflow) の DAG を GitHub リポジトリで管理して、CI によりリポジトリで管理している DAG を Pull Request がマージされると Cloud Composer の DAG へ同期する方法について説明する。 DAG は、ルートディレクトリ直下の dags/ というディレクトリに格納されている状態を前提とする。 以下の2つのコマンドラインツールを利用して実現できる。 Service Account の認証のために gcloud DAG の同期のために gsutil CircleCI によるワークフローの記述例は以下のとおり 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 version:2.1jobs:rsync-dags:working_directory:~/workspacedocker:- image:gcr.io/google.com/cloudsdktool/cloud-sdk:alpineenvironment:GOOGLE_APPLICATION_CREDENTIALS:/gcp-service-key.jsonsteps:- checkout- run:name:SyncDAGfoldertoGCS'sDAGfoldercommand:| echo "${CLOUD_COMPOSER_CREDENTIALS_JSON}" > ${GOOGLE_APPLICATION_CREDENTIALS}gcloudauthactivate-service-account--key-file${GOOGLE_APPLICATION_CREDENTIALS}gsutil-mrsync-d-rdags\"$(gcloud composer environments describe {COMPOSER_NAME} --project={GCP_PROJECT} --location={REGION} --format="get(config....

October 4, 2021 Â· Shunya Ueta

CircleCI アプリ内の設定ファイルエディターを利用して、CI上の環境変数などローカルCLIでは確認できない挙動を素早く確認して修正する

TL;DR; Pull Requestのコミット履歴を汚さずにCircleCIのConfigmap をWeb上で編集して、CIの挙動をすぐ試せる機能がすごく便利 課題点 CircleCI の上のCIの挙動のデバッグをする際、ブランチにプッシュをせずに挙動が確認できる方法としてローカルCLIを利用する方法がある。 しかし、CIのマシン上で定義されている環境変数などは、ローカルCLIを使用しても確認することができない。 そのためコミットでCIが失敗している際には、 Rerun Job with SSHを利用してSSHで接続して、環境変数を確認 再度 config.yml を修正して、コミットをプッシュ だが、上手くいかないので1→2を繰り返す を繰り返してしまい、コミット履歴が不用意に汚れてしまう。 解決方法 この問題点を解決する方法として、CircleCI アプリ内の設定ファイル エディターを利用するのがすごく便利だった。 この機能は、ジョブのページの右上からアクセスできる。 Rerun ボタンの右に... ボタンがあり、そのボタンをクリックすると Project Settings Configuration File の選択項目があり、Configuration File をクリックすると、config.yml のウェブエディターが起動する。 エディターでYAMLファイルを編集後、右上のSave and Runボタンをクリックすれば、PRで作成されているブランチと別のリモートブランチがCircleCIによって新たに作成されるので、もとのPRのコミット履歴を汚さずにCIの問題を修正できる。 Reference CircleCI アプリ内の設定ファイル エディターの使用

October 1, 2021 Â· Shunya Ueta