Amazon VPC Latticeのみで固定レスポンスを返す(ただし404のみ)
VPC Lattice周りの動作を検証するときにターゲットグループなしでサクッと固定レスポンスを返す設定をご紹介します
ども、大瀧です。 本日一般利用可能になったVPC Lattice、みなさん触ってますか?アクセス制限や共有設定などVPC Lattice周りの動作を検証するときに、ターゲットグループなしでサクッと固定レスポンスを返す設定をご紹介します。
AWS CLIでリスナーに固定レスポンスをセットする
VPC LatticeはALBに構成がよく似ていて、固定レスポンスもALBと同様リスナーのデフォルトアクションとして設定できます。ただ現時点ではAWS管理コンソールに設定項目が表示されないため、AWS CLIで設定します。以下の構文です。
aws vpc-lattice update-listener \ --listener-identifier [VPC LatticeリスナーのARN] \ --service-identifier svc-XXXXXXXX(VPC Latticeサービスの画面にあるID) \ --default-action '{"fixedResponse":{"statusCode":[ステータスコード]}}'
APIリファレンスを見るとステータスコードは100〜599とあるのですが、実際に試してみると「サポートするのは404だけだよ」と親切に(?)教えてもらえるので大人しく404を指定しましょう。
% aws vpc-lattice update-listener --listener-identifier arn:aws:vpc-lattice:ap-northeast-1:XXXXXXXXXXXX:service/svc-XXXXXXXXXXXXXXXX/listener/listener-XXXXXXXXXXXXXXXX --service-identifier svc-XXXXXXXXXXXXXXXX \ --default-action '{"fixedResponse":{"statusCode":200}}' An error occurred (ValidationException) when calling the UpdateListener operation: Only 404 status code is supported. %
動作確認
改めて設定しアクセスしてみると、以下のレスポンスになりました。
$ curl -v http://latticeservice01-XXXXXXXXXXXXXXXX.XXXXXXXX.vpc-lattice-svcs.ap-northeast-1.on.aws * Trying 169.254.171.32:80... * Connected to latticeservice01-XXXXXXXXXXXXXXXX.XXXXXXXX.vpc-lattice-svcs.ap-northeast-1.on.aws (169.254.171.32) port 80 (#0) > GET / HTTP/1.1 > Host: latticeservice01-XXXXXXXXXXXXXXXX.XXXXXXXX.vpc-lattice-svcs.ap-northeast-1.on.aws > User-Agent: curl/7.88.1 > Accept: */* > < HTTP/1.1 404 Not Found < content-length: 9 < content-type: text/plain < date: Sat, 01 Apr 2023 02:39:21 GMT < * Connection #0 to host latticeservice01-XXXXXXXXXXXXXXXX.XXXXXXXX.vpc-lattice-svcs.ap-northeast-1.on.aws left intact Not Found$
きちんと動作していますね!