AWSは、ELBリダイレクトのサポートを追加しました。これは、HTTPサーバーがリッスンしているEC2インスタンスを使用せずに、HTTPからHTTPSへのリダイレクトをすぐに使用できるようにするのに非常に便利です。
この機能のサポートを追加できれば素晴らしいと思います。
resource "aws_lb_listener_rule" "static" {
listener_arn = "${aws_lb_listener.front_end.arn}"
priority = 100
action {
type = "redirect" # "fixed-response"
# the rest has to be concepted
}
}
公式発表: https ://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load
ドキュメンテーション:
この機能に取り組むことに興味があります。
aws_lb_listener
リソースも影響を受けます。
潜在的なTerraform構成については、次のことを提案します。
resource "aws_lb_listener" "web_port80" {
load_balancer_arn = "${aws_lb.web_alb.arn}"
port = 80
protocol = "HTTP"
default_action {
type = "redirect"
host = "#{host}"
path = "/#{path}"
port = "#{port}"
protocol = "#{protocol}"
query = "#{query}"
status_code = "301"
}
}
resource "aws_lb_listener" "web_port80" {
load_balancer_arn = "${aws_lb.web_alb.arn}"
port = 80
protocol = "HTTP"
default_action {
type = "fixed-response"
content_type = "text/plain"
message_body = "Hello"
status_code = "200"
}
}
aws_lb_listener_rule
の構成も同様です。
注意:これらのタイプのルールをTerraformの外部に設定すると、AWSプロバイダーは最新(この記事の執筆時点ではバージョン1.29.0)までのすべてのバージョンでクラッシュします:#5357
すべてのALB / NLBリソースでこのタイプのクラッシュを防ぐために、今日プルリクエストを送信します。おそらく、この機能を追加する前に、これらの修正を待つ必要があります。
提出された衝突防止プルリクエスト:#5367
クラッシュ修正はマスターにマージされているので、これらの変更に加えて、このためのコードで作業しても問題ありません。 👍
これで、「fixed-response」、「forward」、「redirect」の3種類のアクションがあり、それぞれに異なるパラメーターのセットがあります。
選択したアクションタイプのアクション構成をトップレベルでフラット化するのではなく、ブロックにグループ化するとよいでしょうか。
例:
resource "aws_lb_listener_rule" "static" {
action {
type = "forward"
forward {
target_group_arn = "..."
}
}
}
resource "aws_lb_listener_rule" "static" {
action {
type = "fixed-response"
fixed_response {
content_type = "text/plain"
message_body = "Hello"
status_code = "200"
}
}
}
resource "aws_lb_listener_rule" "static" {
action {
type = "redirect"
redirect {
host = "#{host}"
path = "/#{path}"
port = "#{port}"
protocol = "#{protocol}"
query = "#{query}"
status_code = "HTTP_301"
}
}
}
Actionデータ型は、ネストされたオブジェクトにアクションタイプ固有の設定をグループ化するようになったため、この方法で行うと、(ほぼ)1:1のマッピングになります: https ://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_Action
また、リダイレクトアクションのstatus_code
の前にHTTP_
が付いているのに対し、固定応答アクションの場合はそうではないことに気付きました。
このstatus_code
構成を共有する場合は、アクションタイプに応じて何らかの検証を行うか、Terraformプロバイダーで何らかの値変換を行う必要があります。
ほとんどの場合、SDK構造に従うことをお勧めします。そのため、この場合は個別のブロックが適切です。 これにより、引数の検証を簡単に追加できるだけでなく、コードを単純に保つことができます。
この範囲にはfixed-response
が含まれているので、タイトルを更新できますか? 私は特にそれに興味があり、この問題を見つけるために少し時間がかかり、すでに取り組んでいることがわかりました。 どうも。
さらに、上記のAPIリンクにヘッダーを追加することについては何もわかりませんでした。そのため、応答にHSTS
ヘッダーのようなものを設定する方法が明確ではありません。これは、転送モードのALBがそれをバッキングに任せるためです。アプリ。
認証も追加する予定はありますか?
@sklemmerの認証機能リクエストは、#4707および#4711にあります😄
今週中にfixed-response
/ redirect
(#5430)のオープンプルリクエストを確認したいと思っています。
fixed-response
およびredirect
アクションのサポートは、#5430を介してマスターにマージされ、今週後半にAWSプロバイダーのバージョン1.33.0でリリースされます。 🚀
これは、AWSプロバイダーのバージョン1.33.0でリリースされています。 プロバイダーのバージョン管理に関するTerraformのドキュメントを参照するか、アップグレードについてサポートが必要な場合はお問い合わせください。
この問題は_ 30日間_⏳クローズされているため、ロックします。 これは、メンテナがアクティブな問題を見つけて集中するのに役立ちます。
この問題を再開する必要があると思われる場合は、コンテキストを追加するために、この問題にリンクする新しい問題を作成することをお勧めします。 ありがとう!
最も参考になるコメント
fixed-response
およびredirect
アクションのサポートは、#5430を介してマスターにマージされ、今週後半にAWSプロバイダーのバージョン1.33.0でリリースされます。 🚀