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.
goresult, 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
gorevisions, 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.
goalias, 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
goaliases, 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.