Я создаю безсерверное приложение с использованием AWS Lambda и API Gateway через Visual Studio. Я работаю в C # и использую модель бессерверного приложения (SAM) для развертывания моего API. Я создаю код в Visual Studio, а затем развертываю с помощью публикации в Lambda. Это работает, за исключением того, что каждый раз, когда я делаю новую сборку и пытаюсь выполнить вызов API, я получаю эту ошибку:
Ошибка выполнения из-за ошибки конфигурации: недопустимые разрешения для функции Lambda
Проведя некоторые исследования, я обнаружил, что это исправление упоминалось в другом месте (должно быть сделано с помощью консоли AWS):
Исправлено: перешел к Шлюзу API> Имя API> Ресурсы> Имя ресурса> Метод> Запрос интеграции> Лямбда-функция и повторно выбрал мою существующую функцию, прежде чем "сохранить" ее с помощью маленькой галочки.
Теперь это работает для меня, но это нарушает автоматизацию использования serverless.template (JSON) для построения моего API. Кто-нибудь знает, как это исправить в файле serverless.template? Так что мне не нужно предпринимать действия в консоли, чтобы решить? Вот пример одного из моих методов из файла serverless.template
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Transform" : "AWS::Serverless-2016-10-31",
"Description" : "An AWS Serverless Application.",
"Resources" : {
"Get" : {
"Type" : "AWS::Serverless::Function",
"Properties": {
"VpcConfig":{
"SecurityGroupIds" : ["sg-111a1476"],
"SubnetIds" : [ "subnet-3029a769","subnet-5ec0b928"]
},
"Handler": "AWSServerlessInSiteDataGw::AWSServerlessInSiteDataGw.Functions::Get",
"Runtime": "dotnetcore2.0",
"CodeUri": "",
"MemorySize": 256,
"Timeout": 30,
"Role": null,
"Policies": [ "AWSLambdaBasicExecutionRole","AWSLambdaVPCAccessExecutionRole","AmazonSSMFullAccess"],
"Events": {
"PutResource": {
"Type": "Api",
"Properties": {
"Path": "/",
"Method": "GET"
}
}
}
}
},