AppHost 配置

AppHost 项目配置并启动分布式应用程序(DistributedApplication)。 DistributedApplication运行时,它会从 AppHost 读取配置。 从 AppHost 和 DistributedApplicationOptions.

配置包括:

  • 用于托管资源服务的设置,例如地址和身份验证选项。
  • 用于启动 Aspire 仪表板的设置,例如仪表板的前端和 OpenTelemetry 协议 (OTLP) 地址。
  • 用于运行 AppHost 的内部设置 Aspire 。 这些设置在内部,但可通过扩展 Aspire的集成进行访问。

AppHost 启动配置文件提供 AppHost 配置。 AppHost 具有启动设置文件调用 launchSettings.json ,其中包含启动配置文件列表。 每个启动配置文件都是相关选项的集合,这些选项定义 dotnet 启动应用程序的方式。

{
  "$schema": "https://json.schemastore.org/launchsettings.json",
  "profiles": {
    "https": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "https://localhost:17134;http://localhost:15170",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "DOTNET_ENVIRONMENT": "Development",
        "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21030",
        "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22057"
      }
    }
  }
}

前面的启动设置文件:

  • 有一个名为 https的启动配置文件。
  • Aspire配置 AppHost 项目:
    • applicationUrl 属性配置仪表板启动地址(ASPNETCORE_URLS)。
    • 环境变量(例如 ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL ,并在 ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL AppHost 上设置)。

有关详细信息,请参阅 Aspire 和启动配置文件

Note

此页上所述的配置适用于 Aspire AppHost 项目。 若要配置独立仪表板,请参阅 仪表板配置

通用配置

Option 默认值 Description
ASPIRE_ALLOW_UNSECURED_TRANSPORT false 允许与不带 https 的 AppHost 通信。 ASPNETCORE_URLS (仪表板地址)和 ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL (AppHost 资源服务地址)必须使用 HTTPS 进行保护,除非为 true。
ASPIRE_CONTAINER_RUNTIME docker 允许用户为容器支持的资源提供备用容器运行时。 可能的值为 docker(默认值)或 podman。 有关更多详细信息,请参阅 设置和工具概述。
ASPIRE_VERSION_CHECK_DISABLED false 设置为 > 时, 不会在启动时检查更新版本。

Aspire 版本更新通知

Aspire应用启动时,它会检查 NuGet 上是否有较新版本Aspire。 如果找到新版本,则会在仪表板中显示一条通知,其中包含最新版本号、 升级说明的链接,以及将来忽略该版本的按钮。

显示包含升级选项的版本更新通知的仪表板的屏幕截图。

版本检查仅在以下情况下运行:

  • 仪表板已启用(交互服务可用)。
  • 自上次检查以来至少已经过去了 2 天。
  • 未通过 ASPIRE_VERSION_CHECK_DISABLED 配置设置禁用检查。
  • 应用未在发布模式下运行。

更新是手动更新。 需要编辑项目文件才能升级 Aspire SDK 和包版本。

资源服务

资源服务由 AppHost 托管。 资源服务由仪表板用来获取有关正在协调 Aspire的资源的信息。

Option 默认值 Description
ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL null 配置 AppHost 托管的资源服务的地址。 使用 launchSettings.json 自动生成的 localhost上具有随机端口。 例如,https://localhost:17037
ASPIRE_DASHBOARD_RESOURCESERVICE_APIKEY 自动生成的 128 位萎缩令牌。 用于对 AppHost 资源服务发出的请求进行身份验证的 API 密钥。 如果 AppHost 处于运行模式、仪表板未禁用,并且仪表板未配置为允许匿名 ASPIRE_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS访问,则需要 API 密钥。

Dashboard

默认情况下,仪表板由 AppHost 自动启动。 仪表板支持 自己的配置集,可以从 AppHost 配置某些设置。

