美好的一天,最新的AWS发布API,用于了解结算信息。
它适用于所有aws SDK(c#,python,php)。我刚尝试了一个lambda函数来更新我的数据库表,其中包含我所有链接帐户的当前成本。但是mt lambda函数不起作用。它显示以下错误
“未知服务:'ce'。有效的服务名称为:acm,apigateway,application-autoscaling,appstream,athena,autoscaling等”
我的lambda代码是:
import boto3
from datetime import datetime, timedelta
def lambda_handler(event, context):
client1 = boto3.client(
'ce',
aws_access_key_id=accesskey,
aws_secret_access_key=secretkey)
[referral link for client creation][1]
response = client1.get_cost_and_usage(
TimePeriod={
'Start': startdate,
'End': enddate
},
Granularity='MONTHLY',
Metrics=[
'BlendedCost',
],
GroupBy=[
{
'Type': 'DIMENSION',
'Key': 'LINKED_ACCOUNT'
},
],
)
print response
答案 0 :(得分:0)
如果boto3
更新botocore
而未更新botocore
,则可能会发生mentioned in the Boto3 bugtracker。
所以我建议更新pip install botocore --upgrade
并重试:
procedure TServerMethodsMain.ApplyDataSetChanges(const ATableName: String;
const ADeltaList: TFDJSONDeltas);
var
LApply: IFDJSONDeltasApplyUpdates;
begin
LApply := TFDJSONDeltasApplyUpdates.Create(ADeltaList);
DataModule1.FDQuery1.UpdateOptions.UpdateTableName := ATableName;
LApply.ApplyUpdates(ATableName, DataModule1.FDQuery1.Command);
if LApply.Errors.Count > 0 then
raise Exception.Create(LApply.Errors.Strings.Text);
end;
或以某种不同的方式,取决于您首先安装botocore的方式。
答案 1 :(得分:0)
我认为AWS Lambda团队尚未将botocore
升级到最新版本。
在写这篇文章的那一刻,docs for AWS Lambda提到1.7.37作为当前版本的botocore:
AWS SDK for Python 2.7(Boto 3)版本3-1.4.7 botocore-1.7.37
AWS SDK for Python 3.6(Boto 3)版本3-1.4.7 botocore-1.7.37
阅读the botocore changelog最早提到的ce
是{1.7}:
48年1月7日
[...]
api-change:ce:将ce客户端更新为最新版本
所以我的猜测是 - 一个AWS团队还没有找到AWS已经发布的其他团队。
您可以与AWS支持小组联系或等待几天。我猜。
答案 2 :(得分:0)
AWS现已更新了botocore(至少在eu-central-1中):
有效的服务名称包括:acm,alexaforbusiness,apigateway,应用程序自动缩放,appstream,appsync,athena,autoscaling,批处理,预算, ce, cloud9,[...]