Par*_*lou 8 amazon-ec2 amazon-web-services boto3 aws-lambda
我正在我的 AWS 账户中创建 lambda 函数的报告,并查看是否可以获得之前调用的成本以及 lambda 函数被调用的次数。我查看了 lambda、pricing、cloudwatch 和 costexplorer 的文档,但没有找到任何内容。我现在想知道是否必须进行多次 API 调用。感谢所有帮助!
小智 14
以下日志见解查询将告诉您给定时间段内 lambda 函数的成本。
parse @message /Duration:\s*(?<@duration_ms>\d+\.\d+)\s*ms\s*Billed\s*Duration:\s*(?<@billed_duration_ms>\d+)\s*ms\s*Memory\s*Size:\s*(?<@memory_size_mb>\d+)\s*MB/
| filter @message like /REPORT RequestId/
| stats sum(@billed_duration_ms * @memory_size_mb * 1.6279296875e-11 + 2.0e-7) as @cost_dollars_total
Run Code Online (Sandbox Code Playgroud)
您只需进入日志洞察并为您的 lambda 函数选择正确的日志流。这可以很容易地修改,以便为您提供调用计数。
重要提示:该1.6279296875e-11 + 2.0e-7
系数基于 us-east-1 中 x86 lambda 实例的每计算毫秒兆字节成本。如果这不适用于您,您可能需要进行调整。
由于每个函数的成本在计费下不可用,我认为最好的方法是监控特定 Lambda 函数的调用和持续时间指标,因为您可以对这些指标求和并捕获一段时间内的总调用和持续时间。
调用和持续时间是 Lambda 成本的两个组成部分,利用这些信息,您应该能够根据您分配的区域和内存量来计算它。
例如,如果您为us-east-1
区域中的 Lambda 函数分配了 1 GB 内存,并且您捕获了一个月的以下指标:
Sum of Invocations: 1,000,000
Sum of Duration (milliseconds): 10,000,000
The monthly cost of that function would be:
100,000*0.20/1,000,000 = $0.20 for invocations
0.0000166667*1,000,000/1,000 = $0.166 for duration
or around $0.37 total
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13153 次 |
最近记录: |