最初の Aspire アプリをデプロイする
このチュートリアルでは、最初の Aspire アプリを構築する — C# AppHost クイックスタートで作成したアプリを取得し、デプロイします。これは、いくつかの重要な手順に分けることができます。
- デプロイメントパッケージを追加する - ターゲットのホスティング パッケージを追加します。
- AppHost を更新する - 環境 API を構成します。
- アプリをデプロイする - Aspire CLI を使用してデプロイします。
- デプロイメントを確認する - アプリが期待どおりに実行されていることを確認します。
- リソースをクリーンアップする - コストの発生を避けるために、デプロイされたリソースを削除します。
次の図は、デプロイしているサンプル アプリのアーキテクチャを示しています。
architecture-beta
group api-docker(logos:docker-icon)[API container]
group f-docker(logos:docker-icon)[Front end container]
service api(logos:dotnet)[API service] in api-docker
service http(iconoir:server-connection)[https]
service frontend(aspire:blazor)[Blazor frontend] in f-docker
frontend:L --> R:http
http:L --> R:apiASP.NET Core Blazor および Minimal API スターター テンプレートは 2 つのリソースで構成され、それぞれが別のコンテナーとしてデプロイされます。
このチュートリアルでは、最初の Aspire アプリを構築する — TypeScript AppHost クイックスタートで作成したアプリを取得してデプロイします。これは、いくつかの重要な手順に分けることができます。
- デプロイメントパッケージを追加する - ターゲットのホスティング パッケージを追加します。
- AppHost を更新する - 環境 API を構成します。
- アプリをデプロイする - Aspire CLI を使用してデプロイします。
- デプロイメントを確認する - アプリが期待どおりに実行されていることを確認します。
- リソースをクリーンアップする - コストの発生を避けるために、デプロイされたリソースを削除します。
次の図は、デプロイしているサンプル アプリのアーキテクチャを示しています。
architecture-beta group docker(logos:docker-icon)[NodeJS and static site server container] service api(logos:nodejs-icon)[API service] in docker service http(iconoir:server-connection)[https] in docker service frontend(logos:react)[React frontend] in docker frontend:L --> R:http http:L --> R:api
React (Vite) および Express スターター テンプレートは、単一のコンテナーとしてデプロイされる 2 つのリソースで構成されます。 Express サーバーは、API と React によって生成された静的フロントエンド ファイルの両方をホストします。
このチュートリアルでは、バックエンドがフロントエンドにサービスを提供する デプロイメント モデルを使用します。リバース プロキシやゲートウェイ/BFF アプローチなど、AddViteApp と AddJavaScriptApp で利用できる他の運用パターンについては、JavaScript アプリをデプロイする を参照してください。
Aspire アプリを展開する場所に応じて、次の前提条件がインストールおよび構成されていることを確認してください。
- Docker Desktop がインストールされ、実行中です。
- Podman (Docker の代替) がインストールされ、実行中です。詳細については、OCI 互換コンテナーランタイム を参照してください。
- アクティブなサブスクリプションを持つ Azure アカウント。
- Azure CLI がインストールされ、構成されています。
az loginを使用してログインする必要があります。
Aspire アプリを展開する場所に応じて、次の前提条件がインストールおよび構成されていることを確認してください。
Docker デスクトップ がインストールされ、実行されています。
Podman (Docker の代替) がインストールされ、実行されています。詳細は、「OCI互換コンテナのランタイム」を参照してください。
アクティブなサブスクリプションを持つ Azure アカウント。
Azure CLI がインストールされ、構成されています。
az loginを使用してログインする必要があります。
デプロイメントパッケージを追加
Section titled “デプロイメントパッケージを追加”前のクイックスタートで作成した Aspire ソリューションのルート ディレクトリで、ターミナルで次のコマンドを実行して、適切なホスティング展開パッケージを追加します。
Docker Compose は、複数コンテナーの Docker アプリケーションを定義および実行するためのツールです。 YAML ファイルを使用してアプリケーションのサービス、ネットワーク、ボリュームを構成できるため、複雑なアプリケーションをローカルまたはさまざまな環境で管理およびデプロイすることが容易になります。
aspire add dockerAspire CLI は対話型です。追加する 📦 Aspire.Hosting.Docker バージョンに適切な検索結果を必ず選択してください。
aspire add azure-appcontainersAspire CLI は対話型です。追加する 📦 Aspire.Hosting.Azure.AppContainers バージョンに適切な検索結果を必ず選択してください。
追加の選択を求められた場合は、
aspire add コマンドの詳細については、参考資料 をご覧ください。
前のクイックスタートで作成した Aspire アプリのルート ディレクトリで、ターミナルで次のコマンドを実行して、適切なホスティング展開パッケージを追加します。
Docker Compose は、複数コンテナーの Docker アプリケーションを定義および実行するためのツールです。 YAML ファイルを使用してアプリケーションのサービス、ネットワーク、ボリュームを構成できるため、複雑なアプリケーションをローカルまたはさまざまな環境で管理およびデプロイすることが容易になります。
aspire add dockerAspire CLI は対話型です。追加する 📦 Aspire.Hosting.Docker バージョンに適切な検索結果を必ず選択してください。
aspire add azure-appcontainersAspire CLI は対話型です。追加する 📦 Aspire.Hosting.Azure.AppContainers バージョンに適切な検索結果を必ず選択してください。
追加の選択を求められた場合は、
aspire add コマンドの詳細については、参考資料 をご覧ください。
AppHost を更新する
Section titled “AppHost を更新する”AppHost で、適切な環境 API メソッドへの呼び出しを連鎖させて、ターゲットのデプロイメント環境を構成します。
var builder = DistributedApplication.CreateBuilder(args);
// 次の行を追加して、Docker Compose 環境を構成します。builder.AddDockerComposeEnvironment("env");
var apiService = builder.AddProject<Projects.AspireApp_ApiService>("apiservice") .WithHttpHealthCheck("/health");
builder.AddProject<Projects.AspireApp_Web>("webfrontend") .WithExternalHttpEndpoints() .WithHttpHealthCheck("/health") .WithReference(apiService) .WaitFor(apiService);
builder.Build().Run();AddDockerComposeEnvironment- デプロイ用に Docker Compose 環境を構成します。この呼び出しにより、デプロイの一部として AppHost 内のリソースをコンテナー化するサポートが暗黙的に追加されます。WithExternalHttpEndpoints- デプロイ時にリソースの HTTP エンドポイントを公開します。
var builder = DistributedApplication.CreateBuilder(args);
// 次の行を追加して、Azure App Container 環境を構成します。builder.AddAzureContainerAppEnvironment("env");
var apiService = builder.AddProject<Projects.AspireApp_ApiService>("apiservice") .WithHttpHealthCheck("/health");
builder.AddProject<Projects.AspireApp_Web>("webfrontend") .WithExternalHttpEndpoints() .WithHttpHealthCheck("/health") .WithReference(apiService) .WaitFor(apiService);
builder.Build().Run();AddAzureContainerAppEnvironment- デプロイ用に Azure App Container 環境を構成します。この呼び出しにより、デプロイの一部として AppHost 内のリソースをコンテナー化するサポートが暗黙的に追加されます。WithExternalHttpEndpoints- デプロイ時にリソースの HTTP エンドポイントを公開します。
AppHost で、適切な環境 API メソッドへの呼び出しを連鎖させて、ターゲットのデプロイメント環境を構成します。
import { function createBuilder(): IDistributedApplicationBuilder
Creates a new distributed application builder
createBuilder } from './.aspire/modules/aspire.mjs';
const const builder: IDistributedApplicationBuilder
builder = await function createBuilder(): IDistributedApplicationBuilder
Creates a new distributed application builder
createBuilder();
// 次の行を追加して、Docker Compose 環境を構成します。await const builder: IDistributedApplicationBuilder
builder.IDistributedApplicationBuilder.addDockerComposeEnvironment(name: string): DockerComposeEnvironmentResource
Adds a Docker Compose environment to the application model.
addDockerComposeEnvironment("env");
const const app: NodeAppResource
app = await const builder: IDistributedApplicationBuilder
builder .IDistributedApplicationBuilder.addNodeApp(name: string, appDirectory: string, scriptPath: string): NodeAppResource
Adds a node application to the application model. Node should be available on the PATH.
addNodeApp("app", "./api", "src/index.ts") .ExecutableResource.withHttpEndpoint(options?: { port?: number; targetPort?: number; name?: string; env?: string; isProxied?: boolean;} | undefined): NodeAppResource (+1 overload)
Adds an HTTP endpoint
withHttpEndpoint({ env?: string | undefined
env: "PORT" }) .ExecutableResource.withExternalHttpEndpoints(): NodeAppResource
Marks existing http or https endpoints on a resource as external.
withExternalHttpEndpoints();
const const frontend: ViteAppResource
frontend = await const builder: IDistributedApplicationBuilder
builder .IDistributedApplicationBuilder.addViteApp(name: string, appDirectory: string, options?: { runScriptName?: string;}): ViteAppResource (+1 overload)
Adds a Vite app to the distributed application builder.
addViteApp("frontend", "./frontend") .ExecutableResource.withReference(source: EndpointReference | string | uri, options?: { connectionName?: string; optional?: boolean; name?: string;} | undefined): ViteAppResource (+1 overload)
Adds a reference to another resource
withReference(const app: NodeAppResource
app) .ExecutableResource.waitFor(dependency: IResource | IResourceWithConnectionString, waitBehavior?: WaitBehavior): ViteAppResource
Waits for another resource to be ready
waitFor(const app: NodeAppResource
app);
await const app: NodeAppResource
app.IContainerFilesDestinationResource.publishWithContainerFiles(source: IResourceWithContainerFiles, destinationPath: string): NodeAppResource
Configures the resource to copy container files from the specified source resource during publishing.
publishWithContainerFiles(const frontend: ViteAppResource
frontend, "./static");
await const builder: IDistributedApplicationBuilder
builder.IDistributedApplicationBuilder.build(): DistributedApplication
Builds the distributed application
build().DistributedApplication.run(cancellationToken?: cancellationToken): void
Runs the distributed application
run();addDockerComposeEnvironment- デプロイ用に Docker Compose 環境を構成します。この呼び出しにより、デプロイの一部として AppHost 内のリソースをコンテナー化するサポートが暗黙的に追加されます。withExternalHttpEndpoints- デプロイ時にリソースの HTTP エンドポイントを公開します。
import { function createBuilder(): IDistributedApplicationBuilder
Creates a new distributed application builder
createBuilder } from './.aspire/modules/aspire.mjs';
const const builder: IDistributedApplicationBuilder
builder = await function createBuilder(): IDistributedApplicationBuilder
Creates a new distributed application builder
createBuilder();
// 次の行を追加して、Azure App Container 環境を構成します。await const builder: IDistributedApplicationBuilder
builder.IDistributedApplicationBuilder.addAzureContainerAppEnvironment(name: string): AzureContainerAppEnvironmentResource
Adds a container app environment resource to the distributed application builder.
addAzureContainerAppEnvironment("env");
const const app: NodeAppResource
app = await const builder: IDistributedApplicationBuilder
builder .IDistributedApplicationBuilder.addNodeApp(name: string, appDirectory: string, scriptPath: string): NodeAppResource
Adds a node application to the application model. Node should be available on the PATH.
addNodeApp("app", "./api", "src/index.ts") .ExecutableResource.withHttpEndpoint(options?: { port?: number; targetPort?: number; name?: string; env?: string; isProxied?: boolean;} | undefined): NodeAppResource (+1 overload)
Adds an HTTP endpoint
withHttpEndpoint({ env?: string | undefined
env: "PORT" }) .ExecutableResource.withExternalHttpEndpoints(): NodeAppResource
Marks existing http or https endpoints on a resource as external.
withExternalHttpEndpoints();
const const frontend: ViteAppResource
frontend = await const builder: IDistributedApplicationBuilder
builder .IDistributedApplicationBuilder.addViteApp(name: string, appDirectory: string, options?: { runScriptName?: string;}): ViteAppResource (+1 overload)
Adds a Vite app to the distributed application builder.
addViteApp("frontend", "./frontend") .ExecutableResource.withReference(source: EndpointReference | string | uri, options?: { connectionName?: string; optional?: boolean; name?: string;} | undefined): ViteAppResource (+1 overload)
Adds a reference to another resource
withReference(const app: NodeAppResource
app) .ExecutableResource.waitFor(dependency: IResource | IResourceWithConnectionString, waitBehavior?: WaitBehavior): ViteAppResource
Waits for another resource to be ready
waitFor(const app: NodeAppResource
app);
await const app: NodeAppResource
app.IContainerFilesDestinationResource.publishWithContainerFiles(source: IResourceWithContainerFiles, destinationPath: string): NodeAppResource
Configures the resource to copy container files from the specified source resource during publishing.
publishWithContainerFiles(const frontend: ViteAppResource
frontend, "./static");
await const builder: IDistributedApplicationBuilder
builder.IDistributedApplicationBuilder.build(): DistributedApplication
Builds the distributed application
build().DistributedApplication.run(cancellationToken?: cancellationToken): void
Runs the distributed application
run();addAzureContainerAppEnvironment- デプロイ用に Azure App Container 環境を構成します。この呼び出しにより、デプロイの一部として AppHost 内のリソースをコンテナー化するサポートが暗黙的に追加されます。withExternalHttpEndpoints- デプロイ時にリソースの HTTP エンドポイントを公開します。
アプリをデプロイする
Section titled “アプリをデプロイする”デプロイメント パッケージを追加し、AppHost を更新したので、Aspire アプリをデプロイできます。
Docker Compose にデプロイすると、コンテナー イメージが構築され、Docker Compose を使用してサービスがローカルで開始されます。
aspire deploy次の出力例を考えてみましょう。
Azure にデプロイする場合、aspire deploy コマンドは対話型です。プロンプトを回避するには (CI/CD での実行時など)、次の環境変数を設定します。
Azure__SubscriptionId: ターゲットの Azure サブスクリプション ID。Azure__Location: Azure リージョン (例: eastus)。Azure__ResourceGroup: 作成または再利用するリソース グループ名。
Azure App Containers にデプロイすると、コンテナー イメージが構築され、サービスが Azure App Containers にデプロイされます。
aspire deploy次の出力例を考えてみましょう。
aspire deploy を呼び出すと、Aspire CLI はリソースのコンテナー イメージを構築し、それらをターゲット環境 (該当する場合) にプッシュし、AppHost の構成に従ってリソースをデプロイします。
このコマンドに関する追加情報は、aspire deploy リファレンス ドキュメントに記載されています。
導入後の出力
Section titled “導入後の出力”デプロイメント後、Aspire CLI は、デプロイメント ターゲットに基づいて、指定された出力パス (または何も指定されていない場合はデフォルトの出力パス) にファイルのセットを書き込みます。これには、Docker Compose ファイル、Kubernetes マニフェスト、クラウド プロバイダー固有の構成ファイルなどのファイルが含まれる場合があります。
ディレクトリaspire-output
- .env
- .env.Production
- docker-compose.yaml
aspire-output ディレクトリには、生成された環境変数と Docker Compose 構成が含まれています。最も良い点は、これらのファイルは開発者にとっては不透明であるということです。自分で記述する必要はありません。
.env.Production ファイルには、アプリ イメージの名前が含まれています。
# apiservice のコンテナー イメージ名APISERVICE_IMAGE=apiservice:latest
# apiservice のデフォルトのコンテナー ポートAPISERVICE_PORT=8080
# Webフロントエンドのコンテナイメージ名WEBFRONTEND_IMAGE=webfrontend:latest
# WebフロントエンドのデフォルトのコンテナポートWEBFRONTEND_PORT=8080最後に、docker-compose.yaml ファイルは API とフロントエンドの両方のサービスを定義します。
services: env-dashboard: image: "mcr.microsoft.com/dotnet/nightly/aspire-dashboard:latest" expose: - "18888" - "18889" networks: - "aspire" restart: "always" apiservice: image: "${APISERVICE_IMAGE}" environment: OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES: "true" OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES: "true" OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY: "in_memory" ASPNETCORE_FORWARDEDHEADERS_ENABLED: "true" HTTP_PORTS: "${APISERVICE_PORT}" OTEL_EXPORTER_OTLP_ENDPOINT: "http://env-dashboard:18889" OTEL_EXPORTER_OTLP_PROTOCOL: "grpc" OTEL_SERVICE_NAME: "apiservice" expose: - "${APISERVICE_PORT}" networks: - "aspire" webfrontend: image: "${WEBFRONTEND_IMAGE}" environment: OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES: "true" OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES: "true" OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY: "in_memory" ASPNETCORE_FORWARDEDHEADERS_ENABLED: "true" HTTP_PORTS: "${WEBFRONTEND_PORT}" APISERVICE_HTTP: "http://apiservice:${APISERVICE_PORT}" services__apiservice__http__0: "http://apiservice:${APISERVICE_PORT}" APISERVICE_HTTPS: "https://apiservice:${APISERVICE_PORT}" OTEL_EXPORTER_OTLP_ENDPOINT: "http://env-dashboard:18889" OTEL_EXPORTER_OTLP_PROTOCOL: "grpc" OTEL_SERVICE_NAME: "webfrontend" ports: - "${WEBFRONTEND_PORT}" depends_on: apiservice: condition: "service_started" networks: - "aspire"networks: aspire: driver: "bridge"Azure App Containers にデプロイした後、Aspire CLI はデプロイ状態ファイルをローカル マシンに保存します。
ディレクトリ%USERPROFILE%
- .aspire/deployments/[AppHost-Sha256]/production.json
デプロイメント パッケージを追加し、AppHost を更新したので、Aspire アプリをデプロイできます。
Docker Compose にデプロイすると、コンテナー イメージが構築され、Docker Compose を使用してサービスがローカルで開始されます。
aspire deploy次の出力例を考えてみましょう。
Azure にデプロイする場合、aspire deploy コマンドは対話型です。プロンプトを回避するには (CI/CD での実行時など)、次の環境変数を設定します。
Azure__SubscriptionId: ターゲットの Azure サブスクリプション ID。Azure__Location: Azure リージョン (例: eastus)。Azure__ResourceGroup: 作成または再利用するリソース グループ名。
Azure App Containers にデプロイすると、コンテナー イメージが構築され、サービスが Azure App Containers にデプロイされます。
aspire deploy次の出力例を考えてみましょう。
aspire deploy を呼び出すと、Aspire CLI はリソースのコンテナー イメージを構築し、それらをターゲット環境 (該当する場合) にプッシュし、AppHost の構成に従ってリソースをデプロイします。
このコマンドに関する追加情報は、aspire deploy リファレンス ドキュメントに記載されています。
導入後の出力
Section titled “導入後の出力”デプロイメント後、Aspire CLI は、デプロイメント ターゲットに基づいて、指定された出力パス (または何も指定されていない場合はデフォルトの出力パス) にファイルのセットを書き込みます。これには、Docker Compose ファイル、Kubernetes マニフェスト、クラウド プロバイダー固有の構成ファイルなどのファイルが含まれる場合があります。
ディレクトリaspire-output
- .env
- .env.Production
- app.Dockerfile
- docker-compose.yaml
aspire-output ディレクトリには、生成された環境変数、app.Dockerfile、および Docker Compose 構成が含まれています。最も良い点は、これらのファイルは開発者にとっては不透明であるということです。自分で記述する必要はありません。
app.Dockerfile は、Express API を構築し、React フロントエンドも提供するためのマルチステージ Dockerfile として生成されます。
ARG FRONTEND_IMAGENAME=frontend:latest
FROM node:22-slim AS builder
WORKDIR /app
COPY package*.json ./RUN npm ci --production
COPY . .
FROM ${FRONTEND_IMAGENAME} AS frontend_stage
FROM node:22-slim AS app
COPY --from=frontend_stage /app/dist /app/./staticCOPY --from=builder /app /app
USER nodeWORKDIR /appENTRYPOINT ["node", "--import", "tsx", "src/index.ts"]最後に、docker-compose.yaml ファイルでサービスを定義します。
services: env-dashboard: image: "mcr.microsoft.com/dotnet/nightly/aspire-dashboard:latest" expose: - "18888" - "18889" networks: - "aspire" restart: "always" app: image: "${APP_IMAGE}" environment: PORT: "8000" OTEL_EXPORTER_OTLP_ENDPOINT: "http://env-dashboard:18889" OTEL_EXPORTER_OTLP_PROTOCOL: "grpc" OTEL_SERVICE_NAME: "app" ports: - "8000" networks: - "aspire"networks: aspire: driver: "bridge"Azure App Containers にデプロイした後、Aspire CLI はデプロイ状態ファイルをローカル マシンに保存します。
ディレクトリ$HOME
- .aspire/deployments/[AppHost-Sha256]/production.json
デプロイメントを確認する
Section titled “デプロイメントを確認する”デプロイメント後にアプリケーションが期待どおりに実行されていることを確認するには、以下で選択したデプロイメント ターゲットの手順に従ってください。
Docker Compose にデプロイする場合、aspire deploy コマンドはサービスが実行されている URL を表示します。デプロイメント出力で print-*-summary ステップを探します。これには、WithExternalHttpEndpoints で構成された各サービスのローカルホスト URL が表示されます。
デプロイメント出力には、次のような行が表示されます。
14:28:35 (print-env-dashboard-summary) i [INF] Successfully deployed env-dashboard to http://localhost:54633.14:28:35 (print-webfrontend-summary) i [INF] Successfully deployed webfrontend to http://localhost:54463.Web ブラウザを開き、Web フロントエンドに表示されている URL (http://localhost:54463 など) に移動して、デプロイされたアプリケーションを確認します。
フロントエンドは、ASP.NET Core Blazor アプリケーションに天気予報データを表示します。
Azure App Containers にデプロイする場合、デプロイ出力で提供される URL に移動することで、ASP.NET Core/Blazor アプリケーションが実行されていることを確認できます。出力内で次のような行を探します。
09:21:44 (print-webfrontend-summary) i [INF] Successfully deployed webfrontend to https://{NAME}.{LOCATION}.azurecontainerapps.ioWeb ブラウザを開いて指定された URL に移動し、デプロイされたアプリケーションを表示します。
フロントエンドは、ASP.NET Core Blazor アプリケーションに天気予報データを表示します。
デプロイメント後にアプリケーションが期待どおりに実行されていることを確認するには、以下で選択したデプロイメント ターゲットの手順に従ってください。
Docker Compose にデプロイする場合、aspire deploy コマンドはサービスが実行されている URL を表示します。デプロイメント出力で print-*-summary ステップを探します。これには、withExternalHttpEndpoints で構成された各サービスのローカルホスト URL が表示されます。
デプロイメント出力には、次のような行が表示されます。
13:24:13 (print-env-dashboard-summary) i [INF] Successfully deployed env-dashboard to http://localhost:54633.13:24:13 (print-app-summary) i [INF] Successfully deployed app to http://localhost:54463.Web ブラウザを開いて、アプリに表示されている URL (http://localhost:54463 など) に移動して、デプロイされたアプリケーションを確認します。
フロントエンドは、天気予報データを React テンプレートで表示します。この例では、API サービスと React フロントエンドの両方が同じ Docker コンテナ内で実行されています。
Azure App Containers にデプロイする場合、デプロイ出力で提供される URL に移動することで、Express/React アプリケーションが実行されていることを確認できます。出力内で次のような行を探します。
09:25:29 (print-app-summary) i [INF] Successfully deployed app to https://{NAME}.{LOCATION}.azurecontainerapps.ioWeb ブラウザを開いて指定された URL に移動し、デプロイされたアプリケーションを表示します。
フロントエンドは、天気予報データを React テンプレートで表示します。この例では、API サービスと React フロントエンドの両方が同じ Docker コンテナ内で実行されています。
リソースをクリーンアップする
Section titled “リソースをクリーンアップする”アプリケーションをデプロイした後、不必要なコストの発生やローカル システム リソースの消費を避けるために、リソースをクリーンアップすることが重要です。
aspire destroy を使用して、デプロイされた環境を破棄します。このコマンドはデプロイメントを検出し、削除される内容を表示し、続行する前に確認を求めるプロンプトを表示します。
aspire destroy関連する基本的な概念について詳しくは、パイプラインとアプリのトポロジ を参照してください。
最初の Aspire アプリを構築し、本番環境にデプロイしました。ここで、「これらすべてのサービスが実際に正しく連携して動作することを確認するにはどうすればよいでしょうか?」と疑問に思われるかもしれません。そこで統合テストの出番です。Aspire を使用すると、サービス間通信やリソースの依存関係など、アプリケーション スタック全体を簡単にテストできます。方法を学ぶ準備はできましたか? 最初のテストを作成する
アプリケーションをデプロイした後、不必要なコストの発生やローカル システム リソースの消費を避けるために、リソースをクリーンアップすることが重要です。
aspire destroy を使用して、デプロイされた環境を破棄します。このコマンドはデプロイメントを検出し、削除される内容を表示し、続行する前に確認を求めるプロンプトを表示します。
aspire destroy関連する基本的な概念について詳しくは、パイプラインとアプリのトポロジ を参照してください。
最初の Aspire アプリを構築し、本番環境にデプロイしました。ここで、「これらすべてのサービスが実際に正しく連携して動作することを確認するにはどうすればよいでしょうか?」と疑問に思われるかもしれません。そこで統合テストの出番です。Aspire を使用すると、サービス間通信やリソースの依存関係など、アプリケーション スタック全体を簡単にテストできます。方法を学ぶ準備はできましたか? 最初のテストを作成する