Administración de un Job Batch (AWS Batch, Amazon SNS) - AWS Step Functions

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Administración de un Job Batch (AWS Batch, Amazon SNS)

En este proyecto de muestra, se explica cómo enviar unAWS Batchy, a continuación, enviar una notificación de Amazon SNS en función de si el trabajo se realiza correcta o incorrectamente. La implementación de este proyecto de muestra crea unAWS Step FunctionsUna máquina de estado deAWS Batchun trabajo y un tema de Amazon SNS.

En este proyecto, Step Functions utiliza una máquina de estado para llamar aAWS Batchtrabajo de forma síncrona. A continuación, espera a que el trabajo se realice correcta o incorrectamente y envía un tema de Amazon SNS con un mensaje que informa sobre si el trabajo se realizó correcta o incorrectamente.

Crear la máquina de estado y aprovisionar recursos

  1. Abra el iconoconsola de Step Functionsy eligeCreación de una máquina de estado.

  2. Elija Sample Projects (Proyectos de muestra) y, a continuación, elija Manage a Batch Job (Administración de un trabajo por lotes).

    Aparecen el Code (Código) y el Visual Workflow (Flujo de trabajo visual) de la máquina de estado.

    
            ManejarAWS Batchflujo de trabajo.
  3. Elija Next (Siguiente).

    Se muestra la página Deploy resources (Implementar recursos), que muestra los recursos que se crearán. Para este proyecto de muestra, los recursos incluyen:

    • Un trabajo de AWS Batch

    • Un tema de Amazon SNS

  4. Elija Deploy Resources (Implementar recursos).

    nota

    El proceso de creación de estos recursos y los permisos de IAM relacionados puede tardar hasta 10 minutos. Mientras se muestra la página Deploy resources (Implementar recursos), puede abrir el enlace Stack ID (ID de pila) para ver qué recursos se están aprovisionando.

Inicio de una nueva ejecución

  1. En la página New execution (Nueva ejecución), escriba un nombre para la ejecución (opcional) y, a continuación, elija Start Execution (Iniciar ejecución).

  2. (Opcional) Para identificar la ejecución, puede especificar un nombre para ella enNombre. De forma predeterminada, Step Functions genera automáticamente un nombre de ejecución exclusivo.

    nota

    Step Functions le permite crear nombres de máquina de estado, ejecución y actividad que contengan caracteres no ASCII. Estos nombres que no son ASCII no funcionan con AmazonCloudWatch. Para asegurarte de que puedes realizar un seguimientoCloudWatchmétricas, elija un nombre que utilice solo caracteres ASCII.

  3. Opcionalmente, puede ir a la máquina de estado recién creada en Step Functions.Salpicaderoy luego seleccioneNueva ejecución.

  4. Cuando finalice la ejecución, podrá seleccionar estados en el Visual workflow (Flujo de trabajo visual) y examinar la Input (Entrada) y la Output (Salida) en Step details (Detalles del paso).

Código de la máquina de estado de ejemplo

La máquina de estado de este proyecto de ejemplo se integra conAWS Batchy Amazon SNS pasando parámetros directamente a esos recursos.

Examine este ejemplo de máquina de estado para ver cómo controla Step FunctionsAWS Batchy Amazon SNS mediante una conexión al nombre de recurso de Amazon (ARN) enResourcecampo, y pasandoParametersa la API de servicio.

Para obtener más información acerca de cómo AWS Step Functions puede controlar otros servicios de AWS, consulte Utilización de AWS Step Functions con otros servicios.

{ "Comment": "An example of the Amazon States Language for notification on an AWS Batch job completion", "StartAt": "Submit Batch Job", "TimeoutSeconds": 3600, "States": { "Submit Batch Job": { "Type": "Task", "Resource": "arn:aws:states:::batch:submitJob.sync", "Parameters": { "JobName": "BatchJobNotification", "JobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/BatchJobQueue-7049d367474b4dd", "JobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/BatchJobDefinition-74d55ec34c4643c:1" }, "Next": "Notify Success", "Catch": [ { "ErrorEquals": [ "States.ALL" ], "Next": "Notify Failure" } ] }, "Notify Success": { "Type": "Task", "Resource": "arn:aws:states:::sns:publish", "Parameters": { "Message": "Batch job submitted through Step Functions succeeded", "TopicArn": "arn:aws:sns:us-east-1:123456789012:batchjobnotificatiointemplate-SNSTopic-1J757CVBQ2KHM" }, "End": true }, "Notify Failure": { "Type": "Task", "Resource": "arn:aws:states:::sns:publish", "Parameters": { "Message": "Batch job submitted through Step Functions failed", "TopicArn": "arn:aws:sns:us-east-1:123456789012:batchjobnotificatiointemplate-SNSTopic-1J757CVBQ2KHM" }, "End": true } } }

Ejemplo de IAM

Este ejemploAWS Identity and Access ManagementLa política de (IAM) generada por el proyecto de muestra incluye los privilegios mínimos necesarios para ejecutar la máquina de estado y los recursos relacionados. Le recomendamos que incluya únicamente los permisos necesarios en las políticas de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:ap-northeast-1:123456789012:ManageBatchJob-SNSTopic-JHLYYG7AZPZI" ], "Effect": "Allow" }, { "Action": [ "batch:SubmitJob", "batch:DescribeJobs", "batch:TerminateJob" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:ap-northeast-1:123456789012:rule/StepFunctionsGetEventsForBatchJobsRule" ], "Effect": "Allow" } ] }

Para obtener información acerca de cómo configurar IAM cuando utiliza Step Functions con otrosAWSservicios, consultePolíticas de IAM para servicios integrados.