比较 AWS-lambda、Azure 函数和 Google Cloud Function

Compare AWS-lambda, Azure functions and Google Cloud Function

我想通过 selecting aws-lambda、azure 函数或 google 云函数开发一个无服务器项目。然后我想比较每一个,以便 select 最适合我的项目。

我的项目需要select最稳定的无服务器技术。

有比较这些技术的资料吗?

是否有支持这些无服务器技术的框架?

比较 AWS-Lambda、Azure Functions 和 Google Cloud Functions

  1. 支持的语言
    AWS lambda- Node.js、Python、Java、C#(.net 核心)
    Azure 函数 - Node.js、Python、PHP、F#、C#、批处理、bash
    Google 云函数 Node.js

  2. 每个请求的最大执行时间
    AWS lambda- 300 秒(5 分钟)
    Azure 函数 - 300 秒(5 分钟)
    Google 云函数 540 秒(9 分钟)

  3. 日志管理
    AWS lambda- 云观察
    Azure 函数 - Azure 存储
    Google 云函数 云日志

  4. 可扩展性和可用性
    AWS lambda- 自动扩展
    Azure 函数 - 自动缩放
    Google Cloud Functions 自动缩放
  5. HTTP 结束点
    AWS lambda- AWS API 网关
    Azure 函数 -HTTP 触发器
    Google 云函数 HTTP 触发器

  6. 定价
    注意:这些是每次通话费用。 CPU 和 RAM 时间收费很常见,通常超过每次调用费用,应予以考虑。
    AWS lambda- 0.20 美元/100 万次执行
    Azure 函数- 0.20 美元/100 万次执行
    Google Cloud Functions $0.40/M 执行,HTTP 调用没有额外费用 pricing details

  7. 函数限制
    AWS lambda-无限功能
    Azure 函数-无限函数
    Google Cloud Functions 每个项目 1,000 个

  8. 并发执行数
    AWS lambda-100 个每个帐户每个区域的并行执行,但用户可以增加它
    Azure 函数 - 无限制
    Google Cloud Functions HTTP 无限制,1,000 个非 HTTP

  9. 部署
    AWS lambda-Zip、AWS-S3 或内联编辑代码
    Azure 函数-Azure WebApp 可以处理的任何东西:FTP(S), KUDU, Web Deploy, One Drive\DropBox, Git\Local Git\TFS\etc, Visual Studio\XCode\Eclipse\etc, PowerShell\Cli\Probably 所有SDK的
    Google 云功能 CLI、ZIP 上传、内联网络编辑器、云存储或云源存储库

欢迎大家指正信息,补充新信息。

A​​WS Lambda 对比 Azure Functions 对比 Google Cloud Functions

这里汇总了不同云供应商提供的所有无服务器功能。这是基于我的观点。

If anything has changed over a period of time or you want to add anything new, please feel free to comment and lets maintain this to track various features.

