LoginSignup
2
2

More than 5 years have passed since last update.

【AWS_CLI】ALBのリダイレクト設定

Last updated at Posted at 2018-07-29

2018/7/25に対応されたALBのリダイレクト設定です。
参考ページ

CLI version

awscli
aws --version
aws-cli/1.15.66 Python/3.6.4 Darwin/17.7.0 botocore/1.10.65

そもそもaws-cli/1.15.66より古いバージョンだと、RedirectConfigがないのでエラー吐きます。
なのでアップデート必須

JSON

ワンライナーで試してたのですが、RedirectConfigを2つ以上設定すると謎のエラー吐くのでJSONで逃げました。

alb_RedirectConfig.json
{
    "LoadBalancerArn": "[ALBのARN]",
    "Protocol": "HTTP",
    "Port": 80,
    "DefaultActions": [
        {
            "Type": "redirect",
            "RedirectConfig": {
                "Protocol": "HTTPS",
                "Port": "443",
                "Host": "#{host}",
                "Path": "/#{path}",
                "Query": "#{query}",
                "StatusCode": "HTTP_301"
            }
        }
    ]

CLI

awscli
aws elbv2 create-listener  --cli-input-json file://alb_RedirectConfig.json  --profile [aws conflimのprofile]

--profileはプロファイル分けてる人用なので、要らなければ外してください。

結果
$ aws elbv2 create-listener  --profile jupiter_develop --cli-input-json file://alb_RedirectConfig.json
{
    "Listeners": [
        {
            "ListenerArn": "[ListenerのARN]",
            "LoadBalancerArn": "[ALBのARN]",
            "Port": 80,
            "Protocol": "HTTP",
            "DefaultActions": [
                {
                    "Type": "redirect",
                    "RedirectConfig": {
                        "Protocol": "HTTPS",
                        "Port": "443",
                        "Host": "#{host}",
                        "Path": "/#{path}",
                        "Query": "#{query}",
                        "StatusCode": "HTTP_301"
                    }
                }
            ]
        }
    ]
}

感想

ちなみにコンソールからやると5分で終わります/(^o^)\
CLIでやりたかったので、あれこれ調べたりCLIバージョンではまったり、エラーでハマったりとかしてたら2時間くらいかかりました・・・

ただやっぱり画面はコロコロ変わるのがAWSなので、コマンドで残すのは再現性高くていいなと思ってます。

おまけ

ワンライナーのときの謎のエラーです。
StatusCode=HTTP_301だと出ないですが、2つ以上の要素足していくとでます/(^o^)\

error
aws elbv2 create-listener  --load-balancer-arn [albのarn] --protocol HTTP --port 80 --default-actions Type=redirect,RedirectConfig={StatusCode=HTTP_301,Port=80} 
Invalid type for parameter DefaultActions[0].RedirectConfig, value: StatusCode=HTTP_301, type: <class 'str'>, valid types: <class 'dict'>
Invalid type for parameter DefaultActions[1].RedirectConfig, value: Port=80, type: <class 'str'>, valid types: <class 'dict'>

参考資料

create-rule — AWS CLI 1.15.66 Command Reference

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2