CDKを使用してAmazon ConnectのFlowを構築する方法
こんにちは稲葉です。
本記事では、cdkを使用してAmazon ConnectのFlowを構築していきたいと思います。
Preparation
はじめにcdkプロジェクトを作成します。今回はTypeScriptを使用。
mkdir cdk-connect cd cdk-connect cdk init app --language typescript
Stack
全体的なフローは以下のキャプチャのように 「Set voice -> Play prompt -> Disconnect」 のような簡単なフローを構築していきます。
import * as cdk from "aws-cdk-lib"; import { Construct } from "constructs"; export class CdkConnectStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); const connectInstance = new cdk.aws_connect.CfnInstance( this, "connect-instance", { attributes: { inboundCalls: false, outboundCalls: true, }, identityManagementType: "CONNECT_MANAGED", instanceAlias: `connect-instance-test`, } ); new cdk.aws_connect.CfnContactFlow(this, "connect-flow", { content: JSON.stringify({ Version: "2019-10-30", StartAction: "SetVoice", Metadata: { entryPointPosition: { x: 20, y: 19, }, ActionMetadata: { SetVoice: { position: { x: 181, y: 80, }, }, PlayPrompt: { position: { x: 421, y: 81, }, }, Disconnect: { position: { x: 660, y: 82, }, }, }, }, Actions: [ { Identifier: "SetVoice", Type: "UpdateContactTextToSpeechVoice", Parameters: { TextToSpeechVoice: "Kazuha", }, Transitions: { NextAction: "PlayPrompt", Conditions: [], }, }, { Identifier: "PlayPrompt", Type: "MessageParticipant", Parameters: { Text: "アラートが発生していますので、確認してください", }, Transitions: { NextAction: "Disconnect", Errors: [ { NextAction: "Disconnect", ErrorType: "NoMatchingError", }, ], Conditions: [], }, }, { Identifier: "Disconnect", Type: "DisconnectParticipant", Parameters: {}, Transitions: {}, }, ], }), instanceArn: connectInstance.attrArn, name: "ContactFlow", type: "CONTACT_FLOW", }); } }
CfnContactFlowのcontentにはAmazon Connect Flow languageで一連のフローを記述していきます。
参照:(https://docs.aws.amazon.com/ja_jp/connect/latest/APIReference/flow-language.html)
Metadataのx、yは、各アクションの表示される位置を表します。今回はこの数値で定義します。(お好きな数値で構いません)
Actionsで各アクションを定義していきます。
NextActionで言葉の通り、次のアクションを定義します。ここで注意しないといけないのが、指定するアクションはIdentifierで定義したものでなければならないことです。
何かしらのエラーが起きた際のフローはErrorsに定義します。アクションによってはエラーフローがないものもあるため、マネジメントコンソールで要確認!
以上で実装は完了です!デプロイして確認します。
cdk deploy
Confirmation
Amazon Connectに移動して、今回作成したconnect-instance-testを選択し、URLを押すと別タブでWindowが開かれます。
次にFlows画面に移動して先ほど作成したContactFlowをクリックします。
そうすると、最初に想定したフローと同じものが作成されていることが確認できると思います。
Summary
本記事では、cdkを使用して、Amazon ConnectのFlowを構築しました。
これからもcdkを使用して何かしらのAWSサービスを構築した記事を投稿していきたいと思います。
最後まで読んでくださりありがとうございました!