+-----------------+---------------------+-----------------------+-------------------+
|     Category    | AWS Lambda          |    Azure              | Google Cloud      |
|                 |                     |  Functions            |  Functions        |
+-----------------+---------------------+-----------------------+-------------------+
| 1. Version      | Production ready    | Preview - Beta        | Closed Alpha      |
+-----------------+---------------------+-----------------------+-------------------+
| 2. Supported    | Nodejs, Python,     | Nodejs, Python,       | Javascript        |
| Languages       |      Java           |   PHP, F#, C#         |                   |
+-----------------+---------------------+-----------------------+-------------------+
| 3. Dependency   | Compile all         | Using                 | Using             |
| Management      | external packages   | package.json – nodejs | package.json      |
|                 | and zip the         | project.json – F#,C#  |                   |
|                 | source code         |                       |                   |
+-----------------+---------------------+-----------------------+-------------------+
|                 | S3, DynamoDB        | Bindings/Triggers     | HTTP              |
|                 | Kinesis             |                       | functions:        |
|                 | Streams             | Scheduler             | Http Triggers     |
|                 | SNS, SES            | Http(webhook)         | Webhooks (drive,  |
|                 | Cognito             | Azure Storage         |  gmail, calendar) |
|                 | Cloud Formation     | Events Hubs           |                   |
| 4. Event        | Cloud Watch         | Queues, Tables        | Background        |
| Sources         | Code Commit         | DocumentDB(No-sql)    | functions:        |
|                 | Scheduled Events    | Notification Hub      | Cloud Pub/Sub,    |
|                 | Config              | Twilio                | Cloud Storage     |
|                 | Echo,               |                       |                   |
|                 | Alexa               |                       | Pub/Sub:          |
|                 | APIGateway          |                       | Cloud Logging     |
|                 |                     |                       | Gmail, Twilio     |
+-----------------+---------------------+-----------------------+-------------------+
| 5. Granular     | IAM                 |                       |                   |
|  IAM            | policy              | Not Yet               | Not Yet           |
|                 | can be Attached     |                       |                   |
|                 | to Lambda.          |                       |                   |
+-----------------+---------------------+-----------------------+-------------------+
|                 | - On top of Linux   | - On top of Windows   |                   |
| 6. Architecture | - Memory allocated  | - Memory allocated    |                   |
|                 |    per function.    |    per app service.   | Not Specified     |
+-----------------+---------------------+-----------------------+-------------------+
|                 | No persistent       | Env variables         |                   |
|                 |  storage.           | can be set in         |                   |
| 7. Persistent   | Completely          | App services          | Not Specified     |
|  Storage        | Stateless           | which can be used     |                   |
|                 |                     | in functions.         |                   |
+-----------------+---------------------+-----------------------+-------------------+
| 8. HTTP         | APIGateway          | HTTP webhooks         | HTTP Trigger      |
| Endpoint        |                     |                       |                   |
+-----------------+---------------------+-----------------------+-------------------+
| 9. Log          | Cloud               | Kudu Console          | Stackdriver       |
| Management      | watch               |                       | Logging           |
+-----------------+---------------------+-----------------------+-------------------+
| 10. Maximum     | 300 seconds         | No limit              | No limit          |
| Execution       | (5 mins)            |                       |                   |
| Time            |                     |                       |                   |
| per request     |                     |                       |                   |
+-----------------+---------------------+-----------------------+-------------------+
| 11. Concurrent  | 100                 | 10 instances          | Not Specified     |
| Executions      | parallel            | which is several      |                   |
|                 | Executions, but     | 100 executions        |                   |
|                 | Can be increased    |                       |                   |
+-----------------+---------------------+-----------------------+-------------------+
| 12. Deployment  | Zip upload          | Git, dropbox,         | Zip upload,       |
|                 | to Lambda/s3,       | visual studio,        | Cloud Storage,    |
|                 | Serverless          | One drive,            | Cloud Source      |
|                 | Framework           | Kudu Console          | repositories,     |
|                 |                     |                       | Git               |
+-----------------+---------------------+-----------------------+-------------------+
| 13. Maximum     |                     |                       | 20 functions      |
|     no. of      | No limit            | Not Specified         | per project       |
|  Functions      |                     |                       |                   |
+-----------------+---------------------+-----------------------+-------------------+
| 14. Pricing     | Request Charges:    | Request Charges:      | Unknown until     |
|                 | [=10=].20 / 1M requests | [=10=].20 / 1M requests   | Open beta         |
|                 |                     |                       |                   |
|                 | Compute Charges:    | Compute Charges:      |                   |
|                 | [=10=].00001667 / GB-s  | [=10=].000008 / GB-s      |                   |
+-----------------+---------------------+-----------------------+-------------------+

少量更新(2017 年 2 月 18 日):

  • Azure 函数 GA-ed 2016 年 11 月
  • AWS 支持 C# 但仅支持 .NET Core
  • 您最多可以拥有 100 个 Azure Function-Apps,每个可以包含许多功能
  • Azure 函数使用层目前每个函数调用的最大运行时间为 300 秒
  • Azure 函数计算价格已从 0.000008 美元/GB-s 更新为 0.00001667 美元/GB-s

现在有一个无服务器框架,它支持与云提供商无关的代码,并提供使用抽象来开发、测试和部署函数的统一体验。

看看https://serverless.com

它支持所有 3 个提供商,但并非所有语言都受支持。最小公分母是 Node.js/JavaScript