Odo2022/12/19に公開GooglePub/SubcronCloudTasksCloudSchedulertechこんにちは、カスタマーエンジニアの大戸(おおど)です。Cloud」の17日目の記事になります。対象にした、入門向けの内容になります。Scheduler」を利用する方法を、それぞれご紹介します。使う人向けの記事とし、プロダクトの概要と簡単な比較、使い方に関してフォーカスして記載しています。非同期でjobを実行する、分散タスクキューのマネージドサービスになります。リクエストやサービス間リクエストの外部で作業を非同期実行できます。どちらも、メッセージ送信と非同期統合を実装する際に利用されます。似ていて、それぞれの使い所が分かりにくい!と思います。データモデルの違いを理解する必要があります。アーキテクチャ」を読んでいただけると、より理解が深まると思いますが、大きな違いとして、下記があると思います。かの選択」に詳細まとまっているので、読んでいただけると良いと思います。良いと思ったのは、下記の3点になります。フルマネージドジョブスケジューラです。聞くと、サーバを構築/運用したことがある方には、馴染み深いと思いますが、定期的にコマンドを実行する手段としてお馴染みだと思います。2つのうちから選ぶことができます。叩くことで、連携を実現しています。イベントトリガーとして利用できます。比較」に詳細の記載があるので、見ていただくといいかと思います。Request(POST)で呼び出す!という形にしました。冪等性を担保した形で、開発する必要があります。回だけ実行される」と記載があるものの、「完全に重複排除はできない」という注意書きがあります。「まれに、同じジョブの複数のインスタンスがリクエストされる可能性があります。」とのことで、こちらも重複実行される可能性があることを書いています。1回かぎりの配信」を利用すると良いと思います。利用することで、レイテンシーの低下等のデメリットもあるので、注意が必要です。世代)」を参考に、下記のように設定しました。主な変更箇所は、下記になります。(秒)コードは、python3.10のランタイムを選択し、下記のように記載しました。エントリポイント(実行したい関数名)は、下記のコードに合わせて「worker」にする必要があるので、注意してください。」と組み合わせて利用することをオススメします。キューを作成する必要があります。キューにタスクを追加する#始める前に」を参考に、APIの有効化の実行をしてください。ターミナルで実行し、キューを作成します。作成するためのScriptを作成します。インストールされていなかったので、インストール後、下記のように実行しました。送信されましたが、タスクが実行されていないように見えます。コンソール画面それは、タスク作成時に、schedule_timeを指定しており、今回のコードでは下記のように、現在時刻から600秒後にtaskが実行されるように設定してあるためです。実行することができます。実行ログを確認し、無事にタスクが完了したことを確認できました。実行する際には、一度「キューの過負荷」の項目をよく確認した上で、利用してください。ように設定項目は多くなく、簡単に設定ができます。有効にする」を実施した上で、実行してください。下記の画面に遷移し、「ジョブのスケジュール設定」のボタンをクリックします。画面(ジョブのスケジュール設定)次に、名前や、リージョンの指定、実行頻度を設定します。今回は、すぐに実行されてほしいので毎分実行するようにしました。タイムゾーンの設定は日本に設定しています。ここが間違っていると、数時間ずれて実行されてしまうので、注意してください。画面(スケジュールを定義する)次に、実行内容の設定です。実行したいので、URLの指定も含めて、設定します。実行されたか分かるように、HTTPボディにメッセージが飛ぶように設定してあります。jobを処理する!というようなこともあると思います。画面(実行内容を構成する)最後に、オプションの設定でリトライの設定等を行います。失敗した場合の処理等に関して記述ができるようになっています。設定は完了になります。ログにて、無事に処理が実行されたことが確認できました。呼び出す検証までを実施しました。通知を実施するというのがあるような気がしました。できないケースがあるので、非機能要件まで整理し、適切なサービスを選択して、要件を実現するというのが大事であるということが、わかると思います。私の記事は以上で終了となります。ここまで読んでくださった方、ありがとうございました。Pub/Sub」に関する記事になります。元SREで運用効率化を考えるのが得意。