教程:部署为具有持久状态的应用程序 - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

教程:部署为具有持久状态的应用程序

以下教程演示了如何将 Studio 笔记本部署为具有持久状态的 Kinesis Data Analytics 应用程序。

设置

按照创建 Studio 笔记本教程,使用 Kinesis Data Streams 或亚马逊 MSK。为 Studio 笔记本命名ExampleTestDeploy.

使用Amazon Web Services Management Console

  1. 在 S3 存储桶中添加您希望将打包代码存储在下的 S3 存储桶位置应用程序代码位置-可选的在控制台中。这使得这些步骤可以直接从笔记本电脑部署和运行应用程序。

  2. 向应用程序角色添加所需的权限,以启用用于读取和写入 Amazon S3 存储桶的角色以及启动 Kinesis Data Analytics 应用程序:

    • 亚马逊 S3FullAccess

    • AmazonKinesisAnalyticsFull访问

    • 访问源、目的地和 VPC(如适用)。有关更多信息,请参阅 Studio 笔记本的 IAM 权限

  3. 使用下面的示例代码:

    %flink.ssql(type=update) CREATE TABLE exampleoutput ( 'ticket' VARCHAR, 'price' DOUBLE ) WITH ( 'connector' = 'kinesis', 'stream' = 'ExampleOutputStream', 'aws.region' = 'us-east-1', 'scan.stream.initpos' = 'LATEST', 'format' = 'json' ); INSERT INTO exampleoutput SELECT ticker, price FROM exampleinputstream
  4. 启动此功能后,您将在笔记本电脑中每个笔记的右上角看到一个新的下拉菜单,其中包含笔记本的名称。您可执行以下操作:

    • 查看 Studio 笔记本设置Amazon Web Services Management Console.

    • 构建您的齐柏林笔记并将其导出到 Amazon S3。此时,为你的应用程序提供一个名称然后选择构建和导出. 导出完成后,您将收到通知。

    • 如果需要,您可以在 Amazon S3 中查看并对可执行文件运行任何其他测试。

    • 构建完成后,您将能够将代码部署为具有持久状态和自动扩展的 Kinesis 流媒体应用程序。

    • 使用下拉菜单并选择将齐柏林注释部署为 Kinesis 流媒体应用程序. 查看应用程序名称并选择通过部署Amazon控制台.

    • 这将导致你进入Amazon Web Services Management Console用于创建 Kinesis Data Analytics 应用程序的页面。请注意,应用程序名称、并行性、代码位置、默认 Glue DB、VPC(如果适用)和 IAM 角色已预填充。验证 IAM 角色是否具有对源和目标的所需权限。默认情况下,为持久的应用程序状态管理启用快照

    • 选择创建应用.

    • 您可以选择配置然后修改任何设置,然后选择运行启动您的流式处理应用程序。

使用 “持久” 状态部署应用程序Amazon CLI

使用Amazon CLI,您必须更新Amazon CLI以使用随 Beta 2 信息提供的服务模型。有关如何使用更新后的服务模型的信息,请参阅设置 设置.

以下示例代码创建了一个新的 Studio 笔记本:

aws kinesisanalyticsv2 create-application \ --application-name <app-name> \ --runtime-environment ZEPPELIN-FLINK-2_0 \ --application-mode INTERACTIVE \ --service-execution-role <iam-role> --application-configuration '{ "ZeppelinApplicationConfiguration": { "CatalogConfiguration": { "GlueDataCatalogConfiguration": { "DatabaseARN": "arn:aws:glue:us-east-1:<account>:database/<glue-database-name>" } } }, "FlinkApplicationConfiguration": { "ParallelismConfiguration": { "ConfigurationType": "CUSTOM", "Parallelism": 4, "ParallelismPerKPU": 4 } }, "DeployAsApplicationConfiguration": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::<s3bucket>", "BasePath": "/something/" } }, "VpcConfigurations": [ { "SecurityGroupIds": [ "<security-group>" ], "SubnetIds": [ "<subnet-1>", "<subnet-2>" ] } ] }' \ --region us-east-1

以下代码示例启动 Studio 笔记本:

aws kinesisanalyticsv2 start-application \ --application-name <app-name> \ --region us-east-1 \ --no-verify-ssl

以下代码返回应用程序的 Apache Zeppelin 笔记本页面的 URL:

aws kinesisanalyticsv2 create-application-presigned-url \ --application-name <app-name> \ --url-type ZEPPELIN_UI_URL \ --region us-east-1 \ --no-verify-ssl