Dağıtım aracı oluşturucuları için bildirim biçimini .NET.NET Aspire
Bu makalede, .NET.NET Aspire bildirim biçimi hakkında bilgi ediniyorsunuz. Bu makale, dağıtım aracı oluşturucuları için bir başvuru kılavuzu görevi görür ve şirket içinde veya bulutta .NET.NET Aspire projeleri belirli barındırma platformlarına dağıtmak için araç oluşturulmasına yardımcı olabilir.
.NET .NET Aspire , uygulama tümleştirmeleri arasındaki bağımlılıkların yönetilmesine yardımcı olarak yerel geliştirme deneyimini basitleştirir. Uygulamaların dağıtımını basitleştirmeye yardımcı olmak için .NET Aspire projeler, JSON biçimlendirilmiş dosya olarak tanımlanan tüm kaynakların bildirimini oluşturabilir.
Bildirim oluşturma
Bildirim oluşturmak için geçerli bir .NET.NET Aspire projesi gereklidir. Başlamak için .NET.NET Aspire şablonunu kullanarak bir aspire-starter
.NET projesi oluşturun:
dotnet new aspire-starter --use-redis-cache `
-o AspireApp && `
cd AspireApp
Bildirim oluşturma işlemi, özel bir hedefle dotnet build
çalıştırılarak elde edilir:
dotnet run --project AspireApp.AppHost\AspireApp.AppHost.csproj `
--publisher manifest `
--output-path ../aspire-manifest.json
Bahşiş
--output-path
göreli yolları destekler. Önceki komut, bildirim dosyasını proje dizininin köküne yerleştirmek için ../aspire-manifest.json
kullanır.
Daha fazla bilgi için bkz. dotnet run. Önceki komut aşağıdaki çıkışı oluşturur:
Building...
info: Aspire.Hosting.Publishing.ManifestPublisher[0]
Published manifest to: .\AspireApp.AppHost\aspire-manifest.json
Oluşturulan dosya .NET.NET Aspire bildirimidir ve araçlar tarafından hedef bulut ortamlarına dağıtmayı desteklemek için kullanılır.
Not
Ayrıca başlatma profilinin bir parçası olarak bir bildirim oluşturabilirsiniz. Aşağıdaki launchSettings.jsongöz önünde bulundurun:
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"generate-manifest": {
"commandName": "Project",
"launchBrowser": false,
"dotnetRunMessages": true,
"commandLineArgs": "--publisher manifest --output-path aspire-manifest.json"
}
}
}
Temel bildirim biçimi
.NET Aspire için varsayılan başlangıç şablonundan bildirimi yayımlamak aşağıdaki JSON çıkışını oluşturur:
{
"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}",
"services__apiservice__0": "{apiservice.bindings.http.url}",
"services__apiservice__1": "{apiservice.bindings.https.url}"
},
"bindings": {
"http": {
"scheme": "http",
"protocol": "tcp",
"transport": "http"
},
"https": {
"scheme": "https",
"protocol": "tcp",
"transport": "http"
}
}
}
}
}
bildirim biçimi JSON, resources
'de belirtilen her kaynak için bir özellik içeren Program.csadlı tek bir nesneden oluşur (her adın name
bağımsız değişkeni, JSONiçindeki alt kaynak nesnelerinin her biri için özellik olarak kullanılır).
Bağlantı dizesi ve bağlama başvuruları
Önceki örnekte iki proje kaynağı ve bir Redis önbellek kaynağı vardır. webfrontend hem apiservice (proje) hem de önbellek (Redis) kaynaklarına bağlıdır.
webfrontend ortam değişkenleri diğer iki kaynağa başvuran yer tutucular içerdiğinden bu bağımlılık bilinir:
"env": {
// ... other environment variables omitted for clarity
"ConnectionStrings__cache": "{cache.connectionString}",
"services__apiservice__0": "{apiservice.bindings.http.url}",
"services__apiservice__1": "{apiservice.bindings.https.url}"
},
apiservice
kaynağına, uygulama ana bilgisayarı webfrontend
dosyasındaki çağrı WithReference(apiservice)
kullanılarak Program.cs ve redis
çağrı WithReference(cache)
kullanılarak başvurulur:
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();
Proje kaynak türleri arasındaki başvurular, başvuran projeye eklenen hizmet bulma değişkenleriyle sonuçlanır. Redis gibi iyi bilinen başvuru türlerine yapılan başvurular, bağlantı dizelerinin eklenmiş olmasıyla sonuçlanır.
Uygulama modelindeki kaynakların ve bunlar arasındaki başvuruların nasıl çalıştığı hakkında daha fazla bilgi için bkz.düzenlemeye genel bakış
Yer tutucu dize yapısı
Yer tutucu dizeler .NET.NET Aspire bildiriminin yapısına başvurur:
Yer tutucu dizenin son kesimi (bu örnekteurl
), bildirimi işleyen araç tarafından oluşturulur. Yer tutucu dizesinde kullanılabilecek birkaç sonek vardır:
-
connectionString
: Redisgibi iyi bilinen kaynak türleri için. Dağıtım araçları, kaynağı hedef bulut ortamı için en uygun altyapıya çevirir ve ardından kullanan uygulamanın kullanması için .NET.NET Aspire uyumlu bir bağlantı dizesi oluşturur.container.v0
kaynaklardaconnectionString
alanı mevcut olabilir ve açıkça belirtilebilir. Bu, bir kapsayıcı kaynak türüne WithReference uzantısı kullanılarak başvurulduğu ancak açıkça kapsayıcı olarak barındırılmasının istendiği senaryoları desteklemektir. -
url
: İyi biçimlendirilmiş bir URL'nin gerekli olduğu hizmet-hizmet başvuruları için. Dağıtım aracı, bildirimde tanımlanan şema, protokol ve aktarım ile dağıtılan temel işlem/ağ topolojisine göreurl
oluşturur. -
host
: URL'nin konak kesimi. -
port
: URL'nin bağlantı noktası kesimi.
Kaynak türleri
Her kaynağın bir type
alanı vardır. Bir dağıtım aracı bildirimi okuduğunda, bildirimi doğru işleyip işleyemeyeceğini doğrulamak için türü okumalıdır.
.NET
.NET Aspire önizleme döneminde, tüm kaynak türlerinin değiştirilebilir olduğunu belirten bir v0
soneki vardır.
.NET
.NET Aspire yaklaşımları yayınlanırken, bu kaynak türü için bildirimin yapısının kararlı olarak kabul edilmesi gerektiğini belirtmek için bir v1
soneki kullanılacaktır (sonraki güncelleştirmeler sürüm numarasını buna göre artırır).
Ortak kaynak alanları
type
alanı tüm kaynak türlerinde ortak olan tek alandır, ancak project.v0
, container.v0
ve executable.v0
kaynak türleri de env
ve bindings
alanlarını paylaşır.
Not
executable.v0
kaynak türü, dağıtım senaryolarında yardımcı program olmaması nedeniyle bildirimde tam olarak uygulanmaz. Yürütülebilir dosyaları kapsayıcıya alma hakkında daha fazla bilgi için bkz.kaynak türlerini
Bağlamalar, bindings
alanında, her bağlamanın bindings
JSON nesnesinin altındaki kendi alanında yer aldığı şekilde belirtilir.
.NET düğümündeki .NET Aspirebindings
bildirimi tarafından atılan alanlar şunlardır:
-
scheme
:tcp
,udp
veyahttp
https
aşağıdaki değerlerden biri. -
protocol
:tcp
veyaudp
aşağıdaki değerlerden biri -
transport
:scheme
ile aynıdır, ancakhttp
ilehttp2
arasında ayrım yapmak için kullanılır. -
containerPort
: İsteğe bağlı, atlanırsa varsayılan olarak 80 numaralı bağlantı noktası kullanılır.
inputs
alanı
Bazı kaynaklar bir inputs
alanı oluşturur. Bu alan, kaynağın giriş parametrelerini belirtmek için kullanılır.
inputs
alanı, her özelliğin yer tutucu yapı çözünürlüğünde kullanılan bir giriş parametresi olduğu bir JSON nesnesidir. Örneğin, connectionString
olan kaynaklar, bağlantı dizesi için bir inputs
belirtmek üzere password
alanını kullanabilir:
"connectionString": "Host={<resourceName>.bindings.tcp.host};Port={<resourceName>.bindings.tcp.port};Username=admin;Password={<resourceName>.inputs.password};"
Bağlantı dizesi yer tutucusu, password
alanındaki inputs
giriş parametresine başvurur:
"inputs": {
"password": {
"type": "string",
"secret": true,
"default": {
"generate": {
"minLength": 10
}
}
}
}
Yukarıdaki JSON kod parçacığı, inputs
alanı olan bir kaynağın connectionString
alanını gösterir.
password
giriş parametresi bir dize türüdür ve gizli dizi olarak işaretlenir.
default
alanı, giriş parametresi için varsayılan bir değer belirtmek için kullanılır. Bu durumda, varsayılan değer en az uzunlukta rastgele dizeyle generate
alanı kullanılarak oluşturulur.
Yerleşik kaynaklar
Aşağıdaki tablo, .NET Aspire ekibi tarafından geliştirilen .NET Aspire ve uzantılar tarafından açıkça oluşturulan kaynak türlerinin listesidir:
Buluttan bağımsız kaynak türleri
Bu kaynaklar 📦Aspireiçinde kullanılabilir. NuGet paketini barındırma.
Uygulama modeli kullanımı | Bildirim kaynağı türü | Başlık bağlantısı |
---|---|---|
AddContainer | container.v0 |
Kapsayıcı kaynak türü |
PublishAsDockerFile |
dockerfile.v0 |
kaynak türlerini |
AddDatabase | value.v0 |
MongoDB Server kaynak türleri |
AddMongoDB | container.v0 |
kaynak türlerini |
AddDatabase | value.v0 |
kaynak türlerini |
AddMySql | container.v0 |
kaynak türlerini |
AddDatabase | value.v0 |
kaynak türlerini |
AddPostgres | container.v0 |
kaynak türlerini |
AddProject | project.v0 |
Project kaynak türü |
AddRabbitMQ | container.v0 |
kaynak türlerini |
AddRedis | container.v0 |
Redis kaynak türü |
AddDatabase | value.v0 |
kaynak türlerini |
AddSqlServer | container.v0 |
kaynak türlerini |
Proje kaynak türü
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
var apiservice = builder.AddProject<Projects.AspireApp_ApiService>("apiservice");
Örnek bildirim:
"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"
}
}
}
Kapsayıcı kaynak türü
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddContainer("mycontainer", "myimage")
.WithEnvironment("LOG_LEVEL", "WARN")
.WithHttpEndpoint(3000);
Örnek bildirim:
{
"resources": {
"mycontainer": {
"type": "container.v0",
"image": "myimage:latest",
"env": {
"LOG_LEVEL": "WARN"
},
"bindings": {
"http": {
"scheme": "http",
"protocol": "tcp",
"transport": "http",
"containerPort": 3000
}
}
}
}
}
kaynak türlerini Dockerfile
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddNodeApp("nodeapp", "../nodeapp/app.js")
.WithHttpEndpoint(hostPort: 5031, env: "PORT")
.PublishAsDockerFile();
Bahşiş
bildirimde PublishAsDockerFile
kaynak türünü oluşturmak için Dockerfile çağrısı gereklidir ve bu uzantı yöntemi yalnızca ExecutableResource türünde kullanılabilir.
Örnek bildirim:
{
"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
}
}
}
}
}
kaynak türlerini Postgres
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddPostgres("postgres1")
.AddDatabase("shipping");
Örnek bildirim:
{
"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"
}
}
}
kaynak türlerini RabbitMQ
RabbitMQ
container.v0
kapsayıcı kaynağı olarak modellenmiştir. Aşağıdaki örnekte uygulama modeline nasıl eklendiği gösterilmektedir.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddRabbitMQ("rabbitmq1");
Önceki kod aşağıdaki bildirimi oluşturur:
{
"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
}
}
}
}
}
}
}
kaynak türünü Redis
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddRedis("redis1");
Örnek bildirim:
{
"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
}
}
}
}
}
kaynak türlerini SQL Server
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddSqlServer("sql1")
.AddDatabase("shipping");
Örnek bildirim:
{
"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"
}
}
}
kaynak türlerini MongoDB
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddMongoDB("mongodb1")
.AddDatabase("shipping");
Örnek bildirim:
{
"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"
}
}
}
kaynak türlerini MySQL
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddMySql("mysql1")
.AddDatabase("shipping");
Örnek bildirim:
{
"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özel kaynak türleri
aşağıdaki kaynaklar 📦Aspireiçinde kullanılabilir. Konukseverlik. NuGet paketiniAzure.
Uygulama Modeli kullanımı | Bildirim kaynağı türü | Başlık bağlantısı |
---|---|---|
AddAzureAppConfiguration | azure.bicep.v0 |
Azure Uygulama Yapılandırması kaynak türleri |
AddAzureKeyVault | azure.bicep.v0 |
Azure Key Vault kaynak türü |
AddAzureRedis |
azure.bicep.v0 |
Azure Redis kaynak türleri |
AddAzureServiceBus | azure.bicep.v0 |
Azure Service Bus kaynak türü |
AddAzureSqlServer(...) |
azure.bicep.v0 |
sql kaynak türlerini |
AddAzureSqlServer(...).AddDatabase(...) |
value.v0 |
sql kaynak türlerini |
AddAzurePostgresFlexibleServer(...) |
azure.bicep.v0 |
Azure Postgres kaynak türleri |
AddAzurePostgresFlexibleServer(...).AddDatabase(...) |
value.v0 |
Azure Postgres kaynak türleri |
AddAzureStorage | azure.storage.v0 |
Azure Depolama kaynak türleri |
AddBlobs | value.v0 |
Azure Depolama kaynak türleri |
AddQueues | value.v0 |
Azure Depolama kaynak türleri |
AddTables | value.v0 |
Azure Depolama kaynak türleri |
kaynak türünü Azure Key Vault
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzureKeyVault("keyvault1");
Örnek bildirim:
{
"resources": {
"keyvault1": {
"type": "azure.bicep.v0",
"connectionString": "{keyvault1.outputs.vaultUri}",
"path": "aspire.hosting.azure.bicep.keyvault.bicep",
"params": {
"principalId": "",
"principalType": "",
"vaultName": "keyvault1"
}
}
}
}
kaynak türünü Azure Service Bus
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzureServiceBus("sb1")
.AddTopic("topic1", [])
.AddTopic("topic2", [])
.AddQueue("queue1")
.AddQueue("queue2");
Örnek bildirim:
{
"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": []
}
]
}
}
}
}
depolama kaynak türlerini Azure
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
var storage = builder.AddAzureStorage("images");
storage.AddBlobs("blobs");
storage.AddQueues("queues");
storage.AddTables("tables");
Örnek bildirim:
{
"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}"
}
}
}
Azure Redis kaynak türü
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzureRedis("azredis1");
Örnek bildirim:
{
"resources": {
"azredis": {
"type": "azure.bicep.v0",
"connectionString": "{azredis.outputs.connectionString}",
"path": "azredis.module.bicep",
"params": {
"principalId": "",
"principalName": ""
}
}
}
}
Azure Uygulama Yapılandırması kaynak türü
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzureAppConfiguration("appconfig1");
Örnek bildirim:
{
"resources": {
"appconfig1": {
"type": "azure.bicep.v0",
"connectionString": "{appconfig1.outputs.appConfigEndpoint}",
"path": "aspire.hosting.azure.bicep.appconfig.bicep",
"params": {
"configName": "appconfig1",
"principalId": "",
"principalType": ""
}
}
}
}
SQL kaynak türlerini Azure
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzureSqlServer("sql")
.AddDatabase("inventory");
Örnek bildirim:
{
"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"
}
}
}
kaynak türlerini AzurePostgres
Örnek kod:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAzurePostgresFlexibleServer("postgres")
.AddDatabase("db");
Örnek bildirim:
{
"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"
}
}
}
Azure Developer CLI desteklenen kaynak türleri
Azure Developer CLI (azd), .NET Aspire projeleri Azure Container Appsdağıtmak için kullanılabilecek bir araçtır.
azure.bicep.v0
kaynak türüyle, buluta özgü kaynak kapsayıcı türleri Azureözel kaynaklarla eşlenebilir. Aşağıdaki tabloda, Azure Developer CLIdesteklenen kaynak türleri listelenmektedir:
Ad | Buluttan bağımsız API | Azure API |
---|---|---|
Redis | AddRedis | AddAzureRedis |
Postgres | AddPostgres | AddAzurePostgresFlexibleServer |
SQL Server | AddSqlServer | AddAzureSqlServer |
Azure kaynak olarak yapılandırılan kaynaklar bildirimde azure.bicep.v0
kaynak türü oluşturulur. Daha fazla bilgi için bkz.
Ayrıca bkz.
.NET Aspire