

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# AWS::Serverless::StateMachine
<a name="sam-resource-statemachine"></a>

Membuat mesin AWS Step Functions status, yang dapat Anda gunakan untuk mengatur AWS Lambda fungsi dan AWS sumber daya lainnya untuk membentuk alur kerja yang kompleks dan kuat.

Untuk informasi selengkapnya, lihat Step Functions dalam [Panduan Developer AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html).

**catatan**  
Ketika Anda menyebarkan ke AWS CloudFormation, AWS SAM mengubah AWS SAM sumber daya Anda menjadi CloudFormation sumber daya. Untuk informasi selengkapnya, lihat [CloudFormation Sumber daya yang dihasilkan untuk AWS SAM](sam-specification-generated-resources.md).

## Sintaks
<a name="sam-resource-statemachine-syntax"></a>

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

### YAML
<a name="sam-resource-statemachine-syntax.yaml"></a>

```
Type: AWS::Serverless::StateMachine
Properties:
  AutoPublishAlias: String
  UseAliasAsEventTarget: Boolean
  [Definition](#sam-statemachine-definition): Map
  [DefinitionSubstitutions](#sam-statemachine-definitionsubstitutions): Map
  [DefinitionUri](#sam-statemachine-definitionuri): String | [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location)
  DeploymentPreference: [DeploymentPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html)
  [Events](#sam-statemachine-events): EventSource
  [Logging](#sam-statemachine-logging): [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration)
  [Name](#sam-statemachine-name): String
  [PermissionsBoundary](#sam-statemachine-permissionsboundary): String
  [Policies](#sam-statemachine-policies): String | List | Map
  PropagateTags: Boolean
  [RolePath](#sam-statemachine-rolepath): String
  [Role](#sam-statemachine-role): String
  [Tags](#sam-statemachine-tags): Map
  [Tracing](#sam-statemachine-tracing): [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration)
  [Type](#sam-statemachine-type): String
```

## Sifat-sifat
<a name="sam-resource-statemachine-properties"></a>

 `AutoPublishAlias`   <a name="sam-statemachine-autopublishalias"></a>
Nama alias mesin negara. *Untuk mempelajari selengkapnya tentang penggunaan alias mesin status Step Functions, lihat [Mengelola penerapan berkelanjutan dengan versi dan alias](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-cd-aliasing-versioning.html) di Panduan Pengembang.AWS Step Functions *  
Gunakan `DeploymentPreference` untuk mengonfigurasi preferensi penerapan untuk alias Anda. Jika Anda tidak menentukan`DeploymentPreference`, AWS SAM akan mengkonfigurasi lalu lintas untuk beralih ke versi mesin status yang lebih baru sekaligus.  
AWS SAM menetapkan versi `DeletionPolicy` dan `UpdateReplacePolicy` ke secara `Retain` default. Versi sebelumnya tidak akan dihapus secara otomatis.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke ` [ Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html#cfn-stepfunctions-statemachinealias-name)` properti `AWS::StepFunctions::StateMachineAlias` sumber daya.

 `UseAliasAsEventTarget`   <a name="sam-statemachine-usealiasaseventtarget"></a>
