CreateApplication - Amazon Kinesis Data Analytics 开发人员指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CreateApplication

注意

本文档适用于 Amazon Kinesis Data Analytics API 版本 1,该版本仅支持 SQL 应用程序。版本 2 的 API 支持 SQL 和 Java 应用程序。有关版本 2 的更多信息,请参阅 Amazon Kinesis Data Analytics API V2 文档

创建 Amazon Kinesis Analytics 应用程序。您可以将每个应用程序配置为一个流式处理源作为输入、应用程序代码以处理输入,以及您希望 Amazon Kinesis Analytics 从应用程序中写入输出数据的最多三个目标。有关概述,请参阅工作方式

在输入配置中,您可以将流式传输源映射到应用程序内部流,您可以将其视为不断更新的表。在映射中,您必须为应用程序内部流提供架构,并将应用程序内部流中的每个数据列映射到流式源中的数据元素。

应用程序代码是读取输入数据、转换数据并生成输出的一个或多个 SQL 语句。您的应用程序代码可以创建一个或多个 SQL 工件,如 SQL 流或泵。

在输出配置中,您可以将应用程序配置为将应用程序中创建的应用程序内部流中的数据写入最多三个目标。

要从源流中读取数据或将数据写入目标流,Amazon Kinesis Analytics 需要您的权限。您可以通过创建 IAM 角色来授予这些权限。此操作需要执行 kinesisanalytics:CreateApplication 操作的权限。

有关创建 Amazon Kinesis Analytics 应用程序的介绍性练习,请参阅开始使用

请求语法

{ "ApplicationCode": "string", "ApplicationDescription": "string", "ApplicationName": "string", "CloudWatchLoggingOptions": [ { "LogStreamARN": "string", "RoleARN": "string" } ], "Inputs": [ { "InputParallelism": { "Count": number }, "InputProcessingConfiguration": { "InputLambdaProcessor": { "ResourceARN": "string", "RoleARN": "string" } }, "InputSchema": { "RecordColumns": [ { "Mapping": "string", "Name": "string", "SqlType": "string" } ], "RecordEncoding": "string", "RecordFormat": { "MappingParameters": { "CSVMappingParameters": { "RecordColumnDelimiter": "string", "RecordRowDelimiter": "string" }, "JSONMappingParameters": { "RecordRowPath": "string" } }, "RecordFormatType": "string" } }, "KinesisFirehoseInput": { "ResourceARN": "string", "RoleARN": "string" }, "KinesisStreamsInput": { "ResourceARN": "string", "RoleARN": "string" }, "NamePrefix": "string" } ], "Outputs": [ { "DestinationSchema": { "RecordFormatType": "string" }, "KinesisFirehoseOutput": { "ResourceARN": "string", "RoleARN": "string" }, "KinesisStreamsOutput": { "ResourceARN": "string", "RoleARN": "string" }, "LambdaOutput": { "ResourceARN": "string", "RoleARN": "string" }, "Name": "string" } ], "Tags": [ { "Key": "string", "Value": "string" } ] }

请求参数

请求接受采用 JSON 格式的以下数据。

ApplicationCode

一个或多个读取输入数据、转换数据并生成输出的 SQL 语句。例如,您可以编写一条 SQL 语句,该语句从一个应用程序内部流中读取数据,生成供应商广告点击次数的运行平均值,并使用泵将结果行插入另一个应用程序内部流中。有关典型模式的更多信息,请参阅应用程序代码

您可以提供这样的一系列 SQL 语句,其中一条语句的输出可以用作下一条语句的输入。您可以通过创建应用程序内部流和泵来存储中间结果。

请注意,应用程序代码必须使用在 Outputs 中指定的名称创建流。例如,如果您的 Outputs 定义了名为 ExampleOutputStream1ExampleOutputStream2 的输出流,则您的应用程序代码必须创建这两个流。

类型: String

长度约束:最小长度为 0。长度上限为 102400。

:必需 否

ApplicationDescription

应用程序的摘要描述。

