예제 #1
0
        public static async Task <IActionResult> HttpTrigger(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] PostAzureCostToMackerelRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");
            await Run(req, log);

            return(new NoContentResult());
        }
예제 #2
0
        private static async Task Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] PostAzureCostToMackerelRequest req,
            ILogger log)
        {
            log.LogInformation("PostAzureCostToMackerelFunction.Function.Run");
            log.LogInformation(JsonConvert.SerializeObject(req));

            var usageDetailList = await QueryUsageDetails(log, req.SubscriptionId);

            if (usageDetailList.Count() == 0)
            {
                log.LogInformation("Usage not found.");
                return;
            }
            var serviceName    = req.ServiceName;
            var serviceMetrics = ToServiceMetrics(usageDetailList);

            serviceMetrics.ToList().ForEach(x => log.LogInformation(JsonConvert.SerializeObject(x)));

            await PostServiceMetrics(serviceMetrics, serviceName);
        }