Tunjukkan apakah akan meneruskan alias, yang dibuat dengan menggunakan `AutoPublishAlias` properti, ke target sumber peristiwa yang ditentukan dengan [Peristiwa](#sam-statemachine-events).  
Tentukan `True` untuk menggunakan alias sebagai target acara.  
*Tipe*: Boolean  
*Wajib*: Tidak  
*Default*: `False`  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `Definition`   <a name="sam-statemachine-definition"></a>
Definisi mesin status adalah objek, di mana format objek cocok dengan format file AWS SAM template Anda, misalnya, JSON atau YAMAL. Ketentuan mesin status mematuhi [Bahasa Status Amazon](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).  
Untuk contoh ketentuan mesin status inline, lihat [Contoh](#sam-resource-statemachine--examples).  
Anda harus menyediakan `Definition` atau `DefinitionUri`.  
*Tipe*: Peta  
*Wajib*: Bersyarat  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `DefinitionSubstitutions`   <a name="sam-statemachine-definitionsubstitutions"></a>
 string-to-stringPeta yang menentukan pemetaan untuk variabel placeholder dalam definisi mesin status. Hal ini memungkinkan Anda untuk memasukkan nilai-nilai yang diperoleh pada saat waktu aktif (misalnya, dari fungsi intrinsik) ke dalam ketentuan mesin status.  
*Tipe*: Peta  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini mirip dengan `[DefinitionSubstitutions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions)` properti `AWS::StepFunctions::StateMachine` sumber daya. Jika ada fungsi intrinsik yang ditentukan dalam definisi mesin status inline, AWS SAM tambahkan entri ke properti ini untuk menyuntikkannya ke dalam definisi mesin status.

 `DefinitionUri`   <a name="sam-statemachine-definitionuri"></a>
URI Amazon Simple Storage Service (Amazon S3) atau jalur file lokal dari ketentuan mesin status yang ditulis di [Bahasa Status Amazon](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).  
Jika Anda memberikan jalur file lokal, templat harus melalui alur kerja yang mencakup perintah `sam deploy` atau `sam package` untuk mengubah ketentuan dengan benar. Untuk melakukannya, Anda harus menggunakan CLI AWS SAM versi 0.52.0 atau yang lebih baru.  
Anda harus memberikan `Definition` atau `DefinitionUri`.  
*Tipe*: String \$1 [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location)  
*Wajib*: Bersyarat  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[DefinitionS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location)` properti `AWS::StepFunctions::StateMachine` sumber daya.

 `DeploymentPreference`   <a name="sam-statemachine-deploymentpreference"></a>
Pengaturan yang mengaktifkan dan mengonfigurasi penerapan mesin status bertahap. *Untuk mempelajari selengkapnya tentang penerapan bertahap Step Functions, lihat [Mengelola penerapan berkelanjutan dengan versi dan alias](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-cd-aliasing-versioning.html) di Panduan Pengembang.AWS Step Functions *  
Tentukan `AutoPublishAlias` sebelum mengkonfigurasi properti ini. `DeploymentPreference`Pengaturan Anda akan diterapkan ke alias yang ditentukan dengan`AutoPublishAlias`.  
Saat Anda menentukan`DeploymentPreference`, AWS SAM menghasilkan nilai `StateMachineVersionArn` sub-properti secara otomatis.  
*Jenis*: [DeploymentPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: AWS SAM menghasilkan dan melampirkan nilai `StateMachineVersionArn` properti ke `DeploymentPreference` dan meneruskan `DeploymentPreference` ke `[DeploymentPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html#cfn-stepfunctions-statemachinealias-deploymentpreference)` properti `AWS::StepFunctions::StateMachineAlias` sumber daya. 

 `Events`   <a name="sam-statemachine-events"></a>
Menentukan peristiwa yang memicu mesin status ini. Peristiwa terdiri dari tipe dan satu set properti yang bergantung pada tipenya.  
*Jenis*: [EventSource](sam-property-statemachine-statemachineeventsource.md)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `Logging`   <a name="sam-statemachine-logging"></a>
Menentukan peristiwa riwayat eksekusi mana yang dicatat dan tempatnya dicatat.  
*Jenis*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration)` properti `AWS::StepFunctions::StateMachine` sumber daya.

 `Name`   <a name="sam-statemachine-name"></a>
Nama mesin status.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[StateMachineName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename)` properti `AWS::StepFunctions::StateMachine` sumber daya.

 `PermissionsBoundary`   <a name="sam-statemachine-permissionsboundary"></a>
ARN batas izin untuk digunakan untuk peran eksekusi mesin status ini. Properti ini hanya bekerja jika peran tersebut dibuat untuk Anda.  
*Tipe*: String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[PermissionsBoundary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary)` properti `AWS::IAM::Role` sumber daya.

 `Policies`   <a name="sam-statemachine-policies"></a>
Kebijakan izin untuk mesin negara bagian ini. Kebijakan akan ditambahkan ke peran eksekusi default mesin negara AWS Identity and Access Management (IAM).  
Properti ini menerima satu nilai atau daftar nilai. Nilai yang diizinkan meliputi:  
+ [AWS SAM templat kebijakan](serverless-policy-templates.md).
+ Kebijakan ARN [AWS terkelola atau kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) yang [dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies).
+ Nama kebijakan AWS terkelola dari [daftar](https://github.com/aws/serverless-application-model/blob/develop/samtranslator/internal/data/aws_managed_policies.json) berikut.
+ [Kebijakan IAM sebaris](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) yang diformat YAML sebagai peta.
Jika Anda menyetel `Role` properti, properti ini diabaikan.
*Tipe*: String \$1 Daftar \$1 Peta  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

`PropagateTags`  <a name="sam-statemachine-propagatetags"></a>
Tunjukkan apakah akan meneruskan tag dari `Tags` properti ke sumber daya yang Anda [AWS::Serverless::StateMachine](sam-specification-generated-resources-statemachine.md) hasilkan atau tidak. Tentukan `True` untuk menyebarkan tag di sumber daya yang Anda hasilkan.  
*Tipe*: Boolean  
*Wajib*: Tidak  
*Default*: `False`  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `Role`   <a name="sam-statemachine-role"></a>
ARN IAM role untuk digunakan sebagai peran eksekusi mesin status ini.  
*Tipe*: String  
*Wajib*: Bersyarat  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` properti `AWS::StepFunctions::StateMachine` sumber daya.

 `RolePath`   <a name="sam-statemachine-rolepath"></a>
Jalur ke peran eksekusi IAM mesin negara.  
Gunakan properti ini saat peran dibuat untuk Anda. Jangan gunakan saat peran ditentukan dengan `Role` properti.  
*Tipe*: String  
*Wajib*: Bersyarat  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[Path](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path)` properti `AWS::IAM::Role` sumber daya.

 `Tags`   <a name="sam-statemachine-tags"></a>
 string-to-stringPeta yang menentukan tag yang ditambahkan ke mesin status dan peran eksekusi yang sesuai. Untuk informasi tentang kunci dan nilai tag yang valid, lihat properti [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) dari [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html)sumber daya.  
*Tipe*: Peta  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini mirip dengan `[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags)` properti `AWS::StepFunctions::StateMachine` sumber daya. AWS SAM secara otomatis menambahkan `stateMachine:createdBy:SAM` tag ke sumber daya ini, dan ke peran default yang dihasilkan untuknya.

 `Tracing`   <a name="sam-statemachine-tracing"></a>
Memilih apakah diaktifkan atau AWS X-Ray tidak untuk mesin status. Untuk informasi lebih lanjut tentang menggunakan X-Ray dengan Step Function, lihat [AWS X-Ray dan Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) di *Panduan Developer AWS Step Functions *.  
*Jenis*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration)` properti `AWS::StepFunctions::StateMachine` sumber daya.

 `Type`   <a name="sam-statemachine-type"></a>
Tipe mesin status.  
*Nilai yang valid*: `STANDARD` atau `EXPRESS`  
*Tipe*: String  
*Wajib*: Tidak  
*Default*: `STANDARD`  
*CloudFormation kompatibilitas*: Properti ini diteruskan langsung ke `[StateMachineType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype)` properti `AWS::StepFunctions::StateMachine` sumber daya.

## Nilai Pengembalian
<a name="sam-resource-statemachine-return-values"></a>

### Ref
<a name="sam-resource-statemachine-return-values-ref"></a>

Bila Anda memberikan ID logis dari sumber daya ini ke fungsi intrinsik Ref, Ref mengembalikan Amazon Resource Name (ARN) dari sumber daya `AWS::StepFunctions::StateMachine`utama.

Untuk informasi lebih lanjut tentang penggunaan fungsi `Ref`, lihat [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) di *Panduan Pengguna AWS CloudFormation *. 

### Fn:: GetAtt
<a name="sam-resource-statemachine-return-values-fn--getatt"></a>

`Fn::GetAtt` mengembalikan nilai untuk atribut yang ditentukan dari jenis ini. Berikut ini adalah atribut yang tersedia dan nilai-nilai kembali sampel. 

Untuk informasi lebih lanjut cara menggunakan `Fn::GetAtt`, lihat [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) di *Panduan Pengguna AWS CloudFormation * 

`Name`  <a name="Name-fn::getatt"></a>
Mengembalikan nama mesin status, seperti `HelloWorld-StateMachine`.

## Contoh
<a name="sam-resource-statemachine--examples"></a>

### File Ketentuan Mesin Status
<a name="sam-resource-statemachine--examples--state-machine-definition-file"></a>

Berikut ini adalah contoh definisi mesin status inline yang memungkinkan fungsi lambda untuk memanggil mesin status. Perhatikan bahwa contoh ini mengharapkan `Role` properti untuk mengonfigurasi kebijakan yang tepat untuk mengizinkan pemanggilan. File `my_state_machine.asl.json` harus ditulis dalam [Bahasa Status Amazon](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).

Dalam contoh ini, `DefinitionSubstitution` entri memungkinkan mesin negara untuk menyertakan sumber daya yang dideklarasikan dalam file AWS SAM template.

#### YAML
<a name="sam-resource-statemachine--examples--state-machine-definition-file--yaml"></a>

```
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
```

### Ketentuan Mesin Status Inline
<a name="sam-resource-statemachine--examples--inline-state-machine-definition"></a>

Berikut ini adalah contoh dari ketentuan mesin status inline.

Dalam contoh ini, file AWS SAM template ditulis dalam YAMAL, sehingga definisi mesin status juga dalam YAMAL. Untuk mendeklarasikan definisi mesin status inline di JSON, tulis file AWS SAM template Anda di JSON.

#### YAML
<a name="sam-resource-statemachine--examples--inline-state-machine-definition--yaml"></a>

```
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
```