Я занимаюсь CI / CD-ботом Lex для своей организации. Я прошел через большую часть этого, используя документацию, но я ударил стену. Я знаю, что если бота не существует, вы не можете предоставить контрольную сумму операции putBot. Я также знаю, что если она существует, вы должны предоставить контрольную сумму, и она должна соответствовать контрольной сумме версии $ LATEST.
Я получаю бота после того, как он был создан впервые, и я помещаю контрольную сумму из ответа в параметрах в 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?