Я новичок в AWS Lambda Services. Я создал лямбда-метод без сервера и успешно развернул его в облаке AWS.
Затем я создал собственный авторизатор Lambda и настроил шлюз API для метода Lambda и собственного авторизатора.
Так же, мне нужно предоставить много других, менее серверных, лямбда-методов, поэтому я решил перенести свой лямбда-метод в безсерверный .Net API Project. Я могу развернуть этот api-проект в облаке AWS, а затем вручную настроить авторизатор на использование моего собственного метода Authorize lambda.
Трудная часть - , я хочу настроить все это через файл serverless.template.
Я изо всех сил пытаюсь получить RESTAPIID для моего пользовательского метода авторизации и как настроить авторизатор для моей лямбда-функции с помощью файла serverless.template. Ниже приведены конфигурации, которые я сделал.
Также как получить AuthorizerUri ?
Я не хочу жестко кодировать что-либо.
"Resources" : {
**//How I can create this serverless function to use my custom authorizer?**
"Create" : {
"Type" : "AWS::Serverless::Function",
"Properties": {
"Handler": "Osn.Ott.Telco.Connector.UI.Web.Controllers.V10::Osn.Ott.Telco.Connector.UI.Web.Controllers.V10.SubscriptionController::Create",
"Runtime": "dotnetcore2.1",
"CodeUri": "",
"MemorySize": 256,
"Timeout": 30,
"Role": null,
"FunctionName" : "CreateCustomer",
"Policies": [ "AWSLambdaBasicExecutionRole" ],
"Events": {
"PutResource": {
"Type": "Api",
"Properties": {
"Path": "/create",
"Method": "POST"
}
}
}
}
},
"CustomAuthorizer" : {
"Type" : "AWS::ApiGateway::Authorizer",
"Properties" : {
"AuthorizerUri" : {"Fn::GetAtt" : [ "Create", "Arn"]},
"IdentitySource" : "method.request.header.Authorization,method.request.context.resourcePath, method.request.context.path",
"Name" : "CustomAuthorizer",
"Type" : "REQUEST",
**//How I can get this id?**
"RestApiId" : {"Fn::GetAtt" : [ "ServerlessRespApi", ""]}
}
}
}