Azure / Azure/Azure-Functions

Immutable, versioned Azure Functions?

Open
#2,148 8 comments 0 reactions 0 assignees View on GitHub
feature
Dominant language
PowerShell
Stars
1.1k
Forks
215
Avg merge
4h 2m
Merged PRs (30d)
1

Description

Hi there,

I'm looking into expanding a project's serverless backend from only running on AWS Lambdas to also running on Azure Functions; however, in my scenario, a core requirement for doing so is the immutability of the deployed code.

From the AWS docs...
- [Lambda concepts](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-concepts.html)
> When you invoke or view a function, you can include a qualifier to specify a version or alias. A version is an immutable snapshot of a function's code and configuration that has a numerical qualifier. For example, `my-function:1`. An alias is a pointer to a version that you can update to map to a different version, or split traffic between two versions. For example, `my-function:BLUE`. You can use versions and aliases together to provide a stable interface for clients to invoke your function.
- [Lambda function versions](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)
> Qualified ARN – The function ARN with a version suffix. The following example refers to version `42` of the `helloworld` function: `arn:aws:lambda:aws-region:acct-id:function:helloworld:42`.

In thinking about how this could be accomplished with Azure Functions, I was immediately drawn to combining [immutable blob storage](https://docs.microsoft.com/en-us/azure/storage/blobs/immutable-storage-overview) with [deployment slots](https://docs.microsoft.com/en-us/azure/azure-functions/functions-deployment-slots); however, Consumption plan is limited to a single slot so I don't think my proposed solution will work in my scenario.

TL;DR: What's the closest thing to an immutable versioned Azure Function I can achieve under the Consumption Plan?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.