Amazon MWAAのInvokeRestAPIが追加されたことでどれだけ簡素化されるのか確認する

Amazon MWAAのInvokeRestAPIが追加されたことでどれだけ簡素化されるのか確認する

Clock Icon2024.10.31

こんにちは。サービス開発室の武田です。

このエントリは備忘録となります。

先日、Amazon MWAAにAirflowのREST APIを実行できる機能がサポートされました。

https://dev.classmethod.jp/articles/update-amazon-mwaa-support-invoke-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"
            }
        ]
    }
}

まとめ

そのうち慣れてしまうのでしょうが、今は便利になったことを噛み締めましょう。

参考URL

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.