类型: String

长度约束:最小长度为 0。长度上限为 1024。

:必需 否

ApplicationName

Amazon Kinesis Analytics 应用程序的名称(例如,sample-app)。

类型: String

长度约束:最小长度为 1。长度上限为 128。

模式:[a-zA-Z0-9_.-]+

:必需 是

CloudWatchLoggingOptions

使用此参数可配置 CloudWatch 日志流来监控应用程序配置错误。有关更多信息,请参阅 。使用 Amazon CloudWatch Logs

类型: 数组CloudWatchLoggingOptionobjects

:必需 否

输入

使用该参数可配置应用程序输入。

您可以将您的应用程序配置为接收来自单个流式传输源的输入。在此配置中,您会将此流式传输源映射到已创建的应用程序内部流。然后,您的应用程序代码可以像对表一样查询应用程序内部流(您可以将其视为连续更新的表)。

对于流式传输源,您可以在该流上提供其 Amazon 资源名称 (ARN) 和数据格式(例如,JSON、CSV 等)。您还必须提供可由 Amazon Kinesis Analytics 代入以代表您读取此流的 IAM 角色。

要创建应用程序内部流,您需要指定一个架构来将您的数据转换成 SQL 中使用的架构化版本。在架构中,您需要提供流式传输源中数据元素的必要映射,以记录应用程序内部流中的列。

类型: 数组Inputobjects

:必需 否

输出

您可以配置应用程序输出,以便将数据从任何应用程序内部流写入到最多三个目标。

这些目的地可以是 Amazon Kinesis 流,Amazon Kinesis Firehose 配送流,AmazonLambda 目的地,或者三者的任意组合。

在配置中,您可以指定应用程序内部流名称、目标流或 Lambda 函数 Amazon 资源名称 (ARN) 以及写入数据时要使用的格式。您还必须提供可由 Amazon Kinesis Analytics 代入以代表您对目标流或 Lambda 函数进行写入的 IAM 角色。

在输出配置中,您还可以提供输出流或 Lambda 函数 ARN。对于流目标,您可以在流中提供数据的格式(例如,JSON、CSV)。您还必须提供可由 Amazon Kinesis Analytics 代入以代表您对流或 Lambda 函数进行写入的 IAM 角色。

类型: 数组Outputobjects

:必需 否

Tags

分配给应用程序的一个或多个标签的列表。标签是用于标识应用程序的键/值对。请注意,应用程序标签的最大数量包括系统标签。用户定义的应用程序标签的最大数量为 50。有关更多信息,请参阅 。使用标记

类型: 数组Tagobjects

数组成员:数组 最少 1 个项目。最多 200 项。

:必需 否

响应语法

{ "ApplicationSummary": { "ApplicationARN": "string", "ApplicationName": "string", "ApplicationStatus": "string" } }

响应元素

如果此操作成功,则该服务将会发送回 HTTP 200 响应。

服务以 JSON 格式返回的以下数据。

应用程序摘要

为了响应您的CreateApplication请求时,Amazon Kinesis Analytics 会返回一个响应,其中包括所创建应用程序的摘要,包括应用程序 Amazon 资源名称 (ARN)、名称和状态。

类型:ApplicationSummary 对象

Errors

代码验证异常

用户提供的应用程序代码(查询)无效。这可能是一个简单的语法错误。

HTTP 状态代码:400

ConcurrentModificationException

由于对应用程序进行并发修改而引发的异常。例如,两个人试图同时编辑同一应用程序。

HTTP 状态代码:400

InvalidArgumentException

指定的输入参数值无效。

HTTP 状态代码:400

LimitExceededException

超出允许的应用程序数量。

HTTP 状态代码:400

ResourceInUseException

应用程序不可用于此操作。

HTTP 状态代码:400

全身性感术

使用过多的标签或添加到应用程序的标签过多创建的应用程序。请注意,应用程序标签的最大数量包括系统标签。用户定义的应用程序标签的最大数量为 50。

HTTP 状态代码:400