0

I have a Connect/Lex chatbot that seems to be working fine. Great!

I have some requirements before this can be a product my team can support:

  1. In the highly unlikely event that business rules change or a bug is discovered, my development team needs to iterate on a non-live chatbot.
  2. I would like a development environment that is separate from production. Developers should only touch production when needed.
  3. There should be a relatively easy way to promote code to the production environment.

Number two is sort of addressed by Connect/Lex versions, but version numbers are pretty tangled up into operation (and it seems that artifacts used by an expired version need to be maintained in perpetuity?). However, numbers 1 and 3 are challenges for me.

In any other development context, I can neatly separate my dev code from production, and when all tests pass, run a process and deploy a clean set of production code. Is there any way to do this in Connect/Lex?

Charles
  • 101
  • 4
  • Have a second look at how Aliases work. Aliases are used for naming and pointing to certain versions so you can have a "Prod" alias and a "Dev" alias. The Dev alias stays set to the latest version of your Lex bot, and whenever you want to update the production simply set the "Prod" alias to the appropriate version number. I believe Connect uses the same system of Aliases and Version numbers. – Jay A. Little Jul 15 '19 at 07:59
  • @JayA.Little Yes, I understand that. But let's say I have two devs fixing different bugs in the same bot. How do they both march forward in what are effectively separate branches of code (that will be merged on resolution)? – Charles Jul 24 '19 at 01:07

1 Answers1

0

You can use the AWS Lex API to export a lex bot attributes from one AWS account and then load it into another. This is perfect if you have a seperate dev account from your production account. You should also understand how Alias can assist when working within the same account.

I also have a library which will allow you to specify a lex bot in YAML or JSON and will allow you to deploy in multiple accounts. This means you could use git for revision control within your dev teams and then use your favourite CI/CD tool like Jenkins if you want (or even just the command line). You can find the library here lexbelt

Seth van Buren
  • 101
  • 1
  • 7