通过 SDK 部署
通过 API Token 进行部署
通过 Makers 的
API Token 创建项目并部署制品。artifact 可为 files、directory 或 archive,本示例使用 files。deploy 调用成功后立即返回 deploymentId、projectId 和 env。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()
通过租户 Token 进行部署
在需要隔离平台级凭证,降低 Makers API Token 泄漏风险的部署场景中,可签发租户 Token 完成部署。
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>"}},)
部署并等待
deploy 之后调用 wait,部署成功后返回预览链接 previewUrl,可在有效期内用浏览器打开。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()