跳到主要内容
本页内容

子托管快速入门

寻找最小的示例,展示如何将代码部署到 Deno 的隔离云?我们为您提供了以下内容,或者您可以跳到 更详细的入门指南

// 1.) Get API access info ready
const accessToken = Deno.env.get("DEPLOY_ACCESS_TOKEN");
const orgId = Deno.env.get("DEPLOY_ORG_ID");
const API = "https://api.deno.com/v1";
const headers = {
  Authorization: `Bearer ${accessToken}`,
  "Content-Type": "application/json",
};

// 2.) Create a new project
const pr = await fetch(`${API}/organizations/${orgId}/projects`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    name: null, // randomly generates project name
  }),
});

const project = await pr.json();

// 3.) Deploy a "hello world" server to the new project
const dr = await fetch(`${API}/projects/${project.id}/deployments`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    entryPointUrl: "main.ts",
    assets: {
      "main.ts": {
        "kind": "file",
        "content":
          `export default { async fetch(req) { return new Response("Hello, World!"); } }`,
        "encoding": "utf-8",
      },
    },
    envVars: {},
  }),
});

const deployment = await dr.json();

console.log(dr.status);
console.log(
  "Visit your site here:",
  `https://${project.name}-${deployment.id}.deno.dev`,
);

子托管入门 跳转到标题

要开始使用子托管,您需要在 Deno Deploy 仪表盘 中创建一个组织。按照屏幕上的说明创建新的子托管组织。

在完成入职流程时,您可能还会生成一个 **访问令牌**,您将使用它来访问 REST API。如果您没有这样做(或者您的令牌已过期),您可以 在这里生成一个新的令牌

将您的令牌保存在安全的地方

生成访问令牌后,**它将不再在 Deploy 仪表盘 UI 中显示**。确保您将此令牌存储在安全的地方。

设置测试环境 跳转到标题

在接下来的教程页面中,我们将假设您通过 Deno 脚本(TypeScript 代码)与 Deploy REST API 交互,并将展示以这种方式与 API 交互的示例。但是,这里显示的技术也适用于任何其他能够执行 HTTP 请求的环境。

这里和未来章节中显示的示例代码假设您已安装 Deno 1.38 或更高版本

在使用 REST API 时,将身份验证凭据存储在 系统环境 中非常有用,以防止您意外地将它们检入源代码控制。

在本教程中,我们将使用新的 --env 标志 Deno 1.38 中引入的 来管理环境变量。在您的本地计算机上,创建一个新目录来存储我们的管理脚本,并创建三个文件

  • .env - 用于保存我们的 API 访问信息
  • .gitignore - 忽略我们的 .env 文件,这样我们不会错误地将其放入源代码控制中
  • create_project.ts - 我们将在稍后使用的文件,用于向 REST API 发出第一个请求

配置 .env 文件和 .gitignore 文件 跳转到标题

首先,将您的 访问令牌 和组织 ID 存储在您之前创建的 .env 文件中。

.env
DEPLOY_ACCESS_TOKEN=your_token_here
DEPLOY_ORG_ID=your_org_id_here

将文件中的值替换为您自己 Deploy 帐户中的值。

接下来,创建一个 .gitignore 文件,以确保我们不会意外地将 .env 文件检入源代码控制中

.gitignore
# Ignore this file in git
.env

# Optional: ignore this junk file often generated on mac OS
.DS_Store

现在我们已经设置了凭据,让我们编写一些代码来访问 REST API。

创建第一个项目 跳转到标题

为了对子托管或 REST API 做任何有趣的事情,我们需要 创建一个项目。将下面的代码复制到名为 create_project.ts 的文件中,该文件与您的 .env.gitignore 文件位于同一目录中。

create_project.ts
const accessToken = Deno.env.get("DEPLOY_ACCESS_TOKEN");
const orgId = Deno.env.get("DEPLOY_ORG_ID");
const API = "https://api.deno.com/v1";

// Create a new project
const res = await fetch(`${API}/organizations/${orgId}/projects`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${accessToken}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    name: null, // randomly generates project name
  }),
});

const project = await res.json();
console.log(project);

在终端中使用以下命令执行此代码

deno run -A --env create_project.ts

如果一切按计划进行,您应该会看到类似于以下内容的输出

{
  id: "f084712a-b23b-4aba-accc-3c2de0bfa26a",
  name: "strong-fox-44",
  createdAt: "2023-11-07T01:01:14.078730Z",
  updatedAt: "2023-11-07T01:01:14.078730Z"
}

请注意,此响应中返回的项目的 id - 这是我们在下一步中将使用的项目 ID。

现在我们已经配置了 REST API 访问权限并设置了项目,我们可以继续 创建第一个部署