Skip to content
Start here

Create Worker Deployment

client.Workers.Scripts.Deployments.New(ctx, scriptName, params) (*Deployment, error)
POST/accounts/{account_id}/workers/scripts/{script_name}/deployments

Deployments configure how Worker Versions are deployed to traffic. A deployment can consist of multiple versions of a Worker.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Workers Scripts Write
ParametersExpand Collapse
scriptName string

Name of the script.

params ScriptDeploymentNewParams
AccountID param.Field[string]

Path param: Identifier.

maxLength32
Deployment param.Field[Deployment]

Body param

Force param.Field[bool]Optional

Query param: If set to true, the deployment will be created even if normally blocked by something such rolling back to an older version when a secret has changed.

ReturnsExpand Collapse
type Deployment struct{…}
ID string
formatuuid
CreatedOn Time
formatdate-time
Source string
Strategy DeploymentStrategy
Versions []DeploymentVersion

Worker versions included in this deployment. Each object must contain a version_id UUID and a percentage; percentages across all objects must total 100. In the cf CLI, pass the entire array as one JSON value to --versions, either inline, for example --versions '[{"version_id":"023e105f-2a42-4f8b-a1c1-73f6a2a30c0f","percentage":100}]', or from a JSON file with --versions @versions.json.

Percentage float64

Percentage of traffic served by this version.

maximum100
minimum0.01
VersionID string

Identifier of the Worker Version.

formatuuid
Annotations DeploymentAnnotationsOptional
WorkersMessage stringOptional

Human-readable message about the deployment. Truncated to 1000 bytes if longer.

maxLength1000
WorkersTriggeredBy stringOptional

Operation that triggered the creation of the deployment.

AuthorEmail stringOptional
formatemail

Create Worker Deployment

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/workers"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  deployment, err := client.Workers.Scripts.Deployments.New(
    context.TODO(),
    "this-is_my_script-01",
    workers.ScriptDeploymentNewParams{
      AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
      Deployment: workers.DeploymentParam{
        Strategy: cloudflare.F(workers.DeploymentStrategyPercentage),
        Versions: cloudflare.F([]workers.DeploymentVersionParam{workers.DeploymentVersionParam{
          Percentage: cloudflare.F(100.000000),
          VersionID: cloudflare.F("023e105f-2a42-4f8b-a1c1-73f6a2a30c0f"),
        }}),
      },
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", deployment.ID)
}
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "created_on": "2019-12-27T18:11:19.117Z",
    "source": "api",
    "strategy": "percentage",
    "versions": [
      {
        "percentage": 100,
        "version_id": "023e105f-2a42-4f8b-a1c1-73f6a2a30c0f"
      }
    ],
    "annotations": {
      "workers/message": "Deploy bug fix.",
      "workers/triggered_by": "deployment"
    },
    "author_email": "dev@stainless.com"
  },
  "success": true
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "created_on": "2019-12-27T18:11:19.117Z",
    "source": "api",
    "strategy": "percentage",
    "versions": [
      {
        "percentage": 100,
        "version_id": "023e105f-2a42-4f8b-a1c1-73f6a2a30c0f"
      }
    ],
    "annotations": {
      "workers/message": "Deploy bug fix.",
      "workers/triggered_by": "deployment"
    },
    "author_email": "dev@stainless.com"
  },
  "success": true
}