最近、別々のAWSアカウント越しにいろいろ連携する方法をリサーチしています。
今回は、Amazon Connectのコンタクトフローから、**別のAWSアカウントにあるLexボットを呼び出したい!**がゴールです。
フツーのLexボット連携の場合
Amazon Connectと同一アカウント内のLexボットを連携するフツーのケースでは、Get Customer InputブロックのAmazon LexセクションでSelect a Lex botを選択すると、ドロップダウンリストから目的のLexボットを選べるので、チョロいわけです。
じゃあ、Enter an ARNすれば他アカウントのLexボットも呼び出せるんじゃないか?
と思ったら、、、意外と簡単じゃなかった。。
Enter an ARNの公式ドキュメントがない問題
Enter an ARNを選んでみるも、パッと見とフィーリングで設定がわからないので
グーグル先生に尋ねると・・・
公式ドキュメントに記載がなーい!(2021年8月28日現在)
LexボットのARNってどうやってゲットするの?問題
・・・じゃあ、適当に設定してみるか。
ということで管理コンソールでAmazon Lexのいろいろなページを見ても、ボットのARNがズバリ!記載されているページがありません。。
公式ドキュメントの例をもとに、arn:aws:lex:ap-northeast-1:123456789012:bot:OrderFlowers
的な(左記のアカウントIDとボット名は例)ARNをいろいろ試すわけですが
・・・ことごとくこのような
エラーが出てPublishできません。
試行錯誤の結果たどり着いた答えは、、、
Amazon Lex v1 (Classic)はARN経由で連携できない
です。
このドキュメントの 7.c. には、7.b. のClassicボット(v1)との対比で、「Amazon Lex ボットの場合は、ボットエイリアス ARN を手動で設定することもできます。」と書いてありますね。
Lex v2のボットならコンタクトフローをPublishできる
Lex v1(Classic)ボットの連携がうまく行かないので、目先を変えてLex v2ボットでテストすることにしました。
Lex V2 開発者ガイドを見ると、例としてarn:aws:lex:Region:123456789012:bot-alias/MYBOT/MYBOTALIAS
というARNが載っています。
なので、
arn:aws:lex:ap-northeast-1:123456789012:bot-alias/DSPP8M6EKZ/O3SUP4JK56
的な(上記アカウントIDは参考例)ARNを指定すると、めでたくコンタクトフローがPublishできます!やったー!
ところが!
当初このテストをしていた8月11日時点では、Amazon ConnectのコンタクトフローはLex v2ボットとは連携できない制約があり、結局コンタクトフローは動きませんでした。。。
というオチで終わる予定だったのですが
8月末に再調査していたら、なんと8月12日にこの制約がなくなったというじゃあーりませんか!
本日(9月14日)再度テストしたところ、無事に他アカウントのボットを呼び出せました!
Yay!