如何使用C#对接AWS Kinesis及配置Postman/Fiddler请求头
AWS Kinesis客户端对接及请求头适配方案
1. C#实现代码
首先安装AWS官方Kinesis SDK NuGet包:Install-Package AWSSDK.Kinesis
完整代码示例:
using Amazon; using Amazon.Kinesis; using Amazon.Kinesis.Model; using System.Text; namespace KinesisDemo { internal class Program { static async Task Main(string[] args) { // 替换为实际生效的凭证信息 string awsKeyId = "##AZG6B52DCC##"; string awsKeySecret = "##NG6e#p/##YGuRVEs5jqjwB4i3GLpwaewt##"; // 从提供的ARN中提取对应信息:区域为us-east-1,流名为ARN最后一段/后的内容 RegionEndpoint region = RegionEndpoint.USEast1; string streamName = "template-v1-kinesis-##00056###-64-sandbox-customerstream###-Vfyubo###"; // 初始化Kinesis客户端 using var kinesisClient = new AmazonKinesisClient(awsKeyId, awsKeySecret, region); // 构造单条消息写入请求 PutRecordRequest putRequest = new PutRecordRequest { StreamName = streamName, // 消息内容转二进制流 Data = new MemoryStream(Encoding.UTF8.GetBytes("你的业务消息内容")), // 分区键用于Kinesis分片路由,可按业务规则自定义 PartitionKey = "your-custom-partition-key" }; try { PutRecordResponse putResponse = await kinesisClient.PutRecordAsync(putRequest); Console.WriteLine($"写入成功,分片ID:{putResponse.ShardId},序列编号:{putResponse.SequenceNumber}"); } catch (Exception ex) { Console.WriteLine($"写入失败,错误:{ex.Message}"); } } } }
2. Postman/Fiddler适配所需HTTP请求头参数
所有请求需配置以下头参数:
Host:固定值为kinesis.us-east-1.amazonaws.com,对应Kinesis服务接入域名X-Amz-Target:接口操作标识,单条写入操作为Kinesis_20131202.PutRecord,其他操作替换为对应接口名即可Content-Type:固定值为application/x-amz-json-1.1Authorization:AWS SigV4签名串,需使用AWS Key ID、Key Secret结合请求内容、区域、服务名生成X-Amz-Date:ISO 8601格式的UTC时间,示例:20240520T130522Z,签名计算时必须和该值完全一致Content-Length:请求Body的字节长度,工具可自动生成也可手动配置
小提示:使用Postman时可直接在Authorization标签选择「AWS Signature」类型,填写对应Key ID、Key Secret、区域填
us-east-1、服务名填kinesis,Postman会自动生成签名及其他必要头参数,无需手动计算签名。
内容的提问来源于stack exchange,提问作者Anish Sinha
相关产品推荐
相关产品推荐

