こんにちは稲葉です。
本記事では、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サービスを構築した記事を投稿していきたいと思います。
最後まで読んでくださりありがとうございました!