Creating a Deployment
Deploying with an API Token
Create a project and deploy artifacts using the Makers
API Token. The artifact can be files, directory, or archive, and this example uses files. After a successful deploy call, deploymentId, projectId, and env are returned immediately.import { Makers } from "@edgeone/makers-sdk";const makers = new Makers({token: process.env.MAKERS_API_TOKEN,region: "china",});async function createDeployment() {try {const { projectId } = await makers.projects.create({name: "my-site",});const deployment = await makers.deployments.deploy({projectId,artifact: { files: { "index.html": "<h1>Hello</h1>" } },});console.log(`Deployment created: ${deployment.deploymentId} env ${deployment.env}`,);} catch (error) {console.error(error instanceof Error ? `Error: ${error.message}` : String(error),);}}createDeployment();
import osfrom makers_sdk import Makers, MakersErrormakers = Makers(token=os.environ["MAKERS_API_TOKEN"],region="china",)def create_deployment():try:created = makers.projects.create(name="my-site")deployment = makers.deployments.deploy(project_id=created["project_id"],artifact={"files": {"index.html": "<h1>Hello</h1>"}},)print(f"Deployment created: {deployment['deployment_id']} "f"env {deployment['env']}")except MakersError as error:print(f"Error: {error}")create_deployment()
Deploying with a Tenant Token
In deployment scenarios where platform-level credentials need to be isolated to reduce the risk of Makers API Token leakage, you can issue a tenant Token to complete the deployment.
import { Makers } from "@edgeone/makers-sdk";const platform = new Makers({token: process.env.MAKERS_API_TOKEN,region: "china",});const { token, tokenId, expired } = await platform.tokens.create({tenantId: "user-open-id",name: "user-open-id",expiresIn: 86400,});const user = new Makers({token,region: "china",});const { projectId } = await user.projects.create({ name: "my-site" });await user.deployments.deploy({projectId,artifact: { files: { "index.html": "<h1>Hello</h1>" } },});
import osfrom makers_sdk import Makersplatform = Makers(token=os.environ["MAKERS_API_TOKEN"],region="china",)created = platform.tokens.create(tenant_id="user-open-id",name="user-open-id",expires_in=86400,)user = Makers(token=created["token"],region="china",)project = user.projects.create(name="my-site")user.deployments.deploy(project_id=project["project_id"],artifact={"files": {"index.html": "<h1>Hello</h1>"}},)
Deploying and Waiting
Call
wait after deploy. After the deployment succeeds, a preview link previewUrl is returned, which can be opened in a browser within its validity period.import { Makers } from "@edgeone/makers-sdk";const makers = new Makers({token: process.env.MAKERS_API_TOKEN,region: "china",});async function deployAndWait() {try {const { projectId } = await makers.projects.create({name: "my-site",});const deployment = await makers.deployments.deploy({projectId,artifact: { files: { "index.html": "<h1>Hello</h1>" } },});const result = await makers.deployments.wait({projectId,deploymentId: deployment.deploymentId,});if (result.status === "Success") {console.log(result.previewUrl);} else {console.error(result.status);}} catch (error) {console.error(error instanceof Error ? `Error: ${error.message}` : String(error),);}}deployAndWait();
import osfrom makers_sdk import Makers, MakersErrormakers = Makers(token=os.environ["MAKERS_API_TOKEN"],region="china",)def deploy_and_wait():try:created = makers.projects.create(name="my-site")project_id = created["project_id"]deployment = makers.deployments.deploy(project_id=project_id,artifact={"files": {"index.html": "<h1>Hello</h1>"}},)result = makers.deployments.wait(project_id=project_id,deployment_id=deployment["deployment_id"],)if result.get("status") == "Success":print(result.get("preview_url"))else:print(result.get("status"))except MakersError as error:print(f"Error: {error}")deploy_and_wait()
