AWS Step Functions - AWS CodePipeline

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á.

AWS Step Functions

Uma ação do AWS CodePipeline que faça o seguinte:

  • Inicia uma execução de máquina de estado do AWS Step Functions a partir do pipeline.

  • Fornece um estado inicial para a máquina de estado por meio de uma propriedade na configuração de ação ou de um arquivo localizado em um artefato de pipeline a ser transmitido como entrada.

  • Opcionalmente, define um prefixo de ID de execução para identificar execuções originadas da ação.

  • É compatível com máquinas de estado padrão e expressa.

nota

Este recurso não está disponível na região Ásia-Pacífico (Hong Kong) ou Europa (Milão). Para usar outras ações disponíveis nessa Região, consulteIntegrações de produtos e serviços ao CodePipeline.

Tipo de ação

  • Categoria: Invoke

  • Proprietário: AWS

  • Fornecedor: StepFunctions

  • Versão: 1

Parâmetros de configuração

StateMachineArn

: obrigatório Sim

O nome de recurso da Amazon (ARN) para a máquina de estado a ser invocada.

ExecutionNamePrefix

: obrigatório Não

Por padrão, o ID de execução da ação é usado como o nome de execução da máquina de estado. Se um prefixo for fornecido, ele será adicionado ao ID de execução da ação com um hífen e será usado como o nome de execução da máquina de estado.

myPrefix-1624a1d1-3699-43f0-8e1e-6bafd7fde791

Para uma máquina de estado expressa, o nome deve conter apenas 0-9, A-Z, a-z, - e _.

InputType

: obrigatório Não

  • Literal(default): Quando especificado, o valor na propriedadeEntradaé transmitido diretamente para a entrada da máquina de estado.

    Entrada de exemplo para o campo Input quando Literal é selecionado:

    {"action": "test"}
  • FilePath: O conteúdo de um arquivo no artefato de entrada especificado peloEntradaé usado como a entrada para a execução da máquina de estado. Um artefato de entrada é necessário quando InputType é definido como FilePath.

    Entrada de exemplo para o campo Input quando FilePath é selecionado:

    assets/input.json
Entrada

: obrigatório Condicional

  • Literal: QuandoInputTypeé definido comoLiteral(padrão), este campo é opcional.

    Se fornecido, o campo Input será usado diretamente como a entrada para a execução da máquina de estado. Caso contrário, a máquina de estado será invocada com um objeto JSON {} vazio.

  • FilePath: QuandoInputTypeé definido comoFilePath, este campo é obrigatório.

    Um artefato de entrada também é necessário quando InputType é definido como FilePath.

    O conteúdo do arquivo no artefato de entrada especificado é usado como entrada para a execução da máquina de estado.

Input artifacts (Artefatos de entrada)

  • Número de artefatos: 0 to 1

  • Descrição: SeInputTypeé definido comoFilePath, este artefato é necessário e é usado para originar a entrada para a execução da máquina de estado.

Artefatos de saída

  • Número de artefatos: 0 to 1

  • Descrição:

    • Máquinas de estado padrão: Se fornecido, o artefato de saída será preenchido com a saída da máquina de estado. Isso é obtido da propriedade output da resposta da API DescribeExecution do Step Functions após a execução da máquina de estado ser concluída com êxito.

    • Máquinas de estado expressa: Não compatível.

Variáveis de saída

Essa ação produz variáveis de saída que podem ser referenciadas pela configuração de uma ação downstream no pipeline.

Para obter mais informações, consulte Variables.

StateMachineArn

O ARN da máquina de estado.

ExecutionArn

O ARN da execução da máquina de estado. Somente máquinas de estado padrão.

Exemplo de configuração da ação

Exemplo de entrada padrão

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" } }

Exemplo de 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\"}" } }

Exemplo de arquivo 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" } }

Behavior

Durante uma versão, o CodePipeline executa a máquina de estado configurada usando a entrada conforme especificado na configuração de ação.

Quando InputType é definido como Literal, o conteúdo do campo de configuração de ação Input é usado como a entrada para a máquina de estado. Quando a entrada literal não é fornecida, a execução da máquina de estado usa um objeto JSON {} vazio. Para obter mais informações sobre como executar uma máquina de estado sem entrada, consulte a API StartExecution do Step Functions.

Quando InputType é definido como FilePath, a ação descompacta o artefato de entrada e usa o conteúdo do arquivo especificado no campo de configuração da ação Input como entrada para a máquina de estado. Quando FilePath é especificado, o campo Input é obrigatório e deve existir um artefato de entrada; caso contrário, ocorrerá falha na ação.

Após uma execução de início bem-sucedida, o comportamento divergirá para os dois tipos de máquina de estado, padrão e expressa.

Máquinas de estado padrão

Se a execução da máquina de estado padrão foi iniciada com êxito, o CodePipeline sondagens a propriedadeDescribeExecutionAPI até que a execução atinja um status de terminal. Se a execução for concluída com êxito, a ação será bem-sucedida; caso contrário, ela falhará.

Se um artefato de saída for configurado, o artefato conterá o valor de retorno da máquina de estado. Isso é obtido da propriedade output da resposta da API DescribeExecution do Step Functions após a execução da máquina de estado ser concluída com êxito. Observe que há restrições de comprimento de saída impostas nesta API.

Tratamento de erros

  • Se ocorrer falha na ação ao iniciar uma execução de máquina de estado, a execução da ação falhará.

  • Se a execução da máquina de estado não conseguir atingir um estado de terminal antes que a ação Step Functions do CodePipeline atinja o seu tempo limite (padrão de 7 dias), ocorrerá falha na execução da ação. A máquina de estado poderá continuar apesar dessa falha. Para obter mais informações sobre tempos limite de execução da máquina de estado nas Step Functions, consulteFluxos de trabalho padrão em comparação.

    nota

    É possível solicitar um aumento da cota do tempo limite da ação de invocação para a conta com a ação. No entanto, o aumento da cota aplica-se a todas as ações deste tipo em todas as regiões para essa conta.

  • Se a execução da máquina de estado atingir um status de terminal de FAILED, TIMED_OUT ou ABORTED, ocorrerá falha na execução da ação.

Máquinas de estado expressas

Se a execução da máquina de estado expressa foi iniciada com êxito, a execução da ação de invocação será concluída com êxito.

Considerações sobre ações configuradas para máquinas de estado expressa:

  • Não é possível designar um artefato de saída.

  • A ação não aguarda o término da execução da máquina de estado.

  • Depois que a execução da ação é iniciada no CodePipeline, a execução da ação será bem-sucedida mesmo se ocorrer falha na execução da máquina de estado.

Tratamento de erros

  • Se CodePipeline não conseguir iniciar uma execução de máquina de estado, ocorrerá falha na execução da ação. Caso contrário, a ação será executada com êxito imediatamente. A ação será executada no CodePipeline independentemente de quanto tempo a execução da máquina de estado levará para ser concluída ou seu resultado.

Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.