Hubungi Amazon EMR di EKS dengan AWS Step Functions - AWS Step Functions

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Hubungi Amazon EMR di EKS dengan AWS Step Functions

Step Functions dapat mengontrol AWS layanan tertentu langsung dari Amazon States Language (ASL). Untuk mempelajari selengkapnya, lihat Bekerja dengan layanan yang lain dan Meneruskan parameter ke API layanan.

Bagaimana EMR Amazon yang Dioptimalkan pada integrasi EKS berbeda dari EMR Amazon pada integrasi EKS SDK AWS
catatan

Untuk integrasi dengan Amazon EMR, Step Functions memiliki frekuensi polling pekerjaan 60 detik yang dikodekan keras selama 10 menit pertama dan 300 detik setelah itu.

Untuk berintegrasi AWS Step Functions dengan Amazon EMR di EKS, gunakan Amazon EMR pada API integrasi layanan EKS. API integrasi layanan sama dengan Amazon EMR terkait pada API EKS, tetapi tidak semua API mendukung semua pola integrasi, seperti yang ditunjukkan pada tabel berikut.

API Respons permintaan Jalankan tugas (.sync)
CreateVirtualCluster
DeleteVirtualCluster
StartJobRun

Amazon EMR yang didukung di API EKS:

catatan

Ada kuota untuk input maksimum atau ukuran data hasil untuk tugas di Step Functions. Ini membatasi Anda untuk 256 KB data sebagai string UTF-8 yang dikodekan ketika Anda mengirim ke, atau menerima data dari, layanan lain. Lihat Kuota yang berkaitan dengan eksekusi mesin status.

Berikut ini mencakup status Task yang membuat sebuah klaster virtual.

"Create_Virtual_Cluster": { "Type": "Task", "Resource": "arn:aws:states:::emr-containers:createVirtualCluster", "Parameters": { "Name": "MyVirtualCluster", "ContainerProvider": { "Id": "EKSClusterName", "Type": "EKS", "Info": { "EksInfo": { "Namespace": "Namespace" } } } }, "End": true }

Berikut ini mencakup status Task yang menyerahkan tugas ke klaster virtual dan menunggunya untuk menyelesaikan.

"Submit_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-containers:startJobRun.sync", "Parameters": { "Name": "MyJobName", "VirtualClusterId.$": "$.VirtualClusterId", "ExecutionRoleArn": "arn:aws:iam::<accountId>:role/job-execution-role", "ReleaseLabel": "emr-6.2.0-latest", "JobDriver": { "SparkSubmitJobDriver": { "EntryPoint": "s3://<mybucket>/jobs/trip-count.py", "EntryPointArguments": [ "60" ], "SparkSubmitParameters": "--conf spark.driver.cores=2 --conf spark.executor.instances=10 --conf spark.kubernetes.pyspark.pythonVersion=3 --conf spark.executor.memory=10G --conf spark.driver.memory=10G --conf spark.executor.cores=1 --conf spark.dynamicAllocation.enabled=false" } }, "ConfigurationOverrides": { "ApplicationConfiguration": [ { "Classification": "spark-defaults", "Properties": { "spark.executor.instances": "2", "spark.executor.memory": "2G" } } ], "MonitoringConfiguration": { "PersistentAppUI": "ENABLED", "CloudWatchMonitoringConfiguration": { "LogGroupName": "MyLogGroupName", "LogStreamNamePrefix": "MyLogStreamNamePrefix" }, "S3MonitoringConfiguration": { "LogUri": "s3://<mylogsbucket>" } } }, "Tags": { "taskType": "jobName" } }, "End": true }

Berikut ini mencakup status Task yang menghapus klaster virtual dan menunggu penghapusan selesai.

"Delete_Virtual_Cluster": { "Type": "Task", "Resource": "arn:aws:states:::emr-containers:deleteVirtualCluster.sync", "Parameters": { "Id.$": "$.VirtualClusterId" }, "End": true }

Untuk informasi tentang cara mengonfigurasi IAM izin saat menggunakan Step Functions dengan AWS layanan lain, lihatKebijakan IAM untuk layanan terintegrasi.