You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:GCP Cloud Run下.NET 7 Minimal API日志实现完整代码示例

Google.Cloud.Diagnostics.AspNetCore在Cloud Run .NET 7 Minimal API中的日志实现

适用性说明

Google.Cloud.Diagnostics.AspNetCore完全适配Cloud Run环境,它就是为.NET应用对接GCP日志、监控体系设计的,在Cloud Run上部署的.NET应用用它能直接把日志输出到GCP Cloud Logging,完美适配容器化场景的日志采集逻辑。

完整代码示例

1. 安装依赖包

在项目中安装NuGet包:

dotnet add package Google.Cloud.Diagnostics.AspNetCore

2. 配置日志服务(Program.cs)

var builder = WebApplication.CreateBuilder(args);

// 添加GCP日志服务
builder.Logging.AddGoogleDiagnostics(options =>
{
    // 设置GCP项目ID,也可以通过环境变量GOOGLE_CLOUD_PROJECT自动获取
    options.ProjectId = "你的GCP项目ID";
    // 设置日志名称,可自定义
    options.LogName = "cloud-run-dotnet-api-logs";
    // 配置日志级别,这里记录Information及以上级别
    options.MinimumLevel = LogLevel.Information;
});

var app = builder.Build();

// 示例API端点,添加日志输出
app.MapGet("/hello", (ILogger<Program> logger) =>
{
    logger.LogInformation("收到/hello请求");
    try
    {
        // 模拟业务逻辑
        var result = "Hello from Cloud Run .NET 7 Minimal API!";
        logger.LogDebug("业务逻辑执行完成,结果:{Result}", result);
        return Results.Ok(result);
    }
    catch (Exception ex)
    {
        logger.LogError(ex, "/hello请求处理失败");
        return Results.Problem("请求处理出错");
    }
});

app.Run();

3. 部署注意事项

  • 部署到Cloud Run时,确保服务账号拥有roles/logging.logWriter权限,这样应用才能将日志写入Cloud Logging。
  • Cloud Run会自动识别环境中的GCP身份信息,无需手动配置密钥文件(本地开发时可以通过设置GOOGLE_APPLICATION_CREDENTIALS环境变量指定密钥文件路径)。

官方文档核心内容翻译

Google.Cloud.Diagnostics.AspNetCore库提供了ASP.NET Core应用与GCP云服务的集成能力,支持将应用日志发送至Cloud Logging、跟踪数据发送至Cloud Trace、错误报告发送至Cloud Error Reporting,适用于包括Cloud Run在内的各类.NET部署环境,能帮助开发者快速搭建符合GCP生态的可观测体系。

内容的提问来源于stack exchange,提问作者Chris Harrington

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 23:12:11