子托管快速入门
寻找最小的示例,展示如何将代码部署到 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
文件中。
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 做任何有趣的事情,我们需要 创建一个项目。将下面的代码复制到名为 create_project.ts
的文件中,该文件与您的 .env
和 .gitignore
文件位于同一目录中。
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 访问权限并设置了项目,我们可以继续 创建第一个部署。