Определить лямбда-функцию в шаблоне облачной информации - PullRequest
0 голосов
/ 07 апреля 2020

Я создал базовый API без сервера. Net. Лямбда-функция создается с помощью консоли. Теперь я хочу использовать ту же лямбду при публикации. Но образование облаков создает новую лямбда-функцию при развертывании. Можно ли определить такую ​​же лямбда-функцию в шаблоне формирования облаков?

Вот шаблон, используемый для публикации

`{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Transform": "AWS::Serverless-2016-10-31",
  "Description": "An AWS Serverless Application that uses the ASP.NET Core 
 framework running in Amazon Lambda.",
"Resources": {
"testapi": {
  "Type": "AWS::Serverless::Function", 
  "Properties": {
    "FunctionName" : "arn:aws:lambda:ap-south- 
 1:721092682477:function:testapi",
        "Handler": "Syngenta.Global.TPTool.WebApi::Syngenta.Global.TPTool.WebApi.LambdaEntryPoint 
::FunctionHandlerAsync",
        "Runtime": "dotnetcore2.1",
        "CodeUri": "",
        "MemorySize": 512,
        "Timeout": 30,
        "Role": null,
        "Policies": [
          "AWSLambdaFullAccess"
        ],
        "Environment": {
          "Variables": {
          }
        },
        "Events": {
          "ProxyResource": {
            "Type": "Api",
            "Properties": {
              "Path": "/{proxy+}",
              "Method": "ANY"
            }
          }
        }
      }
    }
  }
}`

здесь testapi - лямбда-функция, которая уже создана с использованием AWS приставка. при публикации выдается ошибка «имя функции уже существует». И если имя меняется, то создается новая лямбда-функция.

1 Ответ

0 голосов
/ 07 апреля 2020

Существует несколько подходов при импорте существующего ресурса в стек облачной информации. Вы можете либо удалить вашу функцию вручную и снова запустить файл облачной информации, чтобы он полностью создал новую функцию, и оттуда вы больше не будете получать ошибки.

Или, если это невозможно , Следуя руководству по документации, вы должны добавить свойство: "DeletionPolicy": "Retain" к вашему ресурсу.

Пример:

"testapi": {
  "Type": "AWS::Serverless::Function", 
  "DeletionPolicy": "Retain",
... }

Существуют также другие способы импорта существующих ресурсов в определенный стек облачной информации c (т. Е. Через консоль или cli). Вы можете найти больше информации здесь:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-existing-stack.html

...