Panggilan Amazon EMR Serverless dengan 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.

Panggilan Amazon EMR Serverless dengan 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 Serverless integrasi yang Dioptimalkan berbeda dari integrasi EMR Serverless AWS SDK
  • Integrasi EMR Serverless layanan yang Dioptimalkan memiliki serangkaian API khusus yang membungkus EMR Serverless API yang mendasarinya. Karena penyesuaian ini, EMR Serverless integrasi yang dioptimalkan berbeda secara signifikan dari integrasi layanan EMR Serverless AWS SDK. Selain itu, EMR Serverless integrasi yang dioptimalkan mendukung pola Jalankan Tugas (.sync) integrasi.

  • Pola Tunggu Panggilan Balik dengan Token Tugas integrasi tidak didukung.

EMR ServerlessAPI integrasi layanan

Untuk AWS Step Functions berintegrasiEMR Serverless, Anda dapat menggunakan enam API integrasi EMR Serverless layanan berikut. API integrasi layanan ini mirip dengan EMR Serverless API terkait, dengan beberapa perbedaan di bidang yang diteruskan dan dalam respons yang dikembalikan.

Tabel berikut menjelaskan perbedaan antara setiap API integrasi layanan dan API yang sesuaiEMR Serverless.

EMR ServerlessAPI integrasi layanan dan EMR Serverless API terkait
EMR ServerlessAPI integrasi layanan EMR ServerlessAPI yang sesuai Perbedaan

BuatAplikasi

Membuat aplikasi.

EMR Serverlessterkait dengan jenis peran unik yang dikenal sebagai IAM peran terkait layanan. Agar createApplication dan createApplication.sync bekerja, Anda harus mengonfigurasi izin yang diperlukan untuk membuat AWS ServiceRoleForAmazonEMRServerless peran yang tertaut layanan. Untuk informasi selengkapnya tentang hal ini, termasuk pernyataan yang dapat Anda tambahkan ke kebijakan IAM izin, lihat Menggunakan peran terkait layanan untuk. EMR Serverless

CreateApplication Tidak ada

CreateApplication.sync

Membuat aplikasi.

CreateApplication

Tidak ada perbedaan antara permintaan dan tanggapan EMR Serverless API dan API integrasi EMR Serverless layanan. Namun, createApplication.sync menunggu aplikasi mencapai status. CREATED

MulaiAplikasi

Memulai aplikasi tertentu dan menginisialisasi kapasitas awal aplikasi jika dikonfigurasi.

StartApplication

Respons EMR Serverless API tidak berisi data apa pun, tetapi respons API integrasi EMR Serverless layanan menyertakan data berikut.

{ "ApplicationId": "string" }

StartApplication.sync

Memulai aplikasi tertentu dan menginisialisasi kapasitas awal jika dikonfigurasi.

StartApplication

Respons EMR Serverless API tidak berisi data apa pun, tetapi respons API integrasi EMR Serverless layanan menyertakan data berikut.

{ "ApplicationId": "string" }

Selain itu, startApplication.sync menunggu aplikasi mencapai status. STARTED

StopAplikasi

Menghentikan aplikasi tertentu dan melepaskan kapasitas awal jika dikonfigurasi. Semua pekerjaan yang dijadwalkan dan berjalan harus diselesaikan atau dibatalkan sebelum menghentikan aplikasi.

StopApplication

Respons EMR Serverless API tidak berisi data apa pun, tetapi respons API integrasi EMR Serverless layanan menyertakan data berikut.

{ "ApplicationId": "string" }

StopApplication.sync

Menghentikan aplikasi tertentu dan melepaskan kapasitas awal jika dikonfigurasi. Semua pekerjaan yang dijadwalkan dan berjalan harus diselesaikan atau dibatalkan sebelum menghentikan aplikasi.

StopApplication

Respons EMR Serverless API tidak berisi data apa pun, tetapi respons API integrasi EMR Serverless layanan menyertakan data berikut.

{ "ApplicationId": "string" }

Selain itu, StopApplication.sync menunggu aplikasi mencapai status. STOPPED

HapusAplikasi

Menghapus aplikasi. Aplikasi harus dalam CREATED keadaan STOPPED atau agar dapat dihapus.

DeleteApplication

Respons EMR Serverless API tidak berisi data apa pun, tetapi respons API integrasi EMR Serverless layanan menyertakan data berikut.

{ "ApplicationId": "string" }

DeleteApplication.sync

Menghapus aplikasi. Aplikasi harus dalam CREATED keadaan STOPPED atau agar dapat dihapus.

