Help us understand the problem. What is going on with this article?

GCP Workflowsを試す

Workflows

https://cloud.google.com/workflows

httpベースのAPIのワークフローをyamlで定義して実行できるくんっぽい、最近betaが出たっぽい

とりあえずquick startをやる

https://cloud.google.com/workflows/docs/quickstart-gcloud

公式ドキュメント通りにyaml書いて、gcloudコマンドでデプロイする。
それからgcloudコマンドで実行する。

と思ったら普通に失敗した。
公式ドキュメント中のyamlだと http://worldclockapi.com という時間情報を取得するAPIを使うのだが、そのまま叩くと403が返ってくる。これはちょっと……。
ということで代わりになりそうな http://worldtimeapi.org/ というのを見つけたのでこれを使ってみる。

少し修正したquick start

以下の様なファイルを作成

myFirstWorkflow.yaml
- getCurrentTime:
    call: http.get
    args:
        url: http://worldtimeapi.org/api/timezone/Asia/Tokyo # ここを修正
    result: currentTime
- readWikipedia:
    call: http.get
    args:
        url: https://en.wikipedia.org/w/api.php
        query:
            action: opensearch
            search: ${currentTime.body.day_of_week} # レスポンスのフォーマットが異なるためここも修正
    result: wikiResult
- returnResult:
    return: ${wikiResult.body[1]}

以下コマンドでワークフローをデプロイする
公式だとサービスアカウントを指定していたが、無しでも可能ではある模様
gcloud beta workflows deploy myFirstWorkflow --source=myFirstWorkflow.yaml

以下コマンドでワークフローを実行する
非同期で実行されるため、以下コマンド実行後に表示されるコマンドを叩くか、gcp console画面を見れば実行結果の確認が可能
gcloud beta workflows execute myFirstWorkflow

これで成功したら完了、作成したワークフローをもう使わないのであれば削除しておく
なお5,000 steps以上から課金が発生するため注意

感想

  • 良さそうなとこ
    • 機能しぼってるのか、まだbetaだからなのかわからないけど簡単
    • 単一のyamlにワークフローをまとめることができるので、どういう順序でジョブが実行されるかの確認がしやすい
    • 画面からワークフロー単位でエラー詳細、ログが見れる
    • gcloudコマンド、API経由でワークフローを実行できるのでGAE, GCEとか色んなところから呼べそう
  • 不満なとこ
    • 途中で失敗したらそれで終わり、リトライ機構とか、途中から再開は無さそう?
    • ワークフローのどこまで完了したか、的なグラフィカルなUIは無い、yamlしか見れない
    • 定期実行する場合は単体では無理で、Cloud Schedulerとか組み合わせないとダメそう
    • エミュレータは無く、ローカルでの動作確認とかは出来無さそう

まとめ

簡易的、小規模のプロジェクトなら試しに使ってみても良いかもだけど、ちゃんとやるなら他のワークフローツール使った方が良さそうな感じに見えました (他をそんなに知らない)
今後に期待

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした