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à.
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 di Optimized EMR Serverless integrazione
-
L'ottimizzato EMR Serverless l'integrazione dei servizi ha un set personalizzato APIsche racchiude il sottostante EMR Serverless APIs. Grazie a questa personalizzazione, l'ottimizzato EMR Serverless l'integrazione differisce in modo significativo dall'integrazione del servizio AWS SDK.
-
Inoltre, l'ottimizzato EMR Serverless l'integrazione supporta il modello di Esegui un processo (.sync) integrazione.
-
Il modello di Attendi una richiamata con Task Token integrazione non è supportato.
EMR Serverless integrazione del servizio APIs
Integrare AWS Step Functions con EMR Serverless, puoi usare i seguenti sei EMR Serverless integrazione dei servizi APIs. Queste integrazioni di servizi APIs sono simili alla corrispondente EMR Serverless APIs, con alcune differenze nei campi passati e nelle risposte restituite.
La tabella seguente descrive le differenze tra ciascuna EMR Serverless API di integrazione del servizio e relativa API EMR Serverless API.
EMR Serverless API di integrazione dei servizi | Corrispondente EMR Serverless API | Differenze |
---|---|---|
Crea applicazione Crea un'applicazione. EMR Serverless è collegato a un tipo univoco di IAM ruolo noto come ruolo collegato al servizio. Perché |
CreateApplication | Nessuno |
CreateApplication.sync Crea un'applicazione. |
CreateApplication |
Nessuna differenza tra le richieste e le risposte di EMR Serverless API e EMR Serverless API di integrazione dei servizi. 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 |
Il EMR Serverless La risposta dell'API non contiene dati, ma EMR Serverless La risposta dell'API di integrazione dei servizi include i seguenti dati.
|
Avvia Application.sync Avvia un'applicazione specificata e inizializza la capacità iniziale, se configurata. |
StartApplication |
Il EMR Serverless La risposta dell'API non contiene dati, ma EMR Serverless La risposta dell'API di integrazione dei servizi 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 |
Il EMR Serverless La risposta dell'API non contiene dati, ma EMR Serverless La risposta dell'API di integrazione dei servizi include i seguenti dati.
|
StopApplication.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 |
Il EMR Serverless La risposta dell'API non contiene dati, ma EMR Serverless La risposta dell'API di integrazione dei servizi include i seguenti dati.
Inoltre, StopApplication.sync attende che l'applicazione raggiunga lo stato. |
Elimina l'applicazione Elimina un'applicazione. Un'applicazione deve trovarsi nello |
DeleteApplication |
Il EMR Serverless La risposta dell'API non contiene alcun dato, ma EMR Serverless La risposta dell'API di integrazione dei servizi include i seguenti dati.
|
Elimina Application.sync Elimina un'applicazione. Un'applicazione deve trovarsi nello |
DeleteApplication |
Il EMR Serverless La risposta dell'API non contiene alcun dato, ma EMR Serverless La risposta dell'API di integrazione dei servizi 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 del EMR Serverless API e EMR Serverless API 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 del EMR Serverless API e EMR Serverless API di integrazione dei servizi. Tuttavia, cancelJobRun.sync attende che l'applicazione raggiunga lo |
Casi d'uso dell'integrazione EMR Serverless
Per gli ottimizzati EMR Serverless integrazione del servizio, si consiglia di creare una singola applicazione e quindi di utilizzare tale applicazione 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 da integrare EMR Serverless APIs con Step Functions. Per informazioni su altri casi d'uso di EMR Serverless, vedi Cos'è Amazon EMR Serverless.
Suggerimento
Per implementare un esempio di macchina a stati che si integra con EMR Serverless per eseguire più lavori;, vedere. Esegui un EMR Serverless job
Per ulteriori informazioni sulla configurazione IAM autorizzazioni durante l'utilizzo Step Functions con altri AWS servizi, vediIn che modo Step Functions genera policy IAM per servizi integrati.
Negli esempi mostrati nei seguenti casi d'uso, sostituisci il italicized
testo con le informazioni specifiche della risorsa. Ad esempio, sostituiscilo yourApplicationId
con l'ID del tuo EMR Serverless applicazione, ad esempio00yv7iv71inak893
.
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",
"Parameters": {
"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",
"Parameters": {
"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",
"Parameters": {
"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",
"Parameters": {
"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",
"Parameters": {
"ApplicationId": "yourApplicationId
",
"ExecutionRoleArn": "arn:aws:iam::123456789012: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",
"Parameters": {
"ApplicationId.$": "$.ApplicationId",
"JobRunId.$": "$.JobRunId"
},
"End": true
}
Politiche IAM per le chiamate Amazon EMR Serverless
Quando crei una macchina a stati utilizzando la console, Step Functions crea automaticamente un ruolo di esecuzione per la macchina a stati con i privilegi minimi richiesti. Questi vengono generati automaticamente IAM i ruoli sono validi per il Regione AWS momento 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, consulta In che modo Step Functions genera policy IAM per servizi integrati e Scopri i modelli di integrazione dei servizi in Step Functions.
Ti consigliamo di farlo quando crei IAM politiche, non includere caratteri jolly nelle politiche. 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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:CreateApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/*"
]
},
{
"Effect": "Allow",
"Action": [
"emr-serverless:GetApplication",
"emr-serverless:DeleteApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule"
]
},
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "arn:aws:iam::{{accountId}}:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWS ServiceRoleForAmazonEMRServerless
*",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "ops.emr-serverless.amazonaws.com"
}
}
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StartApplication",
"emr-serverless:GetApplication",
"emr-serverless:StopApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StartApplication",
"emr-serverless:GetApplication",
"emr-serverless:StopApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StopApplication",
"emr-serverless:GetApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StopApplication",
"emr-serverless:GetApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:DeleteApplication",
"emr-serverless:GetApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:DeleteApplication",
"emr-serverless:GetApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StartJobRun"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]"
]
},
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": [
"[[jobExecutionRoleArn]]"
],
"Condition": {
"StringEquals": {
"iam:PassedToService": "emr-serverless.amazonaws.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"emr-serverless:GetJobRun",
"emr-serverless:CancelJobRun"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]/jobruns/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessJobRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StartJobRun",
"emr-serverless:GetJobRun",
"emr-serverless:CancelJobRun"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": [
"[[jobExecutionRoleArn]]"
],
"Condition": {
"StringEquals": {
"iam:PassedToService": "emr-serverless.amazonaws.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessJobRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:CancelJobRun",
"emr-serverless:GetJobRun"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]/jobruns/[[jobRunId]]"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessJobRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:CancelJobRun",
"emr-serverless:GetJobRun"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessJobRule
"
]
}
]
}