APIキーを作成し、関数に追加しました。その後、私はAPIを展開してテストしましたが、まだ取得しています:
"message": "Forbidden"
"x-api-key": "theKey"を使用しているときにJSONリクエストでAPIキーを渡すにはどうすればよいですか?
x-api-key
パラメーターは、HTTPヘッダーパラメーターとして渡されます(つまり、JSON本文に追加されません)。 HTTPヘッダーを渡す方法は、使用するHTTPクライアントによって異なります。
たとえば、curlを使用し、POST
JSONペイロードを想定すると、リクエストは次のようになります([api-id]
を実際のIDに、[region]
をAWSリージョンに置き換えます) APIの):
$ curl -X POST -H "x-api-key: theKey" -H "Content-Type: application/json" -d '{"key":"val"}' https://[api-id].execute-api.[region].amazonaws.com
API使用プランを追加してから、プランをAPIステージにリンクする必要がありました。
これがキーをAPIにリンクする唯一の方法であるように思えますが、これがAWSでの最近の変更であるかどうかはわかりません。
「APIキーが必要」オプションをtrueに設定した場合は、以下を確認してください。
「x-api-key」HTTPヘッダーパラメーターをAPI Gatewayに渡す必要があります。
APIキーを作成する必要がありました。
さらに、API GatewayコンソールでAPIキーの使用計画を確認する必要があります。
「API」キーをtrueに設定する場合、APIキーをヘッダーとして渡す必要があります。
APIキーはヘッダーフィールド「x-api-key」として渡されます。このフィールドをヘッダーに追加した後でも、この問題が発生する場合があります。その場合、以下の点を検証してください
Postmanネイティブアプリの以下の設定を使用して、Lambdaから正常な応答を得ることができました-
認可タブの下(ヘッダーの下で同じパラメータを渡したとき、何らかの理由でこれは機能しませんでした)
キー:x-api-key
値:your-api-key-value
追加先:ヘッダー
パブリックDNSを介してアクセスされるプライベートAPIゲートウェイの場合、「x-apigw-api-id」の追加ヘッダーと、設定されている場合は「x-api-key」をapi idとともに渡す必要があります。
curl -v https:// {vpce-id} .execute-api。{region} .vpce.amazonaws.com/test -H 'x-apigw-api-id:{api-id}'
以下に文書化され、