AWS LambdaでAWS-SDK forJavaScriptを利用して関数を作成しています。
AmazonConnectの通話が記録されたS3の.wavファイルのメタデータ値を使用して、.wavファイルの元となった通話の連絡先属性を取得しようとしています。
Lambda関数は以下の通りです。
Object.defineProperty(exports, "__esModule", { value: true }); const AWS = require("aws-sdk"); const connect = new AWS.Connect(); const s3 = new AWS.S3(); exports.handler = async (event, context) => { await Promise.all(event.Records.map(async (record) => { const bucket = event.Records[0].s3.bucket.name; const key = decodeURIComponent(event.Records[0].s3.object.key.replace(/+/g, ' ')); var params = { Bucket: bucket, Key: key, }; const metadata = await s3.headObject(params).promise(); console.log(metadata); const contactid = metadata.Metadata['contact-id']; const instanceid = metadata.Metadata['organization-id']; var params = { InitialContactId: contactid, InstanceId: instanceid, }; console.log(params); const connectdata = await connect.getContactAttributes(params).promise(); console.log(connectdata); })); };
ConnectクラスのGetContactAttributesメソッドを使用して連絡先属性を取得しようとしましたが、内容が取得できていないように思えます。
console.log(connectdata) { Attributes: {} }
wavファイルのJSON値は以下の通りです(特定できてしまう情報はXで隠してます)。
{ AcceptRanges: 'bytes', LastModified: 2021-09-01TXX:XX:XX.000Z, ContentLength: 809644, ETag: '"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"', ContentType: 'audio/wav', ServerSideEncryption: 'aws:kms', Metadata: { 'contact-id': 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', 'aws-account-id': 'XXXXXXXXXXXX', 'organization-id': 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' }, SSEKMSKeyId: 'arn:aws:kms:ap-northeast-1:XXXXXXXXXXXX:key/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' }
AWSのドキュメントを見る限り、パラメータにInitialContactIdとInstanceIdの値があれば取得できるように思えたのですが、原因が何か知りたいです。
https://docs.aws.amazon.com/ja_jp/connect/latest/APIReference/API_GetContactAttributes.html#connect-GetContactAttributes-response-Attributes
また、AmazonConnectの問い合わせの検索履歴をみたところ、.wavファイルのメタデータであるcontact-idと該当する通話情報のコンタクトidは一致していることも確認できました。
{ Attributes: {} }が表示されてしまう原因が分からない状態ですので、何かアドバイスいただけると幸いです。
---追記(2021.9.7)---
連絡先情報取得のgetContactAttributesメソッドはこちらのドキュメントを参考にしております。
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Connect.html#getContactAttributes-property
また、関係ないかもしれませんが、AmazonConnectのインスタンス側で当該のLambda関数を登録しております。
現時点でも問題解決に至っていないので、何かアドバイスいただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。