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

类型: 字符串

长度约束:最小长度为 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

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

这些目的地可以是 Amazon Kinesis 直播、Amazon Kinesis Firehose 交付流,AmazonLambda 目标,或三者的任意组合。

在配置中,您可以指定应用程序内流名称、目标流或 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 将返回响应,其中包括其创建的应用程序的摘要,包括应用程序亚马逊资源名称 (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软件开发工具包中使用此 API 的更多信息,请参阅以下内容: