Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Menguji alur kerja menggunakan Step Functions dan AWS SAM CLILokal
Dengan keduanya AWS Step Functions and AWS Lambda berjalan di mesin lokal Anda, Anda dapat menguji mesin status dan fungsi Lambda Anda tanpa menerapkan kode Anda AWS.
Untuk informasi selengkapnya, lihat topik berikut.
Langkah 1: Mengatur AWS SAM
AWS Serverless Application Model (AWS SAM) CLI Lokal membutuhkan AWS Command Line Interface, AWS SAM, dan Docker akan diinstal.
-
catatan
Sebelum menginstal AWS SAM CLI, Anda perlu menginstal AWS CLI dan Docker. Lihat Prasyarat untuk menginstal AWS SAM CLI.
-
Pergi melalui AWS SAMDokumentasi Mulai Cepat. Pastikan untuk mengikuti langkah-langkah berikut:
Hal ini menciptakan direktori
sam-app
, dan membangun lingkungan yang mencakup fungsi Hello World Lambda berbasis Python.
Langkah 2: Uji AWS SAM CLILokal
Sekarang Anda telah menginstal AWS SAM dan menciptakan fungsi Hello World Lambda, Anda dapat menguji fungsinya. Di sam-app
direktori, masukkan perintah berikut:
sam local start-api
Langkah ini meluncurkan instans lokal dari fungsi Lambda Anda. Anda akan melihat output yang serupa dengan yang berikut:
2019-01-31 16:40:27 Found credentials in shared credentials file: ~/.aws/credentials
2019-01-31 16:40:27 Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET]
2019-01-31 16:40:27 You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions changes will be reflected instantly/automatically. You only need to restart SAM CLI if you update your AWS SAM template
2019-01-31 16:40:27 * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)
Buka browser dan masukkan yang berikut ini:
http://127.0.0.1:3000/hello
Ini akan menghasilkan respons yang mirip dengan yang berikut:
{"message": "hello world", "location": "72.21.198.66"}
CTRLMasukkan+C untuk mengakhiri LambdaAPI.
Langkah 3: Mulai AWS SAM CLILokal
Sekarang setelah Anda menguji bahwa fungsinya berfungsi, mulailah AWS SAM CLILokal. Di sam-app
direktori, masukkan perintah berikut:
sam local start-lambda
Ini dimulai AWS SAM CLILokal dan menyediakan endpoint untuk digunakan, mirip dengan output berikut:
2019-01-29 15:33:32 Found credentials in shared credentials file: ~/.aws/credentials
2019-01-29 15:33:32 Starting the Local Lambda Service. You can now invoke your Lambda Functions defined in your template through the endpoint.
2019-01-29 15:33:32 * Running on http://127.0.0.1:3001/ (Press CTRL+C to quit)
Langkah 4: Mulai Step Functions Local
JARBerkas
Jika Anda menggunakan versi .jar
file Step Functions Local, mulai Step Functions dan tentukan titik akhir Lambda. Di direktori tempat Anda mengekstrak .jar
file, masukkan perintah berikut:
java -jar StepFunctionsLocal.jar --lambda-endpoint http://localhost:3001
Saat Step Functions Local dimulai, ia memeriksa lingkungan, lalu kredensial dikonfigurasikan di file ~/.aws/credentials
Anda. Secara default, itu mulai menggunakan ID pengguna fiktif, dan terdaftar sebagai. region us-east-1
2019-01-29 15:38:06.324: Failed to load credentials from environment because Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY))
2019-01-29 15:38:06.326: Loaded credentials from profile: default
2019-01-29 15:38:06.326: Starting server on port 8083 with account 123456789012, region us-east-1
Docker
Jika Anda menggunakan Step Functions Local versi Docker, luncurkan Step Functions dengan perintah berikut:
docker run -p 8083:8083 amazon/aws-stepfunctions-local
Untuk informasi tentang menginstal Step Functions versi Docker, lihat Menyiapkan Step Functions Lokal (Versi yang Dapat Diunduh) di Docker.
catatan
Anda dapat menentukan titik akhir melalui baris perintah atau dengan menetapkan variabel lingkungan jika Anda meluncurkan Step Functions dari file .jar
. Untuk versi Docker, Anda harus menentukan titik akhir dan kredensial dalam file teks. Lihat Mengatur Opsi Konfigurasi untuk Step Functions Lokal.
Langkah 5: Buat Mesin Negara yang Mereferensikan Anda AWS SAM CLIFungsi Lokal
Setelah Step Functions Local berjalan, buat mesin status yang mereferensikan HelloWorldFunction
yang Anda inisialisasi. Langkah 1: Mengatur AWS SAM
aws stepfunctions --endpoint http://localhost:8083 create-state-machine --definition "{\ \"Comment\": \"A Hello World example of the Amazon States Language using an AWS Lambda Local function\",\ \"StartAt\": \"HelloWorld\",\ \"States\": {\ \"HelloWorld\": {\ \"Type\": \"Task\",\ \"Resource\": \"arn:aws:lambda:us-east-1:123456789012:function:HelloWorldFunction\",\ \"End\": true\ }\ }\ }\" --name "HelloWorld" --role-arn "arn:aws:iam::012345678901:role/DummyRole"
Ini akan membuat mesin status dan memberikan Amazon Resource Name (ARN) yang dapat Anda gunakan untuk memulai eksekusi.
{
"creationDate": 1548805711.403,
"stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld"
}
Langkah 6: Mulai Eksekusi Mesin Status Lokal Anda.
Setelah Anda membuat mesin negara, mulailah eksekusi. Anda harus mereferensikan endpoint dan state machine ARN saat menggunakan aws stepfunctions
perintah berikut:
aws stepfunctions --endpoint http://localhost:8083 start-execution --state-machine arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld --name test
Ini memulai eksekusi bernama test
mesin HelloWorld
negara Anda.
{
"startDate": 1548810641.52,
"executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:test"
}
Sekarang Step Functions berjalan secara lokal, Anda dapat berinteraksi dengannya menggunakan AWS CLI. Misalnya, untuk mendapatkan informasi tentang eksekusi ini, gunakan perintah berikut:
aws stepfunctions --endpoint http://localhost:8083 describe-execution --execution-arn arn:aws:states:us-east-1:123456789012:execution:HelloWorld:test
describe-execution
Memanggil eksekusi memberikan detail yang lebih lengkap, mirip dengan output berikut:
{
"status": "SUCCEEDED",
"startDate": 1549056334.073,
"name": "test",
"executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:test",
"stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"stopDate": 1549056351.276,
"output": "{\"statusCode\": 200, \"body\": \"{\\\"message\\\": \\\"hello world\\\", \\\"location\\\": \\\"72.21.198.64\\\"}\"}",
"input": "{}"
}