deno.com
本页内容

子托管快速入门

正在寻找一个最小的示例,展示如何将代码部署到 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 时,将身份验证凭据存储在系统环境中非常有用,以防止您意外地将其签入版本控制。

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

  • .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 进行任何有意义的操作,我们需要创建一个项目。将以下代码复制到与您的 .env.gitignore 文件位于同一目录下的 create_project.ts 文件中。

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 访问并设置了项目,我们可以继续创建我们的第一个部署了。

您找到所需内容了吗?

隐私政策