教學課程:部署為具有持久狀態的應用程式 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:部署為具有持久狀態的應用程式

下列教學課程示範如何將 Studio 筆記本部署為具有持久狀態的 Managed Service for Apache Flink 應用程式。

設定

按照建立 Studio 筆記本教學課程建立新的 Studio 筆記本,使用 Kinesis Data Streams 或 Amazon MSK。命名 Studio 筆記本 ExampleTestDeploy

使用 AWS Management Console部署具有持久狀態的應用程式

  1. 在主控台中的應用程式程式碼位置 - 選用下,新增您希望將封裝程式碼存放到的 S3 儲存貯體位置。這可讓步驟直接從筆記本部署和執行應用程式。

  2. 將必要的許可新增至應用程式角色,以啟用您要用來讀取和寫入 Amazon S3 儲存貯體以及啟動 Managed Service for Apache Flink 應用程式的角色:

    • 亞馬遜 3 FullAccess

    • 亞馬遜管理-flinkFullAccess

    • 視情況存取您的來源、目的地和 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. 啟動此功能後,您將在筆記本中每條筆記的右上角看到一個新的下拉式選單,其中包含筆記本的名稱。您可以執行下列作業:

    • 在 AWS Management Console中檢視 Studio 筆記本設定。

    • 建立 Zeppelin 筆記,並將其匯出至 Amazon S3。此時,請為您的應用程式提供名稱,然後選擇建置和匯出。匯出完成後,您會收到通知。

    • 如有需要,您可以在 Amazon S3 中的可執行檔上檢視和執行任何其他測試。

    • 建置完成後,您將能夠將程式碼部署為具有持久狀態和自動調度資源的 Kinesis 串流應用程式。

    • 使用下拉式選單並選擇將 Zeppelin 筆記部署為 Kinesis 串流應用程式。檢閱應用程式名稱,然後選擇透過 AWS 主控台部署

    • 這將引導您進入用於為 Apache Flink 應用程序創建託管服務的 AWS Management Console 頁面。請注意,已預先填入應用程式名稱、平行處理層級、程式碼位置、預設 Glue DB、VPC (如果適用) 和 IAM 角色。驗證 IAM 角色是否具有來源和目的地的必要許可。快照預設啟用,以進行持久的應用程式狀態管理。

    • 選擇建立應用程式

    • 您可以選擇設定並修改任何設定,然後選擇執行以啟動串流應用程式。

使用 AWS CLI部署具有持久狀態的應用程式

若要使用部署應用程式 AWS CLI,您必須更新您的, AWS CLI 才能使用隨 Beta 2 資訊提供的服務模型。如需如何使用更新的服務模型之相關資訊,請參閱 設定

以下範例程式碼會建立 Studio 筆記本:

aws kinesisanalyticsv2 create-application \ --application-name <app-name> \ --runtime-environment ZEPPELIN-FLINK-3_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