2

我正在用 claudiajs 创建一个 Nodebot。

const botBuilder = require('claudia-bot-builder')
const excuse     = require('huh')

module.exports = botBuilder((req) => {
    return `Thanks for sending ${req.text}. Your message is very important to us, but ${excuse.get()}`
}) 

但是当我部署到 aws 云时。

claudia create --region us-east-1 --api-module app

我收到此错误:

{ EntityAlreadyExists: Role with name chatbot-andrea-executor already exists.
    at Request.extractError (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/protocol/query.js:47:29)
    at Request.callListeners (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
    at Request.emit (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
    at Request.emit (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/request.js:678:14)
    at Request.transition (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at /.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/request.js:38:9)
    at Request.<anonymous> (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/request.js:680:12)
    at Request.callListeners (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
  message: 'Role with name chatbot-andrea-executor already exists.',
  code: 'EntityAlreadyExists',
  time: 2017-05-19T19:03:01.956Z,
  requestId: '-requestId (I changed it)-',
  statusCode: 409,
  retryable: false,
  retryDelay: 4.143280988568199 }
4

3 回答 3

4

由于它非常聪明,因此在 aws 中有一个同名的角色。因此,您可以尝试在代码中更改角色的名称,但是我们如何使用预构建的 Nodebot 解决方案我们没有太多选择。所以,删除角色就是答案。

  1. 转到IAM 管理控制台
  2. 删除角色

在此处输入图像描述

您可以在此处找到有关此名称冲突的更多信息。

于 2017-05-19T20:54:22.997 回答
3

对我来说,问题是应用程序已经部署到 aws lambda 并且我已经有一个 facebook 机器人。

我想创建一个电报机器人,这就是问题发生的原因。

然后,我使用update而不是create喜欢:

claudia update --region us-central-1 --api-module bot --configure-telegram-bot

它对我有用,

于 2017-09-09T10:40:53.917 回答
2

我只是发现即使(如果需要)您也可以在部署命令中设置角色:

claudia create --region us-east-1 --role chatbot-andrea-executor  --api-module app

您必须在--role的标志之后替换碰撞时的名称。此外,您对这里有更多的好奇,这是关于自定义部署的一个很好的起点。

于 2017-05-23T23:19:15.947 回答