Azure分摊成本API传递日期变量触发400错误的排查求助
问题原因及解决方法
问题根源
你用变量传递日期时,生成的URL里日期值没有被单引号包裹,而Azure Consumption API要求$filter里的日期参数必须用单引号括起来。硬编码时你给日期加了单引号(比如'2022-05-01'),请求合法;但变量替换后变成了properties/usageStart eq 2022-05-01,缺少单引号的日期无法被API识别为合法参数,因此返回400错误。
解决方法
在格式化字符串时,给日期变量加上单引号,让生成的URL格式和硬编码版本一致:
f"https://management.azure.com/subscriptions/{subs}/providers/Microsoft.Consumption/usageDetails?$filter=properties/usageStart eq '{start_date}' and properties/usageEnd eq '{end_date}'&metric=AmortizedCost&api-version=2021-10-01"
同时要确保start_date和end_date的格式严格为YYYY-MM-DD,和硬编码时的格式保持一致,避免因格式不匹配引发其他错误。
内容的提问来源于stack exchange,提问作者kakaji
相关产品推荐
相关产品推荐

