Amazon MWAAのInvokeRestAPIが追加されたことでどれだけ簡素化されるのか確認する
こんにちは。サービス開発室の武田です。
このエントリは備忘録となります。
先日、Amazon MWAAにAirflowのREST APIを実行できる機能がサポートされました。
この機能がサポートされる前から、REST APIをたたくことは可能だったので、使っていた方もいるでしょう。さて、おそらくAWSのドキュメントからも旧式のやり方は削除されていくと予想されます。それはInvokeRestAPI
が便利だから当然なのですが、古いやり方もたまに思い出したいこともあるだろうということで、比較する形で残しておきます。
こちらが元のやり方です。create-web-login-token
を使用して60秒で切れるログイントークンを取得し、URLを組み立てセッショントークンと交換します。セッショントークンはCookieとして扱うためそれを保存し、以降それを使用してREST APIをたたきます。
$ token=$(aws mwaa create-web-login-token --name MyAirflowEnvironment)
$ web_token=$(echo "$token" | jq -r '.WebToken')
$ web_server_hostname=$(echo "$token" | jq -r '.WebServerHostname')
$ curl -c cookie.txt "https://${web_server_hostname}/aws_mwaa/login" -X POST -d "token=${web_token}"
$ curl -b cookie.txt "https://${web_server_hostname}/api/v1/variables"
{
"total_entries": 1,
"variables": [
{
"description": "post aws cli",
"key": "name",
"value": "classmethod"
}
]
}
前回のエントリからの再掲になりますが、こちらがinvoke-rest-api
を使用した方法です。とっても簡単ですね!
$ aws mwaa invoke-rest-api --name MyAirflowEnvironment --path '/variables' --method GET
{
"RestApiStatusCode": 200,
"RestApiResponse": {
"total_entries": 1,
"variables": [
{
"description": "post aws cli",
"key": "name",
"value": "classmethod"
}
]
}
}
まとめ
そのうち慣れてしまうのでしょうが、今は便利になったことを噛み締めましょう。