aws-lex-web-ui icon indicating copy to clipboard operation
aws-lex-web-ui copied to clipboard

Updated master.yml with my own Bot info still deploys the Order Flowers bot

Open ViggoMode2021 opened this issue 1 year ago • 4 comments

Hello,

I have configured the master.yml to suit my Lex bot and have deployed it via CloudFormation, however, it still results in the Order Flowers default bot. I am probably missing something crucial, but I've looked through the template many times and can't find what.

`AWSTemplateFormatVersion: 2010-09-09 Description: | Master Lex Web UI CloudFormation template (v0.19.5) The Lex Web Ui can be deployed to operate against either a Lex V2 Bot OR a Lex V1 Bot BUT NOT BOTH. Please configure either the Lex V2 bot information OR the Lex V1 bot information and leave the other version input parameters as defaulted. A deployment of Lex Web Ui can not be switched between V2 and V1 by updating the stack with different parameters. It deploys: - S3 buckets to host the web application - CodeBuild project to build the configuration and deploy to S3 - Optional Lex Bot (based on OrderFlowers example) - Optional Cognito Identity Pool for unauthenticated identities - Optional Lambda function to delete S3 buckets - CloudWatch Logs groups related to Lambda functions - Associated IAM roles

Parameters: LexV2BotId: Description: > Bot ID (not bot name) of an existing Lex V2 Bot to be used by the web ui. NOTE: You must also enter your Bot alias ID in the LexV2BotAliasId field below. DO NOT MODIFY this value if configuring a V1 Bot. Type: String Default: 'WNDVSKTNZ8' MaxLength: 50 AllowedPattern: '(^$|^[a-zA-Z0-9]+(([a-zA-Z0-9]+)*|([a-zA-Z0-9]+)*|_))' ConstraintDescription: > Must conform with the permitted Lex V2 Bot name pattern.

LexV2BotLocaleId:
    Description: >
        Specify your bot's supported locale ids. By default this list contains only en_US. Other Lex V2
        supported values are de_DE, en_AU, en_GB, es_419, es_ES, es_US, fr_CA, fr_FR, it_IT, ja_JP. A comma
        separated list of values can be supplied with the first value in the list being the default value. The
        remaining items can be selected in the Lex Web Ui menu.
        See "https://docs.aws.amazon.com/lexv2/latest/dg/lex2.0.pdf"
        for details on supported languages and locales. DO NOT MODIFY this value if
        configuring a V1 Bot.
    Type: String
    Default: 'en_US'
    MinLength: 2
    MaxLength: 50

BotName:
    Description: >
        Name of an existing Lex Bot to be used by the web ui. NOTE: You must
        also enter your published bot alias in the BotAlias field below. DO NOT MODIFY this value if
        configuring a V2 Bot.
    Type: String
    Default: 'VigInvestigations'
    MinLength: 0
    MaxLength: 50
    AllowedPattern: '(^$|^[a-zA-Z]+((_[a-zA-Z]+)*|([a-zA-Z]+_)*|_))'
    ConstraintDescription: >
        Must conform with the permitted Lex Bot name pattern.

BotAlias:
    Description: >
        WARNING: For production deployments, use your bot's published alias here.
        The $LATEST alias should only be used for manual testing. Amazon Lex limits
        the number of runtime requests that you can make to the $LATEST version of
        the bot. DO NOT MODIFY this value if configuring a V2 Bot.
    Type: String
    Default: 'VigInvestigationsAlias'
    MinLength: 2
    MaxLength: 50
    AllowedPattern: '(^$|^[$a-zA-Z]+((_[$a-zA-Z]+)*|([$a-zA-Z]+_)*|_))'
    ConstraintDescription: >
        Must conform with the permitted Lex Alias name pattern.

BotNamePrefix:
    Type: String
    Description: >
        If Lex Version 2 BotId is left empty AND the Lex Version 1 BotName is left empty,
        a Lex V1 Bot based on the OrderFlowers sample will be automatically created.
        Specify a prefix to add to Lex resource names when using the sample bot.
        Ignored if you provide your own bot. Must conform to the
        permitted Lex Bot name syntax (alpha characters).
    Default: WebUi
    MinLength: 3
    MaxLength: 32
    AllowedPattern: '^[a-zA-Z\._]+$'
    ConstraintDescription: >
        Must conform with the permitted Lex Bot name pattern.

ShouldDeleteBot:
    Type: String
    Default: true
    AllowedValues:
      - true
      - false
    Description: >
        If set to True, the Optional Sample Lex bot and associated resources will
        be deleted when the stack is deleted. Otherwise, the bot
        will be preserved. Only applies if the bot is created by
        this stack.

EnableCognitoLogin:
    Type: String
    Default: false
    AllowedValues:
      - true
      - false
    Description: >
        If set to True, a menu with a login action will be displayed
        in the Lex Web Ui. This feature uses Cognito User Pools with
        hosted login pages. After login, the menu will switch to logout.

ForceCognitoLogin:
    Type: String
    Default: false
    AllowedValues:
      - true
      - false
    Description: >
        If set to True, the menu with a login action will not be displayed
        in the Lex Web Ui, and the Cognito login will be executed automatically. This implicitly sets
        EnableCognitoLogin to be true.

SaveHistory:
    Type: String
    Default: false
    AllowedValues:
        - true
        - false
    Description: >
        This is an optional parameter, if set to True, the history of the chat is maintained over sessions.
        A item to clean the chat will appear at the menu.

ShouldEnableLiveChat:
    Type: String
    Default: false
    AllowedValues:
      - true
      - false
    Description: >
      This is an optional parameter, if set to True, the AWS Connect live Chat functionality will be available.
      A item to start a live chat will appear at the menu.

CodeBuildName:
    Type: String
    Description: >
        Name of the CodeBuild project to be created. Used to
        configure and directly deploy the web app to S3. Must be
        unique per region
    Default: lex-web-ui
    MinLength: 2
    MaxLength: 255
    AllowedPattern: '^[A-Za-z0-9][A-Za-z0-9\-_]{1,254}$'
    ConstraintDescription: >
        Should start with Alphanumeric. May contain alphanumeric, undescore
        and dash.

WebAppParentOrigin:
    Type: String
    Description: >
        Browser origin (e.g. http://mysite.example.com:8080)
        of an existing site where you want to place the chat bot UI.
        This is an optional parameter. If left empty, the sample parent page
        will be hosted in the same S3 bucket as the iframe
    Default: ''
    AllowedPattern: '(^$|^https?://[\w\.-]+(:\d+)?$)'
    ConstraintDescription: Empty or valid browser origin

WebAppPath:
    Type: String
    Default: '/parent.html'
    Description: >
        Path to the page (or pages) under WebAppParentOrigin used to host
        the chatbot UI. Multiple paths can be specified as a comma separated
        list.

CognitoIdentityPoolId:
    Type: String
    Description: >
        Id of an existing Cognito Identity Pool. This is an optional
        parameter. If left empty, a Cognito Identity Pool will be
        automatically created. The pool ID is used by the web ui
        to get AWS credentials for making calls to Lex and Polly.
    Default: ''
    AllowedPattern: '(^$|^[\w-]+:[0-9a-f-]+$)'
    ConstraintDescription: Empty or a valid Cognito Identity Pool ID

CognitoIdentityPoolName:
    Type: String
    Description: >
        Name of Cognito identity pool to be created to provide
        AWS credentials to the web ui. Only used if the
        CognitoIdentityPoolId parameter is left empty (default).
    Default: Lex Web UI
    MinLength: 1
    MaxLength: 128
    AllowedPattern: '^[\w ]+$'
    ConstraintDescription: Alphanumeric and spaces.

CleanupBuckets:
    Type: String
    Default: true
    AllowedValues:
      - true
      - false
    Description: >
        If set to True, buckets created for the Pipeline and to store the
        web application will be deleted on CloudFormation stack delete.
        If set to False, S3 buckets will be retained.

EnableMarkdownSupport:
    Type: String
    Default: true
    AllowedValues:
    - true
    - false
    Description: >
        If set to True, enable optional Markdown formatting.
        Warning: Improper use of the Markdown/html feature can open you up to a cross-site
        scripting (XSS) attack from insecure Bots. Make sure you trust the Bot being used
        by the LexWebUi.

ReInitSessionAttributesOnRestart:
    Type: String
    Default: false
    AllowedValues:
    - true
    - false
    Description: >
        If set to True, session attributes sent on each request to Lex are reset. Use a value
        of false, if session attributes need to be supported on subsequent Lex requests. The
        default is false.

ShouldLoadIframeMinimized:
    Type: String
    Default: false
    AllowedValues:
    - true
    - false
    Description: >
        If set to True and running embedded as an Iframe on a web page, minimize the
        LexWebUi when first launched. If set to False, the Iframe will be maximized
        on the hosting page.

ShowResponseCardTitle:
    Type: String
    Default: false
    AllowedValues:
    - true
    - false
    Description: >
        If set to True, the ResponseCard title is displayed in the UI. When set to false,
        a ResponseCard title is not displayed in the UI. Default is false. Note at the
        present time this is a global setting. Should the UI need to display some form
        of a title, use the optional sub-title property of a ResponseCard.

# Sub-templates and source artifacts are hosted in this bucket.
# The content of this bucket is maintained outside of this template
# by using the Makefile under the build directory of this project.
# See the README.md file for instructions on how to use your own bucket.
BootstrapBucket:
    Type: String
    Default: aws-bigdata-blog
    Description: >
        S3 bucket containing pre-staged nested templates and source artifacts
BootstrapPrefix:
    Type: String
    Default: artifacts/aws-lex-web-ui/artifacts
    Description: >
        S3 prefix where the templates and source are stored under

WebAppConfBotInitialText:
    Type: String
    Default: >
        You can ask me for help ordering flowers. Just type "Buy
        flowers" or click on the mic and say it.
    Description: First bot message displayed in the chatbot UI

WebAppConfBotInitialSpeech:
    Type: String
    Default: Say 'Buy Flowers' to get started.
    Description: >
        Message spoken by bot when the microphone is first pressed in
        a conversation

WebAppConfBotInitialUtterance:
    Type: String
    Default: ''
    Description: >
        Text to use to send as first utterance to bot

WebAppConfNegativeFeedback:
    Type: String
    Default: Thumbs down
    Description: >
        This optional parameter defines the message to be sent by the user upon pressing
        a feedback button signaling a negative feedback.
        If left empty feedback buttons will be disabled on the UI.

WebAppConfPositiveFeedback:
    Type: String
    Default: Thumbs up
    Description: >
        This optional parameter defines the message to be sent by the user upon pressing
        a feedback button signaling a positive feedback.
        If left empty feedback buttons will be disabled on the UI.

WebAppConfHelp:
    Type: String
    Default: Help
    Description: >
        This is an optional parameter, when defined with a value, a help button will display on the chat bot toolbar.
        When pressed the button will send the entered string to the bot as a help message.  If left empty
        the help button will be disabled.

WebAppConfToolbarTitle:
    Type: String
    Default: Order Flowers
    Description: Title displayed in the chatbot UI toolbar

retryOnLexPostTextTimeout:
    Type: String
    Default: false
    AllowedValues:
        - true
        - false
    Description: >
        When set to true, operations against the Lex PostText API that result in a timeout
        will be retried up the the defined retry count. This is useful to enable if 30 second
        timeouts in Lex are frequently observed and subsequent operations will must likely succeed.

retryCountPostTextTimeout:
    Type: Number
    Default: 1
    Description: >
        Defines the number of times the lex-web-ui will retry the Lex PostText API operation when an exception
        is detected.

ConnectContactFlowId:
    Type: String
    Description: >
        Connect Contract Flow Id
    Default: ''

ConnectInstanceId:
    Type: String
    Description: >
        Connect Instance Id
    Default: ''

ConnectPromptForNameMessage:
    Type: String
    Description: >
        Message to display prompting the user for a name
    Default: Before starting a live chat, please tell me your name?

ConnectWaitForAgentMessage:
    Type: String
    Description: >
        Message to display every message interval while waiting for an agent to connect
    Default: Thanks for waiting. An agent will be with you when available.

ConnectAttachChatTranscript:
    Type: String
    Default: false
    AllowedValues:
    - true
    - false
    Description: >
        Attach chat transcript as file. This only works if you enable attachments in Amazon Connect.

ConnectAgentJoinedMessage:
    Type: String
    Description: >
        Message to play when an agent joins the chat. {Agent} will be replaced with the Agent's name.
    Default: "{Agent} has joined."

ConnectAgentLeftMessage:
    Type: String
    Description: >
        Message to play when an agent leaves the chat. {Agent} will be replaced with the Agent's name.
    Default: "{Agent} has left."

ConnectChatEndedMessage:
    Type: String
    Description: >
        Message to play when a chat session has ended.
    Default: "Chat ended."

ConnectWaitForAgentMessageIntervalInSeconds:
    Type: Number
    Description: >
        Interval in seconds between successive ConnectWaitForAgentMessage. 0 to disable interval.
    Default: 60

ConnectLiveChatTerms:
    Type: String
    Description: >
        Command separated list of terms that can be used to start Live Chat mode
    Default: "live chat"

Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: Deployment Parameters Parameters: - CodeBuildName - CleanupBuckets - BootstrapBucket - BootstrapPrefix - Label: default: Lex V1 Bot Configuration Parameters Parameters: - BotName - BotAlias - Label: default: Lex V2 Bot Configuration Parameters Parameters: - LexV2BotId - LexV2BotAliasId - LexV2BotLocaleId - Label: default: Optional Sample Bot Parameters: - BotNamePrefix - ShouldDeleteBot - Label: default: Bot Behavior Parameters Parameters: - EnableCognitoLogin - ForceCognitoLogin - EnableMarkdownSupport - ReInitSessionAttributesOnRestart - ShowResponseCardTitle - SaveHistory - retryOnLexPostTextTimeout - retryCountPostTextTimeout - Label: default: Cognito Parameters Parameters: - CognitoIdentityPoolId - CognitoIdentityPoolName - Label: default: Web Application Parameters Parameters: - WebAppParentOrigin - WebAppPath - WebAppConfBotInitialText - WebAppConfBotInitialSpeech - WebAppConfBotInitialUtterance - WebAppConfNegativeFeedback - WebAppConfPositiveFeedback - WebAppConfHelp - WebAppConfToolbarTitle - ShouldLoadIframeMinimized - Label: default: Connect Live Chat Parameters Parameters: - ShouldEnableLiveChat - ConnectLiveChatTerms - ConnectInstanceId - ConnectContactFlowId - ConnectPromptForNameMessage - ConnectWaitForAgentMessage - ConnectWaitForAgentMessageIntervalInSeconds - ConnectAgentJoinedMessage - ConnectAgentLeftMessage - ConnectChatEndedMessage - ConnectAttachChatTranscript Conditions: IsLexV2: !Not [ !Equals ['WNDVSKTNZ8', ''] ] NeedsBot: !And [ !Equals [!Ref BotName, ''], !Equals ['WNDVSKTNZ8', ''] ] NeedsCognito: !Equals [!Ref CognitoIdentityPoolId, ''] NeedsParentOrigin: !Equals [!Ref WebAppParentOrigin, ''] ShouldForceCognitoLogin: !Equals [!Ref ForceCognitoLogin, true] EnableLiveChat: !Equals [!Ref ShouldEnableLiveChat, true]

Resources: Bot: Type: AWS::CloudFormation::Stack Condition: NeedsBot Properties: TimeoutInMinutes: 15 TemplateURL: !Sub "https://${BootstrapBucket}.s3.${AWS::Region}.amazonaws.com/${BootstrapPrefix}/templates/lexbot.yaml" Parameters: NamePrefix: !Ref BotNamePrefix ShouldDeleteBot: !Ref ShouldDeleteBot CustomResourceCodeBucket: !Ref BootstrapBucket CustomResourceCodeObject: !Sub "${BootstrapPrefix}/custom-resources-v0.19.5.zip"

CognitoIdentityPool:
    Type: AWS::CloudFormation::Stack
    Condition: NeedsCognito
    Properties:
        TemplateURL: !Sub "https://${BootstrapBucket}.s3.${AWS::Region}.amazonaws.com/${BootstrapPrefix}/templates/cognito.yaml"
        Parameters:
            CognitoIdentityPoolName: !Ref CognitoIdentityPoolName
            ForceCognitoLogin: !Ref ForceCognitoLogin
            LexBotName:
                !If
                  - NeedsBot
                  - !GetAtt Bot.Outputs.BotName
                  - !Ref BotName
            LexV2BotId: 'WNDVSKTNZ8'
            LexV2BotAliasId: 'VigInvestigationsAlias'
            ShouldEnableLiveChat: !Ref ShouldEnableLiveChat

##########################################################################
# Simplified deployment using CodeBuild to build config and push to S3
##########################################################################
CodeBuildDeploy:
    Type: AWS::CloudFormation::Stack
    Properties:
        TemplateURL: !Sub "https://${BootstrapBucket}.s3.${AWS::Region}.amazonaws.com/${BootstrapPrefix}/templates/codebuild-deploy.yaml"
        Parameters:
            ResourcePrefix: !Ref "AWS::StackName"
            CodeBuildName: !Ref CodeBuildName
            SourceBucket: !Ref BootstrapBucket
            SourcePrefix: !Ref BootstrapPrefix
            SourceObject: !Sub "${BootstrapPrefix}/src-v0.19.5.zip"
            CustomResourceCodeObject: !Sub "${BootstrapPrefix}/custom-resources-v0.19.5.zip"
            InitiateChatLambdaCodeObject: !Sub "${BootstrapPrefix}/initiate-chat-lambda-v0.19.5.zip"
            CleanupBuckets: !Ref CleanupBuckets
            BotName:
                !If
                  - IsLexV2
                  - 'WNDVSKTNZ8'
                  - !If
                      - NeedsBot
                      - !GetAtt Bot.Outputs.BotName
                      - !Ref BotName
            BotAlias: !Ref BotAlias
            LexV2BotId: 'WNDVSKTNZ8'
            LexV2BotAliasId: 'VigInvestigationsAlias'
            LexV2BotLocaleId: 'en_US'
            CognitoIdentityPoolId:
                !If
                  - NeedsCognito
                  - !GetAtt CognitoIdentityPool.Outputs.CognitoIdentityPoolId
                  - !Ref CognitoIdentityPoolId
            ParentOrigin: !Ref WebAppParentOrigin
            WebAppConfBotInitialText: !Ref WebAppConfBotInitialText
            WebAppConfBotInitialSpeech: !Ref WebAppConfBotInitialSpeech
            WebAppConfBotInitialUtterance: !Ref WebAppConfBotInitialUtterance
            WebAppConfNegativeFeedback: !Ref WebAppConfNegativeFeedback
            WebAppConfPositiveFeedback: !Ref WebAppConfPositiveFeedback
            WebAppConfHelp: !Ref WebAppConfHelp
            WebAppConfToolbarTitle: !Ref WebAppConfToolbarTitle
            SaveHistory: !Ref SaveHistory
            ShouldEnableLiveChat: !Ref ShouldEnableLiveChat
            ShouldEnableCognitoLogin:
              !If
                - ShouldForceCognitoLogin
                - true
                - !Ref EnableCognitoLogin
            ShouldForceCognitoLogin: !Ref ForceCognitoLogin
            ReInitSessionAttributesOnRestart: !Ref ReInitSessionAttributesOnRestart
            EnableMarkdownSupport: !Ref EnableMarkdownSupport
            ShouldLoadIframeMinimized: !Ref ShouldLoadIframeMinimized
            ShowResponseCardTitle: !Ref ShowResponseCardTitle
            CognitoAppUserPoolClientId:
                !If
                  - NeedsCognito
                  - !GetAtt CognitoIdentityPool.Outputs.CognitoUserPoolClientId
                  - "UserMustSupply"
            CognitoUserPoolId:
                !If
                  - NeedsCognito
                  - !GetAtt CognitoIdentityPool.Outputs.CognitoUserPoolId
                  - "UserMustSupply"
            retryOnLexPostTextTimeout: !Ref retryOnLexPostTextTimeout
            retryCountPostTextTimeout: !Ref retryCountPostTextTimeout
            ConnectContactFlowId: !Ref ConnectContactFlowId
            ConnectInstanceId: !Ref ConnectInstanceId
            ConnectPromptForNameMessage: !Ref ConnectPromptForNameMessage
            ConnectWaitForAgentMessage: !Ref ConnectWaitForAgentMessage
            ConnectWaitForAgentMessageIntervalInSeconds: !Ref ConnectWaitForAgentMessageIntervalInSeconds
            ConnectAgentJoinedMessage: !Ref ConnectAgentJoinedMessage
            ConnectAgentLeftMessage: !Ref ConnectAgentLeftMessage
            ConnectChatEndedMessage: !Ref ConnectChatEndedMessage
            ConnectAttachChatTranscript: !Ref ConnectAttachChatTranscript
            ConnectLiveChatTerms: !Ref ConnectLiveChatTerms
            Timestamp: 1658170487

CognitoIdentityPoolConfig:
    Type: AWS::CloudFormation::Stack
    Condition: NeedsCognito
    Properties:
        TemplateURL: !Sub "https://${BootstrapBucket}.s3.${AWS::Region}.amazonaws.com/${BootstrapPrefix}/templates/cognitouserpoolconfig.yaml"
        Parameters:
            CloudFrontUrl: !GetAtt CodeBuildDeploy.Outputs.WebAppBase
            WebAppUrl: !Ref WebAppParentOrigin
            WebAppPath: !Ref WebAppPath
            CodeBuildProjectName: !GetAtt CodeBuildDeploy.Outputs.CodeBuildProject
            CognitoUserPool: !GetAtt CognitoIdentityPool.Outputs.CognitoUserPoolId
            CognitoUserPoolClient: !GetAtt CognitoIdentityPool.Outputs.CognitoUserPoolClientId
            Timestamp: 1658170487

Outputs: BotName: Condition: NeedsBot Description: > Name of the Lex bot created by the stack Value: !GetAtt Bot.Outputs.BotName

CodeBuildUrl:
    Description: >
        Monitor the pipeline URL to see when the application has been fully
        built and deployed.
    Value: !Sub "https://console.aws.amazon.com/codebuild/home?region=${AWS::Region}#/projects/${CodeBuildDeploy.Outputs.CodeBuildProject}/view"

WebAppUrl:
    Description: >
        URL of the stand-alone sample web application.
        This page will be available after the pipeline/deployment completes.
    Value: !GetAtt CodeBuildDeploy.Outputs.WebAppUrl

WebAppDomainName:
    Description: >
        DomainName of the web application
    Value: !GetAtt CodeBuildDeploy.Outputs.WebAppDomainName
    Export:
      Name: !Join [":", [!Ref "AWS::StackName", WebAppDomainName]]

WebAppBucket:
    Description: >
        S3 bucket hosting lexwebui artifacts
    Value: !GetAtt CodeBuildDeploy.Outputs.WebAppBucket
    Export:
      Name: !Join [":", [!Ref "AWS::StackName", WebAppBucket]]

ParentPageUrl:
    Condition: NeedsParentOrigin
    Description: >
        URL of the iframe based sample web application
        This page will be available after the pipeline/deployment completes.
    Value: !GetAtt CodeBuildDeploy.Outputs.ParentPageUrl

LoaderScriptUrl:
    Description: >
        URL of the loader script
        This script will be available after the pipeline/deployment completes.
    Value: !GetAtt CodeBuildDeploy.Outputs.LoaderScriptUrl

SnippetUrl:
    Description: >
        URL of a page showing the snippet to load the chatbot UI as
        an iframe
    Value: !GetAtt CodeBuildDeploy.Outputs.SnippetUrl

CognitoIdentityPoolId:
    Condition: NeedsCognito
    Description: Cognito Identity Pool Id
    Value: !GetAtt CognitoIdentityPool.Outputs.CognitoIdentityPoolId

CognitoUserPoolPubKey:
    Condition: NeedsCognito
    Description: Include Cognito User Pool Public Key URL in stack outputs (needed for QnABot token auth)
    Value: !Sub https://cognito-idp.${AWS::Region}.amazonaws.com/${CognitoIdentityPool.Outputs.CognitoUserPoolId}/.well-known/jwks.json

CognitoUserPoolClientId:
    Condition: NeedsCognito
    Description: Cognito User Pool Client Id
    Value: !GetAtt CognitoIdentityPool.Outputs.CognitoUserPoolClientId
    Export:
      Name: !Join [":", [!Ref "AWS::StackName", CognitoUserPoolClientId]]`

