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_URLAppHost 上设置)。
-
有关详细信息,请参阅 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_TRANSPORT 或 DistributedApplicationOptions.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-Proto 和 X-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访问。 |