У меня есть лямбда-функция с несколько нестандартной упаковкой. Я использую Makefile
, чтобы упаковать то, что мне нужно, и использовать его в качестве метода сборки с командой sam build
. Однако я не вижу выполнения этого make-файла. Не могу понять, почему нет. Вот что у меня есть:
sam_template.yaml:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
subscriptions_functions
Sample SAM Template for subscriptions_functions
Globals:
Function:
Timeout: 3
Resources:
GetSubscriptionsFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: .
Handler: app.lambda_handler_individual_methods
Runtime: python3.7
Events:
GetSubscriptions:
Type: Api
Properties:
Path: /subscriptions
Method: get
Metadata:
BuildMethod: makefile
Environment:
Variables:
SERVICE_METHOD_NAME: 'xyz'
REQ_CLASS_NAME: 'xyz'
RES_CLASS_NAME: 'xyz'
Makefile: (название основано на некоторых AWS примерах)
build-GetSubscriptionsFunction:
@echo "Buliding artifacts with sls. Destination dir " $(ARTIFACTS_DIR)
sls package --env aws
mkdir -p $(ARTIFACTS_DIR)
unzip .serverless/subscriptions.zip -d $(ARTIFACTS_DIR)
cp requirements.txt $(ARTIFACTS_DIR)
python -m pip install -r requirements.txt -t $(ARTIFACTS_DIR)
rm -rf $(ARTIFACTS_DIR)/bin
Сборка завершена когда я запускаю sam build -t sam_template.yaml
, но могу сказать, что Makefile не запускался (сообщения не распечатывались, и он создал бы каталог .serverless
, но этого не произошло)
Кто-нибудь знает, что такое неправильно в этой настройке?