Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:將 Studio 筆記本部署為 Managed Service for Apache Flink 應用程式,具有持久狀態
下列教學課程示範如何將 Studio 筆記本部署為具有持久狀態的 Managed Service for Apache Flink 應用程式。
完成事前準備
按照教學課程:在 Managed Service for Apache Flink 中建立 Studio 筆記本建立新的 Studio 筆記本,使用 Kinesis Data Streams 或 Amazon MSK。命名 Studio 筆記本 ExampleTestDeploy
。
使用 AWS Management Console部署具有持久狀態的應用程式
在主控台中的應用程式程式碼位置 - 選用下,新增您希望將封裝程式碼存放到的 S3 儲存貯體位置。這可讓步驟直接從筆記本部署和執行應用程式。
將必要的許可新增至應用程式角色,以啟用您要用來讀取和寫入 Amazon S3 儲存貯體以及啟動 Managed Service for Apache Flink 應用程式的角色:
AmazonS3FullAccess
Amazonmanaged-flinkFullAccess
視情況存取您的來源、目的地和 VPC。如需詳細資訊,請參閱檢閱 Studio 筆記本的 IAM 許可。
請參閱以下範例程式碼:
%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
啟動此功能後,您將在筆記本中每條筆記的右上角看到一個新的下拉式選單,其中包含筆記本的名稱。您可以執行下列作業:
在 AWS Management Console中檢視 Studio 筆記本設定。
建立 Zeppelin 筆記,並將其匯出至 Amazon S3。此時,請為您的應用程式提供名稱,然後選擇建置和匯出。匯出完成後,您會收到通知。
如有需要,您可以在 Amazon S3 中的可執行檔上檢視和執行任何其他測試。
建置完成後,您將能夠將程式碼部署為具有持久狀態和自動調度資源的 Kinesis 串流應用程式。
使用下拉式選單並選擇將 Zeppelin 筆記部署為 Kinesis 串流應用程式。檢閱應用程式名稱,然後選擇透過 AWS 主控台部署。
這將引導您前往建立 Managed Service for 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