Настройка записи AWS Authorizer для лямбда-функции ASP.NET Core fileless.template file - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь установить уже существующую функцию авторизации в моем приложении .Net Core Web API. Когда я использую исключительно aws lambda nodejs, файл .yml для этого выглядит следующим образом:

custom:
  defaultStage: test
  currentStage: ${opt:stage, self:custom.defaultStage} 
  defaultRegion: us-east-1
  currentRegion: ${opt:region, self:custom.defaultRegion}
  **defaultAuthorizer**: us-east-1:xxxxxxxx:function:TypeToken-test-Authorizer
  **currentAuthorizer**: ${opt:authorizer, self:custom.defaultAuthorizer}

provider:
  name: aws
  runtime: nodejs6.10
  stage: ${self:custom.currentStage}
  profile: ${opt:profile, "default"} 
  region: ${self:custom.currentRegion}

functions:
  MyFunctionName:
    handler: handlerTestAPI.myFunctionName
    events:
      - http:
          path: myFunctionName
          method: post
          cors: true
          integration: lambda
          **authorizer:**
            arn: arn:aws:lambda:${self:custom.currentAuthorizer}
            resultTtlInSeconds: 0
            identitySource: method.request.header.Authorization
            type: token

В этом случае файл ASP.NET Core App serverless.template выглядит примерно так:

"Resources" : {

    "AspNetCoreFunction" : {
      "Type" : "AWS::Serverless::Function",
      "Properties": {
        "Handler": "Test.API::Project.API.LambdaEntryPoint::FunctionHandlerAsync",
        "Runtime": "dotnetcore2.1",
        "CodeUri": "",
        "MemorySize": 256,
        "Timeout": 30,
        "Role": null,
        "Policies": [ "AWSLambdaFullAccess" ],
        "Environment" : {
          "Variables" : {
            "TestTable" : { "Fn::If" : ["CreateProjectTable", {"Ref":"ProjectTable"}, { "Ref" : "ProjectTableName" } ] }
          }
        },
        "Events": {
          "PutResource": {
            "Type": "Api",
            "Properties": {
              "Path": "/{proxy+}",
              "Method": "ANY"
            }
          }
        }
      }
    }

Я искал шаблоны, в которых существующий авторизатор установлен поверх бессерверной функции ядра .net с использованием файла serverless.template, но еще не нашел.

Спасибо за отзыв.

1 Ответ

0 голосов
/ 01 ноября 2018

Я думаю, что это широко востребованная функция, но пока не поддерживается , пока несколько дней с назад

Страница github обновлена ​​

https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api

Теперь вы можете использовать свойство AUTH

Auth configuration for this specific Api+Path+Method. Useful for overriding the API's DefaultAuthorizer or setting auth config on an individual path when no DefaultAuthorizer is specified.

Шаблон по умолчанию создает неявный шлюз API. Чтобы установить anthorizer, вам может понадобиться создать явный шлюз API

Также на их странице Github есть пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...