As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Saiba como fazer a integração AWS Step Functions com o Amazon EMR no EKS usando a integração do serviço Amazon EMR no EKS. APIs A integração de serviços APIs é a mesma do Amazon EMR correspondente no EKS APIs, mas nem todas APIs oferecem suporte a todos os padrões de integração, conforme mostrado na tabela a seguir.
Para saber mais sobre a integração com AWS serviços no Step Functions, consulte Integração de produtos da e. Transmitir parâmetros a uma API de serviço no Step Functions
Como a integração otimizada do Amazon EMR no EKS é diferente da integração do Amazon EMR no EKS SDK AWS
-
O padrão de integração Executar um trabalho (.sync) é compatível.
-
Não há otimizações para o padrão de integração Resposta de solicitação.
-
O padrão de integração Aguardar um retorno de chamada com um token de tarefa não é compatível.
nota
Para integração com o Amazon EMR, o Step Functions tem uma frequência de pesquisa de trabalhos de codificação rígida de 60 segundos para os primeiros 10 minutos e 300 segundos depois disso.
API | Resposta de solicitação | Executar um trabalho (.sync) |
---|---|---|
CreateVirtualCluster | Compatível | Sem compatibilidade |
DeleteVirtualCluster | Compatível | Compatível |
StartJobRun | Compatível | Compatível |
Amazon EMR compatível com EKS: APIs
nota
Há uma cota para o tamanho máximo de dados de entrada ou resultado para uma tarefa no Step Functions. Isso restringe você a 256 KiB de dados como uma string codificada em UTF-8 quando você envia ou recebe dados de outro serviço. Consulte Cotas relacionadas a execuções de máquina de estado.
Veja a seguir um estado Task
que cria um cluster 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
}
Veja a seguir um Task
estado que envia um trabalho a um cluster virtual e aguarde até que ele seja concluído.
"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://<amzn-s3-demo-bucket>
/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://<amzn-s3-demo-logging-bucket1>
"
}
}
},
"Tags": {
"taskType"
: "jobName"
}
},
"End": true
}
Veja a seguir um Task
estado que exclui um cluster virtual e aguarde a conclusão da exclusão.
"Delete_Virtual_Cluster": {
"Type": "Task",
"Resource": "arn:aws:states:::emr-containers:deleteVirtualCluster.sync",
"Parameters": {
"Id.$": "$.VirtualClusterId"
},
"End": true
}
Para saber mais sobre a configuração IAM permissões ao usar Step Functions com outros AWS serviços, consulteComo o Step Functions gera políticas do IAM para serviços integrados.