【Cloud Automator API】curlコマンドサンプル集(運用ジョブ編)

記事タイトルとURLをコピーする

概要

サーバーワークスの提供するAWS運用自動化ツールCloud AutomatorAPIを提供しており、運用ジョブの作成・編集等が可能です。ユースケースとしては大量のジョブを一括で作成したり、ジョブ情報の保存等に用いられています。

今回代表的なHTTPリクエストの実行方法の1つである curl コマンドを用いたCloud Automator APIの実行方法のサンプル集をまとめてみました。今回は、運用ジョブを中心にまとめました。

前提

  • コマンドのパラメータとしてジョブIDやグループIDの指定が必要な場合がありますが、今回は全て 1 を例としてコマンド例を記載しています。
  • ジョブ名等のパラメータも実際に利用可能な値をサンプルとして記載していますので、適宜読み替えて頂ますよう、お願いします。
  • 利用にはAPIキーの取得が必要ですが、それらの手順はAPIドキュメント等を参照ください。本記事では xxxx のようにマスキングしています。

コマンドサンプル

ジョブ作成

トリガー( rule_type )やアクション( action_type )によって設定値( rule_value, action_value )が必要な場合があるのでAPIドキュメントを参照しながら構成します。

HTTPトリガー / EC2: AMIを作成アクション

curl -X POST https://manager.cloudautomator.com/api/v1/jobs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxxx" \
-d '{"name":"api-test-job","aws_account_id": 1,"group_id": 1,"rule_type": "webhook","action_type": "create_image","action_value": {"region": "ap-northeast-1","tag_key": "target_group","tag_value": "enabled","generation": 1,"image_name": "api-test-ami","trace_status": "true","reboot_instance": "false","specify_image_instance": "tag","add_same_tag_to_snapshot": "false"}}'

HTTPトリガー / Route53: リソースレコードセットを更新アクション

curl -X POST https://manager.cloudautomator.com/api/v1/jobs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxxx" \
-d '{"name":"api-test-job","aws_account_id": 1,"group_id": 1,"rule_type": "webhook","action_type": "update_record_set","action_value": {"zone_name": "cloudautomator.local", "record_set_name": "www.cloudautomator.local", "record_set_type": "A", "record_set_value": "8.8.8.8"}}'

HTTPトリガー / EC2: EBSスナップショットを作成アクション

curl -X POST https://manager.cloudautomator.com/api/v1/jobs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxxx" \
-d '{"name":"api-test-job","aws_account_id": 1,"group_id": 1,"rule_type": "webhook","action_type": "create_ebs_snapshot","action_value": {"region": "ap-northeast-1", "specify_volume": "identifier", "volume_id": "vol-xxxx", "generation": 1}}'

即時実行トリガー / EC2: EBSスナップショットを作成アクション

curl -X POST https://manager.cloudautomator.com/api/v1/jobs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxxx" \
-d '{"name":"api-test-job","aws_account_id": 1,"group_id": 1,"rule_type": "immediate_execution","action_type": "create_ebs_snapshot","action_value": {"region": "ap-northeast-1", "specify_volume": "identifier", "volume_id": "vol-xxxx", "generation": 1}}'

タイマートリガー / EC2: EBSスナップショットを作成アクション

curl -X POST https://manager.cloudautomator.com/api/v1/jobs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxxx" \
-d '{"name":"api-test-job","aws_account_id": 1,"group_id": 1,"rule_type": "cron", "rule_value": {"hour": 1, "minutes": 1, "schedule_type": "one_time", "one_time_schedule": "2025/01/31"}, "action_type": "create_ebs_snapshot","action_value": {"region": "ap-northeast-1", "specify_volume": "identifier", "volume_id": "vol-0ea55022cefed4280", "generation": 1}}'

ジョブ取得

1件取得

curl https://manager.cloudautomator.com/api/v1/jobs/1 \
-H "Authorization: Bearer xxxx" \
-H "Content-Type: application/json"

複数取得

このAPIで注意が必要なのは、ジョブ数によっては全件取得できるとは限りません。 レスポンスの links キーの値等を確認して別のジョブがまだあるようでしたら、追加のリクエストを実行する等の処理が必要です。

curl https://manager.cloudautomator.com/api/v1/jobs 
\-H "Authorization: Bearer xxxx" \
-H "Content-Type: application/json"

ジョブ編集

ジョブ名を編集するパターンです。

curl -X PATCH https://manager.cloudautomator.com/api/v1/jobs/1 \
-H "Authorization: Bearer xxxx" \
-H "Content-Type: application/json" \
-d '{"name": "edit from api"}'

ジョブ削除

curl -X DELETE https://manager.cloudautomator.com/api/v1/jobs/1 \
-H "Authorization: Bearer xxxx" \
-H "Content-Type: application/json"

以上です。APIを活用して効率的な運用を実現していきましょう。

参考

blog.serverworks.co.jp

api.cloudautomator.com

紅林輝(くればやしあきら)(サービス開発部) 記事一覧

サービス開発部所属。2015年にサーバーワークスにJOIN。クラウドインテグレーション部を経て、現在はCloud Automatorの開発に従事。ドラクエ部。推しナンバーはⅤ、推しモンスターはクックルー。