AWS::Serverless::StateMachine - AWS Serverless Application Model

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::Serverless::StateMachine

Cria uma máquina de AWS Step Functions estado, que você pode usar para orquestrar AWS Lambda funções e outros AWS recursos para formar fluxos de trabalho complexos e robustos.

Para obter mais informações sobre o Steps Functions, consulte o AWS Step Functions Guia do desenvolvedor do .

nota

Quando você implanta AWS CloudFormation, AWS SAM transforma seus AWS SAM recursos em AWS CloudFormation recursos. Para ter mais informações, consulte Recursos gerados da AWS CloudFormation.

Sintaxe

Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.

YAML

Type: AWS::Serverless::StateMachine Properties: AutoPublishAlias: String Definition: Map DefinitionSubstitutions: Map DefinitionUri: String | S3Location DeploymentPreference: DeploymentPreference Events: EventSource Logging: LoggingConfiguration Name: String PermissionsBoundary: String Policies: String | List | Map PropagateTags: Boolean RolePath: String Role: String Tags: Map Tracing: TracingConfiguration Type: String

Propriedades

AutoPublishAlias

O nome do alias da máquina de estado. Para saber mais sobre o uso dos aliases de máquina de estado do Step Functions, consulte Gerenciar implantações contínuas com versões e aliases no AWS Step Functions Guia do desenvolvedor.

Use DeploymentPreference para configurar as preferências de implantação do seu alias. Se você não especificarDeploymentPreference, AWS SAM configurará o tráfego para mudar para a versão mais recente da máquina de estado de uma só vez.

AWS SAM define a versão DeletionPolicy e UpdateReplacePolicy como Retain por padrão. As versões anteriores não serão excluídas automaticamente.

Tipo: string

Obrigatório: não

AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a Name propriedade de um AWS::StepFunctions::StateMachineAlias recurso.

Definition

A definição da máquina de estado é um objeto, em que o formato do objeto corresponde ao formato do seu arquivo de AWS SAM modelo, por exemplo, JSON ou YAML. As definições de máquina de estado aderem ao Idioma dos estados da Amazon.

Para obter um exemplo de uma definição de máquina de estado embutida, consulte Exemplos.

Você deve fornecer um Definition ou um DefinitionUri.

Tipo: mapa

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

DefinitionSubstitutions

Um string-to-string mapa que especifica os mapeamentos para variáveis de espaço reservado na definição da máquina de estado. Isso permite injetar valores obtidos em tempo de execução (por exemplo, de funções intrínsecas) na definição da máquina de estado.

Tipo: mapa

Obrigatório: não

AWS CloudFormation compatibilidade: essa propriedade é semelhante à DefinitionSubstitutions propriedade de um AWS::StepFunctions::StateMachine recurso. Se alguma função intrínseca for especificada em uma definição de máquina de estado embutida, AWS SAM adiciona entradas a essa propriedade para injetá-las na definição da máquina de estado.

DefinitionUri

O URI do Amazon Simple Storage Service (Amazon S3) ou o caminho de arquivo local da definição de máquina de estado escrito na Amazon States Language.

Se você fornecer um caminho de arquivo local, o modelo deverá passar pelo fluxo de trabalho que inclui o comando sam deploy ou sam package para transformar corretamente a definição. Para tanto, você deve usar a versão 0.52.0 ou posterior da CLI AWS SAM .

Você deve fornecer um Definition ou um DefinitionUri.

Tipo: String | S3Location

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a DefinitionS3Location propriedade de um AWS::StepFunctions::StateMachine recurso.

DeploymentPreference

As configurações que habilitam e configuram implantações graduais de máquinas de estado. Para saber mais sobre as implantações graduais do Step Functions, consulte Gerenciar implantações contínuas com versões e aliases no AWS Step Functions Guia do desenvolvedor.

Especifique AutoPublishAlias antes de configurar essa propriedade. Suas configurações DeploymentPreference serão aplicadas ao alias especificado com AutoPublishAlias.

Quando você especificaDeploymentPreference, AWS SAM gera o valor da StateMachineVersionArn subpropriedade automaticamente.

Tipo: DeploymentPreference

Obrigatório: não

AWS CloudFormation compatibilidade: AWS SAM gera e anexa o valor da StateMachineVersionArn propriedade DeploymentPreference e passa DeploymentPreference para a DeploymentPreference propriedade de um AWS::StepFunctions::StateMachineAlias recurso.

Events

Especifica os eventos que acionam essa máquina de estado. Os eventos consistem em um tipo e um conjunto de propriedades que dependem do tipo.

Tipo: EventSource

Obrigatório: não

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

Logging

Define quais eventos de histórico de execução são registrados e onde eles são registrados.

Tipo: LoggingConfiguration

Obrigatório: não

AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a LoggingConfiguration propriedade de um AWS::StepFunctions::StateMachine recurso.

Name

O nome da máquina de estado.

Tipo: string

Obrigatório: não

AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a StateMachineName propriedade de um AWS::StepFunctions::StateMachine recurso.

PermissionsBoundary

