本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
测试预注释和注释后 Lambda 函数
您可以在 Lambda 控制台中测试预注释并发布注释 Lambda 函数。如果您是 Lambda 的新用户,您可以了解如何测试,或者调用,您的 Lambda 函数在控制台中使用创建 Lambda 函数教程中的控制台Amazon Lambda开发人员指南 的第一个版本。
您可以使用本页面上的部分了解如何测试通过Amazon Serverless Application Repository(SAR)。
先决条件
您必须执行以下操作才能使用本页上描述的测试。
-
您需要访问 Lambda 控制台,并且需要创建和调用 Lambda 函数的权限。要了解如何设置这些权限,请参阅。授予创建和选择Amazon Lambda函数.
-
如果您尚未部署 Ground Truth SAR 配方,请使用中的步骤为自定义标签工作流程创建 Lambda 函数要做到这一点。
-
要测试注释后 Lambda 函数,您必须在 Amazon S3 中有一个带有示例注释数据的数据文件。对于简单的测试,您可以将以下代码复制并粘贴到文件中,并将其另存为
sample-annotations.json和将此文件上载到 Amazon S3. 请注意此文件的 S3 URI-您需要此信息来配置注释后的 Lambda 测试。[{"datasetObjectId":"0","dataObject":{"content":"To train a machine learning model, you need a large, high-quality, labeled dataset. Ground Truth helps you build high-quality training datasets for your machine learning models."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":8,\"label\":\"verb\",\"startOffset\":3},{\"endOffset\":27,\"label\":\"adjective\",\"startOffset\":11},{\"endOffset\":33,\"label\":\"object\",\"startOffset\":28},{\"endOffset\":51,\"label\":\"adjective\",\"startOffset\":46},{\"endOffset\":65,\"label\":\"adjective\",\"startOffset\":53},{\"endOffset\":74,\"label\":\"adjective\",\"startOffset\":67},{\"endOffset\":82,\"label\":\"adjective\",\"startOffset\":75},{\"endOffset\":102,\"label\":\"verb\",\"startOffset\":97},{\"endOffset\":112,\"label\":\"verb\",\"startOffset\":107},{\"endOffset\":125,\"label\":\"adjective\",\"startOffset\":113},{\"endOffset\":134,\"label\":\"adjective\",\"startOffset\":126},{\"endOffset\":143,\"label\":\"object\",\"startOffset\":135},{\"endOffset\":169,\"label\":\"adjective\",\"startOffset\":153},{\"endOffset\":176,\"label\":\"object\",\"startOffset\":170}]}}"}}]},{"datasetObjectId":"1","dataObject":{"content":"Sift 3 cups of flour into the bowl."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":4,\"label\":\"verb\",\"startOffset\":0},{\"endOffset\":6,\"label\":\"number\",\"startOffset\":5},{\"endOffset\":20,\"label\":\"object\",\"startOffset\":15},{\"endOffset\":34,\"label\":\"object\",\"startOffset\":30}]}}"}}]},{"datasetObjectId":"2","dataObject":{"content":"Jen purchased 10 shares of the stock on Janurary 1st, 2020."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":3,\"label\":\"person\",\"startOffset\":0},{\"endOffset\":13,\"label\":\"verb\",\"startOffset\":4},{\"endOffset\":16,\"label\":\"number\",\"startOffset\":14},{\"endOffset\":58,\"label\":\"date\",\"startOffset\":40}]}}"}}]},{"datasetObjectId":"3","dataObject":{"content":"The narrative was interesting, however the character development was weak."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":29,\"label\":\"adjective\",\"startOffset\":18},{\"endOffset\":73,\"label\":\"adjective\",\"startOffset\":69}]}}"}}]}] -
您必须使用中的指示授予注释后 Lambda 访问注释的权限授予注释后 Lambda 函数的执行角色以承担 SageMaker 用于创建标签作业的执行角色。注释后 Lambda 函数使用 SageMaker 执行角色来访问注释数据文件,
sample-annotations.json,在 S3 中。
测试预注解 Lambda 函数
使用以下过程测试在部署 Ground Truth 时创建的预注解 Lambda 函数Amazon Serverless Application Repository(SAR) 食谱。
测试 Ground Truth SAR 配方预注解 Lambda 函数
-
打开函数页
在 Lambda 控制台中。 -
选择从 Ground Truth SAR 配方中部署的预注功能。此函数的名称类似于
serverlessrepo-aws-sagema-GtRecipePreHumanTaskFunc-.<id> -
在源代码部分中,选择旁边的箭头测试.
-
Select配置测试事件.
-
保留创建新测试事件已选择选项。
-
UNDER活动模板,请选择SageMaker Ground Truth.
-
为您的测试提供Event name (事件名称).
-
选择 Create (创建)。
-
选择旁边的箭头测试再次,你应该看到你创建的测试已被选中,该测试由事件名称用点表示。如果未选中,请选择它。
-
Select测试运行测试。
运行测试后,你可以看到执行结果. 在函数日志,您会看到类似以下内容的响应:
START RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f Version: $LATEST Received event: { "version": "2018-10-16", "labelingJobArn": "arn:aws:sagemaker:us-east-2:123456789012:labeling-job/example-job", "dataObject": { "source-ref": "s3://sagemakerexample/object_to_annotate.jpg" } } {'taskInput': {'taskObject': 's3://sagemakerexample/object_to_annotate.jpg'}, 'isHumanAnnotationRequired': 'true'} END RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f REPORT RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f Duration: 0.42 ms Billed Duration: 1 ms Memory Size: 128 MB Max Memory Used: 43 MB
在此响应中,我们可以看到 Lambda 函数的输出与所需的预注释响应语法匹配:
{'taskInput': {'taskObject': 's3://sagemakerexample/object_to_annotate.jpg'}, 'isHumanAnnotationRequired': 'true'}
测试注释后 Lambda 函数
使用以下过程测试在部署 Ground Truth 时创建的注释后 Lambda 函数Amazon Serverless Application Repository(SAR) 食谱。
测试 Ground Truth SAR 配方注释后 Lambda
-
打开函数页
在 Lambda 控制台中。 -
选择从 Ground Truth SAR 配方中部署的注释后功能。此函数的名称类似于
serverlessrepo-aws-sagema-GtRecipeAnnotationConsol-.<id> -
在源代码部分中,选择旁边的箭头测试.
-
Select配置测试事件.
-
保留创建新测试事件已选择选项。
-
UNDER活动模板,请选择SageMaker Ground Truth 注释后.
-
为您的测试提供Event name (事件名称).
-
按如下所示修改所提供的模板代码:
-
在中替换 Amazon 资源名称 (ARN)
roleArn使用的 ARN SageMaker 用于创建标签作业的执行角色。 -
在中替换 S3 URI
s3Uri使用的 URI您添加到 Amazon S3 的文件。sample-annotations.json
在进行这些修改后,测试应类似于以下内容:
{ "version": "2018-10-16", "labelingJobArn": "arn:aws:sagemaker:us-east-2:123456789012:labeling-job/example-job", "labelAttributeName": "example-attribute", "roleArn": "arn:aws:iam::222222222222:role/sm-execution-role", "payload": { "s3Uri": "s3://your-bucket/sample-annotations.json" } } -
-
选择 Create (创建)。
-
选择旁边的箭头测试再次,你应该看到你创建的测试已被选中,该测试由事件名称用点表示。如果未选中,请选择它。
-
SELECT测试运行测试。
在您运行测试后,您会看到-- Consolidated Output
--中的部分函数日志,其中包含包含的所有注释的列表。sample-annotations.json.