Anonymous
Семейство адресов не поддерживается протоколом при попытке запустить приложение .Net в лямбда-выражении AWS
Сообщение
Anonymous » 24 июл 2024, 21:10
Когда я при попытке получить информацию, отправив запрос на получение от post man, он выдает ошибку:
"Семейство адресов не поддерживается протоколом"
Дело в том, что я не совсем уверен, упускаю ли я что-то в коде или это на стороне AWS.
Код: Выделить всё
{
"resource": "/{proxy+}",
"path": "/api/UmcCatalog",
"httpMethod": "GET",
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Cache-Control": "no-cache",
"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": "IN",
"Host": "81qy2.execute-api.us-west-1.amazonaws.com",
"Postman-Token": "714505fe-df8a-4673-b0e1-10030c940a63",
"User-Agent": "PostmanRuntime/7.21.0",
"Via": "1.1 49a7052b1cf6cbcdc134f38b7efabee5.cloudfront.net (CloudFront)",
"X-Amz-Cf-Id": "3FIUIXfLI7CVRXPZQixJJ-MMZz7UFQ-i3jZLaYYF5HOQNSw==",
"X-Amzn-Trace-Id": "Root=1-5e147952-8d33a081f359a654180d56af",
"X-Forwarded-For": "company IP",
"X-Forwarded-Port": "443",
"X-Forwarded-Proto": "https"
},
"multiValueHeaders": {
"Accept": [
"*/*"
],
"Accept-Encoding": [
"gzip, deflate"
],
"Cache-Control": [
"no-cache"
],
"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": [
"IN"
],
"Host": [
"8a9ry2.execute-api.us-west-1.amazonaws.com"
],
"Postman-Token": [
"714505fe-df8a-4673-b0e1-10030c940a63"
],
"User-Agent": [
"PostmanRuntime/7.21.0"
],
"Via": [
"1.1 49a7056cbcdc134f38b7efabee5.cloudfront.net (CloudFront)"
],
"X-Amz-Cf-Id": [
"3FIUIX7CVRXPZQixJJ-MMZzARQr1Oj7UFQ-i3jZLaYYF5HOQNSw=="
],
"X-Amzn-Trace-Id": [
"Root=1-5e147952-8d33a0a654180d56af"
],
"X-Forwarded-For": [
"company IP"
],
"X-Forwarded-Port": [
"443"
],
"X-Forwarded-Proto": [
"https"
]
},
"queryStringParameters": null,
"multiValueQueryStringParameters": null,
"pathParameters": {
"proxy": "api/UmcCatalog"
},
"stageVariables": null,
"requestContext": {
"resourceId": "tt4ts5",
"resourcePath": "/{proxy+}",
"httpMethod": "GET",
"extendedRequestId": "F7fk2FrVyK4Fcow=",
"requestTime": "07/Jan/2020:12:28:02 +0000",
"path": "/Prod/api/UmcCatalog",
"accountId": "xxxxxxx",
"protocol": "HTTP/1.1",
"stage": "Prod",
"domainPrefix": "81a9ry2",
"requestTimeEpoch": 1578400082183,
"requestId": "d37749bf-cd19-4cf3-9209-8befcc735154",
"identity": {
"cognitoIdentityPoolId": null,
"accountId": null,
"cognitoIdentityId": null,
"caller": null,
"sourceIp": "182.72.188.98",
"principalOrgId": null,
"accessKey": null,
"cognitoAuthenticationType": null,
"cognitoAuthenticationProvider": null,
"userArn": null,
"userAgent": "PostmanRuntime/7.21.0",
"user": null
},
"domainName": "81qzy2.execute-api.us-west-1.amazonaws.com",
"apiId": "81qzy2"
},
"body": null,
"isBase64Encoded": false
}
Мой код .NET выглядит так, где я помещаю точку входа лямбда
Код: Выделить всё
try{
if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("AWS_LAMBDA_FUNCTION_NAME")))
{
CreateWebHostBuilder(args).Build().Run();
GlobalLogger.Current.Info("init main in program file");
}
else
{
var lambdaEntry = new LambdaEntryPoint();
LambdaLogger.Log("entered entry point");
var functionHandler = (Func)(lambdaEntry.FunctionHandlerAsync);
using (var handlerWrapper = HandlerWrapper.GetHandlerWrapper(functionHandler, new
Amazon.Lambda.Serialization.Json.JsonSerializer()))
using (var bootstrap = new LambdaBootstrap(handlerWrapper))
{
bootstrap.RunAsync().Wait();
}
}
}
Я удалил исходные значения по соображениям безопасности. Любая помощь приветствуется.
Подробнее здесь:
https://stackoverflow.com/questions/596 ... ication-in
1721844648
Anonymous
Когда я при попытке получить информацию, отправив запрос на получение от post man, он выдает ошибку: "Семейство адресов не поддерживается протоколом" Дело в том, что я не совсем уверен, упускаю ли я что-то в коде или это на стороне AWS. [code]{ "resource": "/{proxy+}", "path": "/api/UmcCatalog", "httpMethod": "GET", "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Cache-Control": "no-cache", "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": "IN", "Host": "81qy2.execute-api.us-west-1.amazonaws.com", "Postman-Token": "714505fe-df8a-4673-b0e1-10030c940a63", "User-Agent": "PostmanRuntime/7.21.0", "Via": "1.1 49a7052b1cf6cbcdc134f38b7efabee5.cloudfront.net (CloudFront)", "X-Amz-Cf-Id": "3FIUIXfLI7CVRXPZQixJJ-MMZz7UFQ-i3jZLaYYF5HOQNSw==", "X-Amzn-Trace-Id": "Root=1-5e147952-8d33a081f359a654180d56af", "X-Forwarded-For": "company IP", "X-Forwarded-Port": "443", "X-Forwarded-Proto": "https" }, "multiValueHeaders": { "Accept": [ "*/*" ], "Accept-Encoding": [ "gzip, deflate" ], "Cache-Control": [ "no-cache" ], "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": [ "IN" ], "Host": [ "8a9ry2.execute-api.us-west-1.amazonaws.com" ], "Postman-Token": [ "714505fe-df8a-4673-b0e1-10030c940a63" ], "User-Agent": [ "PostmanRuntime/7.21.0" ], "Via": [ "1.1 49a7056cbcdc134f38b7efabee5.cloudfront.net (CloudFront)" ], "X-Amz-Cf-Id": [ "3FIUIX7CVRXPZQixJJ-MMZzARQr1Oj7UFQ-i3jZLaYYF5HOQNSw==" ], "X-Amzn-Trace-Id": [ "Root=1-5e147952-8d33a0a654180d56af" ], "X-Forwarded-For": [ "company IP" ], "X-Forwarded-Port": [ "443" ], "X-Forwarded-Proto": [ "https" ] }, "queryStringParameters": null, "multiValueQueryStringParameters": null, "pathParameters": { "proxy": "api/UmcCatalog" }, "stageVariables": null, "requestContext": { "resourceId": "tt4ts5", "resourcePath": "/{proxy+}", "httpMethod": "GET", "extendedRequestId": "F7fk2FrVyK4Fcow=", "requestTime": "07/Jan/2020:12:28:02 +0000", "path": "/Prod/api/UmcCatalog", "accountId": "xxxxxxx", "protocol": "HTTP/1.1", "stage": "Prod", "domainPrefix": "81a9ry2", "requestTimeEpoch": 1578400082183, "requestId": "d37749bf-cd19-4cf3-9209-8befcc735154", "identity": { "cognitoIdentityPoolId": null, "accountId": null, "cognitoIdentityId": null, "caller": null, "sourceIp": "182.72.188.98", "principalOrgId": null, "accessKey": null, "cognitoAuthenticationType": null, "cognitoAuthenticationProvider": null, "userArn": null, "userAgent": "PostmanRuntime/7.21.0", "user": null }, "domainName": "81qzy2.execute-api.us-west-1.amazonaws.com", "apiId": "81qzy2" }, "body": null, "isBase64Encoded": false } [/code] Мой код .NET выглядит так, где я помещаю точку входа лямбда [code]try{ if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("AWS_LAMBDA_FUNCTION_NAME"))) { CreateWebHostBuilder(args).Build().Run(); GlobalLogger.Current.Info("init main in program file"); } else { var lambdaEntry = new LambdaEntryPoint(); LambdaLogger.Log("entered entry point"); var functionHandler = (Func)(lambdaEntry.FunctionHandlerAsync); using (var handlerWrapper = HandlerWrapper.GetHandlerWrapper(functionHandler, new Amazon.Lambda.Serialization.Json.JsonSerializer())) using (var bootstrap = new LambdaBootstrap(handlerWrapper)) { bootstrap.RunAsync().Wait(); } } } [/code] Я удалил исходные значения по соображениям безопасности. Любая помощь приветствуется. Подробнее здесь: [url]https://stackoverflow.com/questions/59629296/address-family-not-supported-by-protocol-while-trying-to-run-net-application-in[/url]