Я пытаюсь создать приложение AWS, используя SAM (модель сервера без сервера) с Lambdas, написанным на Java.
Мне удалось запустить его локально, используя определение ресурса, подобное приведенному в шаблоне.:
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: HelloWorldFunction
Handler: helloworld.App::handleRequest
Runtime: java8
Events:
HelloWorld:
Type: Api
Properties:
Path: /hello
Method: get
Но чтобы получить фазу sam package
для загрузки на S3 только фактического кода (а не всего каталога проекта), мне пришлось изменить его на:
...
Properties:
CodeUri: HelloWorldFunction/target/HelloWorld-1.0.jar
...
как описано в примере проекта AWS SAM README.
Однако это лишает возможности локально запускать приложение с помощью sam build
, за которым следует sam local start-api
.
Я пытался обойти этодавая значение CodeUri
в качестве параметра (с --parameter-overrides
), и это работает локально, но прерывает фазу упаковки из-за известной проблемы с переводчиком SAM.
Есть лиспособ заставить как локальную сборку, так и реальное развертывание AWS работать, желательно с одним и тем же файлом шаблона?