AWS Step Functions - AWS CodePipeline

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.

AWS Step Functions

AWS CodePipeline Acción que hace lo siguiente:

  • Inicia la ejecución de una máquina de AWS Step Functions estados desde tu 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-6bafd7fde791

En 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 en el artefacto de entrada especificado en el campo de entrada se utiliza como entrada para la ejecución de la máquina de estados. Se requiere un artefacto de entrada cuando InputTypese establece en. FilePath

    Ejemplo de entrada para el campo de entrada cuando FilePathestá seleccionado:

    assets/input.json
Entrada

Obligatorio: condicional

  • Literal: si InputTypese establece en Literal (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: Si InputTypeestá establecido en FilePath, este campo es obligatorio.

    Si se establece en, también InputTypese requiere un artefacto de entrada. 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 InputTypese establece en FilePath, este artefacto es obligatorio y se utiliza como fuente de entrada para 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. Esto se obtiene de la output propiedad de la respuesta de la DescribeExecution API Step Functions después de que la ejecución de la máquina de estados se complete 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 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.

Ejemplo de configuración de una acción

Ejemplo de una entrada predeterminada

YAML
Name: ActionName ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine ExecutionNamePrefix: my-prefix
JSON
{ "Name": "ActionName", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix" } }

Ejemplo de una entrada literal

YAML
Name: ActionName ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine ExecutionNamePrefix: my-prefix Input: '{"action": "test"}'
JSON
{ "Name": "ActionName", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix", "Input": "{\"action\": \"test\"}" } }

Ejemplo de un archivo de entrada

YAML
Name: ActionName InputArtifacts: - Name: myInputArtifact ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: 'arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine' ExecutionNamePrefix: my-prefix InputType: FilePath Input: assets/input.json
JSON
{ "Name": "ActionName", "InputArtifacts": [ { "Name": "myInputArtifact" } ], "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix", "InputType": "FilePath", "Input": "assets/input.json" } }

Comportamiento

Durante una versión, CodePipeline ejecuta la máquina de estados configurada utilizando la entrada especificada en la configuración de la acción.

Cuando InputTypese establece en Literal, el contenido del campo de configuración de la acción de entrada se utiliza como entrada para 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 cómo ejecutar una máquina de estados sin entrada, consulta la StartExecutionAPI Step Functions.

Cuando InputTypese establece en FilePath, la acción descomprime el artefacto de entrada y utiliza el contenido del archivo especificado en el campo de configuración de la acción de entrada como entrada para la máquina de estados. Si FilePathse especifica, el campo de entrada es obligatorio y debe existir un artefacto de entrada; de lo contrario, la acción fallará.

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 estado estándar se inició correctamente, CodePipeline sondea la DescribeExecution API 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. Esto se obtiene de la output propiedad de la respuesta de la DescribeExecution API Step Functions después de que la ejecución de la máquina de estados se complete correctamente. Tenga en cuenta que existen restricciones en la longitud de salida de esta API.

Control 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 de CodePipeline Step Functions alcance su tiempo de espera (7 días por defecto), se produce un error en la ejecución de la acción. 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 iniciada la ejecución de la acción CodePipeline, la ejecución de la acción se realiza correctamente aunque la ejecución de la máquina de estados falle.

Control de errores

  • Si CodePipeline no se puede iniciar la ejecución de una máquina de estados, se produce un error en la ejecución de la acción. De lo contrario, la acción terminará correctamente de inmediato. La acción tiene éxito CodePipeline independientemente del tiempo que tarde en completarse la ejecución de la máquina de estados o del resultado.

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.