子托管快速入门
正在寻找一个最小的示例,展示如何将代码部署到 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
文件中。
DEPLOY_ACCESS_TOKEN=your_token_here
DEPLOY_ORG_ID=your_org_id_here
将文件中的值替换为您自己的 Deploy 账户中的值。
接下来,创建一个 .gitignore
文件,以确保我们不会意外地将 .env
文件签入版本控制
# 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
文件中。
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 访问并设置了项目,我们可以继续创建我们的第一个部署了。