Windows PowerShell でジョブを実行する

概要

Cloud Automatorにはいくつかのトリガーが用意されています。HTTPトリガーを使用したジョブを作成すると、ジョブの詳細からリクエストの送信先URLとアクセストークンが表示されます。実行サンプルにはcurlによる実行方法を掲載しておりますが、コマンドライン以外での実行することも可能です。

今回、Windows PowerShellを使ったジョブの実行方法をご紹介します。

手順

前提

  • Windows PowerShellを使用できる環境であること
  • HTTPトリガーを用いたジョブが作成されていること

 

Windows PowerShell を使ったジョブの実行

ジョブ作成時にアクションパラメーターを指定する場合

 作成済のジョブの詳細画面を表示し、以下赤枠部分を確認します。

3SnapCrab_NoName_2018-9-7_11-25-7_No-00.png 

PowerShellを起動し、以下のように実行します。認証情報部分(XXXXXX)は読み替えて頂ますよう、お願いします。

> $headers = @{"Authorization" = "CAAuth XXXXXX"}
> Invoke-RestMethod -Method Post -Uri https://manager.cloudautomator.com/trigger/XXXXXX -Headers $headers -ContentType "application/json" -RetryIntervalSec 10 -MaximumRetryCount 2160

 


ジョブ実行時にアクションパラメーターを指定する場合

 作成済のジョブの詳細画面を表示し、以下赤、黄、青枠部分を確認します。

 screenshot.png

 

PowerShellを起動し、以下のように実行します。認証情報部分(XXXXXX)は読み替えて頂ますよう、お願いします。また、対象リージョンは選択されたものをご入力ください。

> $headers = @{"Authorization" = "CAAuth XXXXXX"}
> $Params = @{region="ap-northeast-1"; specify_instance="identifier"; instance_id="i-XXXXXXXXXX"; trace_status="false"}
> Invoke-RestMethod -Method Post -Uri https://manager.cloudautomator.com/trigger/XXXXXX -Headers $headers -ContentType "application/json" -Body ($Params|Convertto-Json) -RetryIntervalSec 10 -MaximumRetryCount 2160

 

SSL/TLSのバージョンについて

Cloud Automatorではご使用いただくSSL/TLSは最新バージョンを推奨しております。
執筆時点では1.2となりますので、ご使用の環境のSSL/TSLがTLS 1.2より前のバージョンである場合、以下のように明示的にTLS 1.2を指定して実行頂ますよう、お願いいたします。

> [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;

 

リトライについて

Cloud Automator で一時的に負荷が上昇している場合などに、稀にステータスコードが500番台のレスポンスを返す場合がございます。ステータスコードが400~500番台のレスポンスの場合、ジョブは実行されないため、リトライの設定を行うことを推奨しております。

上記のコード例ではRetryIntervalSecオプションに 「10」、MaximumRetryCountオプションに 「2160」を設定しており、ジョブが成功しない場合最大で2160回まで、10秒間隔でリトライします。

 

リトライに関する注意点

Cloud Automatorの負荷上昇時にはレスポンスを返すまで最大30秒かかることがあるため、この設定値では最大までリトライした場合に24時間程度遅れてジョブが実行される可能性がございます。

また、HTTPトリガーではURLやトークンが不正な場合、ジョブの状態が無効になっている場合などに400番台のレスポンスを返すことがございます。Invoke-RestMethodのリトライ設定ではステータスコードが400番台でもリトライするため、リクエストが成功しない状況でもリトライし続けてしまう可能性がございます。

実際の運用の際にはユースケースに合わせてリトライ間隔やリトライ回数を調整していただくことを推奨いたします。

 

 

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください