Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS Lambda 與 Amazon API Gateway 新功能介紹

1,180 views

Published on

本次議程將會介紹與深入探討AWS發佈的最新無伺服器與容器技術,藉由講師的指導帶大家由淺入深學習這些最新的服務, 並且使用在真實工作環境。

Published in: Technology
  • Login to see the comments

AWS Lambda 與 Amazon API Gateway 新功能介紹

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Jan 12, 2017 What’s New with AWS Lambda Matt Wu, Business Development Manager Pahud Hsieh, Solution Architect
  2. 2. Lambda API Gateway S3 CloudFront DynamoDB Kinesis ElastiCache CloudSearch ElasticSearch SQSSES SNS There Are No Cattle, There Is Only The Herd
  3. 3. MOBILE CHAT APP AD DATA ANALYTICS AND ROUTING MOBILE APP ANALYTICS IMAGE CONTENT FILTERING REAL-TIME VIDEO AD BIDDING NEWS CONTENT PROCESSING GENE SEQUENCE SEARCH CLOUD TELEPHONY DATA PROCESSING WEB APPLICATIONS WEB APPLICATIONSTHREAT INTELLIGENCE AND ANALYTICS NEWS CONTENT PROCESSING GAME METRICS ANALYTICS Serverless Applications
  4. 4. CI/CD for serverless apps New features AWS SAM SAM in AWS CloudFormation Serverless CI/CD pipelines with AWS CodePipeline and AWS CodeBuild Dead letter queue
  5. 5. Environment Variables!
  6. 6. Environment variables for Lambda functions
  7. 7. 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.
  8. 8. 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
  9. 9. 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:
  10. 10. SAM: Open Specification A common language to describe the content of a serverless application across the ecosystem. Apache 2.0 licensed GitHub project
  11. 11. 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
  12. 12. 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 SNS Error Handler Failed events Publish Original Function
  13. 13. DEMO
  14. 14. AWS Serverless Application Model (“SAM”)
  15. 15. Serverless CI/CD
  16. 16. DLQ(Dead Letter Queue)
  17. 17. New API Gateway features AWS Marketplace SaaS integration Binary encoding New places you can use Lambda functions Amazon Kinesis Firehose Lambda@Edge/CDN
  18. 18. 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!
  19. 19. Binary encoding Serve images, audio, and other binary content Uses Content-Type and Accept headers Automatically base64-encodes Lambda integrations
  20. 20. 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
  21. 21. 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!
  22. 22. DEMO
  23. 23. API Gateway Binary Support
  24. 24. Add Content-Type in Integration Request
  25. 25. Add media types in Binary Support
  26. 26. Let’s cURL it!
  27. 27. Firehose with Lambda
  28. 28. Define Lambda Function in Firehose
  29. 29. Scenarios • General Firehose Processing (custom logic) • Apache Log to JSON • Apache Log to CSV • Syslog to JSON • Syslog to CSV
  30. 30. Lambda Blueprints
  31. 31. Developer ecosystem — open source Chalice Framework
  32. 32. More new features
  33. 33. New Lambda features C# with .NET Core
  34. 34. 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)
  35. 35. Choreographing Lambda functions
  36. 36. Attempt a function more than 3X Add callbacks to asynchronous functions Handle situations that require waiting Chain function execution (ABC) Supports long-running workflows AWS Step Functions Reliably orchestrate multiple Lambda functions
  37. 37. Capabilities of a serverless platform
  38. 38. Learn more Serverless CI / CD Live Demo at booth AWS Lambda in C# 02:05pm - 02:45pm Step Functions 03:15pm - 03:55pm 02:05pm - 02:45pm Amazon Polly 03:15pm - 03:55pm Serverless and Alexa IoT
  39. 39. Useful links Docs – Lambda, API Gateway AWS Developer Forums – Lambda, API Gateway AWS Compute Blog AWS Lex AWS Step Functions AWS SAM open specification on GitHub
  40. 40. Remember to complete your evaluations!

×