前提条件
Saleforce API Version : v55.0
serverlessrepo-AmazonConnectSalesforceLambda : 5.19.0
この記事は、2022/10頃に書かれています。
AmazonConnectのGUIの問題(その内VerUpで解消されるかも?)だったり、自分の理解不足の問題だったりするので、備忘以外の何物でもないかもしれません。
同じハマり方をした人に届いたらいいな?と自分への備忘も兼ねて
トラブルの内容
公式のインストール手順書は下記の通り
前提として
の有効化が必要である。
この手順通りに設定してもデータ連携ができなかった。というのが、今回の記事の主旨になります。
初見の視点で手順書からは分かりにくい前提や、躓きやすい事を、備忘録として書き残しておきます。
問題の内容
今回は、エラーメッセージらしきエラーはありません。
- Firehoseでのストリーミング出力設定から、DataStreamへの切り替えがGUIで出来ない?(疑惑)
- コンタクトチャネル分析(ContactLens)のDataStreamとコンタクト追跡レコード(CTR)のDataStreamは共用できない。
後者の、『DataStreamは共用できない』は、それ以上でも、それ以下でもないので、後述は省略します。
(しいて言えば、コンタクト追跡レコード(CTR)のデータ連携は、Firehose→S3トラガー式の連携も提供して欲しいとAWSへ要望を出すか、提供されたLambdaを元に自作してしまうか、、、、なレベル)
CLI 調査に必要なコマンドのドキュメント詳細の在処
- 現状の設定情報確認をする
- CLIからストリームを紐づける
- CLIからストリーム紐づけを解除する
最後に信じるべきは、GUIではなくCLIである。久々にコレを痛感させられた出来事
検証( 未設定 → Firehose )への切り替え
未設定の状態からFirehose経由の出力するのは問題なし
aws connect list-instance-storage-configs --instance-id AmazonConnectインスタンスID --resource-type CONTACT_TRACE_RECORDS
{
"StorageConfigs": [
{
"AssociationId": "自動採番",
"StorageType": "KINESIS_FIREHOSE",
"KinesisFirehoseConfig": {
"FirehoseArn": "arn:aws:firehose:ap-northeast-1:AWSアカウントID:deliverystream/Firehoseストリーム名"
}
}
]
}
検証( Firehose → DataStream )への切り替え
CLIで設定情報を確認すると。。。
aws connect list-instance-storage-configs --instance-id AmazonConnectインスタンスID --resource-type CONTACT_TRACE_RECORDS
{
"StorageConfigs": []
}
何も割当たってない。。。。
『ちょっ、まっ!』コマンドの結果を見て、驚きの声が隠せませんでした。
(気が付くまでに結構な時間が溶けた)
勿論、このままでは『コンタクト追跡レコード』のデータ連携は出来ません。
なので、GUIでの設定は諦めて、CLIで設定をかけます。
ストリーム割りてのコマンド実行と結果
aws connect associate-instance-storage-config --instance-id AmazonConnectインスタンスID --resource-type CONTACT_TRACE_RECORDS --storage-config StorageType=KINESIS_STREAM,KinesisStreamConfig={StreamArn=arn:aws:kinesis:ap-northeast-1:AWSアカウントID:stream/ストリーム名}
{
"AssociationId": "自動採番"
}
設定情報の確認
aws connect list-instance-storage-configs --instance-id AmazonConnectインスタンスID --resource-type CONTACT_TRACE_RECORDS
{
"StorageConfigs": [
{
"AssociationId": "自動採番",
"StorageType": "KINESIS_STREAM",
"KinesisStreamConfig": {
"StreamArn": "arn:aws:kinesis:ap-northeast-1:AWSアカウントID:stream/ストリーム名"
}
}
]
}
ふぅ、CLIなら無事に設定がかかるようです。
CLIで設定をかけたら、無事にSalesforceへデータ連携も出来ました。
検証( DataStream → Firehose )への切り替え
こちらは、どうでしょうか、、、
GUIで再度割り当てて、CLIで設定内容を確認します。
設定情報の確認
aws connect list-instance-storage-configs --instance-id AmazonConnectインスタンスID --resource-type CONTACT_TRACE_RECORDS
{
"StorageConfigs": [
{
"AssociationId": "自動採番",
"StorageType": "KINESIS_FIREHOSE",
"KinesisFirehoseConfig": {
"FirehoseArn": "arn:aws:firehose:ap-northeast-1:AWSアカウントID:deliverystream/Firehoseストリーム名"
}
}
]
}
こちらの場合は、大丈夫のようですね。
まとめ
- コンタクト追跡レコードは、一度でもFirehose出力の設定をかけるとCLIを使わないとDataStreamへの変更ができない
- Firehoseへの出力設定は、GUIを利用して設定することが可能
GUIで切り替えられるんだったら、Firehoseの出力も試してみるか、、、と安易な気持ちで試したらDataStream連携への設定に戻らなくなって困ったけど、何とかなった話しでした。
おまけ(CLIを叩くのに付与したロールとポリシー)
ほぼほぼデバックの為のCLI実行だったので。。。
- AmazonConnect_FullAccess(組み込みポリシー)
- カスタムポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "iam:PutRolePolicy",
"Resource": "arn:aws:iam::AWSアカウントID:role/*"
}
]
}
を付与して実行しました。
ストレージ系の割当変更の実行には、"iam:PutRolePolicy"も必要なようです。
AmazonConnect トラブルシュートシリーズ
AWSの相談・お困りごとありましたら、、、
AWSの活用方法や、お困りごとの相談、随時、お仕事の受付しております。