我通过执行以下操作从 AWS Transcribe 获得了回调响应:
我使用 PHP SDK 创建了一个转录作业:
use Aws\TranscribeService\TranscribeServiceClient;
...
$transcriber = new TranscribeServiceClient([<config>]);
$job = $transcriber->startTranscriptionJob([<config>, 'TranscriptionJobName' => 'unique-job-name']);
接下来,我登录 AWS 控制台并转到 AWS Lambda。在 Lambda 中,我使用 Node.js 8.10 运行时创建了一个函数:
var https = require('https');
exports.handler = function(event, context) {
var body='';
// the post options
var optionspost = {
host: 'example.com',
path: '/transcriptions/callback',
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
};
var reqPost = https.request(optionspost, function(res) {
res.on('data', function (chunk) {
body += chunk;
});
context.succeed(body);
});
reqPost.write(JSON.stringify(event));
reqPost.end();
};
这会发送一个 POST 请求https://<host><path>
,并将event
数据作为正文
接下来进入 AWS Cloudwatch 并创建一个rule
Events->rules
. 在Event Source - Service Name
选择Transcribe
和配置您的选项下(Event Type -> Transcribe Job State Change, Specific Status -> Completed)
。在Targets
选择下Lambda Function
,然后选择您的function
Lambda Function
这将在完成后触发对您的呼叫Transcribe Job
。发布到您的服务器的Lambda Function
帖子,其中包含转录作业的详细信息,包括Job Name: unique-job-name
.
此时,您可以返回Cloudwatch
并:
- 选择您的
Rule
并单击show metrics for this rule
。
- 选择
Logs
查看您的任何日志记录信息Lambda Function