public ListShardsResponse ListShards(ListShardsRequest request) { using (ServiceRequest sReq = new ServiceRequest()) { sReq.Method = HttpMethod.Get; sReq.Endpoint = BuildReqEndpoint(request); sReq.ResourcePath = LogConsts.RESOURCE_LOGSTORES + LogConsts.RESOURCE_SEPARATOR + request.Logstore + LogConsts.RESOURCE_SHARDS; FillCommonHeaders(sReq); FillCommonParameters(sReq); request.AddSpecHeadersTo(sReq.Headers); request.AddSpecParamsTo(sReq.Parameters); ExecutionContext context = new ExecutionContext(); context.Signer = new LogRequestSigner(sReq.ResourcePath, HttpMethod.Get); context.Credentials = new ServiceCredentials(this.AccessKeyId, this.AccessKey); using (ServiceResponse response = serviceClient.Send(sReq, context)) { LogClientTools.ResponseErrorCheck(response, context.Credentials); JArray body = LogClientTools.ParserResponseToJArray(response.Content); ListShardsResponse listShardsResp = new ListShardsResponse(response.Headers, body); return(listShardsResp); } } }
static async Task Main(string[] args) { const string accessKey = "<Access Key>"; const string secretKey = "<Secret Key>"; AmazonKinesisClient client = new AmazonKinesisClient(accessKey, secretKey, RegionEndpoint.USEast2); var request = new ListShardsRequest() { StreamName = args[0] }; while (true) { var response = await client.ListShardsAsync(request); Console.Clear(); foreach (var shard in response.Shards) { Console.WriteLine($"Shard {shard.ShardId}"); } Thread.Sleep(1000); } }