关于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]:

回答“是的”后,可以进行部署。

image.png

当查看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的实操课程。

广告
将在 10 秒后关闭
bannerAds