[Amazon Connect]プロンプトの操作を行えるWebベースのサンプルソリューションを触ってみた

Webベースで音声プロンプトの操作を行えるサンプルソリューションを試してみました
2023.08.29

こんにちは、洲崎です。
2023/5にAmazon Connectで音声プロンプトの操作がAPI(AWS CLIやCloudFormatiron等)を使って行えるようになりました。

そのAPIを利用して、Webベースで音声プロンプトの操作を行えるサンプルソリューションがAWS Blogで紹介されていたので試してみました。

構成

このサンプルはブログにあるCloudFormationを実行して構築します。

AWS Blogより抜粋)
CloudFormationを実行すると、S3バケットとCloudFrontの環境がデプロイされます。
※CloudFrontはパブリックにアクセスが可能な状態でデプロイされますので、必要に応じてアクセス制御を実施してください。

前提条件

このサンプルを利用するには、以下の前提条件を満たす必要があります。

サンプル構築時

  • 最低限、以下の権限を持つIAMユーザーが必要です
    • Amazon Connectコンソールにログインできる(プロンプトの内容を確認できる)
    • IAMのポリシーとロール作成ができる
    • CloudFrontのディストリビューションを作成できる
    • S3バケットを作成できる
    • CloudFormationを実行できる

サンプル利用時

  • サンプルを利用する際、IAMユーザーの認証を利用しますので、別で利用者用のIAMユーザーの準備とアクセスキー・シークレットキーの発行が必要です
  • 合わせて、Amazon ConnectのプロンプトのAPIを実行するポリシーの権限が必要です(以下は最低限必要な権限が記載されています)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "connect:DescribeInstance",
                "connect:UntagResource",
                "connect:ListPrompts",
                "connect:TagResource",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:connect:YOUR_REGION:YOUR_ACCOUNT_ID:instance/YOUR_INSTANCE_ID",
                "arn:aws:s3:::YOUR_S3_BUCKET_NAME/*",
                "arn:aws:s3:::YOUR_S3_BUCKET_NAME"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "connect:CreatePrompt",
                "connect:UpdatePrompt",
                "connect:DescribePrompt",
                "connect:UntagResource",
                "connect:DeletePrompt",
                "connect:TagResource",
                "connect:GetPromptFile"
            ],
            "Resource": "arn:aws:connect:YOUR_REGION:YOUR_ACCOUNT_ID:instance/YOUR_INSTANCE_ID/prompt/*"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "connect:ListInstances",
            "Resource": "*"
        }
    ]
}

また、このサンプルは東京リージョンでも利用可能です。(今回は東京リージョンで試します)

やってみる

CloudFormation スタックの作成

AWSマネジメントコンソールにログインし、AWS Blogで紹介されているCloudFormationのリンクをクリックしてスタックを実行します。
ステータスがCREATE_COMPLETEになることを確認します。

出力のタブで表示されているCloudFrontのURLを別タブで開きます。

これで、構築は完了です。(早っ)

Webベースのサンプルソリューションを触る

CloudFrontのURLを開くと、「Amazon Connect Prompt APIs」というWebページが表示されます。
IAMの設定がポップアップで表示されるので、Access KeyRegion(今回はap-northeast-1)、Secret KeyInstance ARNを入力します。

Instance ARNはAWSマネジメントコンソールのAmazon Connect概要Distribution settingsから確認が可能です。

認証が成功したら、プロンプトの操作ができるようになります。

List Prompts

「List Prompts」は、Amazon Connectに設定しているプロンプトの一覧を表示させることができます。
右側のJSON OutputidArnNameをJSON形式で確認することができます。

Create Prompts

「Create Prompt」は、S3にあるwavファイルをAmazon Connectにプロンプトとして登録する機能です。
事前に、S3にwavファイルを置いてS3 URIをコピーします。

「Create Prompt」をクリックして、登録する名前(Name)、説明(Description)と、コピーしたS3 URIを貼り付けます。

「Update Prompt」をクリックすると、新規でプロンプトを登録することができました。

Amazon Connectコンソールからでも、プロンプトが登録されている確認がとれました。

Update Prompts & Describe Prompt

「Update Prompt」は名前の通り、プロンプトの情報を編集・上書きする機能です。
今回はDescriptionをsample20230829から、sample20230829-suzakiに変えて、Update Promptをクリックしてみます。(スクショには記載ないですが、S3 URIの情報も必要です)

「Describe Prompt」で変更したプロンプトの情報を確認したところ、Descriptionを変更した確認をとることができました。

Get Prompt File

1つプロンプトを選択して、「Get Prompt File」をクリックしたら、別タブが開いてプロンプトの音声を聞くことができました。

Delete Prompt

「Delete Prompt」をクリックしたら、警告のポップアップが表示されました。

「Yes」をクリックしたら、今回作成したsample20230829を削除することができました。

これで、機能の検証は終了です。

清掃

CloudFormationの作成したスタックのリソースを見にいき、S3バケットが2つあることを確認します。

それぞれ物理IDからS3バケットに飛び、中身を空にします。
その後、CloudFormationのスタックを削除します。
検証用で作成したIAMユーザーやIAMポリシーなども必要に応じて削除してください。

最後に

Amazon Connectのプロンプトの操作を行えるWebベースのサンプルソリューションを試してみました。
APIが対応されたので、CloudFormationやAWS CLIで作業できるようになったのと同時に、GUIベースのソリューションも作りやすくなったなと実感じました。
普段CLIとかはあまり触れていない方で、1つの画面で複数のプロンプトの内容を確認したいなどある場合は、試してみてはいかがでしょうか。

ではまた!コンサルティング部の洲崎でした。