即使我提供最新的校验和,LexModelBuldingService putBot也会引发BadRequestException

时间:2020-04-13 19:53:17

标签: node.js amazon-web-services aws-lambda amazon-lex

我正在为自己的组织CI / CD-Lex机器人。我已经使用文档完成了大部分内容,但是遇到了麻烦。我知道,如果不存在漫游器,则无法为putBot操作提供校验和。我也知道,如果确实存在,则必须提供一个校验和,并且它必须与$ LATEST版本的校验和匹配。

第一次获得机器人后,我便将其获取,并将响应中的校验和放入param中并放入putBot中。但是,我收到了badRequestException,表明我的资源已经存在:

  params: {name:"xxx",
           ....
          intents: [...],
           ....
          checksum:"xxxxxxxxxxx-xxxxx-xxxxxx"
         }

 exception: "ERROR   There was an error:  BadRequestException: The specified resource 
 'xxx' already exists. Use the TagResource or UntagResource operations to update 
 tags."

我使用的是在执行getBot调用后返回的校验和...所以它是最新的。 谁能帮我弄清楚这是错误还是缺少的东西?

更新:今天,我什至感到更加困惑,因为在这种情况下,文档并未真正说明这种类型的异常。关于与putBot的校验和有关的可能异常的说明如下:

"When you create a new bot, leave the checksum field blank. If you specify a 
checksum you get a BadRequestException exception.

When you want to update a bot, set the checksum field to the checksum of the 
most recent revision of the $LATEST version. If you don't specify the 
checksum field, or if the checksum does not match the $LATEST version, you 
get a PreconditionFailedException exception."

更新:我在这里遇到问题的相同模式非常适合更新广告位和意图,但不适用于机器人。现在,我只是删除该机器人(如果存在),然后重新创建,但是如果有人知道一种方法,我希望避免这种情况。也许这只是SDK的错误?

0 个答案:

没有答案