Referencia de acciones de invocación de AWS Step Functions
Acción de AWS CodePipeline que hace lo siguiente:
-
Inicia la ejecución de una máquina de estados de AWS Step Functions desde la canalización.
-
Proporciona a la máquina de estados un estado inicial a través de una propiedad de la configuración de la acción o de un archivo ubicado en un artefacto de la canalización que se va a pasar como entrada.
-
Si lo desea, puede especificar un prefijo del ID de ejecución para identificar las ejecuciones que se originan en la acción.
-
Admite máquinas de estados estándar y rápidas .
nota
La acción Step Functions se ejecuta en Lambda y, por lo tanto, tiene cuotas de tamaño de artefacto que son las mismas que las cuotas de tamaño de artefacto de las funciones de Lambda. Para obtener más información, consulte Cuotas de Lambda en la Guía para desarrolladores de Lambda.
Tipo de acción
-
Categoría:
Invoke -
Propietario: :
AWS -
Proveedor:
StepFunctions -
Versión:
1
Parámetros de configuración
- StateMachineArn
-
Obligatorio: sí
Nombre del recurso de Amazon (ARN) de la máquina de estados que se va a invocar.
- ExecutionNamePrefix
-
Obligatorio: no
De forma predeterminada, el ID de ejecución de la acción se utiliza como nombre de ejecución de la máquina de estados. Si se proporciona un prefijo, se antepone al ID de ejecución de la acción con un guión, y todo ello se utiliza en conjunto como el nombre de ejecución de la máquina de estados.
myPrefix-1624a1d1-3699-43f0-8e1e-6bafd7fde791En las máquinas de estados rápidas, el nombre solo debe contener los caracteres 0-9, A-Z, a-z, - y _.
- InputType
-
Obligatorio: no
-
Literal (valor predeterminado): cuando se especifica, el valor del campo Input se pasa directamente a la entrada de la máquina de estados.
Ejemplo de entrada del campo Input cuando se selecciona Literal:
{"action": "test"} -
FilePath: el contenido de un archivo del artefacto de entrada especificado en el campo Input se utiliza como entrada para la ejecución de la máquina de estados. Cuando InputType está establecido en FilePath, se necesita un artefacto de entrada.
Ejemplo de entrada del campo Input cuando se selecciona FilePath:
assets/input.json
-
- Input
-
Obligatorio: condicional
-
Literal: cuando InputType está establecido en Literal (valor predeterminado), este campo es opcional.
Si se proporciona, el campo Input se utiliza directamente como entrada en la ejecución de la máquina de estados. De lo contrario, la máquina de estados se invoca con un objeto JSON vacío,
{}. -
FilePath: cuando InputType se establece en FilePath, este campo es obligatorio.
También se necesita un artefacto de entrada cuando InputType está establecido en FilePath.
El contenido del archivo del artefacto de entrada especificado se utiliza como entrada para la ejecución de la máquina de estados.
-
Artefactos de entrada
-
Número de artefactos:
0 to 1 -
Descripción: si InputType está establecido en FilePath, este artefacto será obligatorio y se utilizará como origen de la entrada en la ejecución de la máquina de estados.
Artefactos de salida
-
Número de artefactos:
0 to 1 -
Descripción:
-
Máquinas de estados estándar: si se proporciona el artefacto de salida, se rellena con la salida de la máquina de estados. Esta información se obtiene de la propiedad
outputde la respuesta de la API DescribeExecution de Step Functions una vez que la ejecución de la máquina de estados se completa correctamente. -
Máquinas de estados rápidas: no son compatibles.
-
Variables de salida
Esta acción produce variables de salida a las que se puede hacer referencia en la configuración de una acción descendente de la canalización.
Para obtener más información, consulte Referencia de variables.
- StateMachineArn
-
ARN de la máquina de estados.
- ExecutionArn
-
ARN de la ejecución de la máquina de estados. Solo máquinas de estados estándar.
Permisos del rol de servicio: acción StepFunctions
A continuación se indican los permisos mínimos que se necesitan en StepFunctions para crear canalizaciones con una acción de invocación de Step Functions.
{ "Effect": "Allow", "Action": [ "states:DescribeStateMachine", "states:DescribeExecution", "states:StartExecution" ], "Resource": "resource_ARN" },
Ejemplo de configuración de una acción
Ejemplo de una entrada predeterminada
Ejemplo de una entrada literal
Ejemplo de un archivo de entrada
Comportamiento
Durante un lanzamiento, CodePipeline ejecuta la máquina de estado configurada utilizando la entrada especificada en la configuración de la acción.
Cuando InputType está establecido en Literal, el contenido del campo Input de la configuración de la acción se utiliza como entrada de la máquina de estados. Cuando no se proporciona una entrada literal, la ejecución de la máquina de estados utiliza un objeto JSON vacío, {}. Para obtener más información sobre la ejecución de una máquina de estados sin entrada, consulte la API StartExecution de Step Functions.
Cuando InputType está establecido en FilePath, la acción descomprime el artefacto de entrada y utiliza el contenido del archivo especificado en el campo Input de la configuración de la acción como entrada de la máquina de estados. Cuando se especifica FilePath, el campo Input es obligatorio y debe existir un artefacto de entrada; de lo contrario, la acción no se ejecutará correctamente.
Después de una ejecución de inicio correcta, el comportamiento será distinto en los dos tipos de máquina de estados, estándar y rápida.
Máquinas de estados estándar
Si la ejecución de la máquina de estados estándar se inició correctamente, CodePipeline sondeará la API DescribeExecution hasta que la ejecución alcance un estado terminal. Si la ejecución se completa correctamente, la acción será correcta; de lo contrario, se producirá un error.
Si hay un artefacto de salida configurado, contendrá el valor de retorno de la máquina de estados. Esta información se obtiene de la propiedad output de la respuesta de la API DescribeExecution de Step Functions una vez que la ejecución de la máquina de estados se completa correctamente. Tenga en cuenta que existen restricciones en la longitud de salida de esta API.
Gestión de errores
-
Si la acción no puede iniciar la ejecución de una máquina de estados, se producirá un error.
-
Si la ejecución de la máquina de estados no alcanza un estado terminal antes de que la acción Step Functions de CodePipeline agote el tiempo de espera (con valor predeterminado de 7 días), se producirá un error. A pesar de este error, la máquina de estados podría seguir funcionando. Para obtener más información sobre los tiempos de espera de ejecución de las máquinas de estado en Step Funcions, consulte Flujos de trabajo estándar en comparación con flujos de trabajo rápidos.
nota
Puede solicitar un aumento de la cuota del tiempo de espera de la acción de invocación en la cuenta que realiza la acción. Sin embargo, el aumento de cuota se aplicará a todas las acciones de ese tipo en todas las regiones de dicha cuenta.
-
Si la ejecución de la máquina de estados alcanza el estado terminal FAILED, TIMED_OUT o ABORTED, se producirá un error.
Máquinas de estados rápidas
Si la ejecución de la máquina de estados rápida se inició correctamente, la ejecución de la acción de invocación también se realizará correctamente.
Consideraciones sobre las acciones configuradas para máquinas de estados rápidas:
-
No puede designar un artefacto de salida.
-
La acción no espera a que se complete la ejecución de la máquina de estados.
-
Una vez que la ejecución de la acción se inicia en CodePipeline, la ejecución de la acción se realiza correctamente incluso si se produce un error.
Gestión de errores
-
Si CodePipeline no puede iniciar una ejecución de máquina de estados, se producirá un error en la ejecución de la acción. De lo contrario, la acción terminará correctamente de inmediato. La acción se ejecutará correctamente en CodePipeline independientemente del tiempo que la ejecución de la máquina de estados tarde en completarse o en proporcionar un resultado.
Véase también
Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
-
Guía para desarrolladores de AWS Step Functions: para obtener información sobre las máquinas de estado, las ejecuciones y las entradas de las máquinas de estado, consulte la Guía para desarrolladores de AWS Step Functions.
-
Tutorial: Utilizar una acción de invocación de AWS Step Functions en una canalización: este tutorial le permite empezar con un ejemplo de máquina de estados estándar y le muestra cómo usar la consola para actualizar una canalización añadiendo una acción de invocación de Step Functions.