Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda dapat menggunakan AWS Serverless Application Model Step Functions untuk membangun alur kerja dan menyebarkan infrastruktur yang Anda butuhkan, termasuk fungsi Lambda, APIs dan peristiwa, untuk membuat aplikasi tanpa server.
Anda juga dapat menggunakan AWS Serverless Application Model CLI bersama dengan AWS Toolkit for Visual Studio Code sebagai bagian dari pengalaman terintegrasi untuk membangun dan menyebarkan AWS Step Functions mesin status. Anda dapat membuat aplikasi nirserver dengan AWS SAM, kemudian membangun mesin status Anda di VS Code IDE. Kemudian Anda dapat memvalidasi, mengemas, dan menyebarkan sumber daya Anda.
Tip
Untuk menerapkan contoh aplikasi tanpa server yang memulai alur kerja Step Functions menggunakan AWS SAM, lihat Menerapkan
Mengapa menggunakan Step Functions dengan AWS SAM?
Bila Anda menggunakan Step Functions dengan AWS SAM Anda dapat:
-
Mulai menggunakan template AWS SAM sampel.
-
Membangun mesin status Anda ke dalam aplikasi nirserver.
-
Gunakan substitusi variabel untuk mengganti ARNs ke mesin status Anda pada saat penerapan.
AWS CloudFormation mendukung
DefinitionSubstitutions
yang memungkinkan Anda menambahkan referensi dinamis dalam definisi alur kerja Anda ke nilai yang Anda berikan CloudFormation templat. Anda dapat menambahkan referensi dinamis dengan menambahkan substitusi ke definisi alur kerja Anda menggunakan notasi.${dollar_sign_brace}
Anda juga perlu menentukan referensi dinamis ini diDefinitionSubstitutions
properti untuk StateMachine sumber daya di CloudFormation templat. Substitusi ini diganti dengan nilai aktual selama CloudFormation proses pembuatan tumpukan. Untuk informasi selengkapnya, lihat DefinitionSubstitutions di AWS SAM templat. -
Tentukan peran mesin status Anda menggunakan templat AWS SAM kebijakan.
-
Memulai eksekusi mesin status dengan API Gateway, EventBridge peristiwa, atau pada jadwal dalam template Anda AWS SAM .
Integrasi Step Functions dengan spesifikasi AWS SAM
Anda dapat menggunakan Templat AWS SAM Kebijakan untuk menambahkan izin ke mesin status Anda. Dengan izin ini, Anda dapat mengatur fungsi Lambda dan sumber daya AWS lainnya untuk membentuk alur kerja yang kompleks dan kuat.
Integrasi Step Functions dengan SAM CLI
Step Functions terintegrasi dengan AWS SAM CLI. Gunakan ini untuk mengembangkan mesin status Anda ke dalam aplikasi nirserver dengan cepat.
Coba Buat mesin status Step Functions menggunakan AWS SAM tutorial untuk mempelajari cara menggunakan AWS SAM untuk membuat mesin negara.
Fungsi AWS SAM CLI yang didukung meliputi:
Perintah CLI | Deskripsi |
---|---|
init sam |
Menginisialisasi Aplikasi Tanpa Server dengan template. AWS SAM Dapat digunakan dengan templat SAM untuk Step Functions. |
validasi sam | Memvalidasi AWS SAM template. |
paket sam |
Paket AWS SAM aplikasi. Ini membuat file ZIP kode dan dependensi Anda, dan kemudian mengunggahnya ke Amazon S3. Kemudian mengembalikan salinan templat AWS SAM Anda, menggantikan referensi ke artefak lokal dengan lokasi Amazon S3 tempat perintah mengunggah artefak. |
deploy sam | Menyebarkan AWS SAM aplikasi. |
terbitan sam |
Publikasikan AWS SAM aplikasi ke AWS Serverless Application Repository. Perintah ini mengambil AWS SAM template yang dikemas dan menerbitkan aplikasi ke wilayah yang ditentukan. |
catatan
Saat menggunakan AWS SAM lokal, Anda dapat meniru Lambda dan API Gateway secara lokal. Namun, Anda tidak dapat meniru Step Functions secara lokal menggunakan. AWS SAM
DefinitionSubstitutions di AWS SAM templat
Anda dapat menentukan mesin negara menggunakan CloudFormation template dengan AWS SAM. Menggunakan AWS SAM, Anda dapat menentukan mesin status sebaris di template atau dalam file terpisah. Berikut ini AWS SAM template termasuk mesin negara yang mensimulasikan alur kerja perdagangan saham. Mesin negara ini memanggil tiga Lambda berfungsi untuk mengecek harga suatu saham dan menentukan apakah akan membeli atau menjual saham tersebut. Transaksi ini kemudian dicatat dalam Amazon DynamoDB meja. ARNs Untuk Lambda fungsi dan DynamoDB tabel dalam template berikut ditentukan menggunakan DefinitionSubstitutions
.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: | step-functions-stock-trader Sample SAM Template for step-functions-stock-trader Resources: StockTradingStateMachine: Type: AWS::Serverless::StateMachine Properties: DefinitionSubstitutions: StockCheckerFunctionArn: !GetAtt StockCheckerFunction.Arn StockSellerFunctionArn: !GetAtt StockSellerFunction.Arn StockBuyerFunctionArn: !GetAtt StockBuyerFunction.Arn DDBPutItem: !Sub arn:${AWS::Partition}:states:::dynamodb:putItem DDBTable: !Ref TransactionTable Policies: - DynamoDBWritePolicy: TableName: !Ref TransactionTable - LambdaInvokePolicy: FunctionName: !Ref StockCheckerFunction - LambdaInvokePolicy: FunctionName: !Ref StockBuyerFunction - LambdaInvokePolicy: FunctionName: !Ref StockSellerFunction DefinitionUri: statemachine/stock_trader.asl.json StockCheckerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-checker/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 StockSellerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-seller/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 StockBuyerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-buyer/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 TransactionTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: id AttributeType: S
Kode berikut adalah definisi mesin negara dalam file stock_trader.asl.json
yang digunakan dalam Buat mesin status Step Functions menggunakan AWS SAM tutorial. Definisi mesin negara ini berisi beberapa DefinitionSubstitutions
dilambangkan dengan notasi. ${dollar_sign_brace}
Misalnya, alih-alih menentukan statis Lambda fungsi ARN untuk Check Stock Value
tugas, substitusi digunakan${StockCheckerFunctionArn}
. Substitusi ini didefinisikan dalam DefinitionSubstitutions properti template. DefinitionSubstitutions
adalah peta pasangan kunci-nilai untuk sumber daya mesin negara. DalamDefinitionSubstitutions
, $ {StockCheckerFunctionArn} memetakan ke ARN StockCheckerFunction
sumber daya menggunakan CloudFormation fungsi intrinsik. !GetAtt
Saat Anda menggunakan AWS SAM template, DefinitionSubstitutions
dalam template diganti dengan nilai aktual.
{ "Comment": "A state machine that does mock stock trading.", "StartAt": "Check Stock Value", "States": { "Check Stock Value": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockCheckerFunctionArn}" }, "Next": "Buy or Sell?" }, "Buy or Sell?": { "Type": "Choice", "Choices": [ { "Variable": "$.stock_price", "NumericLessThanEquals": 50, "Next": "Buy Stock" } ], "Default": "Sell Stock" }, "Buy Stock": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockBuyerFunctionArn}" }, "Retry": [ { "ErrorEquals": [ "Lambda.ServiceException", "Lambda.AWSLambdaException", "Lambda.SdkClientException", "Lambda.TooManyRequestsException" ], "IntervalSeconds": 1, "MaxAttempts": 3, "BackoffRate": 2 } ], "Next": "Record Transaction" }, "Sell Stock": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockSellerFunctionArn}" }, "Next": "Record Transaction" }, "Record Transaction": { "Type": "Task", "Resource": "arn:aws:states:::dynamodb:putItem", "Parameters": { "TableName": "${DDBTable}", "Item": { "Id": { "S.$": "$.id" }, "Type": { "S.$": "$.type" }, "Price": { "N.$": "$.price" }, "Quantity": { "N.$": "$.qty" }, "Timestamp": { "S.$": "$.timestamp" } } }, "End": true } } }
Langkah selanjutnya
Anda dapat mempelajari selengkapnya tentang penggunaan Step Functions AWS SAM dengan sumber daya berikut:
-
Lengkapi Buat mesin status Step Functions menggunakan AWS SAM tutorial untuk membuat mesin negara dengan AWS SAM.
-
Tentukan sumber AWS::Serverless::StateMachinedaya.
-
Temukan Templat kebijakan AWS SAM untuk digunakan.
-
Gunakan AWS Toolkit for Visual Studio Code dengan Step Functions.
-
Tinjau referensi AWS SAM CLI untuk mempelajari lebih lanjut tentang fitur yang tersedia di. AWS SAM
Anda juga dapat mendesain dan membangun alur kerja Anda di infrastruktur sebagai kode (IAc) menggunakan pembuat visual, seperti Workflow Studio di Infrastructure ComposerUntuk informasi selengkapnya, lihat Menggunakan Workflow Studio di Infrastructure Composer untuk membangun alur kerja Step Functions.