ALB のターゲットの Lambda 関数から Multi Value Headers を返す
2019/02/26 16:20
2024/12/30 17:54
複数値を持つ RequestHeader/ResponseHeader がたまにあります。通常こういったリクエストが来た場合でも Event オブジェクトの Headers はただ単純にマップでしかないので、同一キーに対して値は一つです。レスポンスもマップというデータ構造を使っているときには当たり前ですが、同一キーに対して値は一つです。
ALB のターゲットグループに対して lambda.multi_value_headers.enabled 属性を true とすることによりこれに対応できます。このオプションは以下のようなコマンドで変更可能です。
aws elbv2 modify-target-group-attributes \
--target-group-arn <value> \
--attributes <value>
このオプションに変更する際は Lambda 関数の実装自体も変更する必要があります。以下のように multiValueHeaders をキーとして Map<String, List> というような構造となっています。
{
"multiValueHeaders": {
"Set-cookie": [
"cookie-name=cookie-value;Domain=myweb.com;Secure;HttpOnly",
"cookie-name=cookie-value;Expires=May 8, 2019"
],
"Content-Type": ["application/json"]
}
}
おまけ
ちなみに API Gateway は 2018 年 11 月に Multi Value Headers に対応している
see: Support for multi-value parameters in Amazon API Gateway | AWS Compute Blog
Pinned Articles
About
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです
Tags
JavaScript
PowerShell
kibana
elasticsearch
fluentd
nginx
イベント
五十嵐裕美
村川梨衣
logrotate
IoT
Scala
Java
C言語
iputils
ICMP
WUG
mastodon
Swift
AWS
Clock
Windows
アーキテクチャ
PoEAA
iOS
DeviceFarm
プログラミング言語
OS
StepFunctions
Lambda
Serverless
terraform
ポエム
RHEL
ネットワーク
GraphQL
CloudWatch
Linux
Coreutils
network
nc
telnet
LinuxKernel
fpinscala
ELB
IAM
AppSync
EFS
Gradle
english