DeleteApplication

Respons EMR Serverless API tidak berisi data apa pun, tetapi respons API integrasi EMR Serverless layanan menyertakan data berikut.

{ "ApplicationId": "string" }

Selain itu, StopApplication.sync menunggu aplikasi mencapai status. TERMINATED

startJobRun

Memulai menjalankan pekerjaan.

StartJobRun Tidak ada

startJobRun.sinkronisasi

Memulai menjalankan pekerjaan.

StartJobRun

Tidak ada perbedaan antara permintaan dan tanggapan EMR Serverless API dan API integrasi EMR Serverless layanan. Namun, startJobRun.sync menunggu aplikasi mencapai status. SUCCESS

cancelJobRun

Membatalkan menjalankan pekerjaan.

CancelJobRun Tidak ada

cancelJobRun.sinkronisasi

Membatalkan menjalankan pekerjaan.

CancelJobRun

Tidak ada perbedaan antara permintaan dan tanggapan EMR Serverless API dan API integrasi EMR Serverless layanan. Namun, cancelJobRun.sync menunggu aplikasi mencapai status. CANCELLED

Kasus penggunaan integrasi EMR Tanpa Server

Untuk integrasi EMR Serverless layanan yang Dioptimalkan, kami menyarankan Anda membuat satu aplikasi, dan kemudian menggunakan aplikasi itu untuk menjalankan beberapa pekerjaan. Misalnya, dalam mesin negara tunggal, Anda dapat menyertakan beberapa startJobRunpermintaan, yang semuanya menggunakan aplikasi yang sama. Contoh Status tugas status berikut menunjukkan kasus penggunaan untuk mengintegrasikan EMR Serverless API denganStep Functions. Untuk informasi tentang kasus penggunaan lainnyaEMR Serverless, lihat Apa itu Amazon EMR Serverless.

Tip

Untuk menerapkan contoh mesin status yang terintegrasi dengan EMR Serverless untuk menjalankan beberapa pekerjaan ke Anda Akun AWS, lihat. Jalankan EMR Serverless pekerjaan

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

Dalam contoh yang ditunjukkan dalam kasus penggunaan berikut, ganti teks yang dicetak miring dengan informasi spesifik sumber daya Anda. Misalnya, ganti yourApplicationIddengan ID EMR Serverless aplikasi Anda, seperti00yv7iv71inak893.

Membuat aplikasi

Contoh status Tugas berikut membuat aplikasi menggunakan API integrasi layanan createApplication.sync.

"Create_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:createApplication.sync", "Parameters": { "Name": "MyApplication", "ReleaseLabel": "emr-6.9.0", "Type": "SPARK" }, "End": true }

Memulai aplikasi

Contoh status Tugas berikut memulai aplikasi menggunakan API integrasi layanan startApplication.sync.

"Start_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startApplication.sync", "Parameters": { "ApplicationId": "yourApplicationId" }, "End": true }

Hentikan aplikasi

Contoh status Tugas berikut menghentikan aplikasi menggunakan API integrasi layanan StopApplication.sync.

"Stop_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:stopApplication.sync", "Parameters": { "ApplicationId": "yourApplicationId" }, "End": true }

Menghapus sebuah aplikasi

Contoh status Tugas berikut menghapus aplikasi menggunakan API integrasi layanan DeleteApplication.sync.

"Delete_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:deleteApplication.sync", "Parameters": { "ApplicationId": "yourApplicationId" }, "End": true }

Memulai pekerjaan di aplikasi

Contoh status Tugas berikut memulai pekerjaan dalam aplikasi menggunakan API integrasi layanan startJobRun.sync.

"Start_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startJobRun.sync", "Parameters": { "ApplicationId": "yourApplicationId", "ExecutionRoleArn": "arn:aws:iam::123456789012:role/myEMRServerless-execution-role", "JobDriver": { "SparkSubmit": { "EntryPoint": "s3://<mybucket>/sample.py", "EntryPointArguments": ["1"], "SparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=4g --conf spark.driver.cores=2 --conf spark.driver.memory=4g --conf spark.executor.instances=1" } } }, "End": true }

Batalkan pekerjaan di aplikasi

Contoh status Tugas berikut membatalkan pekerjaan dalam aplikasi menggunakan API integrasi layanan cancelJobRun.sync.

"Cancel_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:cancelJobRun.sync", "Parameters": { "ApplicationId.$": "$.ApplicationId", "JobRunId.$": "$.JobRunId" }, "End": true }