Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte o formátu manifestu Aspire . Tento článek slouží jako referenční příručka pro tvůrce nástrojů pro nasazení, což pomáhá při vytváření nástrojů pro nasazování Aspire projektů na konkrétních hostitelských platformách, ať už místně nebo v cloudu.
Aspire zjednodušuje místní vývojové prostředí tím, že pomáhá spravovat vzájemné závislosti mezi integracemi aplikací. Pro zjednodušení nasazení aplikací můžou projekty Aspire generovat manifest všech prostředků definovaných jako JSON formátovaný soubor.
Vygenerování manifestu
K vygenerování manifestu se vyžaduje platný Aspire projekt. Začněte vytvořením Aspire projektu pomocí aspire-starter.NET šablony:
dotnet new aspire-starter --use-redis-cache `
-o AspireApp && `
cd AspireApp
Generování manifestu se dosahuje spuštěním dotnet build se zvláštním cílem:
dotnet run --project AspireApp.AppHost\AspireApp.AppHost.csproj `
--publisher manifest `
--output-path ../aspire-manifest.json
Spropitné
--output-path podporuje relativní cesty. Předchozí příkaz používá ../aspire-manifest.json k umístění souboru manifestu do kořenového adresáře projektu.
Další informace naleznete v tématu dotnet run. Předchozí příkaz vytvoří následující výstup:
Building...
info: Aspire.Hosting.Publishing.ManifestPublisher[0]
Published manifest to: .\AspireApp.AppHost\aspire-manifest.json
Vygenerovaný soubor je Aspire manifest a používá ho nástroje k podpoře nasazení do cílových cloudových prostředí.
Poznámka
Manifest můžete také vygenerovat jako součást spouštěcího profilu. Zvažte následující launchSettings.json:
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"generate-manifest": {
"commandName": "Project",
"launchBrowser": false,
"dotnetRunMessages": true,
"commandLineArgs": "--publisher manifest --output-path aspire-manifest.json"
}
}
}
Základní formát manifestu
Publikování manifestu z výchozí počáteční šablony pro Aspire vytvoří následující výstup JSON:
{
"resources": {
"cache": {
"type": "container.v0",
"connectionString": "{cache.bindings.tcp.host}:{cache.bindings.tcp.port}",
"image": "redis:7.2.4",
"bindings": {
"tcp": {
"scheme": "tcp",
"protocol": "tcp",
"transport": "tcp",
"containerPort": 6379
}
}
},
"apiservice": {
"type": "project.v0",
"path": "../AspireApp.ApiService/AspireApp.ApiService.csproj",
"env": {
"OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES": "true",
"OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES": "true"
},
"bindings": {
"http": {
"scheme": "http",
"protocol": "tcp",
"transport": "http"
},
"https": {
"scheme": "https",
"protocol": "tcp",
"transport": "http"
}
}
},
"webfrontend": {
"type": "project.v0",
"path": "../AspireApp.Web/AspireApp.Web.csproj",
"env": {
"OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES": "true",
"OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES": "true",
"ConnectionStrings__cache": "{cache.connectionString}",
"APISERVICE_HTTP": "{apiservice.bindings.http.url}",
"APISERVICE_HTTPS": "{apiservice.bindings.https.url}",
"services__apiservice__http__0": "{apiservice.bindings.http.url}",
"services__apiservice__https__0": "{apiservice.bindings.https.url}"
},
"bindings": {
"http": {
"scheme": "http",
"protocol": "tcp",
"transport": "http"
},
"https": {
"scheme": "https",
"protocol": "tcp",
"transport": "http"
}
}
}
}
}
Formát manifestu JSON se skládá z jednoho objektu nazývaného resources, který obsahuje vlastnost pro každý prostředek zadaný v Program.cs (argument name pro každý název se používá jako vlastnost pro každý podřízený objekt prostředku v JSON).
Připojovací řetězec a odkazy na vazby
V předchozím příkladu existují dva zdroje projektu a jeden Redis prostředek mezipaměti. Webová
Tato závislost je známá, protože proměnné prostředí pro webfrontend obsahují zástupné symboly, které odkazují na dva další prostředky:
"env": {
// ... other environment variables omitted for clarity
"ConnectionStrings__cache": "{cache.connectionString}",
"APISERVICE_HTTP": "{apiservice.bindings.http.url}",
"APISERVICE_HTTPS": "{apiservice.bindings.https.url}",
"services__apiservice__http__0": "{apiservice.bindings.http.url}",
"services__apiservice__https__0": "{apiservice.bindings.https.url}"
},
Na apiservice prostředek se odkazuje webfrontend pomocí volání WithReference(apiservice) v souboru AppHost AppHost.cs a redis odkazuje se pomocí volání WithReference(cache):
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedis("cache");
var apiService = builder.AddProject<Projects.AspireApp_ApiService>("apiservice");
builder.AddProject<Projects.AspireApp_Web>("webfrontend")
.WithReference(cache)
.WithReference(apiService);
builder.Build().Run();
Odkazy mezi typy zdrojů projektu mají za následek zjišťování služby proměnné vložené do odkazujícího projektu. Odkazy na dobře známé typy odkazů, jako je Redis výsledek vkládání připojovacích řetězců.
Další informace o tom, jak fungují prostředky v modelu aplikace a odkazy mezi nimi, najdete v přehleduAspire orchestrace.
Struktura zástupného řetězce
Zástupné řetězce odkazují na strukturu manifestu Aspire :
Poslední segment zástupného řetězce (url v tomto případě) vygeneruje nástroj, který manifest zpracovává. V zástupném řetězci je možné použít několik přípon:
-
connectionString: Pro dobře známé typy prostředků, jako je Redis. Nástroje pro nasazení překládají prostředek v nejvhodnější infrastruktuře pro cílové cloudové prostředí a poté vytvoří Aspire kompatibilní připojovací řetězec, který bude spotřebovává aplikace používat. Vcontainer.v0zdrojích může být poleconnectionStringpřítomno a explicitně zadáno. Jde o podporu scénářů, kdy se na typ prostředku kontejneru odkazuje pomocí rozšíření WithReference, ale chcete ho explicitně hostovat jako kontejner. -
url: Pro odkazy typu service-to-service, kde je vyžadována správně formátovaná adresa URL. Nástroj pro nasazení vytvoříurlna základě schématu, protokolu a přenosu definovaného v manifestu a základní topologii výpočetních/síťových prostředků, která byla nasazena. -
host: Segment hostitele adresy URL. -
port: Segment portu adresy URL.
Typy prostředků
Každý zdroj má type pole. Když nástroj pro nasazení přečte manifest, měl by přečíst typ a ověřit, jestli může manifest správně zpracovat.
Aspire Během období preview mají všechny typy prostředků příponuv0, která označuje, že se můžou změnit. Vzhledem k Aspire tomu, že přístupy k vydání v1 přípony se použijí k označení, že struktura manifestu pro tento typ prostředku by měla být považována za stabilní (následné aktualizace odpovídajícím způsobem zvýší číslo verze).
Běžná pole zdrojů
Pole type je jediné pole, které je společné pro všechny typy zdrojů, ale project.v0, container.v0a executable.v0 typy zdrojů také sdílejí env a bindings pole.
Poznámka
Typ prostředku executable.v0 není v manifestu plně implementovaný kvůli nedostatku nástrojů ve scénářích nasazení. Další informace o kontejnerizaci spustitelných souborů naleznete v tématu Dockerfile typy prostředků.
Typ pole env je mapování základního klíče/hodnoty, kde hodnoty můžou obsahovat zástupné řetězce.
Vazby jsou zadány v poli bindings s každou vazbou obsaženou v jejím vlastním poli pod objektem bindingsJSON. Pole vynechaná manifestem Aspirebindings v uzlu zahrnují:
-
scheme: Jedna z následujících hodnottcp,udp,httpnebohttps. -
protocol: Jedna z následujících hodnottcpneboudp -
transport: Stejné jakoscheme, ale používá se k nejednoznačnosti mezihttpahttp2. -
containerPort: Nepovinný, pokud je vynechán výchozí hodnota portu 80.
Pole inputs
Některé zdroje generují pole inputs. Toto pole slouží k zadání vstupních parametrů pro prostředek. Pole inputs je objekt JSON, kde každá vlastnost je vstupním parametrem, který se používá v rozlišení struktury zástupného symbolu. Prostředky, které mají connectionString, například můžou použít pole inputs k určení password připojovacího řetězce:
"connectionString": "Host={<resourceName>.bindings.tcp.host};Port={<resourceName>.bindings.tcp.port};Username=admin;Password={<resourceName>.inputs.password};"
Zástupný symbol připojovacího řetězce odkazuje na vstupní parametr password z pole inputs:
"inputs": {
"password": {
"type": "string",
"secret": true,
"default": {
"generate": {
"minLength": 10
}
}
}
}
Předchozí fragment kódu JSON zobrazuje pole inputs zdroje, který má pole connectionString. Vstupní parametr password je typ řetězce a je označený jako tajný kód. Pole default slouží k zadání výchozí hodnoty vstupního parametru. V tomto případě se výchozí hodnota vygeneruje pomocí pole generate s náhodným řetězcem minimální délky.
Předdefinované prostředky
Následující tabulka obsahuje seznam typů prostředků, které jsou explicitně generovány Aspire a rozšířeními vyvinutými týmem Aspire:
Typy prostředků nezávislé na cloudu
Tyto prostředky jsou k dispozici v 📦Aspire. Hostování balíčku NuGet
| Využití modelu aplikace | Typ prostředku manifestu | Odkaz na nadpis |
|---|---|---|
| AddContainer | container.v0 |
typ prostředku kontejneru |
PublishAsDockerFile |
dockerfile.v0 |
Dockerfile typy prostředků |
| AddDatabase | value.v0 |
MongoDB Server typy prostředků |
| AddMongoDB | container.v0 |
MongoDB typy prostředků |
| AddDatabase | value.v0 |
MySQL Server typy prostředků |
| AddMySql | container.v0 |
MySQL typy prostředků |
| AddDatabase | value.v0 |
Postgres typy prostředků |
| AddPostgres | container.v0 |
Postgres typy prostředků |
| AddProject | project.v0 |
typ zdroje projektu |
| AddRabbitMQ | container.v0 |
RabbitMQ typy prostředků |
| AddRedis | container.v0 |
Redis typ prostředku |
| AddDatabase | value.v0 |
SQL Server typy prostředků |
| AddSqlServer | container.v0 |
SQL Server typy prostředků |
Typ zdroje projektu
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
var apiservice = builder.AddProject<Projects.AspireApp_ApiService>("apiservice");
Příklad manifestu:
"apiservice": {
"type": "project.v0",
"path": "../AspireApp.ApiService/AspireApp.ApiService.csproj",
"env": {
"OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES": "true",
"OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES": "true"
},
"bindings": {
"http": {
"scheme": "http",
"protocol": "tcp",
"transport": "http"
},
"https": {
"scheme": "https",
"protocol": "tcp",
"transport": "http"
}
}
}
Typ prostředku kontejneru
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddContainer("mycontainer", "myimage")
.WithEnvironment("LOG_LEVEL", "WARN")
.WithHttpEndpoint(3000);
Příklad manifestu:
{
"resources": {
"mycontainer": {
"type": "container.v0",
"image": "myimage:latest",
"env": {
"LOG_LEVEL": "WARN"
},
"bindings": {
"http": {
"scheme": "http",
"protocol": "tcp",
"transport": "http",
"containerPort": 3000
}
}
}
}
}
typy prostředků Dockerfile
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddNodeApp("nodeapp", "../nodeapp/app.js")
.WithHttpEndpoint(hostPort: 5031, env: "PORT")
.PublishAsDockerFile();
Spropitné
K vygenerování typu prostředku PublishAsDockerFile v manifestu se vyžaduje volání Dockerfile a tato metoda rozšíření je k dispozici pouze u typu ExecutableResource.
Příklad manifestu:
{
"resources": {
"nodeapp": {
"type": "dockerfile.v0",
"path": "../nodeapp/Dockerfile",
"context": "../nodeapp",
"env": {
"NODE_ENV": "development",
"PORT": "{nodeapp.bindings.http.port}"
},
"bindings": {
"http": {
"scheme": "http",
"protocol": "tcp",
"transport": "http",
"containerPort": 5031
}
}
}
}
}
typy prostředků Postgres
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddPostgres("postgres1")
.AddDatabase("shipping");
Příklad manifestu:
{
"resources": {
"postgres1": {
"type": "container.v0",
"connectionString": "Host={postgres1.bindings.tcp.host};Port={postgres1.bindings.tcp.port};Username=postgres;Password={postgres1.inputs.password}",
"image": "postgres:16.2",
"env": {
"POSTGRES_HOST_AUTH_METHOD": "scram-sha-256",
"POSTGRES_INITDB_ARGS": "--auth-host=scram-sha-256 --auth-local=scram-sha-256",
"POSTGRES_PASSWORD": "{postgres1.inputs.password}"
},
"bindings": {
"tcp": {
"scheme": "tcp",
"protocol": "tcp",
"transport": "tcp",
"containerPort": 5432
}
},
"inputs": {
"password": {
"type": "string",
"secret": true,
"default": {
"generate": {
"minLength": 10
}
}
}
}
},
"shipping": {
"type": "value.v0",
"connectionString": "{postgres1.connectionString};Database=shipping"
}
}
}
typy prostředků RabbitMQ
RabbitMQ se modeluje jako prostředek kontejneru container.v0. Následující ukázka ukazuje, jak se přidají do modelu aplikace.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddRabbitMQ("rabbitmq1");
Předchozí kód vytvoří následující manifest:
{
"resources": {
"rabbitmq1": {
"type": "container.v0",
"connectionString": "amqp://guest:{rabbitmq1.inputs.password}@{rabbitmq1.bindings.tcp.host}:{rabbitmq1.bindings.tcp.port}",
"image": "rabbitmq:3",
"env": {
"RABBITMQ_DEFAULT_USER": "guest",
"RABBITMQ_DEFAULT_PASS": "{rabbitmq1.inputs.password}"
},
"bindings": {
"tcp": {
"scheme": "tcp",
"protocol": "tcp",
"transport": "tcp",
"containerPort": 5672
}
},
"inputs": {
"password": {
"type": "string",
"secret": true,
"default": {
"generate": {
"minLength": 10
}
}
}
}
}
}
}
typ prostředku Redis
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddRedis("redis1");
Příklad manifestu:
{
"resources": {
"redis1": {
"type": "container.v0",
"connectionString": "{redis1.bindings.tcp.host}:{redis1.bindings.tcp.port}",
"image": "redis:7.2.4",
"bindings": {
"tcp": {
"scheme": "tcp",
"protocol": "tcp",
"transport": "tcp",
"containerPort": 6379
}
}
}
}
}
typy prostředků SQL Server
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddSqlServer("sql1")
.AddDatabase("shipping");
Příklad manifestu:
{
"resources": {
"sql1": {
"type": "container.v0",
"connectionString": "Server={sql1.bindings.tcp.host},{sql1.bindings.tcp.port};User ID=sa;Password={sql1.inputs.password};TrustServerCertificate=true",
"image": "mcr.microsoft.com/mssql/server:2022-latest",
"env": {
"ACCEPT_EULA": "Y",
"MSSQL_SA_PASSWORD": "{sql1.inputs.password}"
},
"bindings": {
"tcp": {
"scheme": "tcp",
"protocol": "tcp",
"transport": "tcp",
"containerPort": 1433
}
},
"inputs": {
"password": {
"type": "string",
"secret": true,
"default": {
"generate": {
"minLength": 10
}
}
}
}
},
"shipping": {
"type": "value.v0",
"connectionString": "{sql1.connectionString};Database=shipping"
}
}
}
typy prostředků MongoDB
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddMongoDB("mongodb1")
.AddDatabase("shipping");
Příklad manifestu:
{
"resources": {
"mongodb1": {
"type": "container.v0",
"connectionString": "mongodb://{mongodb1.bindings.tcp.host}:{mongodb1.bindings.tcp.port}",
"image": "mongo:7.0.5",
"bindings": {
"tcp": {
"scheme": "tcp",
"protocol": "tcp",
"transport": "tcp",
"containerPort": 27017
}
}
},
"shipping": {
"type": "value.v0",
"connectionString": "{mongodb1.connectionString}/shipping"
}
}
}
typy prostředků MySQL
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddMySql("mysql1")
.AddDatabase("shipping");
Příklad manifestu:
{
"resources": {
"mysql1": {
"type": "container.v0",
"connectionString": "Server={mysql1.bindings.tcp.host};Port={mysql1.bindings.tcp.port};User ID=root;Password={mysql1.inputs.password}",
"image": "mysql:8.3.0",
"env": {
"MYSQL_ROOT_PASSWORD": "{mysql1.inputs.password}"
},
"bindings": {
"tcp": {
"scheme": "tcp",
"protocol": "tcp",
"transport": "tcp",
"containerPort": 3306
}
},
"inputs": {
"password": {
"type": "string",
"secret": true,
"default": {
"generate": {
"minLength": 10
}
}
}
}
},
"shipping": {
"type": "value.v0",
"connectionString": "{mysql1.connectionString};Database=shipping"
}
}
}
Azure– konkrétní typy prostředků
V 📦Aspirejsou k dispozici následující zdroje informací. Hostování.Azure balíčku NuGet.
| Využití modelu aplikace | Typ prostředku manifestu | Odkaz na nadpis |
|---|---|---|
| AddAzureAppConfiguration | azure.bicep.v0 |
typy prostředků Azure App Configuration |
| AddAzureKeyVault | azure.bicep.v0 |
Azure Key Vault typ prostředku |
AddAzureRedis |
azure.bicep.v0 |
Azure Redis typy prostředků |
| AddAzureServiceBus | azure.bicep.v0 |
Azure Service Bus typ prostředku |
AddAzureSqlServer(...) |
azure.bicep.v0 |
Azure typy prostředků SQL |
AddAzureSqlServer(...).AddDatabase(...) |
value.v0 |
Azure typy prostředků SQL |
AddAzurePostgresFlexibleServer(...) |
azure.bicep.v0 |
Azure Postgres typy prostředků |
AddAzurePostgresFlexibleServer(...).AddDatabase(...) |
value.v0 |
Azure Postgres typy prostředků |
| AddAzureStorage | azure.storage.v0 |
Azure typy prostředků úložiště |
| AddBlobs | value.v0 |
Azure typy prostředků úložiště |
| AddQueues | value.v0 |
Azure typy prostředků úložiště |
| AddTables | value.v0 |
Azure typy prostředků úložiště |
typ prostředku Azure Key Vault
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzureKeyVault("keyvault1");
Příklad manifestu:
{
"resources": {
"keyvault1": {
"type": "azure.bicep.v0",
"connectionString": "{keyvault1.outputs.vaultUri}",
"path": "aspire.hosting.azure.bicep.keyvault.bicep",
"params": {
"principalId": "",
"principalType": "",
"vaultName": "keyvault1"
}
}
}
}
typ prostředku Azure Service Bus
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzureServiceBus("sb1")
.AddTopic("topic1", [])
.AddTopic("topic2", [])
.AddQueue("queue1")
.AddQueue("queue2");
Příklad manifestu:
{
"resources": {
"sb1": {
"type": "azure.bicep.v0",
"connectionString": "{sb1.outputs.serviceBusEndpoint}",
"path": "aspire.hosting.azure.bicep.servicebus.bicep",
"params": {
"serviceBusNamespaceName": "sb1",
"principalId": "",
"principalType": "",
"queues": [
"queue1",
"queue2"
],
"topics": [
{
"name": "topic1",
"subscriptions": []
},
{
"name": "topic2",
"subscriptions": []
}
]
}
}
}
}
Azure typy prostředků úložiště
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
var storage = builder.AddAzureStorage("images");
storage.AddBlobs("blobs");
storage.AddQueues("queues");
storage.AddTables("tables");
Příklad manifestu:
{
"resources": {
"images": {
"type": "azure.bicep.v0",
"path": "aspire.hosting.azure.bicep.storage.bicep",
"params": {
"principalId": "",
"principalType": "",
"storageName": "images"
}
},
"blobs": {
"type": "value.v0",
"connectionString": "{images.outputs.blobEndpoint}"
},
"queues": {
"type": "value.v0",
"connectionString": "{images.outputs.queueEndpoint}"
},
"tables": {
"type": "value.v0",
"connectionString": "{images.outputs.tableEndpoint}"
}
}
}
typ prostředku AzureRedis
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzureRedis("azredis1");
Příklad manifestu:
{
"resources": {
"azredis": {
"type": "azure.bicep.v0",
"connectionString": "{azredis.outputs.connectionString}",
"path": "azredis.module.bicep",
"params": {
"principalId": "",
"principalName": ""
}
}
}
}
typ prostředku Azure App Configuration
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzureAppConfiguration("appconfig1");
Příklad manifestu:
{
"resources": {
"appconfig1": {
"type": "azure.bicep.v0",
"connectionString": "{appconfig1.outputs.appConfigEndpoint}",
"path": "aspire.hosting.azure.bicep.appconfig.bicep",
"params": {
"configName": "appconfig1",
"principalId": "",
"principalType": ""
}
}
}
}
Azure typy prostředků SQL
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzureSqlServer("sql")
.AddDatabase("inventory");
Příklad manifestu:
{
"resources": {
"sql": {
"type": "azure.bicep.v0",
"connectionString": "Server=tcp:{sql.outputs.sqlServerFqdn},1433;Encrypt=True;Authentication=\u0022Active Directory Default\u0022",
"path": "sql.module.bicep",
"params": {
"principalId": "",
"principalName": ""
}
},
"inventory": {
"type": "value.v0",
"connectionString": "{sql.connectionString};Database=inventory"
}
}
}
typy prostředků AzurePostgres
Příklad kódu:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzurePostgresFlexibleServer("postgres")
.AddDatabase("db");
Příklad manifestu:
{
"resources": {
"postgres": {
"type": "azure.bicep.v0",
"connectionString": "{postgres.outputs.connectionString}",
"path": "postgres.module.bicep",
"params": {
"principalId": "",
"principalType": "",
"principalName": ""
}
},
"db": {
"type": "value.v0",
"connectionString": "{postgres.connectionString};Database=db"
}
}
}
Typy prostředků podporované v Azure Developer CLI
Azure Developer CLI (azd) je nástroj, který lze použít k nasazení Aspire projektů do Azure Container Apps. U typu prostředku azure.bicep.v0 je možné namapovat typy kontejnerů prostředků nezávislé na cloudu na Azure–specifické prostředky. Následující tabulka uvádí typy prostředků podporované v Azure Developer CLI:
| Jméno | Cloudové nezávislé rozhraní API | Azure Rozhraní api |
|---|---|---|
| Redis | AddRedis | AddAzureRedis |
| Postgres | AddPostgres | AddAzurePostgresFlexibleServer |
| SQL Server | AddSqlServer | AddAzureSqlServer |
Pokud jsou prostředky nakonfigurované jako Azure prostředky, v manifestu se vygeneruje typ azure.bicep.v0 prostředku. Další informace najdete v tématu Nasazení Aspire projektu pomocí Azure Container AppsAzure Developer CLI (podrobného průvodce).