ども、大瀧です。 本日一般利用可能になった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$
きちんと動作していますね!