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 AWS CodePipeline ação que faz o seguinte:

  • Inicia a execução de uma máquina de AWS Step Functions estado a partir do seu 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

A ação Step Functions é executada no Lambda e, portanto, tem cotas de tamanho de artefato iguais às cotas de tamanho de artefato para funções Lambda. Para obter mais informações, consulte Cotas do Lambda no Guia do desenvolvedor do Lambda.

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 (padrão): quando especificado, o valor no campo Input é 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 pelo campo Entrada é usado como entrada para a execução da máquina de estado. Um artefato de entrada é necessário quando InputTypedefinido como. FilePath

    Exemplo de entrada para o campo FilePathEntrada quando selecionado:

    assets/input.json
Entrada

Obrigatório: Condicional

  • Literal: quando InputTypedefinido como Literal (padrão), esse 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: Quando InputTypedefinido como FilePath, esse campo é obrigatório.

    Um artefato de entrada também é necessário quando InputTypedefinido 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: Se InputTypeestiver definido como FilePath, esse artefato é necessário e é usado para fornecer 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 output propriedade da resposta da DescribeExecution API Step Functions após a conclusão bem-sucedida da execução da máquina de estado.

    • Máquinas de estado expressas: não são compatíveis.

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 ter mais informações, consulte Variáveis.

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

Comportamento

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

Quando InputTypedefinido como Literal, o conteúdo do campo Configuração da ação de entrada é usado como 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 execução de máquina de estado sem entrada, consulte a StartExecutionAPI Step Functions.

Quando InputTypeestá definida como FilePath, a ação descompacta o artefato de entrada e usa o conteúdo do arquivo especificado no campo Configuração da ação de entrada como entrada para a máquina de estado. Quando FilePathespecificado, o campo Entrada é obrigatório e um artefato de entrada deve existir; caso contrário, a ação falhará.

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 sucesso, CodePipeline pesquisa a DescribeExecution API até que a execução atinja o 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 output propriedade da resposta da DescribeExecution API Step Functions após a conclusão bem-sucedida da execução da máquina de estado. 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 atingir o status do terminal antes que a ação CodePipeline Step Functions atinja seu tempo limite (padrão de 7 dias), a execução da ação falhará. A máquina de estado poderá continuar apesar dessa falha. Para obter mais informações sobre o tempo limite da execução da máquina de estado no Step Functions, consulte Comparação entre os fluxos de trabalho Standard e Express.

    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 em CodePipeline, a execução da ação é bem-sucedida mesmo se a execução da máquina de estado falhar.

Tratamento de erros

  • Se CodePipeline falhar ao iniciar a execução de uma máquina de estado, a execução da ação falhará. Caso contrário, a ação será executada com êxito imediatamente. A ação é bem-sucedida CodePipeline independentemente de quanto tempo a execução da máquina de estado leva para ser concluída ou de seu resultado.

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