O ARN de um limite de permissões a ser usado para a função de execução dessa máquina de estado. Essa propriedade só funciona se a função for gerada para você.

Tipo: string

Obrigatório: não

AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a PermissionsBoundary propriedade de um AWS::IAM::Role recurso.

Policies

Políticas de permissão para essa máquina de estado. As políticas serão anexadas à função de execução padrão AWS Identity and Access Management (IAM) da máquina de estado.

Essa propriedade aceita um único valor ou uma lista de valores. Os valores permitidos incluem:

nota

Se você especificar a propriedade Role, essa propriedade será ignorada.

Tipo: String | List | Map

Obrigatório: não

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

PropagateTags

Indique se deseja ou não passar as tags da propriedade Tags para os recursos AWS::Serverless::StateMachine gerados. Especifique True para propagar as tags nos recursos gerados.

Tipo: booliano

Obrigatório: não

Padrão: False

AWS CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem AWS CloudFormation equivalente.

Role

O ARN de um perfil do IAM a ser usado como a função de execução dessa máquina de estado.

Tipo: string

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a RoleArn propriedade de um AWS::StepFunctions::StateMachine recurso.

RolePath

O caminho para a função de execução do IAM da máquina de estado.

Use essa propriedade quando a função for gerada para você. Não use quando a função for especificada com a propriedade Role.

Tipo: string

Obrigatório: Condicional

AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a Path propriedade de um AWS::IAM::Role recurso.

Tags

Um string-to-string mapa que especifica as tags adicionadas à máquina de estado e a função de execução correspondente. Para obter informações sobre chaves e valores válidos para tags, consulte a propriedade Tags de um recurso AWS::StepFunctions::StateMachine.

Tipo: mapa

Obrigatório: não

AWS CloudFormation compatibilidade: essa propriedade é semelhante à Tags propriedade de um AWS::StepFunctions::StateMachine recurso. AWS SAM adiciona automaticamente uma stateMachine:createdBy:SAM tag a esse recurso e à função padrão que é gerada para ele.

Tracing

Seleciona se AWS X-Ray está ou não habilitado para a máquina de estado. Para obter mais informações sobre o uso do X-Ray com Step Functions, consulte AWS X-Ray e Step Functions no Guia do desenvolvedor do AWS Step Functions .

Tipo: TracingConfiguration

Obrigatório: não

AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a TracingConfiguration propriedade de um AWS::StepFunctions::StateMachine recurso.

Type

O tipo da máquina de estado.

Valores válidos: STANDARD ou EXPRESS

Tipo: string

Obrigatório: não

Padrão: STANDARD

AWS CloudFormation compatibilidade: essa propriedade é passada diretamente para a StateMachineType propriedade de um AWS::StepFunctions::StateMachine recurso.

Valores de retorno

Ref.

Quando você fornece o ID lógico desse recurso para a função intrínseca Ref, Ref retorna o nome de recurso da Amazon (ARN) do recurso AWS::StepFunctions::StateMachine subjacente.

Para obter mais informações sobre como usar a função Ref, consulte Ref no Guia do usuário do AWS CloudFormation .

Fã:: GetAtt

Fn::GetAtt retorna um valor para um atributo especificado deste tipo. Estes são os atributos disponíveis e os valores de retorno de amostra.

Para obter mais informações sobre o uso do Fn::GetAtt, consulte Fn::GetAtt no Guia do usuário do AWS CloudFormation .

Name

Retorna o nome da máquina de estado, como HelloWorld-StateMachine.

Exemplos

Arquivo de definição da máquina de estado

Veja a seguir um exemplo de uma definição de máquina de estado embutida que permite que uma função lambda invoque a máquina de estado. Observe que este exemplo espera que a Role propriedade configure a política adequada para permitir a invocação. O arquivo my_state_machine.asl.json deve ser escrito no Amazon States Language.

Neste exemplo, as DefinitionSubstitution entradas permitem que a máquina de estado inclua recursos declarados no arquivo AWS SAM de modelo.

YAML

MySampleStateMachine: Type: AWS::Serverless::StateMachine Properties: DefinitionUri: statemachine/my_state_machine.asl.json Role: arn:aws:iam::123456123456:role/service-role/my-sample-role Tracing: Enabled: true DefinitionSubstitutions: MyFunctionArn: !GetAtt MyFunction.Arn MyDDBTable: !Ref TransactionTable

Definição de máquina de estado em linha

Veja a seguir um exemplo de definição de máquina de estado em linha.

Neste exemplo, o arquivo de AWS SAM modelo é escrito em YAML, então a definição da máquina de estado também está em YAML. Para declarar uma definição de máquina de estado embutida em JSON, escreva seu arquivo de AWS SAM modelo em JSON.

YAML

MySampleStateMachine: Type: AWS::Serverless::StateMachine Properties: Definition: StartAt: MyLambdaState States: MyLambdaState: Type: Task Resource: arn:aws:lambda:us-east-1:123456123456:function:my-sample-lambda-app End: true Role: arn:aws:iam::123456123456:role/service-role/my-sample-role Tracing: Enabled: true