Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Crea e gestisci Amazon EMR Serverless applicazioni con Step Functions
Scopri come creare, avviare, interrompere ed eliminare applicazioni su EMR Serverless utilizzando Step Functions. Questa pagina elenca gli Task
stati supportati APIs e fornisce esempi per eseguire casi d'uso comuni.
Per ulteriori informazioni sull'integrazione con AWS i servizi in Step Functions, vedere Integrazione dei servizi ePassaggio di parametri a un'API di servizio in Step Functions.
Caratteristiche principali dell'integrazione ottimizzata EMR Serverless
-
L'integrazione ottimizzata dei EMR Serverless servizi dispone di un set personalizzato APIsche racchiude le funzionalità sottostanti EMR Serverless APIs. Grazie a questa personalizzazione, l'EMR Serverlessintegrazione ottimizzata differisce in modo significativo dall'integrazione del servizio AWS SDK.
-
Inoltre, l'EMR Serverlessintegrazione ottimizzata supporta Esegui un processo (.sync) il modello di integrazione.
-
Il modello di Attendi una richiamata con Task Token integrazione non è supportato.
EMR Serverlessintegrazione del servizio APIs
Per l'integrazione AWS Step Functions conEMR Serverless, è possibile utilizzare i seguenti sei EMR Serverless servizi di integrazione APIs. Queste integrazioni di servizi APIs sono simili a quelle corrispondenti EMR Serverless APIs, con alcune differenze nei campi passati e nelle risposte restituite.
La tabella seguente descrive le differenze tra ogni API EMR Serverless di integrazione dei servizi e l'EMR ServerlessAPI corrispondente.
EMR ServerlessAPI di integrazione dei servizi | EMR ServerlessAPI corrispondente | Differenze |
---|---|---|
Crea applicazione Crea un'applicazione. EMR Serverlessè collegato a un tipo di IAM ruolo univoco noto come ruolo collegato al servizio. Perché |
CreateApplication | Nessuno |
CreateApplication.sync Crea un'applicazione. |
CreateApplication |
Nessuna differenza tra le richieste e le risposte dell'API e dell'EMR ServerlessAPI di integrazione dei servizi. EMR Serverless Tuttavia, CreateApplication.sync attende che l'applicazione raggiunga lo stato. |
Avvia l'applicazione Avvia un'applicazione specificata e inizializza la capacità iniziale dell'applicazione, se configurata. |
StartApplication |
La risposta dell'EMR ServerlessAPI non contiene dati, ma la risposta dell'API EMR Serverless di integrazione del servizio include i seguenti dati.
|
Avvia Application.sync Avvia un'applicazione specificata e inizializza la capacità iniziale, se configurata. |
StartApplication |
La risposta dell'EMR ServerlessAPI non contiene dati, ma la risposta dell'API EMR Serverless di integrazione del servizio include i seguenti dati.
Inoltre, StartApplication.sync attende che l'applicazione raggiunga lo stato. |
Arresta l'applicazione Arresta un'applicazione specificata e rilascia la capacità iniziale, se configurata. Tutti i processi pianificati e in esecuzione devono essere completati o annullati prima di interrompere un'applicazione. |
StopApplication |
La risposta dell'EMR ServerlessAPI non contiene dati, ma la risposta dell'API EMR Serverless di integrazione del servizio include i seguenti dati.
|
Arresta Application.sync Arresta un'applicazione specificata e rilascia la capacità iniziale, se configurata. Tutti i processi pianificati e in esecuzione devono essere completati o annullati prima di interrompere un'applicazione. |
StopApplication |
La risposta dell'EMR ServerlessAPI non contiene dati, ma la risposta dell'API EMR Serverless di integrazione del servizio include i seguenti dati.
Inoltre, StopApplication.sync attende che l'applicazione raggiunga lo stato. |
Elimina applicazione Elimina un'applicazione. Un'applicazione deve trovarsi nello |
DeleteApplication |
La risposta dell'EMR ServerlessAPI non contiene dati, ma la risposta dell'API di integrazione del EMR Serverless servizio include i seguenti dati.
|
Elimina Application.sync Elimina un'applicazione. Un'applicazione deve trovarsi nello |
DeleteApplication |
La risposta dell'EMR ServerlessAPI non contiene dati, ma la risposta dell'API di integrazione del EMR Serverless servizio include i seguenti dati.
Inoltre, StopApplication.sync attende che l'applicazione raggiunga lo stato. |
startJobRun Avvia l'esecuzione di un processo. |
StartJobRun | Nessuno |
startJobRun.sync Avvia l'esecuzione di un processo. |
StartJobRun |
Nessuna differenza tra le richieste e le risposte dell'EMR ServerlessAPI e dell'API EMR Serverless di integrazione dei servizi. Tuttavia, startJobRun.sync attende che l'applicazione raggiunga lo |
cancelJobRun Annulla l'esecuzione di un processo. |
CancelJobRun | Nessuno |
cancelJobRun.sync Annulla l'esecuzione di un processo. |
CancelJobRun |
Nessuna differenza tra le richieste e le risposte dell'EMR ServerlessAPI e dell'API di integrazione dei EMR Serverless servizi. Tuttavia, cancelJobRun.sync attende che l'applicazione raggiunga lo |
Casi d'uso dell'integrazione EMR Serverless
Per l'integrazione ottimizzata dei EMR Serverless servizi, si consiglia di creare una singola applicazione e quindi di utilizzarla per eseguire più processi. Ad esempio, in una macchina a stato singolo, è possibile includere più startJobRunrichieste, che utilizzano tutte la stessa applicazione. I seguenti esempi di Stato del flusso di lavoro delle attività stato mostrano i casi d'uso EMR Serverless APIs con cui eseguire l'integrazioneStep Functions. Per informazioni su altri casi d'uso diEMR Serverless, vedere What is Amazon EMR Serverless.
Suggerimento
Per distribuire un esempio di macchina a stati che si integra con EMR Serverless per l'esecuzione di più lavori;, vedere. Esegui un EMR Serverless lavoro
Per ulteriori informazioni sulla configurazione delle IAM autorizzazioni durante l'utilizzo Step Functions con altri AWS servizi, consulta. In che modo Step Functions genera policy IAM per servizi integrati
Negli esempi mostrati nei seguenti casi d'uso, sostituisci il italicized
testo con informazioni specifiche sulla risorsa. Ad esempio, sostituiscilo yourApplicationId
con l'ID della tua EMR Serverless applicazione, ad esempio. 00yv7iv71inak893
Creazione di un'applicazione
Il seguente esempio di stato Task crea un'applicazione utilizzando l'API di integrazione del servizio CreateApplication.sync.
"Create_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:createApplication.sync", "Arguments": { "Name": "
MyApplication
", "ReleaseLabel": "emr-6.9.0", "Type": "SPARK" }, "End": true }
Avviare un'applicazione
Il seguente esempio di stato Task avvia un'applicazione utilizzando l'API di integrazione del servizio StartApplication.sync.
"Start_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startApplication.sync", "Arguments": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Arresta un'applicazione
Il seguente esempio di stato Task interrompe un'applicazione utilizzando l'API di integrazione del servizio StopApplication.sync.
"Stop_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:stopApplication.sync", "Arguments": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Eliminazione di un'applicazione
Il seguente esempio di stato Task elimina un'applicazione utilizzando l'API di integrazione del servizio DeleteApplication.sync.
"Delete_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:deleteApplication.sync", "Arguments": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Avviare un processo in un'applicazione
Il seguente esempio di stato Task avvia un processo in un'applicazione utilizzando l'API di integrazione del servizio startJobRun.sync.
"Start_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startJobRun.sync", "Arguments": { "ApplicationId": "
yourApplicationId
", "ExecutionRoleArn": "arn:aws:iam::account-id
:role/myEMRServerless-execution-role
", "JobDriver": { "SparkSubmit": { "EntryPoint": "s3://<amzn-s3-demo-bucket>
/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 }
Annullare un lavoro in un'applicazione
Il seguente esempio di stato Task annulla un processo in un'applicazione utilizzando l'API di integrazione del servizio cancelJobRun.sync.
"Cancel_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:cancelJobRun.sync", "Arguments": { "ApplicationId": "{% $states.input.ApplicationId %}", "JobRunId": "{% $states.input.JobRunId %}" }, "End": true }
Politiche IAM per le chiamate Amazon EMR Serverless
Quando crei una macchina a stati utilizzando la console, crea Step Functions automaticamente un ruolo di esecuzione per la tua macchina a stati con i privilegi minimi richiesti. Questi IAM ruoli generati automaticamente sono validi per il momento Regione AWS in cui si crea la macchina a stati.
I seguenti modelli di esempio mostrano come AWS Step Functions generare le politiche IAM in base alle risorse nella definizione della macchina a stati. Per ulteriori informazioni, consultare In che modo Step Functions genera policy IAM per servizi integrati e Scopri i modelli di integrazione dei servizi in Step Functions.
Quando crei delle IAM policy, ti consigliamo di non includere caratteri jolly nelle policy. Come best practice in materia di sicurezza, è consigliabile limitare il più possibile le policy. È consigliabile utilizzare politiche dinamiche solo quando determinati parametri di input non sono noti durante il runtime.
Inoltre, gli utenti amministratori devono prestare attenzione quando concedono a utenti non amministratori ruoli di esecuzione per l'esecuzione delle macchine a stati. Ti consigliamo di includere le politiche PassRole nei ruoli di esecuzione se stai creando politiche da solo. Ti consigliamo inoltre di aggiungere le chiavi aws:SourceARN
e di aws:SourceAccount
contesto nei ruoli di esecuzione.
Esempi di policy IAM per l'integrazione EMR Serverless con Step Functions
Esempio di policy IAM per CreateApplication
Di seguito è riportato un esempio di policy IAM per una macchina a stati con uno CreateApplication Stato del flusso di lavoro delle attività stato.
Nota
È necessario specificare le CreateServiceLinkedRole autorizzazioni nelle politiche IAM durante la creazione della prima applicazione in assoluto nel proprio account. Successivamente, non è necessario aggiungere questa autorizzazione. Per informazioni su CreateServiceLinkedRole, vedere CreateServiceLinkedRolenella versione più https://docs.aws.amazon.com/IAM/ APIReference recente/ /.
Le risorse statiche e dinamiche per le seguenti politiche sono le stesse.
Esempio di policy IAM per StartApplication
Risorse statiche
Di seguito sono riportati esempi di policy IAM per risorse statiche quando si utilizza una macchina a stati con uno StartApplication Stato del flusso di lavoro delle attività stato.
Risorse dinamiche
Di seguito sono riportati alcuni esempi di policy IAM per risorse dinamiche quando si utilizza una macchina a stati con uno StartApplication Stato del flusso di lavoro delle attività stato.
Esempio di policy IAM per StopApplication
Risorse statiche
Di seguito sono riportati esempi di policy IAM per risorse statiche quando si utilizza una macchina a stati con uno StopApplication Stato del flusso di lavoro delle attività stato.
Risorse dinamiche
Di seguito sono riportati alcuni esempi di policy IAM per risorse dinamiche quando si utilizza una macchina a stati con uno StopApplication Stato del flusso di lavoro delle attività stato.
Esempio di policy IAM per DeleteApplication
Risorse statiche
Di seguito sono riportati esempi di policy IAM per risorse statiche quando si utilizza una macchina a stati con uno DeleteApplication Stato del flusso di lavoro delle attività stato.
Risorse dinamiche
Di seguito sono riportati alcuni esempi di policy IAM per risorse dinamiche quando si utilizza una macchina a stati con uno DeleteApplication Stato del flusso di lavoro delle attività stato.
Esempio di policy IAM per StartJobRun
Risorse statiche
Di seguito sono riportati esempi di policy IAM per risorse statiche quando si utilizza una macchina a stati con uno StartJobRun Stato del flusso di lavoro delle attività stato.
Risorse dinamiche
Di seguito sono riportati alcuni esempi di policy IAM per risorse dinamiche quando si utilizza una macchina a stati con uno StartJobRun Stato del flusso di lavoro delle attività stato.
Esempio di policy IAM per CancelJobRun
Risorse statiche
Di seguito sono riportati esempi di policy IAM per risorse statiche quando si utilizza una macchina a stati con uno CancelJobRun Stato del flusso di lavoro delle attività stato.
Risorse dinamiche
Di seguito sono riportati alcuni esempi di policy IAM per risorse dinamiche quando si utilizza una macchina a stati con uno CancelJobRun Stato del flusso di lavoro delle attività stato.