bad*_*ker 6 amazon-web-services amazon-cloudfront amazon-cloudwatch aws-cli
我有一堆Cloudfront分布在多个 AWS 账户中的分布。我想获取所有 AWS 账户中所有 Cloudfront 发行版的使用情况报告。
现在,我的更改帐户位已经自动化,但我不确定如何CSV通过AWS CLI.
我知道我可以执行一些 ClickOps 并通过Cloudfront Console下载报告,如下所示:
但我找不到使用 AWS CLI 获取报告的命令。
我知道我可以通过 Cloudwatch API 获取 Cloudfront 指标,但文档没有提及我应该查询的 API 端点。
另外,还有aws cloudwatch get-metric-statistics,但我不确定如何使用它来下载Cloudfront Usage CSV Report.
问题:如何使用 AWS CLI 获取 AWS 账户中所有分配的 Cloudfront 使用情况报告?
我找不到 Cloudfront API 来获取使用情况报告。我知道这样的报告可以从 Cloudwatch 日志构建,但我很懒,我想直接从 Cloudfront 下载报告。
AWS CLI 中尚未引入此类命令,Boto3(适用于 Python 的 AWS 开发工具包)中尚未引入此类命令,但您可以使用以下几种解决方法:
使用 Selenium 访问 CloudFront 的 AWS 控制台并单击该Download CSV按钮。您可以用 Python 编写一个脚本。
您可以在AWS 控制台上使用CloudFront 使用的curl 命令来获取XML 格式的结果,然后可以使用Python 或任何CLI 工具将它们转换为CSV。单击该Download CSV按钮后可以找到该curl命令,然后从浏览器页面上控制台下的选项卡cloudfrontreporting下显示的名为的项目(或使用您选择的任何其他浏览器)中右键单击该项目,然后单击按钮。NetworkInspectGoogle ChromeCopy as cURL
卷曲命令如下:
curl 'https://console.aws.amazon.com/cloudfront/v3/api/cloudfrontreporting' \
-H 'authority: console.aws.amazon.com' \
-H 'sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"' \
-H 'content-type: application/json' \
-H 'x-csrf-token: ${CSRF_TOKEN}' \
-H 'accept: */*' \
-H 'origin: https://console.aws.amazon.com' \
-H 'sec-fetch-site: same-origin' \
-H 'sec-fetch-mode: cors' \
-H 'sec-fetch-dest: empty' \
-H 'referer: https://console.aws.amazon.com/cloudfront/v3/home?region=eu-central-1' \
-H 'accept-language: en-US,en;q=0.9' \
-H 'cookie: ${COOKIE}' \
--data-raw '{"headers":{"X-Amz-User-Agent":"aws-sdk-js/2.849.0 promise"},"path":"/2014-01-01/reports/series","method":"POST","region":"us-east-1","params":{},"contentString":"<DataPointSeriesRequestFilters xmlns=\"http://cloudfront.amazonaws.com/doc/2014-01-01/\"><Report>Usage</Report><StartTime>2022-01-28T11:23:35Z</StartTime><EndTime>2022-02-04T11:23:35Z</EndTime><TimeBucketSizeMinutes>ONE_DAY</TimeBucketSizeMinutes><ResourceId>All Web Distributions (excludes deleted)</ResourceId><Region>ALL</Region><Series><DataKey><Name>HTTP</Name><Description></Description></DataKey><DataKey><Name>HTTPS</Name><Description></Description></DataKey><DataKey><Name>HTTP-BYTES</Name><Description></Description></DataKey><DataKey><Name>HTTPS-BYTES</Name><Description></Description></DataKey><DataKey><Name>BYTES-OUT</Name><Description></Description></DataKey><DataKey><Name>BYTES-IN</Name><Description></Description></DataKey><DataKey><Name>FLE</Name><Description></Description></DataKey></Series></DataPointSeriesRequestFilters>","operation":"listDataPointSeries"}' \
--compressed > report.xml
Run Code Online (Sandbox Code Playgroud)
其中${CSRF_TOKEN}和${COOKIE}需要您自己提供,可以从浏览器中找到或可以通过编程方式准备。
| 归档时间: |
|
| 查看次数: |
1432 次 |
| 最近记录: |