Использование Powershell для выполнения .Netcore Visual Studio AWS Toolkit 'Опубликовать в AWS Lambda'

Я использовал Visual Studio 2017 с AWS Toolkit для разработки лямбда-функции .Net Core. У меня есть сценарий Cloudformation в файле serverless.template и конфигурация развертывания в файле aws-lambda-tools-defaults.json. При разработке проекта я развертывал его в учетной записи разработчика AWS, используя параметр «Опубликовать в AWS Lambda ...» правой кнопкой мыши в обозревателе решений.

Теперь я готов перейти к развертыванию этого в наших тестовых и производственных учетных записях AWS, и мне нужно выполнить этап развертывания «Опубликовать в AWS Lambda ...» с помощью Cloudformation, с амбициями, которые мы создадим Cloudformation Change Sets, чтобы разрешить предварительную проверку. к развертыванию.

Я пытался придумать, что делать, и экспериментировал с командами CLI aws cloudformation package и sam package, но, похоже, не могу найти пути вперед.

Может ли кто-нибудь помочь мне понять шаги, которые выполняет «Опубликовать в AWS Lambda ...»? Я хотел бы воспроизвести шаги в Powershell, так как это даст мне понимание, которое мне нужно двигаться дальше.

Спасибо.


person Elliveny    schedule 14.04.2019    source источник


Ответы (1)


Для развертывания из командной строки используйте расширение CLI dotnet для Lambda. Это тот же код, который запускается внутри Visual Studio при публикации из мастера и может читать файл значений по умолчанию и т. Д., Поэтому вы получаете согласованный опыт развертывания независимо от того, развертываете ли вы его из IDE или из командной строки.

Вы упомянули, что хотите понять, что происходит за кулисами - эти инструменты имеют открытый исходный код, поэтому вы можете ознакомиться со всей работой, которую они выполняют для вас, в этом репозиторий GitHub. При развертывании бессерверного приложения наборы изменений CloudFormation используются автоматически, вам не нужно обрабатывать их самостоятельно.

Инструмент представляет собой глобальный инструмент .NET Core, который вы сначала устанавливаете из командной строки:

dotnet tool install -g Amazon.Lambda.Tools

После установки вы можете получить помощь и т. Д.:

PS C:\> dotnet lambda help
Amazon Lambda Tools for .NET Core applications (3.2.0)
Project Home: https://github.com/aws/aws-extensions-for-dotnet-cli, https://github.com/aws/aws-lambda-dotnet



Commands to deploy and manage AWS Lambda functions:

        deploy-function         Command to deploy the project to AWS Lambda
        invoke-function         Command to invoke a function in Lambda with an optional input
        list-functions          Command to list all your Lambda functions
        delete-function         Command to delete a Lambda function
        get-function-config     Command to get the current runtime configuration for a Lambda function
        update-function-config  Command to update the runtime configuration for a Lambda function

Commands to deploy and manage AWS Serverless applications using AWS CloudFormation:

        deploy-serverless       Command to deploy an AWS Serverless application
        list-serverless         Command to list all your AWS Serverless applications
        delete-serverless       Command to delete an AWS Serverless application

Commands to publish and manage AWS Lambda Layers:

        publish-layer           Command to publish a Layer that can be associated with a Lambda function
        list-layers             Command to list Layers
        list-layer-versions     Command to list versions for a Layer
        get-layer-version       Command to get the details of a Layer version
        delete-layer-version    Command to delete a version of a Layer

Other Commands:

        package                 Command to package a Lambda project into a zip file ready for deployment
        package-ci              Command to use as part of a continuous integration system.

To get help on individual commands execute:
        dotnet lambda help <command>

Чтобы развернуть проект из командной строки, сначала cd в папку проекта, затем выполните команду

dotnet lambda deploy-serverless

Это прочитает настройки в файле значений по умолчанию и выполнит развертывание за вас, как если бы вы использовали мастер IDE.

Надеюсь, это в сочетании с репозиторием с открытым исходным кодом поможет вам разобраться в соответствующих этапах.

person Steve Roberts    schedule 15.04.2019
comment
Это здорово, спасибо, Стив. Я долго искал, но как-то пропустил это, поэтому рад видеть простое решение. - person Elliveny; 16.04.2019