顧客へのAPIをサービスとして提供するには、API Gateway 使用量プランを設定する。API Gateway 使用量プランは、API キーを設定し、キーを知っているユーザーのみ利用可能にし、API キーでリクエストユーザーを特定することで、定義した制限とクォータに基づいて、スロットリングすることができる。今回は、LambdaとAPIGatewayを用いた使用料プラン付きのAPI作成方法を紹介する。
Lambda + APIGatewayでAPIkey作成
- 適当にLambda関数を作成する
- トリガーを追加で、APIGateway、API type = RestAPI、Security = APIKeyを選択する
- 作成したAPIgatewayをコンソール画面で開く
- ステージを開き、CORSを有効にして、デプロイする
- APIKeyを確認する
Curlで検証してみる
curl -X POST https://******************* --header "x-api-key:cLXRV9Enox6AJkzdCViKP52xdMGcA1Sj9QaLzjxR"
React/axiosでリクエストしてみる
const handleGetSubmission = async () => {
const users = await Auth.currentAuthenticatedUser()
const username = users.username + '-' + countryCode
const body = {
user: username
}
try {
await axios
.post(
'https://*********************',
body,
{
headers: {
'Content-type': 'text/plain',
'x-api-key': 'mtpJPQpxRha1SbL2QpC3X5cT8ZygXzY65AQqLRXJ',
},
},
)
.then((res) => {
console.log(res.data)
})
} catch (err) {
console.error(err.message)
}
}
参考文献