如何在AWS Lambda上部署此代码并生成csv?



我想在lambda中部署此代码并每小时运行一次以生成CSV。我该怎么做,步骤是什么?

#!/usr/bin/env python3
import argparse
import boto3
import datetime
import re
import csv
import random
import pandas as pd

now = datetime.datetime.utcnow()
start = '2022-12-01'
end = '2022-12-20'
str = ' 00:00'

# to use a specific profile e.g. 'dev'
session = boto3.session.Session(profile_name='dev')
cd = session.client('ce', 'eu-west-2')
results = []
token = None
while True:
if token:
kwargs = {'NextPageToken': token}
else:
kwargs = {}
data = cd.get_cost_and_usage(TimePeriod={'Start': start, 'End':  end}, Granularity='MONTHLY', Metrics=['UnblendedCost'], Filter={  "And": [    {"Dimensions": {"Key": "SERVICE","Values": ["Amazon Relational Database Service", "Amazon Elastic Compute Cloud - Compute"]}},    {"Tags": {"Key": "Name", "Values": ["qa-mssql"]}},  ]}, GroupBy=[{'Type': 'TAG', 'Key': 'app'}, {'Type': 'TAG', 'Key': 'Name'}], **kwargs)
results += data['ResultsByTime']
token = data.get('NextPageToken')
if not token:
break

def data():    

print(','.join(['date', 'teams', 'resource_names', 'Amounts','resource_type' ]))
for result_by_time in results:
for group in result_by_time['Groups']:
amount = group['Metrics']['UnblendedCost']['Amount']
resource_type = 'mssql'
value = print(result_by_time['TimePeriod']['End'].__add__(str),',',','.join(group['Keys']).replace ("app$", "").replace("Name$", "") ,  ',', amount, ',', resource_type,)
return value
data()

我对lambda很陌生,想知道一步一步的基本方法。

将代码部署到lambda,将其打包为zip文件并直接从控制台部署到函数或上传到s3,然后在lambda中引用路径。

如果你的代码不需要任何不属于lambda环境的依赖项,你可以直接在控制台中编辑代码并保存。

使用"CloudWatchEvent Schedule"为lambda添加触发器

参考doc1和doc2

最新更新