/// <summary> /// DescribeTargetHealth 接口用来获取应用型负载均衡后端的健康检查结果。 /// </summary> /// <param name="req">参考<see cref="DescribeTargetHealthRequest"/></param> /// <returns>参考<see cref="DescribeTargetHealthResponse"/>实例</returns> public async Task <DescribeTargetHealthResponse> DescribeTargetHealth(DescribeTargetHealthRequest req) { JsonResponseModel <DescribeTargetHealthResponse> rsp = null; try { var strResp = await this.InternalRequest(req, "DescribeTargetHealth"); rsp = JsonConvert.DeserializeObject <JsonResponseModel <DescribeTargetHealthResponse> >(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return(rsp.Response); }
public async Task <Response> Handle(SNSEvent snsRequest, CancellationToken cancellationToken = default) { var request = requestFactory.CreateFromSnsEvent(snsRequest); logger.LogInformation($"Received transformed request: {JsonSerializer.Serialize(request)}"); var addresses = dnsResolver.Resolve(request.TargetDnsName).AddressList ?? new IPAddress[] { }; var targetHealthRequest = new DescribeTargetHealthRequest { TargetGroupArn = request.TargetGroupArn }; var targetHealthResponse = await elbClient.DescribeTargetHealthAsync(targetHealthRequest); logger.LogInformation($"Got target health response: {JsonSerializer.Serialize(targetHealthResponse)}"); var targetHealthDescriptions = targetHealthResponse.TargetHealthDescriptions; var healthyTargets = from target in targetHealthDescriptions where target.TargetHealth.State != TargetHealthStateEnum.Unhealthy select target.Target; var unhealthyTargets = from target in targetHealthDescriptions where target.TargetHealth.State == TargetHealthStateEnum.Unhealthy select target.Target; var newTargets = from address in addresses where healthyTargets.All(target => !IPAddress.Parse(target.Id).Equals(address)) select new TargetDescription { Id = address.ToString(), AvailabilityZone = "all", Port = 80 }; await Task.WhenAll(new Task[] { DeregisterTargets(request.TargetGroupArn, unhealthyTargets), RegisterTargets(request.TargetGroupArn, newTargets), }); return(new Response { Success = true }); }
/// <summary> /// 查询后端服务下的target的健康状态 /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public async Task <DescribeTargetHealthResponse> DescribeTargetHealth(DescribeTargetHealthRequest request) { return(await new DescribeTargetHealthExecutor().Client(this).Execute <DescribeTargetHealthResponse, DescribeTargetHealthResult, DescribeTargetHealthRequest>(request).ConfigureAwait(false)); }
/// <summary> /// 查询后端服务下的target的健康状态 /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public DescribeTargetHealthResponse DescribeTargetHealth(DescribeTargetHealthRequest request) { return(new DescribeTargetHealthExecutor().Client(this).Execute <DescribeTargetHealthResponse, DescribeTargetHealthResult, DescribeTargetHealthRequest>(request)); }