Я пытался заменить существующий псевдоним LexBot (с именем LATEST
) только что созданной версией бота.
Теперь, согласно документации aws
Если вы хотите обновить псевдоним бота, установите в поле контрольной суммы контрольную сумму самой последней редакции версии $ LATEST.
Я вижу, что Alias LATEST
использует версию бота 12
в консоли Lex.
Я попытался получить контрольную сумму, используя следующее (я использую getBot(...)
LexModelBuildingService для получения контрольной суммы бота):
- используя само псевдоним как версию, т.е.
LATEST
.
- установка versionOrAlias в методе
getBot
в качестве параметра $ LATEST.
- Жесткое кодирование версии до
12
в getBot(..)
.
Я использовал контрольную сумму из приведенных выше сценариев, но ошибка, похоже, такая же, как
PreconditionFailedException: The checksum value doesn't match for the resource named 'LATEST'.
Вот фрагмент кода
async putBotAlias(botVersionResponse){
let checksum;
await this.getBot(botVersionResponse.name,'12').then(botRes=>{ // have used 12, LATEST, $LATEST with same error
console.log("Checksum For Latest: " + botRes.checksum);
checksum = botRes.checksum;
});
var params = {
botName: botVersionResponse.name,
botVersion: (parseInt(botVersionResponse.version,10)).toString(),
name: 'LATEST',
checksum : checksum
};
// checksum: checksum
console.log("Params in putBotAlias : " + JSON.stringify(params));
return new Promise((resolve,reject)=>{
this.modelBuildingService.putBotAlias(params, function(err, data) {
if (err){
reject(err);
} // an error occurred
else{
console.log("Put Alias Response :::" + JSON.stringify(data));
resolve(data);
} // successful response
});
});
}
Я действительно теряюсь здесь относительно того, какую именно версию он хочет.
Любая помощь очень ценится.
PS: Пожалуйста, укажите любую дополнительную информацию в комментариях.