Option 默认值 Description
ASPNETCORE_URLS null 仪表板地址。 必须 https,除非 ASPIRE_ALLOW_UNSECURED_TRANSPORTDistributedApplicationOptions.AllowUnsecuredTransport 为 true。 使用 launchSettings.json 自动生成的 localhost上具有随机端口。 启动设置中的值在 applicationUrls 属性上设置。
ASPNETCORE_ENVIRONMENT Production 配置仪表板运行的环境。 有关详细信息,请参阅 在 ASP.NET Core中使用多个环境。
ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL 如果未配置 gRPC 终结点,http://localhost:18889 配置仪表板 OTLP gRPC 地址。 由仪表板用来通过 OTLP 接收遥测数据。 将资源设置为 OTEL_EXPORTER_OTLP_ENDPOINT env var。 OTEL_EXPORTER_OTLP_PROTOCOL env var grpc。 使用 launchSettings.json 自动生成的 localhost上具有随机端口。
ASPIRE_DASHBOARD_OTLP_HTTP_ENDPOINT_URL null 配置仪表板 OTLP HTTP 地址。 由仪表板用来通过 OTLP 接收遥测数据。 如果仅配置 ASPIRE_DASHBOARD_OTLP_HTTP_ENDPOINT_URL,则会在资源上将其设置为 OTEL_EXPORTER_OTLP_ENDPOINT env var。 OTEL_EXPORTER_OTLP_PROTOCOL env var http/protobuf
ASPIRE_DASHBOARD_CORS_ALLOWED_ORIGINS null 替代仪表板中配置的 CORS 允许的源。 此设置将替换基于资源终结点计算允许的源的默认行为。
ASPIRE_DASHBOARD_FRONTEND_BROWSERTOKEN 自动生成的 128 位萎缩令牌。 配置前端浏览器令牌。 这是在身份验证模式为 BrowserToken 时必须输入的值才能访问仪表板。 如果未指定浏览器令牌,则每次启动 AppHost 时都会生成一个新令牌。
ASPIRE_DASHBOARD_TELEMETRY_OPTOUT false 将仪表板配置为从不发送 使用情况遥测数据。
ASPIRE_DASHBOARD_AI_DISABLED false 当 AppHost 由受支持的 IDE 启动时,仪表板中的 Copilot 可用。GitHub 当在仪表板中禁用设置为 true Copilot 且不显示 Copilot UI 时。
ASPIRE_DASHBOARD_FORWARDEDHEADERS_ENABLED false 启用转发标头中间件,该中间件将请求上下文中的方案和主机值替换为来自 X-Forwarded-ProtoX-Forwarded-Host 标头的值。

Internal

AppHost 和集成使用内部设置。 不会直接配置内部设置。

Option 默认值 Description
AppHost:Directory 如果没有项目,则为内容根目录。 AppHost 所在的项目的目录。 可从 IDistributedApplicationBuilder.AppHostDirectory访问。
AppHost:Path 与应用程序名称组合的目录。 AppHost 的路径。 它将目录与应用程序名称组合在一起。
AppHost:Sha256 当 AppHost 处于发布模式时,它从 AppHost 名称创建。 否则,它会从 AppHost 路径创建。 当前应用程序的十六进制编码哈希。 哈希基于当前计算机上的应用位置,因此它在启动 AppHost 之间保持稳定。
AppHost:OtlpApiKey 自动生成的 128 位萎缩令牌。 用于对发送到仪表板 OTLP 服务的请求进行身份验证的 API 密钥。 如果需要,该值存在:AppHost 处于运行模式,仪表板未禁用,并且仪表板未配置为允许匿名 ASPIRE_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS访问。
AppHost:BrowserToken 自动生成的 128 位萎缩令牌。 在 AppHost 启动仪表板时,用于对浏览到仪表板进行身份验证的浏览器令牌。 浏览器令牌可以通过 ASPIRE_DASHBOARD_FRONTEND_BROWSERTOKEN设置。 如果需要,该值存在:AppHost 处于运行模式,仪表板未禁用,并且仪表板未配置为允许匿名 ASPIRE_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS访问。
AppHost:ResourceService:AuthMode ApiKey。 如果 ASPIRE_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS 为 true,则该值 Unsecured 用于访问资源服务的身份验证模式。 如果需要,该值存在:AppHost 处于运行模式,并且仪表板未禁用。
AppHost:ResourceService:ApiKey 自动生成的 128 位萎缩令牌。 用于对 AppHost 资源服务发出的请求进行身份验证的 API 密钥。 API 密钥可以通过 ASPIRE_DASHBOARD_RESOURCESERVICE_APIKEY设置。 如果需要,该值存在:AppHost 处于运行模式,仪表板未禁用,并且仪表板未配置为允许匿名 ASPIRE_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS访问。