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

对于新项目,建议您使用新的适用于 Apache Flink Studio 的托管服务,而不是使用适用于 SQL 应用程序的 Kinesis Data Analytics。Managed Service for Apache Flink Studio 不仅操作简单,还具有高级分析功能,使您能够在几分钟内构建复杂的流处理应用程序。

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

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 写入应用程序输出数据的目的地 (最多 3 个)。有关概述,请参阅工作原理

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

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

在输出配置中,您可以通过配置应用程序将应用程序中创建的应用程序内部流的数据写入目的地 (最多 3 个)。

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 的输出流,则您的应用程序代码必须创建这两个流。

类型:字符串

长度限制:长度下限为 0。最大长度为 102400。

必需:否

ApplicationDescription

应用程序的摘要描述。

类型:字符串

长度限制:长度下限为 0。最大长度为 1024。

必需:否

ApplicationName

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

类型:字符串

长度限制:长度下限为 1。长度上限为 128。

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

必需:是

CloudWatchLoggingOptions

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

类型:CloudWatchLoggingOption 对象数组

必需:否

Inputs

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

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

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

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

类型:Input 对象数组

必需:否

Outputs

您可以通过配置应用程序输出,将任一应用程序内部流的数据写入最多 3 个目的地。

写入的目的地可以是 Amazon Kinesis 流、Amazon Kinesis Firehose 传输流、Amazon Lambda 目的地或三者的任意组合。

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

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

类型:Output 对象数组

必需:否

Tags

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

类型:Tag 对象数组

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

必需:否

响应语法

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

响应元素

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

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

ApplicationSummary

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

类型:ApplicationSummary 对象

错误

CodeValidationException

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

HTTP 状态代码:400

ConcurrentModificationException

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

HTTP 状态代码:400

InvalidArgumentException

指定的输入参数值无效。

HTTP 状态代码:400

LimitExceededException

已超过允许的应用程序数量。

HTTP 状态代码:400

ResourceInUseException

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

HTTP 状态代码:400

TooManyTagsException

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

HTTP 状态代码:400

UnsupportedOperationException

请求被拒绝,因为不支持指定的参数或指定的资源对此操作无效。

HTTP 状态代码:400

另请参阅

有关在特定语言的 Amazon SDK 中使用此 API 的更多信息,请参阅以下内容: