AWS with .NET - 从 CloudWatch 读取日志 - 没有返回日志数据

2024-03-10

我正在尝试使用 .NET 从 CloudWatch 读取使用 SNS 发送的消息的日志数据。

从 CloudWatch 控制台 (CloudWatch \ CloudWatch Logs \ Logs Insights),我输入:

Date range: custom (2w)
LogGroup: sns/ap...../8...../LogName 
Query: fields @timestamp, @message | sort @timestamp desc | limit 20

它返回大量日志记录(@timestamp | @message)

我正在尝试使用 .net AWS SDK 从 c# 执行相同的操作:

public async Task GetLogs()
{
    string logGroupName = "sns/ap...../8...../LogName";

    AWSOptions options = configuration.GetAWSOptions();
    IAmazonCloudWatchLogs logs = options.CreateServiceClient<IAmazonCloudWatchLogs>();

    StartQueryRequest startQueryRequest = new StartQueryRequest();
    startQueryRequest.LogGroupName = logGroupName;
    startQueryRequest.StartTime = 1577850562; //1 Jan 2020
    TimeSpan t = DateTime.UtcNow - new DateTime(1970, 1, 1); //Epoch time starts on 1/1/1970
    int secondsSinceEpoch = (int)t.TotalSeconds;
    startQueryRequest.EndTime = secondsSinceEpoch;
    startQueryRequest.QueryString = "fields @timestamp, @message | sort @timestamp desc";
    startQueryRequest.Limit = 1000;
    StartQueryResponse response2 = await logs.StartQueryAsync(startQueryRequest);

    Console.WriteLine();
}

无法弄清楚为什么它不返回任何记录。

Response2 = 
   ContentLength: 50
   QueryId: "guid..."
   ResponseMetadata:
      Metadata Count = 0
      RequestId = "guid..."

知道我做错了什么吗?谢谢!


如果它对其他人有帮助 - 这是我使用 C# 从 AWS 获取日志的方法

public async Task GetLogs()
{
    string logGroupName = "log group name from CloudWatch Log";

    AWSOptions options = configuration.GetAWSOptions();
    IAmazonCloudWatchLogs logs = options.CreateServiceClient<IAmazonCloudWatchLogs>();

    StartQueryRequest startQueryRequest = new StartQueryRequest();
    startQueryRequest.LogGroupName = logGroupName;
    startQueryRequest.StartTime = 1577850562; //1 Jan 2020
    TimeSpan t = DateTime.UtcNow - new DateTime(1970, 1, 1); //Epoch time starts on 1/1/1970
    int secondsSinceEpoch = (int)t.TotalSeconds;
    startQueryRequest.EndTime = secondsSinceEpoch;
    startQueryRequest.QueryString = "fields @timestamp, @message | sort @timestamp desc";
    startQueryRequest.Limit = 1000;
    StartQueryResponse startQueryResponse = await logs.StartQueryAsync(startQueryRequest);

    GetQueryResultsRequest getQueryRequest = new GetQueryResultsRequest();
    getQueryRequest.QueryId = startQueryResponse.QueryId;

    GetQueryResultsResponse getQueryResults = await logs.GetQueryResultsAsync(getQueryRequest);
    for (var i=0; i<getQueryResults.Results.Count; i++)
    {
        ResultField timestampResult = getQueryResults.Results[i][0];
        ResultField messageResult = getQueryResults.Results[i][1];
        var message = JsonConvert.DeserializeObject(messageResult.Value);
        Console.WriteLine(message);
    }           
    Console.WriteLine();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS with .NET - 从 CloudWatch 读取日志 - 没有返回日志数据 的相关文章

随机推荐

  • for 循环后的 Python 语法错误(在解释器中)

    我正在从控制台运行一些 python 代码 粘贴 并得到意外的结果 代码如下所示 parentfound False structfound False instruct False wordlist fileHandle open con
  • 如何获取 ImageView 中 Drawable 的尺寸? [复制]

    这个问题在这里已经有答案了 检索 ImageView 中 Drawable 尺寸的最佳方法是什么 My ImageView有一个初始化方法 我在其中创建ImageView private void init coverImg new Ima
  • 在 C++ 中使用 new 创建引用

    我有以下代码 似乎用 new 创建引用是可以的 但是当用 new 创建对象时 当我尝试重新收集分配的内存时 它会崩溃 float f new float 1 3 delete f float f1 new float delete f1 我
  • “<-”是否意味着在Haskell中分配变量?

    刚开始Haskell 据说Haskell中除了IO包之外的所有东西都是 不可变的 那么当我将名称绑定到某个东西时 它总是不可变的 问题 如下 Prelude gt let removeLower x c c lt x c elem A Z
  • Web API 序列化从小写字母开始的属性

    如何配置要使用的 Web API 的序列化camelCase 从小写字母开始 属性名称而不是PascalCase就像 C 中一样 我可以在整个项目的全球范围内进行吗 如果您想更改 Newtonsoft Json 又名 JSON NET 中的
  • 为重复的索引值添加后缀

    这是一个 df 0 01 0 029064 0 01 0 032876 0 01 0 040795 0 02 0 027003 0 02 0 0315 需要将其与另一个框架连接 但出现错误 无法从重复轴重新索引 我想要的是这样的 df 0
  • vs2015不断添加project.lock.json到tfs

    我的文件夹结构是 解决方案文件夹 tfignore 文件 每个项目的文件夹 但 vs2015 继续将我的 project lock json 文件包含在源代码管理中 在我的 tfignore 文件中 我添加了 project lock js
  • C 中的 case 标签不会减少为整数常量?

    我正在开发一个游戏 我运行了我的代码并收到错误 case 标签不会减少为整数常量 我想我知道这意味着什么 但是我该如何解决它呢 这是我的代码 include
  • 如何将列表列表从宽变为长

    我有一个具有共同结构的列表列表 require data table l lt list a1 list b data table rnorm 3 c data table rnorm 3 d data table rnorm 3 a2 l
  • C++ 与 Python 精度

    尝试查找 num num 的前 k 位数字的问题我用 C 和 Python 编写了相同的程序 C long double intpart num f digit k cin gt gt num gt gt k f digit pow 10
  • 元组比较

    我有一本定义如下的字典 d date tuple date open tuple open close tuple close min tuple min max tuple max MA tuple ma 这些元组中的每一个都包含一个值列
  • 在 iOS 中实现 Google 自定义搜索 API

    我浏览了几个链接 以便找到在 ios 应用程序中实现 google customsearchapi 的正确步骤 并在此过程中花费了大约 6 7 个小时 Links https developers google com custom sea
  • 模型的 flow_from_directory 拟合产生 ValueError:输入 0 与图层模型不兼容

    我有以下模型 我尝试使用 ImageDataGenerator 与 flow from directory 和 fit generator 来拟合模型 但是出现以下错误 ValueError Input 0 is incompatible
  • 在 Swift 中接收 Websocket 数据

    我继续这个从这个问题 https stackoverflow com questions 65988137 how do i send a dictionary to a client using vapor websockets 6598
  • 如何使用React hooks和react-router执行身份验证

    我正在尝试在每次路线更改时对用户进行身份验证react router dom and react hooks 这个想法是 每次用户导航到某个路线时 系统都会进行 api 调用并对用户进行身份验证 我需要实现这一目标 因为我使用react r
  • 指令单击外部角度 6

    我将 Angular 从 4 升级到 6 因此我的点击策略出现了问题 它停止在所有组件上工作 我的指令 import Directive Output EventEmitter ElementRef HostListener from an
  • 如何将 jQuery 与 amp-script 一起使用?

    AMP 文档提到将 jQuery 与 amp script 组件一起使用 https amp dev documentation guides and tutorials develop custom javascript https am
  • 在 WPF 中创建侧边栏 - 像 Windows 桌面应用程序一样的弹出窗口

    我想做的是在 WPF 中创建一个桌面应用程序 其 UI 是这样的 一个小图标将保持固定在屏幕左边缘的中心 单击 或悬停 时将滑动打开一个侧边栏 如谷歌 桌面栏 沿着屏幕左边缘运行 固定位置 无法移动 请注意 我要求的可能类似于应用程序栏 但
  • 如何让 Bower 构建包?

    有没有办法让 Bower 在从 GitHub 克隆后运行包 grunt 我正在尝试使用 Bower 但我使用的软件包之一是 Bootstrap 扩展 x editable 问题是 虽然其他软件包将完整构建的版本推送到 github 所以当
  • AWS with .NET - 从 CloudWatch 读取日志 - 没有返回日志数据

    我正在尝试使用 NET 从 CloudWatch 读取使用 SNS 发送的消息的日志数据 从 CloudWatch 控制台 CloudWatch CloudWatch Logs Logs Insights 我输入 Date range cu