AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)
-
Upload
amazon-web-services -
Category
Technology
-
view
1.108 -
download
1
Transcript of AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)
![Page 1: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/1.jpg)
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Tim Wagner, GM AWS Lambda and Amazon API Gateway
December 1, 2016
What’s New with AWS Lambda
![Page 2: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/2.jpg)
Capabilities of a serverless platform
![Page 3: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/3.jpg)
CI/CD for serverless appsNew features
AWS SAM
SAM in AWS CloudFormation
Serverless CI/CD pipelines
with AWS CodePipeline and AWS CodeBuild
![Page 4: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/4.jpg)
Environment
Variables!
![Page 5: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/5.jpg)
Environment variables for Lambda functions
![Page 6: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/6.jpg)
AWS Serverless Application Model (“SAM”)
• A common language for describing the contents of a
serverless app.
• CloudFormation now “speaks serverless” with native support
for SAM.
• New CloudFormation tools to package and deploy Lambda-
based apps.
• Export Lambda blueprints and functions in SAM
from the AWS Lambda console.
![Page 7: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/7.jpg)
AWSTemplateFormatVersion: '2010-09-09’
Transform: AWS::Serverless-2016-10-31
Resources: GetHtmlFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: s3://flourish-demo-bucket/todo_list.zip
Handler: index.gethtml
Runtime: nodejs4.3
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetHtml: Type: Api
Properties: Path: /{proxy+} Method: ANY
ListTable: Type: AWS::Serverless::SimpleTable
Functions
APIs
Storage
AWS Serverless Application Model
![Page 8: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/8.jpg)
AWSTemplateFormatVersion: '2010-09-09’
Transform: AWS::Serverless-2016-10-31
Resources: GetHtmlFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: s3://flourish-demo-bucket/todo_list.zip
Handler: index.gethtml
Runtime: nodejs4.3
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetHtml: Type: Api
Properties: Path: /{proxy+} Method: ANY
ListTable: Type: AWS::Serverless::SimpleTable
AWSTemplateFormatVersion: '2010-09-09'
Resources:
GetHtmlFunctionGetHtmlPermissionProd:
Type: AWS::Lambda::Permission
Properties:
Action: lambda:invokeFunction
Principal: apigateway.amazonaws.com
FunctionName:
Ref: GetHtmlFunction
SourceArn:
Fn::Sub: arn:aws:execute-
api:${AWS::Region}:${AWS::AccountId}:${Se
rverlessRestApi}/Prod/ANY/*
ServerlessRestApiProdStage:
Type: AWS::ApiGateway::Stage
Properties:
DeploymentId:
Ref: ServerlessRestApiDeployment
RestApiId:
Ref: ServerlessRestApi
StageName: Prod
ListTable:
Type: AWS::DynamoDB::Table
Properties:
ProvisionedThroughput:
WriteCapacityUnits: 5
ReadCapacityUnits: 5
AttributeDefinitions:
- AttributeName: id
AttributeType: S
KeySchema:
- KeyType: HASH
AttributeName: id
GetHtmlFunction:
Type: AWS::Lambda::Function
Properties:
Handler: index.gethtml
Code:
S3Bucket: flourish-demo-bucket
S3Key: todo_list.zip
Role:
Fn::GetAtt:
- GetHtmlFunctionRole
- Arn
Runtime: nodejs4.3
GetHtmlFunctionRole:
Type: AWS::IAM::Role
Properties:
ManagedPolicyArns:
-
arn:aws:iam::aws:policy/AmazonDynamoDB
ReadOnlyAccess
- arn:aws:iam::aws:policy/service-
role/AWSLambdaBasicExecutionRole
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Action:
- sts:AssumeRole
Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
ServerlessRestApiDeployment:
Type: AWS::ApiGateway::Deployment
Properties:
RestApiId:
Ref: ServerlessRestApi
Description: 'RestApi deployment id:
127e3fb91142ab1ddc5f5446adb094442581a
90d'
StageName: Stage
GetHtmlFunctionGetHtmlPermissionTest:
Type: AWS::Lambda::Permission
Properties:
Action: lambda:invokeFunction
Principal: apigateway.amazonaws.com
FunctionName:
Ref: GetHtmlFunction
SourceArn:
Fn::Sub: arn:aws:execute-
api:${AWS::Region}:${AWS::AccountId}:${Se
rverlessRestApi}/*/ANY/*
ServerlessRestApi:
Type: AWS::ApiGateway::RestApi
Properties:
Body:
info:
version: '1.0'
title:
Ref: AWS::StackName
paths:
"/{proxy+}":
x-amazon-apigateway-any-method:
x-amazon-apigateway-integration:
httpMethod: ANY
type: aws_proxy
uri:
Fn::Sub:
arn:aws:apigateway:${AWS::Region}:lambda:
path/2015-03-
31/functions/${GetHtmlFunction.Arn}/invocati
ons
responses: {}
swagger: '2.0'
AWS Serverless Application Model
REPLACES:
![Page 9: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/9.jpg)
SAM: Open Specification
A common language to
describe the content of a
serverless application
across the ecosystem.
Apache 2.0 licensed
GitHub project
![Page 10: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/10.jpg)
DEMOPackaging serverless apps with SAM
![Page 11: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/11.jpg)
Serverless CI/CD pipeline
GitHub
Source Deploy
CloudFormationCodeBuild
Build
NEW!
• Pull source directly from GitHub or CodeCommit using CodePipeline
![Page 12: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/12.jpg)
Serverless CI/CD pipeline
GitHub
Source Deploy
CloudFormationCodeBuild
Build
NEW!
• Pull source directly from GitHub or AWS CodeCommit using AWS
CodePipeline
• Build and package serverless apps with AWS CodeBuild
• npm, pip, Java compilation, BYO Docker…
![Page 13: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/13.jpg)
Serverless CI/CD pipeline
GitHub
Source Deploy
CloudFormationCodeBuild
Build
NEW!
• Pull source directly from GitHub or AWS CodeCommit using AWS
CodePipeline
• Build and package serverless apps with AWS CodeBuild
• Deploy your completed Lambda app with AWS CloudFormation
![Page 14: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/14.jpg)
DEMOCI/CD pipelines for serverless apps
![Page 15: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/15.jpg)
ICYMI: New CloudWatch features
Percentiles
Track p99 or other
percentiles in any
metric
Metrics-to-Logs
Jump from metric points
directly to CloudWatch
logs
![Page 16: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/16.jpg)
Tracing serverless apps with AWS X-Ray
How do I diagnose
Lambda apps?
![Page 17: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/17.jpg)
Introducing X-Ray
Gain visibility into events
traveling through services
Trace calls and timing from
Lambda functions to other
AWS services
Easy configuration
Lambda support
coming soon
Easy setup
AWS
Lambda
Amazon
S3
Amazon
DynamoDB
![Page 18: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/18.jpg)
Introducing X-Ray
See actual dependencies
among microservice
components
Easily detect and
diagnose missing
events and throttles
View the dynamic topology of your application
![Page 19: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/19.jpg)
Introducing X-Ray
See dwell time and retries for async invokes
Profile performance of calls your code makes to other AWS services
• Detect failures in event processing
• Easily find and fix performance issues
dwell
times
service
call times
retries
![Page 20: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/20.jpg)
New Lambda featuresAT_TIMESTAMP Amazon Kinesis iterator
C# with .NET Core
Dead letter queue
![Page 21: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/21.jpg)
AT_TIMESTAMP Amazon Kinesis iterator
• Process streaming data in Amazon Kinesis at any point
in time
• Stop and start processing without rewinding or losing
data
Amazon Kinesis
LATESTTRIM_HORIZON TIMESTAMP
![Page 22: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/22.jpg)
C# and .NET Core
• Write Lambda
functions in C#
• netcoreapp 1.0 on
Amazon Linux
• Built-in logging and
metrics
• Supports common
AWS event types
(S3, SNS)
![Page 23: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/23.jpg)
Easily create reliable end-to-end event processing solutions
• Sends all unprocessed events
to your SQS queue or SNS
topic: 3 strikes rule
• Preserves events even if your
code has an issue or the call
was throttled
• Per-function
• Works for all async invokes,
including S3 and SNS events
Dead-letter queue for events
Amazon
SQS
Amazon
SNS
AWS
Lambda
![Page 24: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/24.jpg)
DEMOLambda DLQ in action
Amazon
SNS
Error
Handler
Failed
eventsPublish
Original
Function
Trigger
![Page 25: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/25.jpg)
ICYMI: Recent Lambda integrations
Amazon
S3
Amazon
CloudFront
Amazon
DynamoDB
Amazon
RDS
Amazon
VPC
AWS
CodeCommit
AWS
CodePipeline
IAM Amazon
Kinesis
AWS IoT Amazon
Cognito
Amazon
SNS
AWS
Mobile HubAmazon API
Gateway
Amazon
SES
Amazon
SWF
AWS
CloudFormation
Amazon Aurora: SQL triggers
![Page 26: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/26.jpg)
ICYMI: Recent Lambda feature integrations
Amazon
S3
Amazon
CloudFront
Amazon
DynamoDB
Amazon
RDS
Amazon
VPC
AWS
CodeCommit
AWS
CodePipeline
IAM Amazon
Kinesis
AWS IoT Amazon
Cognito
Amazon
SNS
AWS
Mobile HubAmazon API
Gateway
Amazon
SES
Amazon
SWF
AWS
CloudFormation
API Gateway: Pass-through mode
![Page 27: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/27.jpg)
ICYMI: Recent Lambda feature integrations
Amazon
S3
Amazon
CloudFront
Amazon
DynamoDB
Amazon
RDS
Amazon
VPC
AWS
CodeCommit
AWS
CodePipeline
IAM Amazon
Kinesis
AWS IoT Amazon
Cognito
Amazon
SNS
AWS
Mobile HubAmazon API
Gateway
Amazon
SES
Amazon
SWF
AWS
CloudFormation
Mobile Hub: Enterprise connectors
![Page 28: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/28.jpg)
ICYMI: Recent Lambda integrations
Amazon
S3
Amazon
CloudFront
Amazon
DynamoDB
Amazon
RDS
Amazon
VPC
AWS
CodeCommit
AWS
CodePipeline
IAM Amazon
Kinesis
AWS IoT Amazon
Cognito
Amazon
SNS
AWS
Mobile HubAmazon API
Gateway
Amazon
SES
Amazon
SWF
AWS
CloudFormation
S3: Per-object CloudTrail events
![Page 29: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/29.jpg)
ICYMI: Serverless web app frameworks
Flask
WSGI
Express
ASP.NET
Core
[Route("api/[controller]")]
public class ValuesController :
{
// PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [From
{
...
![Page 30: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/30.jpg)
Choreographing Lambda functions
![Page 31: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/31.jpg)
Attempt a function more than 3X
Add callbacks to asynchronous functions
Handle situations that require waiting
Chain function execution (ABC)
Supports long-running workflows
AWS Step Functions
Reliably orchestrate multiple Lambda functions
![Page 32: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/32.jpg)
DEMOChoreographing Lambda functions
![Page 33: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/33.jpg)
New API Gateway featuresBinary encoding
Documentation support
AWS Marketplace SaaS integration
Developer Portal Reference Implementation
![Page 34: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/34.jpg)
Binary encoding
Serve images,
audio, and other
binary content
Uses Content-Type and Accept headers
Automatically base64-encodes Lambda integrations
![Page 35: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/35.jpg)
API documentation
• Document your APIs – edit doc parts directly in the API Gateway console
• Swagger import/export – fully round-trip-able
• Supports tech writers – independent update and publish flow
Cool feature:
Inheritance!
![Page 36: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/36.jpg)
API Gateway and AWS Marketplace integration
• Use API Gateway to simplify
building and operating APIs
• Sell your APIs on the AWS
Marketplace
• Easy discovery and procurement for
your API’s consumers
• Track API usage by consumer / key
• Automated billing through AWS
URL Reputation APIs
Speech understanding
APIs
Monetize your microservices!
![Page 37: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/37.jpg)
API Gateway Developer Portal
Open source reference implementation
SAM-based implementation available on GitHub
Help developers
consume your
APIs
Vend API Keys
AWS Marketplace
integration
Supports Cognito
authN
![Page 38: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/38.jpg)
New places you can use Lambda functionsLambda Bots
Amazon Kinesis Firehose
On-prem storage
Devices
Edge/CDN
![Page 39: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/39.jpg)
Lambda Bots and Amazon Lex
•Text and
speech
•Lambda
functions run
business logic
•Facebook,
AWS Mobile
Hub
•Slack and
Twilio
integration
coming soon
I’d like to book a hotel
![Page 40: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/40.jpg)
Amazon Kinesis Firehose integration
• Simple, real-time data
streaming
• Transform, audit, or
aggregate records
in flight with Lambda
• Flexible buffering
• Lambda and Firehose
both scale automatically
AWS
Lambda
![Page 41: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/41.jpg)
AWS Snowball Edge
• Fast, simple, secure data
transfer from on-prem
to/from AWS Cloud
• 100 TB capacity
• Local S3 storage APIs
• Local Lambda functions
• Transcode multimedia
content, compress in-real
time, custom auditing
![Page 42: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/42.jpg)
AWS Greengrass
• Greengrass extends AWS
processing onto devices
• Low-latency, near-real time
• Lambda functions run right
on the device
• Cloud storage and compute
via AWS IoT service
• BYOH – 1GHz, 128MB, x86 or
ARM, Linux
![Page 43: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/43.jpg)
Lambda@Edge
• Low-latency request/response
customization
• Supports viewer and origin events
• Preview limitations:
• Node.js only
• 50 ms max
• Headers only
• Pricing: $0.60/M requests and
$0.00000625125 per 128MB-s
• 4K requests free/month
Sign up to join the preview!
![Page 44: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/44.jpg)
Developer ecosystem — commercial
MonitoringDeploymentIntegrationsCode Libraries APN Skills
![Page 45: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/45.jpg)
Developer ecosystem — open source
Chalice
Framework
![Page 46: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/46.jpg)
Learn more
Serverless
CI / CD
SVR307: Application
Lifecycle Management in
a Serverless World
Thursday 2:30
Bots
SVR304: bots +
serverless = ❤
Thursday 4:00
Step
Functions
SVR201: Building
Multistep Serverless Apps
with AWS Step Functions
Thursday 2:30
![Page 47: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/47.jpg)
Share our serverless journey!
@awscloud
@timallenwagner
@AWSreInvent
![Page 48: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/48.jpg)
Useful links
Docs – Lambda, API Gateway
AWS Developer Forums – Lambda, API Gateway
AWS Compute Blog
AWS Greengrass
AWS Lex
AWS Snowball
AWS Step Functions
AWS SAM open specification on GitHub
![Page 49: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/49.jpg)
Remember to complete
your evaluations!
![Page 50: AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)](https://reader033.fdocuments.net/reader033/viewer/2022050614/587082631a28ab57368b6b37/html5/thumbnails/50.jpg)
Thank you!