The Fn project is an open-source container-native serverless platform that you can run anywhere -- any cloud or on-premise. It’s easy to use, supports every programming language, and is extensible and performant.
Add [unpause/fdk-clj "1.0.6"]
to your dependencies.
Add [fdk-clj.core :as fdk]
to the requirements list where your function's main
entrypoint is.
Create an function handler to be called when a new request is made:
(defn handler [context data]
"hey")
Or if you prefer to return a different format or add headers:
(defn handler [context data]
; stuff
(fdk/raw-response {
:status 200
:body "blah"
:headers {
:content-type "text/plain"
"X-Something-Different" "Yep"
}}))
Create a main
function like so:
(defn -main [& args]
(fdk/handle handler))
{
:app_name "app"
:app_route "/func"
:call_id "id"
:config { "FN_APP_NAME" "app" "FN_PATH" "func" ... env variables ... }
:headers { http headers }
:arguments {}
:fn_format "cloudevent"
:execution_type "sync"
:deadline "2018-01-01T23:59:59.999"
:content_type "application/json"
:request_url "http://domain.com/r/app/func"
[optional] :cloudevent { event map } ;; only applies to CloudEvent Format
}
Requests that go beyoned deadline
will be forcefully killed.
For fast(er) cold-start times you should use GraalVM's Native Image with FROM SCRATCH for the docker image.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close