Terraform-provider-aws: 'redirect'および 'fixed-response'のサポートをlb_listener_ruleアクションタイプに追加します

作成日 2018年07月26日  ·  12コメント  ·  ソース: hashicorp/terraform-provider-aws

コミュニティノート

  • コミュニティとメンテナがこのリクエストに優先順位を付けるのを助けるために、元の問題に👍反応を追加して、この問題に投票してください
  • 「+1」または「私も」コメントを残さないでください。これらは問題のフォロワーに余分なノイズを生成し、リクエストの優先順位付けに役立ちません。
  • この問題に取り組むことに興味がある場合、またはプルリクエストを送信した場合は、コメントを残してください

説明

AWSは、ELBリダイレクトのサポートを追加しました。これは、HTTPサーバーがリッスンしているEC2インスタンスを使用せずに、HTTPからHTTPSへのリダイレクトをすぐに使用できるようにするのに非常に便利です。

この機能のサポートを追加できれば素晴らしいと思います。

新規または影響を受けるリソース

  • aws_lb_listener_rule

潜在的なTerraform構成

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

ドキュメンテーション:

enhancement servicelbv2

最も参考になるコメント

fixed-responseおよびredirectアクションのサポートは、#5430を介してマスターにマージされ、今週後半にAWSプロバイダーのバージョン1.33.0でリリースされます。 🚀

全てのコメント12件

この機能に取り組むことに興味があります。

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日間_⏳クローズされているため、ロックします。 これは、メンテナがアクティブな問題を見つけて集中するのに役立ちます。

この問題を再開する必要があると思われる場合は、コンテキストを追加するために、この問題にリンクする新しい問題を作成することをお勧めします。 ありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価