Я пытаюсь создавать корзины S3 по требованию и отслеживать их стоимость.Как всем известно, API Amazon замечательный, поэтому я застрял в какой-то момент.
Вот что я делаю в несколько шагов
Я создаю Bucket
s3.createBucket({
Bucket: bucket,
ACL: 'public-read',
}).promise();
И мой первый вопрос: Как (полностью) включить облачные часы на этом ведре?
Мой второй вопрос: Кто-нибудь знает, как полностьювычислить стоимость на основе показателей из CloudWatch?
Затем мне нужно получить некоторые данные из cloudwatch, например еженедельно, чтобы оценить стоимость.
const date = new Date();
const StartTime = new Date(date.getFullYear(), date.getMonth(), 1);
const EndTime = new Date(date.getFullYear(), date.getMonth() + 1, 0);
const Period = Math.floor((EndTime.getTime() - StartTime.getTime()) / 1000);
cloudwatch
.getMetricData({
StartTime,
EndTime,
MetricDataQueries: [
{
Id: 'size',
MetricStat: {
Metric: {
Dimensions: [
{
Name: 'StorageType',
Value: 'StandardStorage',
},
{
Name: 'BucketName',
Value: 'my-bucket',
},
],
MetricName: 'BucketSizeBytes',
Namespace: 'AWS/S3'
},
Period,
Stat: 'Average',
Unit: 'Bytes'
},
ReturnData: true,
},
{
Id: 'count',
MetricStat: {
Metric: {
Dimensions: [
{
Name: 'StorageType',
Value: 'AllStorageTypes',
},
{
Name: 'BucketName',
Value: 'my-bucket',
},
],
MetricName: 'NumberOfObjects',
Namespace: 'AWS/S3'
},
Period,
Stat: 'Average',
Unit: 'Count',
},
ReturnData: true,
},
{
Id: 'downloaded',
MetricStat: {
Metric: {
Dimensions: [
{
Name: 'FilterId',
Value: 'EntireBucket',
},
{
Name: 'BucketName',
Value: 'my-bucket',
},
],
MetricName: 'BytesDownloaded',
Namespace: 'AWS/S3'
},
Period,
Stat: 'Average',
Unit: 'Bytes'
},
ReturnData: true,
},
],
}, handleResponse);
Что возвращает менячто-то вроде этого
{
"ResponseMetadata": {
"RequestId": "588f3c78-bc39-11e8-a704-cbccb1b4e355"
},
"MetricDataResults": [
{
"Id": "size",
"Label": "StandardStorage BucketSizeBytes",
"Timestamps": [
"2018-08-31T22:00:00.000Z"
],
"Values": [
1030
],
"StatusCode": "Complete",
"Messages": []
},
{
"Id": "count",
"Label": "AllStorageTypes NumberOfObjects",
"Timestamps": [
"2018-08-31T22:00:00.000Z"
],
"Values": [
3
],
"StatusCode": "Complete",
"Messages": []
},
{
"Id": "downloaded",
"Label": "EntireBucket BytesDownloaded",
"Timestamps": [
"2018-08-31T22:00:00.000Z"
],
"Values": [
1342
],
"StatusCode": "Complete",
"Messages": []
}
]
}
И у меня нет других вопросов, учитывая документацию AWS, в основном нужно было оставить этот код где-нибудь, чтобы помочь кому-нибудь, кто пройдет здесь ...