See migration guide
hl:doctor command#'hr/statusSee migration guide
0.6.5. Babashka version included 0.7.0.0.3.5See migration guide
0.6.3. Put in ServerlessRepo's README.md all necessary information regarding the layer.0.6.8.:envs property from :ctx to prevent security issues. Use System/getenv instead!disable-analytics?=true in h/entrypoint.See migration guide
[bb tasks] Introduce bb hl:update-bb-tasks as an automation for updating to stable version of tasks.
[bb layer] Update babashka runtime to version 0.6.2. Runtime does not precalculates the classpath. Cold start should be lower now! :)
[bb layer] Use bb.edn for specifying dependencies for babashka code instead of relying on deps.edn.
[bb layer] Remove babashka-shim from the runtime, remove direct dependency on holy-lambda.
Users should put the newest holy-lambda version in bb.edn and use bb hl:babashka:sync to download the dependencies.
Pack dependencies in the layer and reference it's ARN in template.yml.
Example
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
Example basic lambda using `holy-lambda` micro library
Parameters:
Runtime:
Type: String
Default: provided
Timeout:
Type: Number
Default: 40
MemorySize:
Type: Number
Default: 128
HL_ENTRYPOINT:
Type: String
Default: com.company.example-lambda.core
Globals:
Function:
Runtime: !Ref Runtime
Timeout: !Ref Timeout
MemorySize: !Ref MemorySize
Environment:
Variables:
HL_ENTRYPOINT: !Ref HL_ENTRYPOINT
Resources:
BabashkaDepsLayer:
Type: AWS::Serverless::LayerVersion
Properties:
LayerName: BabashkaDepsLayer
ContentUri: ./.holy-lambda/bb-clj-deps
ExampleLambdaFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: ExampleLambdaFunction
Handler: com.company.example-lambda.core.ExampleLambda
CodeUri: src
Events:
HelloEvent:
Type: HttpApi
Properties:
ApiId: !Ref ServerlessHttpApi
Path: /
Method: GET
Layers:
- <HERE_PUT_PHISICAL_ID>
- !Ref BabashkaDepsLayer
...
:body-parsed (see https://github.com/FieryCod/holy-lambda/issues/74)[holy-lambda] Improved performance of the runtime
[bb layer] Renamed the Entrypoint environment variable for Babashka runtimes to HL_ENTRYPOINT.
[bb tasks] Rename hl:sync to hl:babashka:sync. Sync downloads only pods and Babashka deps. Dependencies for babashka should be specified in bb.edn.
[bb tasks] Remove :mvn/local-repo from deps.edn. Dependencies for Clojure & Native backend are not downloaded to a local directory.
[bb tasks] Project compilation happens without Docker now.
[bb tasks] HL reverts allowance for not specifying the backend name.
[bb tasks] Rename :runtime in bb.edn to :backend to match the documentation.
[bb tasks] Remove :entrypoint and :clj-alias support. Use :compile-cmd in :build instead!
[docker] Holy Lambda images are now available at ghcr. Please use the new ghcr.io/fierycod/holy-lambda-builder instead of fierycod/graalvm-native-image. Images don't include aws, aws sam, and clojure.
[holy-lambda] Fix application/json content type detection
[docker] Holy Lambda images are now available at ghcr. Please use the new ghcr.io/fierycod/holy-lambda-builder instead of fierycod/graalvm-native-image. Images don't include aws, aws sam, and clojure.
See here(https://github.com/FieryCod/holy-lambda/pkgs/container/holy-lambda-builder/versions)
[docker] Holy Lambda now supports aarch64 for all of the runtimes and is now compatible with MacOS M1 :)
[docs] Documentation has been updated to match the newest version
[babashka] Old babashka artifact has been deprecated.
Use one of:
[babashka layer] Bump babashka to 0.6.2
[graalvm] Holy Lambda distributes configuration for GraalVM native-image to let the users use HL without bb tasks.
[runtime] Fix :awsRequestId ctx property to point to runtime :invocation-id.
[native:conf] Remove warning:
WARNING: Could not resolve fierycod.holy_lambda.core$entrypoint$fn__6578 for reflection configuration. Reason: java.lang.ClassNotFoundException: fierycod.holy_lambda.core$entrypoint$fn__6578.
Rationale https://github.com/FieryCod/holy-lambda/discussions/68
defn for lambda definition.
Holy Lambda exposes a single macro from the core namespace entrypoint. native-runtime namespace has been renamed to
custom-runtime. custom-runtime namespace is internal, not for public consumption.fierycod/graalvm-native-image images:
.jar file[bb tasks] Add support for passing arguments to commands in -- style.
Example
bb stack:invoke --validation-fn '(fn [response] true)'
[ci] Run integration tests on all supported GraalVM images
[bb tasks] Add experimental support for setting some of HL options via AWS variables. This should ease pain of using HL with AWS vault.
[docker] Add fierycod/graalvm-native-image:dev which targets GraalVM CE dev releases :)
[docker] Add zip program for CI based deployments where tasks are run in Docker context
[bb tasks] Remove clj-kondo from the required commands
[holy-lambda] Interceptors should not throw when response is byte encoded
[holy-lambda] Don't use -H:+AllowIncompleteClasspath on behalf of user
[holy-lambda] Use DISABLE_SIGNAL_HANDLERS="true" in bootstrap file
[holy-lambda] Allow users to support arbitrary response if the response is byte encoded. Opens a way to support transit and other content-types.
[holy-lambda] Properly parse response. Add support for AWS Step Functions.
[holy-lambda] Use config-merge-dir instead of config-output-dir when executing bb native:conf. User should be allowed to specify custom configuration in reflect-config.json, resource-config.json that should not be overriden.
[holy-lambda] Add support for sending a base64 encoded images from HL hr/png-image
[docs] Add documentation about using GraalVM-EE
[examples] Add basic cdk example
[holy-lambda] System/exit 1 when handler is not found during native:conf
[bb tasks] Don't remove empty .aws folder since tasks might not have proper permissions set, bind ~/.aws folder at /.aws path instead.
[bb tasks] Add support for CI deployments.
[bb tasks] Add support for docker :network option
[docs] Add FAQ, CI support documents
[bb tasks] Fix using docker in CI environment
[bb tasks] Remove broken stack:lint command. Use plain clj-kondo instead
[bb layer] Add a type hint & fix bb layer. Users should update to :runtime:version 0.1.2
[CI] Add full test suite for basic lambda examples
[bb tasks] Add support for multi environment deployments
[bb tasks] Add :validation-fn for bb stack:invoke command:
Example:
bb stack:invoke :validation-fn '(fn [{:keys [body headers statusCode]}] (= body "Hello world"))'
bb stack:logsrefl projectdocker:build:ee. GraalVM EE support will arrive soon.LinkOption reflection.bb executable.CLJ_ALIAS checking[bb tasks] Remove :build-variant. Replaced by :docker section
[bb tasks] Change native-configurations path. User should be able to modify the configuration which is now generated at resources/native-configurations
[bb tasks] Allow runtime override when using :native runtime. You can now invoke lambda in :java runtime when :native runtime is declared in bb.edn:
Example:
bb stack:invoke :runtime :java
[bb tasks] Allow nil value for :native-deps option
[bb tasks] Add support for setting :docker:volumes. This is crucial when working with local libraries, since HL runs tasks in docker context!
[bb layer] Bump layer version to 0.0.32 which includes babashka v0.4.4
[bb tasks] Commands bb bucket:create and bb bucket:remove can now create/remove specified bucket (not only the stack bucket) when :name parameter is used
[bb tasks] Inform the user when docker image is not downloaded. This makes HL more user friendly.
[bb tasks] Don't AOT whole project when uberjaring. AOT compile only the main class.
[bb tasks] Add support for deps.edn aliases in bb.edn. Useful for local libraries
[bb tasks] Fix bb stack:sync which was failing on the first run
[bb tasks] Add support for the custom profile in :infra
Update babashka layer to version 0.4.1
[bb tasks] Add an automated way of managing layer (update/downgrade). The new way is not compatible with the previous one. Please remove your old babashka layers stack and run bb stack:sync.
[docs] Add documentation for getting started guide, refine template (entirely done by @lowecg. Thank you so much!)
[holy-lambda] Change the order of execution for :leave interceptors. Order is the same as for Pedestal Interceptors now :)
[bb tasks] Add validation for docker, AWS setup. Now holy-lambda will fail early with the helpful message if either AWS or docker is not properly set up.
[bb tasks] Region is now derived from the profile if exists. A region in bb.edn overrides default region
[bb tasks] Commands which depend on stack:sync are now restricted if the project is not synced
[bb tasks] stack:invoke, stack:deploy, stack:api now support setting :params for AWS SAM parameters-overrides.
Example:
bb stack:invoke :params "{:SomeParameter \"Hello World\"}"
Handler definition has been changed from [event,context] -> response to [request] -> response.
Can you improve this documentation? These fine people already did:
Karol Wójcik & FierycodEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |