Documentation/docs/function/revisions

#Revisions And Aliases

Function revisions are immutable snapshots of a Sandbox Service. Aliases are mutable pointers to revisions. The function host serves the revision pointed to by the production alias.

Create a Revision#

POST

/api/v1/functions/{id}/revisions

Create a revision from the same service or from another publishable service. Set promote to false when you want to inspect the revision before moving production traffic.

go
result, err := client.CreateFunctionRevisionFromSandbox( ctx, functionID, sandbox.ID, "api", sandbox0.WithFunctionRevisionPromote(false), ) if err != nil { log.Fatal(err) } fmt.Printf("revision: %d promoted=%t\n", result.Revision.RevisionNumber, result.Promoted)

List Revisions#

GET

/api/v1/functions/{id}/revisions

go
revisions, err := client.ListFunctionRevisions(ctx, functionID) if err != nil { log.Fatal(err) } for _, revision := range revisions { fmt.Printf("revision %d from %s/%s\n", revision.RevisionNumber, revision.SourceSandboxID, revision.SourceServiceID) }

Promote Or Roll Back#

PUT

/api/v1/functions/{id}/aliases/{alias}

Move production to a revision number to promote or roll back traffic.

go
alias, err := client.SetFunctionAlias(ctx, functionID, "production", 2) if err != nil { log.Fatal(err) } fmt.Printf("%s -> revision %d\n", alias.Alias, alias.RevisionNumber)

Read Aliases#

GET

/api/v1/functions/{id}/aliases

go
aliases, err := client.ListFunctionAliases(ctx, functionID) if err != nil { log.Fatal(err) } for _, alias := range aliases { fmt.Printf("%s -> revision %d\n", alias.Alias, alias.RevisionNumber) }

Next Steps#

Runtime

Inspect and reset the runtime sandbox serving production traffic.

Publish Functions

Create another publishable service and publish it as a revision.