Быстрый старт субхостинга
Ищете самый простой пример, который демонстрирует, как развернуть код в облачный изолят 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. Убедитесь, что вы сохранили этот токен в безопасном месте.
Настройка тестовой среды
В последующих учебных материалах мы будем предполагать, что вы взаимодействуете с REST API Deploy через скрипты Deno (код TypeScript) и покажем примеры взаимодействия с API таким образом. Однако, описанные здесь методы также будут работать в любой другой среде, способной выполнять HTTP-запросы.
В примерах кода, представленных здесь и в последующих главах, предполагается, что у вас установлен Deno 1.38 или более поздней версии.
При работе с REST API полезно хранить учетные данные аутентификации в переменных среды, чтобы предотвратить случайное добавление их в систему управления версиями.
Для этого руководства мы будем использовать новый --env флаг введенный в Deno 1.38 для управления переменными среды. На локальном компьютере создайте новую директорию для хранения наших скриптов управления и создайте три файла:
-
.env- для хранения информации об доступе к API -
.gitignore- для игнорирования нашего файла.env, чтобы мы не добавили его в систему управления версиями по ошибке -
create_project.ts- файл, который мы будем использовать в ближайшее время для отправки первого запроса к REST API
Настройка файла .env и файла .gitignore
Сначала сохраните свой токен доступа и идентификатор организации в файле .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 проекта, который был возвращен в этом ответе — это идентификатор проекта, который мы будем использовать на следующем шаге.
Теперь, когда доступ к REST API настроен и проект создан, мы можем перейти к созданию нашей первой развертки.
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/subhosting/manual/quick_start