ааааааа-бааааNodeJS.4. 아마존 네트워크 서비스(AWS).
После получения ключа установите пакет
npm install -g serverless
Запишите этот ключ:serverless config credentials --provider provider --key key --secret secret
e-메일 HTTP 웹훅전보 API.Чтобы создать лямбда-функцию, просто создайте новую папку на компьютере, перейдите внутрь нее, откройте окно терминала и введите следующее:serverless create --template aws-nodejs
노드js.처리자: 처리자.서버가 없습니다.yml.한들러.js- 서버가 없습니다.yml-фааааааааааааааааааааааааааааа.Больше прочитать о конфигурации - ссылка .Вот как я предлагаю настроить будущий сервер:
service: short-bot
useDotenv: true
plugins:
- serverless-dotenv-plugin
frameworkVersion: "2"
provider:
name: aws
runtime: nodejs12.x
region: eu-west-1
apiGateway:
shouldStartNameWithService: true
lambdaHashingVersion: "20201221"
functions:
hello:
handler: handler.hello
events:
- http:
path: webhook
method: post
cors: true
В каталоге этого проекта сделайте команды:npm init -y
npm i --save dotenv node-fetch telegraf
npm i --save-dev serverless serverless-dotenv-plugin
Мы сейчас сделали очень многое: сделали шаблон проекта, который можно будет опубликовать на амазоне. 서버 없음, 서버 없음, 서버 없음dotenv 플러그인, 서버 없음dotenv 플러그인.환경з.js:
"use strict";
const { bot } = require("./bot.js");
const { getResponseHeaders } = require("./lib/common");
exports.getResponseHeaders = () => {
return {
"Access-Control-Allow-Origin": "*",
};
};
/**
* Вебхук для бота
*/
module.exports.hello = async (event) => {
try {
let body =
event.body[0] === "{"
? JSON.parse(event.body)
: JSON.parse(Buffer.from(event.body, "base64"));
await bot.handleUpdate(body);
return { statusCode: 200, body: "" };
} catch (err) {
return {
statusCode: err.statusCode ? err.statusCode : 500,
headers: getResponseHeaders(),
body: JSON.stringify({
error: err.name ? err.name : "Exception",
message: err.message ? err.message : "Unknown error",
}),
};
}
};
/**
* Устновка веб-хука.
* Если вызвать этот метод, то хук вступит в силу
*/
module.exports.setWebhook = async (event) => {
try {
const url = `https://${event.headers.Host}/${event.requestContext.stage}/webhook`;
await bot.telegram.setWebhook(url);
return {
statusCode: 200,
headers: getResponseHeaders(),
body: JSON.stringify({ url }),
};
} catch (err) {
return {
statusCode: err.statusCode ? err.statusCode : 500,
headers: getResponseHeaders(),
body: JSON.stringify({
error: err.name ? err.name : "Exception",
message: err.message ? err.message : "Unknown error",
}),
};
}
};
Фзззззззззззз.안녕하세요, 서버가 없습니다.ymlэббббббббббббббббб.
Фццццццццццззззбб-абб.Как вы поняли, ключевые строки в нём это
1 const url = `https://${event.headers.Host}/${event.requestContext.stage}/webhook`;
2 bot.telegram.setWebhook(url);
аааааааааааааааа,ааааааAPIааа.뿌뿌뿌뿌 로봇.js.Поскольку наш бот будет теперь запущен не на локальной машине, нужно закомментировать строку
bot.launch();
и ниже написать:module.exports = {
bot,
};
로봇.jsааааааааааааааааааа107.аааааааааааааа107.jsonббббМ:
{
"deploy": "sls deploy",
"logs": "sls logs --function hello -t"
}
npm run local
-아마존deploy
-아마존.Деплой
미국 용접학회
logs
.аааааааааааааааааааб.В итоге вы получите постоянный эндпоинт, что-то типа: https://sg2bxp8khj.execute-api.us-east-2.amazonaws.com/dev/ , его нужно установить в качестве вебхука для телеграма. 직위
npm run deploy
우체부.Если всё прошло без ошибок, то Ваш бот теперь обосновался на сервере амазон, поздравляю!Ссылки
Вот какие материалы мне помогли в развёртывании на амазоне:
Reference
이 문제에 관하여(ааааааа-бааааNodeJS.4. 아마존 네트워크 서비스(AWS).), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/slkarol/nodejs-4-amazon-web-service-aws-2hp6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)