AppSyncから、cloudsearchを叩きたかったので、Lambdaに Funtion URLsを設定して、httpリゾルバで取得する形に。Lambdaリゾルバよりテストなどがしやすそうだったので。
ローカルでcloudsearchのLambda作成する形は以下。
https://qiita.com/rei-ta/items/e86546130d157561ba8e
configurationから、Function URL (Lambda Function作成後の設定も可能)
アクセス制御の方法を変えられるので可用性が高そう。
AWS資産から、使用する場合は、AWS IAMで。ローカルから暫定的に試す場合は、NONEで認証せずに使用可。試していませんが、CORSでの設定も可能とのこと。
http経由で実行すると、クエリストリングなのでパラメータ取得方法は、queryStringParametersから取得
https://xkdmddddddddddddddXjck.lambda-url.ap-northeast-1.on.aws/?q=%E3%82%A6%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%8A
export const lambdaHandler = async (event, context) => {
console.log(event.queryStringParameters);
eventのオブジェクトは以下のような構造
2022-08-28T01:38:05.969Z e52d0a8e-3720-4e8f-9a17-a694d33107a2 INFO {
version: '2.0',
routeKey: '$default',
rawPath: '/favicon.ico',
rawQueryString: '',
headers: {
'sec-fetch-mode': 'no-cors',
referer: 'https://xkdmddddddddddddddXjck.lambda-url.ap-northeast-1.on.aws/?q=%E3%82%A6%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%8A',
'x-amzn-tls-version': 'TLSv1.2',
'sec-fetch-site': 'same-origin',
'accept-language': 'ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7',
'x-forwarded-proto': 'https',
'x-forwarded-port': '443',
'x-forwarded-for': '150.249.205.131',
accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
'x-amzn-tls-cipher-suite': 'ECDHE-RSA-AES128-GCM-SHA256',
'sec-ch-ua': '"Chromium";v="104", " Not A;Brand";v="99", "Google Chrome";v="104"',
'sec-ch-ua-mobile': '?0',
'x-amzn-trace-id': 'Root=1-630ac6fd-47285d7b5f1cb6161c6d5e49',
'sec-ch-ua-platform': '"Windows"',
host: 'xkdml4bwlylraovesek6nvsxnu0urjck.lambda-url.ap-northeast-1.on.aws',
'accept-encoding': 'gzip, deflate, br',
'sec-fetch-dest': 'image',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
},
requestContext: {
accountId: 'anonymous',
apiId: 'xkdmddddddddddddddXjck',
domainName: 'xkdmddddddddddddddXjck.lambda-url.ap-northeast-1.on.aws',
domainPrefix: 'xkdmddddddddddddddXjck',
http: {
method: 'GET',
path: '/favicon.ico',
protocol: 'HTTP/1.1',
sourceIp: '150.249.205.131',
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
},
requestId: 'e52d0a8e-3720-4e8f-9a17-a694d33107a2',
routeKey: '$default',
stage: '$default',
time: '28/Aug/2022:01:38:05 +0000',
timeEpoch: 1661650685806
},
isBase64Encoded: false
}