@@ -42,6 +42,8 @@ LAYER_ZIP=swift-lambda-runtime-$(LAYER_VERSION).zip
42
42
ROOT_BUILD_PATH =./.build
43
43
LAYER_BUILD_PATH =$(ROOT_BUILD_PATH ) /layer
44
44
LAMBDA_BUILD_PATH =$(ROOT_BUILD_PATH ) /lambda
45
+ LOCAL_LAMBDA_PATH =$(ROOT_BUILD_PATH ) /local
46
+ LOCALSTACK_TMP =$(ROOT_BUILD_PATH ) /.tmp
45
47
TMP_BUILD_PATH =$(ROOT_BUILD_PATH ) /tmp
46
48
DATETIME =$(shell date +'% y% m% d-% H% M% S')
47
49
@@ -207,3 +209,38 @@ quick_build_lambda: build_lambda create_build_directory
207
209
208
210
quick_deploy_lambda : quick_build_lambda create_build_directory
209
211
aws lambda update-function-code --function-name $(LAMBDA_FUNCTION_NAME ) --zip-file fileb://$(LAMBDA_BUILD_PATH ) /$(LAMBDA_ZIP ) --profile $(AWS_PROFILE )
212
+
213
+ build_lambda_local : build_lambda
214
+ if [ ! -d " $( LOCAL_LAMBDA_PATH) " ]; then mkdir -p $( LOCAL_LAMBDA_PATH) ; fi
215
+ cp $(SWIFT_PROJECT_PATH ) /.build/$(SWIFT_CONFIGURATION ) /$(SWIFT_EXECUTABLE ) $(LOCAL_LAMBDA_PATH ) /.
216
+
217
+ invoke_lambda_local_once :
218
+ $(eval LOCAL_LAMBDA_EVENT := '$(shell cat $(SWIFT_PROJECT_PATH ) /event.json) ')
219
+ docker run --rm \
220
+ -v " $( PWD) /$( LOCAL_LAMBDA_PATH) " :/var/task:ro,delegated \
221
+ -v " $( PWD) /bootstrap" :/opt/bootstrap:ro,delegated \
222
+ -v " $( PWD) /$( SHARED_LIBS_FOLDER) " :/opt/swift-shared-libs:ro,delegated \
223
+ lambci/lambda:provided $(LAMBDA_HANDLER ) $(LOCAL_LAMBDA_EVENT )
224
+
225
+ start_lambda_local_env :
226
+ docker run --rm \
227
+ -e DOCKER_LAMBDA_STAY_OPEN=1 \
228
+ -p 9001:9001 \
229
+ -v " $( PWD) /$( LOCAL_LAMBDA_PATH) " :/var/task:ro,delegated \
230
+ -v " $( PWD) /bootstrap" :/opt/bootstrap:ro,delegated \
231
+ -v " $( PWD) /$( SHARED_LIBS_FOLDER) " :/opt/swift-shared-libs:ro,delegated \
232
+ lambci/lambda :provided \
233
+ $(LAMBDA_HANDLER )
234
+
235
+ invoke_lambda_local :
236
+ aws lambda invoke --endpoint http://localhost:9001 --no-sign-request --function-name $(LAMBDA_FUNCTION_NAME ) --payload " fileb://$( SWIFT_PROJECT_PATH) /event.json" $(TMP_BUILD_PATH ) /outfile && echo " \nResult:" && cat $(TMP_BUILD_PATH ) /outfile && echo " \n"
237
+
238
+ start_docker_compose_env :
239
+ if [ ! -d " $( LOCALSTACK_TMP) " ]; then mkdir -p $( LOCALSTACK_TMP) ; fi
240
+ make -f $(SWIFT_PROJECT_PATH ) /Makefile start_docker_compose_env
241
+
242
+ stop_docker_compose_env :
243
+ make -f $(SWIFT_PROJECT_PATH ) /Makefile stop_docker_compose_env
244
+
245
+ test_lambda_local_output :
246
+ cmp $(TMP_BUILD_PATH ) /outfile $(SWIFT_PROJECT_PATH ) /outfile.json
0 commit comments