У меня AS PNET core AWS Lambda Function. Я получаю сообщение об ошибке http 406.
Я полагаю, что запрос даже не перенаправляется к фактической функции (все журналы c удалены, и только код журнала не оставляет следов).
Я настроил шлюз API с двоичным типом заголовка «application / octet-stream». Я могу вернуть двоичный тип из другой функции.
Сигнатура функции выглядит следующим образом:
[HttpGet("{id}/image")]
[Produces("application/octet-stream")]
[SwaggerResponse(typeof(FileContentResult))]
[SwaggerResponse(typeof(NotFoundObjectResult))]
[SwaggerResponse(typeof(BadRequestObjectResult))]
public ActionResult GetImage(Guid id)
{
...
}
Вывод отладки в Lambda выглядит следующим образом - с секретами XXXX вне.
Lambda Deserialize Amazon.Lambda.APIGatewayEvents.APIGatewayProxyRequest:
{
"resource": "/api/{proxy+}",
"path": "/api/Part/d44ba00a-d746-475b-b7b6-2f46bbfba552/image",
"httpMethod": "GET",
"headers": {
"Accept": "application/octet-stream",
"Authorization": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"CloudFront-Forwarded-Proto": "https",
"CloudFront-Is-Desktop-Viewer": "true",
"CloudFront-Is-Mobile-Viewer": "false",
"CloudFront-Is-SmartTV-Viewer": "false",
"CloudFront-Is-Tablet-Viewer": "false",
"CloudFront-Viewer-Country": "US",
"Host": "XXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXX",
"Via": "1.1 XXXXXXXXXXcc.cloudfront.net (CloudFront)",
"X-Amz-Cf-Id": "XXXXXXXXXXXXXXXXXXXX==",
"X-Amzn-Trace-Id": "Root=1-5ea059a8-91aeb6a4e26516e0fbf984c0",
"X-Forwarded-For": "54.152.206.178, 70.132.33.148",
"X-Forwarded-Port": "443",
"X-Forwarded-Proto": "https"
},
"multiValueHeaders": {
"Accept": [
"application/octet-stream"
],
"Authorization": [
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
],
"CloudFront-Forwarded-Proto": [
"https"
],
"CloudFront-Is-Desktop-Viewer": [
"true"
],
"CloudFront-Is-Mobile-Viewer": [
"false"
],
"CloudFront-Is-SmartTV-Viewer": [
"false"
],
"CloudFront-Is-Tablet-Viewer": [
"false"
],
"CloudFront-Viewer-Country": [
"US"
],
"Host": [
"XXXXXXXXXXXXXXXXXXXXXXXXXXX"
],
"Via": [
"XXXXXXXXXXXXXXXXXX (CloudFront)"
],
"X-Amz-Cf-Id": [
"XXXXXXXXXXXXXXXXXXXX="
],
"X-Amzn-Trace-Id": [
"Root=1-5ea059a8-91aeb6a4e26516e0fbf984c0"
],
"X-Forwarded-For": [
"54.152.206.178, 70.132.33.148"
],
"X-Forwarded-Port": [
"443"
],
"X-Forwarded-Proto": [
"https"
]
},
"queryStringParameters": null,
"multiValueQueryStringParameters": null,
"pathParameters": {
"proxy": "Part/d44ba00a-d746-475b-b7b6-2f46bbfba552/image"
},
"stageVariables": null,
"requestContext": {
"resourceId": "m3mou9",
"authorizer": {
"claims": {
"sub": "XXXXXXXXXXXXXXX",
"aud": "XXXXXXXXXXXXXXXXXXXX",
"event_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"token_use": "id",
"auth_time": "1587567015",
"iss": "https://cognito-idp.us-east-1.amazonaws.com/uXXXXXXXXXXXXXXXXXX,
"cognito:username": "XXXXXXXXXXXXXXXXXXXXXX",
"exp": "Wed Apr 22 15:50:15 UTC 2020",
"iat": "Wed Apr 22 14:50:15 UTC 2020",
"email": "XXXXXXXXXXXXXXXXXXXXXX"
}
},
"resourcePath": "/api/{proxy+}",
"httpMethod": "GET",
"extendedRequestId": "LZLyaEJ6IAMFaHg=",
"requestTime": "22/Apr/2020:14:50:16 +0000",
"path": "/api/Part/d44ba00a-d746-475b-b7b6-2f46bbfba552/image",
"accountId": "XXXXXXXXXXXXXXXXXX",
"protocol": "HTTP/1.1",
"stage": "prod",
"domainPrefix": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"requestTimeEpoch": 1587567016935,
"requestId": "5e1330df-c328-43cb-a5f7-afb4a00f347c",
"identity": {
"cognitoIdentityPoolId": null,
"accountId": null,
"cognitoIdentityId": null,
"caller": null,
"sourceIp": "54.152.206.178",
"principalOrgId": null,
"accessKey": null,
"cognitoAuthenticationType": null,
"cognitoAuthenticationProvider": null,
"userArn": null,
"userAgent": null,
"user": null
},
"domainName": "XXXXXXXXXXXXXoud",
"apiId": "XXXXXXXXXXXXXXXXXXX"
},
"body": null,
"isBase64Encoded": false
}
Лямбда-ответ:
{
"statusCode": 406,
"headers": {},
"multiValueHeaders": {
"Content-Type": [
null
]
},
"body": "",
"isBase64Encoded": false
}
Запрос выглядит так:
GET https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXX/api/Part/d44ba00a-d746-475b-b7b6-2f46bbfba552/image HTTP/1.1
Accept: application/octet-stream
Authorization: XXXXXXXXXXXXXXXXXXXXXXXX
Host: XXXXXXXXXXXXXXXXXXXXXXX
Есть мысли о том, почему я получаю http 406?