CDu*_*Duv 12 billing amazon-web-services web-scraping
有没有办法以编程方式下载会计部门每个月问我的PDF月发票?
我可以从 AWS 控制台获取它们(例如https://console.aws.amazon.com/billing/home?region=eu-west-3#/bills?year=2019&month=3),那里有发票的链接。
在我点击下载发票的那一刻,我可以看到对以下 URL 的 HTTP 请求:
https://console.aws.amazon.com/billing/rest/v1.0/bill/invoice/generate?generatenew=true&invoiceGroupId=_SOME_ID_&invoicenumber=_SOME_ID_
然后是对实际提供 PDF 文件的 URL 的最终请求:
https://console.aws.amazon.com/billing/rest/v1.0/bill/invoice/download?invoiceGroupId=_SOME_ID_&invoicenumber=_SOME_ID_
我找不到 AWS API 上的文档来获取此类发票文档(有一些用于账单报告和其他内容,但没有用于“官方”文档),所以我开始问自己它是否可用?
在废弃 AWS 控制台(通过Scrapy、Selenium、Puppeteer)之前,我询问了社区;)
注意:我知道 AWS 可以通过电子邮件发送发票 PDF,但我宁愿直接从 AWS 获取,而不是从 IMAP/POP 电子邮件服务器获取。
您可以使用 aws cli 或 aws sdk 获取 json 格式的数据。然后将json转换为pdf(本答案中未涵盖)。
aws cli 提供get-cost-and-usage命令。通过调整参数,您可以获得与账单发票生成的输出相匹配的输出。
该命令的用法示例:
aws ce get-cost-and-usage \
--time-period Start=2019-03-01,End=2019-04-01 \
--granularity MONTHLY \
--metrics "BlendedCost" "UnblendedCost" "UsageQuantity" \
--group-by Type=DIMENSION,Key=SERVICE
Run Code Online (Sandbox Code Playgroud)
产生以下输出
{
"GroupDefinitions": [
{
"Type": "DIMENSION",
"Key": "SERVICE"
}
],
"ResultsByTime": [
{
"TimePeriod": {
"Start": "2019-03-01",
"End": "2019-04-01"
},
"Total": {},
"Groups": [
{
"Keys": [
"AWS Budgets"
],
"Metrics": {
"BlendedCost": {
"Amount": "3.0392156805",
"Unit": "USD"
},
"UnblendedCost": {
"Amount": "3",
"Unit": "USD"
},
"UsageQuantity": {
"Amount": "155",
"Unit": "N/A"
}
}
},
{
"Keys": [
"AWS CloudTrail"
],
"Metrics": {
"BlendedCost": {
"Amount": "0",
"Unit": "USD"
},
"UnblendedCost": {
"Amount": "0",
"Unit": "USD"
},
"UsageQuantity": {
"Amount": "720042",
"Unit": "N/A"
}
}
},
...
Run Code Online (Sandbox Code Playgroud)
您还可以通过编程方式获取相同类型的数据。最简单的方法是使用 aws sdk。请参阅您要使用的 sdk 的文档。例如,有关 python sdk 的此功能的信息可以在此处找到。
| 归档时间: |
|
| 查看次数: |
3351 次 |
| 最近记录: |