Subhosting 快速入門
正在尋找展示如何將程式碼部署到 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`,
);
開始使用 subhosting Jump to heading
若要開始使用 subhosting,您需要在 Deno Deploy 儀表板 中建立一個組織。請按照螢幕上的指示建立一個新的 subhosting 組織。
在完成新手引導流程時,您很可能也會產生一個 存取權杖,您將使用此權杖來存取 REST API。如果您沒有執行此操作(或您的權杖已過期),您可以在此處產生新的權杖。
一旦您產生存取權杖,它將不會再次顯示在 Deploy 儀表板 UI 中。請務必將此權杖儲存在安全的地方。
設定測試環境 Jump to heading
在接下來的教學頁面中,我們將假設您正在透過 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
檔 Jump to heading
首先,將您的存取權杖和組織 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。
建立我們的第一個專案 Jump to heading
為了使用 subhosting 或 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 存取權限並建立了一個專案,我們可以繼續建立我們的第一個部署。