Я сделал этого простого бота Discord и развернул его в Azure сервисе приложений, но чтобы включить, но онлайн, я должен go URL-адрес сервиса приложения, что уже странно. Таким образом, бот работает с командами, но когда я не набираю команду в течение 5 минут, но отключаюсь.
Локально этого не происходит.
У меня "Всегда включено" настройка включена в конфигурации плана обслуживания. Кто-нибудь знает почему и как это происходит? и как это исправить
package.js
{
"name": "cookie-bot",
"version": "1.0.0",
"description": "cookie-bot",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"author": "me",
"dependencies": {
"azure-storage": "^2.10.3",
"discord.js": "github:discordjs/discord.js"
}
}
Это мой azure-pipline.yml
сценарий развертывания
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
condition: succeeded()
jobs:
- deployment: Deploy
displayName: Deploy
environment: $(environmentName)
pool:
vmImage: $(vmImageName)
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
displayName: 'Azure Web App Deploy: cookie-bot'
inputs:
azureSubscription: '$(azureSubscription)'
appType: 'webAppLinux'
appName: '$(webAppName)'
package: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'
runtimeStack: 'NODE|12.9'
startUpCommand: 'npm run start'
app.js
var Discord = require('discord.js');
var auth = require('./conf/auth.json');
var commandRegistry = require('./core/command.registry');
var pingCommand = require('./lib/commands/ping.command');
var helpCommand = require('./lib/commands/help.command');
var insertTrash = require('./lib/commands/insertTrash.command');
var retreiveTrash = require('./lib/commands/retreiveUser.command');
var bot = new Discord.Client();
bot.on('ready', function (evt) {
});
bot.on('message', msg => {
if (!msg.author.bot) {
let messageData = {
userId: msg.author.id,
username: msg.author.username,
channel: msg.author.lastMessageChannelID,
content: msg.content
};
let registry = new commandRegistry(messageData.content);
registry.registerMentionCommand('!ping', () => {
new pingCommand(msg).reply(messageData);
});
registry.registerMentionCommand('!help', () => {
new helpCommand(msg).reply(messageData.channel)
});
registry.registerMentionCommand('!insert', (commands) => {
new insertTrash(msg).insert(messageData, commands);
});
registry.registerMentionCommand('!get', (commands) => {
new retreiveTrash(msg).retreive(messageData);
});
}
});
bot.login(auth.token);