Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Revision.yaml

Besides the function.yaml there also exists a revision.yaml file in the same subfolder .stackit-functions in your workspace.

A revision belongs logically to a function and can not exist on its very own. So it is always bound to a specific function.

In theory you could reuse the revision in a different function workspace as long as the id parameter is not used.

A valid revision.yaml could look like:

apiVersion: functions.stackit.cloud/v1alpha
kind: Revision
metadata:
  created: 2026-05-06T11:48:27Z
  annotations:
    cli.functions.stackit.cloud/runtime: rust
spec:
  image: animage
  envs:
    MYVAR:
      file: .env
      env: MY_VAR
  limits:
    plan: f3
    concurrency: 0

The runtime parameter in the annotations section describes the programming language used in the function, what is especially important for building the OCI image. The value is passed to down the Cloud Native Buildpacks (CNB) and then picked up by the whole build process. Changing the value in a bootstrapped function is not supported.

In the spec part of the manifest file there is an image attribute which defines the name of the image. It needs to be in format <your OCI registry>/<repository>/<image name>:<tag>. The tag can be latest but must then be combined with a digest. Otherwise the API will reject the image and the function revision will not be deployed.

In the env section environment variables cna be configured in different ways. Check the Configuring Variables and Secrets section to learn more about how to configure variables in all supported ways.

The limits define a deployment performance class supported by STACKIT functions.

A list of so supported so called plans can be received by excuting sfn options plans list. Each performance class mainly differs from others by the usable amount of memory. The actual function concurrency heavily depends on the programming language used. Rust is much faster than Java and hence is more scalable.

Revision

The revision object contains metadata and spec attributes.

Revision metadata attributes

  • id: The revision identifier of this specific revision. Will be automatically inserted into the manifest once the revision has been successfully deployed
  • created: The creation time of the revision
  • labels: Key-Value (string-string) pairs (up to 64)
  • annotations: An object holding revision information:
    • cli.functions.stackit.cloud/runtime: The programming language used in the revision
    • cli.functions.stackit.cloud/builder-image: A (custom) builder image used to build the function image
    • cli.functions.stackit.cloud/local-memory-limit-mb: The memory limit in MB for local development/testing
    • cli.functions.stackit.cloud/build-env/*: The build environment declarations. e.g. cli.functions.stackit.cloud/build-env/my-build: '1' - Name of the build env variable can be chosen freely, value must be a string

It is important to mention that the annotations always refer to local behavior only.

Revision spec

  • image: The OCI image reference containing the function code
  • envs: Function Environment variables. For more information check out Configuring Variables and Secrets
  • limits: Revision limits defining plan and concurrency
    • plan: The performance class for the function
    • concurrency: The function concurrency setting