关于2022年重新发明大会的无服务器相关新服务和更新总结
我整理了在re:Invent 2022上发布的与无服务器相关的更新。
AWS Lambda SnapStart 亚马逊Lambda快速启动
-
- Lambda ファンクションのコールドスタート時のレイテンシを大幅に短縮する新機能
-
- Corretto ( ランタイムのファンクションをサポートし、最大 90% のレイテンシを削減
-
- Firecracker のスナップショット機能と、その他いくつかの機能改善によって実現。実行環境
-
- の初期化終了時点のスナップショットを使うことで、初期化時間を削減
- 東京を始めはじめ 9 リージョンで一般利用開始に
我尝试了一下
根据上述博客的指引,使用springboot2的示例应用程序可以轻松尝试。
以下是必需安装的事前准备工作。
※为了方便那些觉得安装麻烦的人(主要是我自己),我已经创建了Docker镜像。
※我已经将docker-compose和程序一起上传到GitHub上。
AWS CLI install guide
curl “https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip” -o “awscliv2.zip”
unzip awscliv2.zip
sudo ./aws/install
aws –version -> aws-cli/2.9.5 Python/3.9.11 Linux/5.10.16.3-microsoft-standard-WSL2 exe/x86_64.ubuntu.20 prompt/off
SAM CLI install guide
download
sha256sum aws-sam-cli-linux-x86_64.zip
unzip aws-sam-cli-linux-x86_64.zip -d sam-installation
sudo ./sam-installation/install
sam –version -> SAM CLI, version 1.68.0
Gradle install guide
sudo apt-get install gradle -y
gradle –version -> Gradle 4.4.1
部署
リポジトリをクローンしましょう
git clone https://github.com/awslabs/aws-serverless-java-container.git
cd samples/springboot2/pet-store
sam build
sam deploy –guided
Configuring SAM deploy
======================
Looking for config file [samconfig.toml] : Not found
Setting default arguments for ‘sam deploy’
=========================================
Stack Name [sam-app]: snapstart-sample
AWS Region [ap-northeast-1]:
#Shows you resources changes to be deployed and require a ‘Y’ to initiate deploy
Confirm changes before deploy [y/N]:
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]:
#Preserves the state of previously provisioned resources when an operation fails
Disable rollback [y/N]:
PetStoreFunction may not have authorization defined, Is this okay? [y/N]: y
Save arguments to configuration file [Y/n]:
SAM configuration file [samconfig.toml]:
SAM configuration environment [default]:
回答“是的”后,可以进行部署。
当查看Lambda的日志时,可以看到初始化时间为6497.82毫秒,大约花费了约6秒的时间进行初始化处理。
REPORT RequestId: e94e20a2-01eb-43ad-8b08-b7c80fbba11d Duration: 149.44 ms Billed Duration: 150 ms Memory Size: 1512 MB Max Memory Used: 184 MB Init Duration: 6497.82 ms
-
- SnapStartの有効化
template.ymlに SnapStart の設定を追加します
AutoPublishAlias: live も追加して、Lambda関数のバージョンが作成されるようにしておきましょう。
※SnapStartを使用するにはバージョンの作成が必要です
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Example Pet Store API written with SpringBoot with the aws-serverless-java-container library
Globals:
Api:
# API Gateway regional endpoints
EndpointConfiguration: REGIONAL
Resources:
PetStoreFunction:
Type: AWS::Serverless::Function
Properties:
Handler: com.amazonaws.serverless.sample.springboot2.StreamLambdaHandler::handleRequest
Runtime: java11
CodeUri: .
MemorySize: 1512
Policies: AWSLambdaBasicExecutionRole
Timeout: 60
SnapStart:
ApplyOn: PublishedVersions
AutoPublishAlias: live
Events:
HttpApiEvent:
Type: HttpApi
Properties:
TimeoutInMillis: 20000
PayloadFormatVersion: '1.0'
Outputs:
SpringBootPetStoreApi:
Description: URL for application
Value: !Sub 'https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com/pets'
Export:
Name: SpringBootPetStoreApi
再度、ビルド&デプロイします
sam build && sam deploy
デプロイ出来たらアクセスしてみます
curl https://iu7kswmw1c.execute-api.ap-northeast-1.amazonaws.com/pets
查看Lambda日志,发现有一项记录为“恢复时间:287.81毫秒”。在部署时,Init处理会进行快照,可以看出恢复时间加执行时间总共为287毫秒!时间从6秒大大缩短了!
REPORT RequestId: 007fe8a3-163f-4eec-a1e2-10911b6e54d4 Duration: 224.65 ms Billed Duration: 409 ms Memory Size: 1512 MB Max Memory Used: 150 MB Restore Duration: 287.81 ms
以上
AWS 步骤函数分布地图
-
- 従来 40 並列処理が上限だったが、最大 10,000並列まで対応可能な Distribution Map が利用可能に。
-
- ユースケース
Amazon S3 に格納された数百万のログデータや画像データを並列反復処理する等
Map に渡す入力情報を S3 からシームレスに読み込み可能
AWS Lambda など、処理をする側が対応可能な並列度には注意。
Step Function は対応可能な並列度でも、処理側が OK か要確認
東京をはじめ 10 のリージョンで利用可能
亚马逊事件桥接传输管道
-
- イベントドリブンなアプリケーション構築時に、発行側と受取側同士の連携を実現する、シンプルで信頼性の高い方法を提供。
-
- つなぎ込むためのコード開発の手間を最小化
-
- イベントソース
DynamoDB
Kinesis
MSK(自己管理のKafkaも含む)
SQS
MQ(ActiveMQ/RabbitMQ)
イベントターゲット
15 種類の EventBridge ターゲット
Lambda
API Gateway
SNS
SQS
Step Functions
一般的な HTTPS エンドポイント
Lambda や Step Functions などによるデータ加工・変換も
一般利用開始。ハイデラバード、チューリッヒを除くすべての AWS 商用リージョン
关于Cap的通知
The given text is already in Japanese. If you would like a translation into Chinese, here it is:
关于Cap的通知
2023年1月7日(星期六),JAWS-UG横浜将举办#51 AWS re:Invent 2022回顾活动,我们将通过Serverless进行追赶,非常欢迎大家的参加!也许还会进行SnapStart的实操课程。