Here is my YAML file with my bot info: https://github.com/ViggoMode2021/Lex-Ui_Sample/blob/main/bot.yml

Thank you!

ViggoMode2021 avatar Aug 04 '22 19:08 ViggoMode2021

@ViggoMode2021 Are you targeting a Lex V1 or Lex V2 bot? Be sure to supply values for either one or the other but not both. If you are targeting Lex V2 you need to supply LexV2BotId, LexV2BotAliasId, LexV2BotLocaleId and leave BotName and BotAlias defaulted as '' as they will target a Lex V1 bot. If you are targeting a Lex V1 bot you need to supply BotName and BotAlias and leave the other three the way they are originally set. If you have already deployed and the WebUiOrderFlowers bot has been created, I would delete the stack and start over.

Its much easier just to click on the appropriate launch stack button for your region in the blog post under getting started and fill in either the Lex V1 or Lex V2 parameters.

bobpskier avatar Aug 04 '22 21:08 bobpskier

Yes, I've done it both with the yml file that I edited directly and via the launch stack button in the blog post. It is a Lex V2 bot but everytime I launch it and ask it a question that I implemented for my chatbot like 'What's your name?', I get the response 'Sorry, I was unable to process your message. Try again later.'. I'm not sure what else to do, but I appreciate your response.

ViggoMode2021 avatar Aug 04 '22 23:08 ViggoMode2021

Thank you

ViggoMode2021 avatar Aug 04 '22 23:08 ViggoMode2021

@ViggoMode2021 Usually this means something on the backend is failing. Do you have any Lambda functions attached to your Lex intents? Using the browser debugger, you can see the specific error being returned in the response from Lex that results in the 'I was unable to process your message'. In the browser, after you submit your question, you'll see a post request (recognizeText) sent to Lex V2. This post request in the browser debugger once completed will have a Response. This response will contain a good indication as to what failed on the back end.

bobpskier avatar Aug 05 '22 00:08 bobpskier