Trong workshop này, chúng tôi sẽ sử dụng AWS Serverless Application Model (SAM) để viết, triển khai và kiểm tra chức năng trong các dịch vụ của mình. Bạn không cần phải có kinh nghiệm nào với AWS SAM; workshop sẽ giải thích khi chúng ta tiếp tục, qua đó bạn cũng có thể tìm hiểu cách SAM giúp bạn xây dựng hệ thống serverless.
Trong bước này chúng ta sẽ tạo một số Lambda function, khi được gọi chung, có thể được coi là dịch vụ Account Application của chúng ta. Cụ thể, chúng ta sẽ thực hiện các chức năng cho phép gửi các đăng ký mới (chỉ bao gồm một hồ sơ có tên và địa chỉ), gắn cờ các đăng ký để xem xét và đánh dấu các đăng ký là được chấp thuận hoặc bị từ chối. Chúng ta cũng sẽ bổ sung thêm khả năng liệt kê tất cả các đăng ký ở một trạng thái nhất định (như ĐÃ ĐƯỢC GỬI hoặc ĐÃ ĐƯỢC GẮN CỜ) để tránh rắc rối khi kiểm tra trực tiếp kho dữ liệu của dịch vụ.
sudo passwd ec2-user
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
# Then get brew into our $PATH
test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
# Install the AWS SAM CLI
brew tap aws/tap
brew install aws-sam-cli
# Bootstrap our initial services into ./workshop-dir
git clone https://github.com/gabehollombe-aws/step-functions-workshop.git
cp -R step-functions-workshop/sam_template/ workshop-dir
# Change to our new directory
cd workshop-dir
sam build
# Run our first deploy in guided mode. Answer the interactive questions the same way that the comments show below:
sam deploy --guided
Nếu bạn bị lỗi ở bước deploy hãy thử thay bước 6 bằng các bước ở mục Chạy sam deploy bằng file config tự tạo.
functions/account-applications/submit.js
# Lambda SubmitApplication function: tìm, gắn cờ, từ chối và phê duyệt đăng ký.
functions/account-applications/AccountApplications.js
# Đây là file chung cung cấp các tác vụ CRUD cho **Account Application** data type. Được sử dụng bởi các function khác.
functions/data-checking/data-checking.js
# File này triển khai **DataChecking** Lambda function, nhiệm vụ của nó là xử lý các yêu cầu kiểm tra tên và địa chỉ với một số rule đơn giản.
template.yaml
# Đây là file AWS SAM sẽ khai báo các tài nguyên mà chúng ta muốn tạo và triển khai trong giải pháp của mình, có cấu trúc khá tương tự CloudFormation template vì SAM được xây dựng trên nền tảng của CloudFormation.
Bước tiếp theo chúng ta sẽ kiểm tra các dịch vụ mẫu cho workflow của chúng ta.
Chỉ thực hiện bước này nếu việc thực hiện sam deploy -guided không thành công.
aws s3 mb s3://stepfunctions-workshop-yourname --region ap-southeast-1
touch samconfig.toml
version=0.1
[default.global.parameters]
stack_name = "step-functions-workshop"
[default.deploy.parameters]
stack_name = "step-functions-workshop"
s3_bucket = "stepfunctions-workshop-yourname"
s3_prefix = "stepfunctions"
region = "ap-southeast-1"
confirm_changeset = false
capabilities = "CAPABILITY_IAM"
sam deploy