botocoreで対応していないリージョンを追加する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSのスピードに追従する

AWSは次々と新サービスが出ており、順次世界展開されています。AWSを操作するSDK群も同じように次々と出ています。今回は、そんな高速なリリースにSDKやツール対応が間に合っていない場合の付け焼き刃な対応についてご紹介したいと思います。

CloudSearch対応が...

最近CloudSearchを使うことが多いのですが、日本対応したはずのCloudSeachがコマンドラインツールから使えません。

$ aws cloudsearch describe-domains 

Service cloudsearch not available in region ap-northeast-1

そこで、awscliの内部で使われているbotocoreを修正してみましょう。以下はMacOSXの場合です。

$ cd /Library/Python/2.7/site-packages/botocore/data/aws/cloudsearch
$ sudo vi 2013-01-01.json

以下のような部分が出てきます。

    "metadata": {
        "regions": {
            "us-east-1": null,
            "us-west-1": null,
            "us-west-2": null,
            "eu-west-1": null,
            "ap-southeast-1": null
        },

ここにap-northeast-1を追加します。

    "metadata": {
        "regions": {
            "us-east-1": null,
            "us-west-1": null,
            "us-west-2": null,
            "eu-west-1": null,
            "ap-southeast-1": null,
            "ap-northeast-1": null
        },

それでは、もう1回実行してみましょう。

$ aws cloudsearch describe-domains 
{
    "DomainStatusList": []
}

いい感じにAPIを実行できましたね。

まとめ

本件は、中の人 @j3tm0t0 さんに教えてもらいました!