Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ortamlar, uygulamanın çalışması için bağlam sağlar. Parametreler, uygulamayı çalıştırırken dış değer isteme özelliğini ifade eder. Parametreler, yerel olarak çalıştırılırken uygulamaya değer sağlamak veya dağıtım sırasında değer istemde bulunabilmek için kullanılabilir. Bunlar, gizli diziler, bağlantı dizeleri ve ortamlar arasında farklılık gösterebilecek diğer yapılandırma değerleri gibi çok çeşitli senaryoları modellemek için kullanılabilir.
Parametre değerleri
Parametre değerleri, uygulama konağı yapılandırmasının Parameters
bölümünden okunur ve yerel olarak çalışırken uygulamaya değer sağlamak için kullanılır. Uygulamayı yayımladığınızda, değer yapılandırılmamışsa bunu sağlamanız istenir.
Aşağıdaki örnek uygulama konağı Program.cs dosyasını göz önünde bulundurun:
var builder = DistributedApplication.CreateBuilder(args);
// Add a parameter named "example-parameter-name"
var parameter = builder.AddParameter("example-parameter-name");
builder.AddProject<Projects.ApiService>("api")
.WithEnvironment("ENVIRONMENT_VARIABLE_NAME", parameter);
Yukarıdaki kod, uygulama konağına example-parameter-name
adlı bir parametre ekler. Parametresi daha sonra Projects.ApiService
projesine ENVIRONMENT_VARIABLE_NAME
adlı bir ortam değişkeni olarak geçirilir.
Parametre değerlerini yapılandırma
Oluşturucuya parametre eklemek, yapılandırmanın yalnızca bir yönüdür. Parametresinin değerini de sağlamanız gerekir. Değer, uygulama ana bilgisayarı yapılandırma dosyasında sağlanabilir, kullanıcı gizli değeri olarak ayarlanabilir veya başka bir standart yapılandırma ile yapılandırılabilir. Parametre değerleri bulunamadığında, uygulama yayımlanırken bunlar istenir.
appsettings.jsonaşağıdaki uygulama ana bilgisayar yapılandırma dosyasını göz önünde bulundurun:
{
"Parameters": {
"example-parameter-name": "local-value"
}
}
Önceki JSON, uygulama ana bilgisayar yapılandırmasının Parameters
bölümünde bir parametreyi yapılandırır. Başka bir deyişle, bu uygulama ana bilgisayarı, parametreyi yapılandırıldığı gibi bulabilir. Örneğin, IDistributedApplicationBuilder.Configuration'ye gidip Parameters:example-parameter-name
anahtarını kullanarak değere erişebilirsiniz.
var builder = DistributedApplication.CreateBuilder(args);
var key = $"Parameters:example-parameter-name";
var value = builder.Configuration[key]; // value = "local-value"
Önemli
Ancak, bu yapılandırma değerine uygulama ana bilgisayarında kendiniz erişmeniz gerekmez. Bunun yerine, parametre değerini bağımlı kaynaklara geçirmek için ParameterResource kullanılır. Çoğu zaman ortam değişkeni olarak kullanılır.
Bildirimde parametre gösterimi
.NET
.NET Aspire, uygulamanın kaynaklarını ve ilişkilerini göstermek için dağıtım bildirimi kullanır. Parametreler bildirimde parameter.v0
adlı yeni bir ilkel olarak temsil edilir:
{
"resources": {
"example-parameter-name": {
"type": "parameter.v0",
"value": "{value.inputs.value}",
"inputs": {
"value": {
"type": "string"
}
}
}
}
}
Gizli değerler
Parametreler sırları modellemek için kullanılabilir. Bir parametre gizli dizi olarak işaretlendiğinde, bildirimde değerin gizli dizi olarak ele alınması gerektiğine ilişkin bir ipucu görevi görür. Uygulamayı yayımladığınızda, değerin girilmesi istenir ve güvenli bir konumda saklanır. Uygulamayı yerel olarak çalıştırdığınızda, değer uygulama ana bilgisayar yapılandırmasının Parameters
bölümünden okunur.
Aşağıdaki örnek uygulama konağı Program.cs dosyasını göz önünde bulundurun:
var builder = DistributedApplication.CreateBuilder(args);
// Add a secret parameter named "secret"
var secret = builder.AddParameter("secret", secret: true);
builder.AddProject<Projects.ApiService>("api")
.WithEnvironment("SECRET", secret);
builder.Build().Run();
Şimdi aşağıdaki uygulama ana bilgisayar yapılandırma dosyasını appsettings.jsongöz önünde bulundurun:
{
"Parameters": {
"secret": "local-secret"
}
}
Bildirim gösterimi aşağıdaki gibidir:
{
"resources": {
"value": {
"type": "parameter.v0",
"value": "{value.inputs.value}",
"inputs": {
"value": {
"type": "string",
"secret": true
}
}
}
}
}
Bağlantı dizesi değerleri
Parametreler, bağlantı dizelerini modellemek için kullanılabilir. Uygulamayı yayımladığınızda, değerin girilmesi istenir ve güvenli bir konumda saklanır. Uygulamayı yerel olarak çalıştırdığınızda, değer uygulama ana bilgisayar yapılandırmasının ConnectionStrings
bölümünden okunur.
Uyarı
Bağlantı dizeleri veritabanı bağlantıları, ileti aracıları, uç nokta URI'leri ve diğer hizmetler gibi çok çeşitli bağlantı bilgilerini temsil etmek için kullanılır. .NET .NET Aspire sıfatında, her tür bağlantı bilgisini temsil etmek için "bağlantı dizesi" terimi kullanılır.
Aşağıdaki örnek uygulama konağı Program.cs dosyasını göz önünde bulundurun:
var builder = DistributedApplication.CreateBuilder(args);
var redis = builder.AddConnectionString("redis");
builder.AddProject<Projects.WebApplication>("api")
.WithReference(redis)
.WaitFor(redis);
builder.Build().Run();
Uyarı
WaitFor Bağlantı dizesiyle kullanmak, bağlantı dizesinin bağlanacağı kaynağı örtük olarak bekler.
Şimdi aşağıdaki uygulama ana bilgisayar yapılandırma dosyasını appsettings.jsongöz önünde bulundurun:
{
"ConnectionStrings": {
"redis": "local-connection-string"
}
}
Bağlantı dizeleriyle ve bunların dağıtım bildirimindeki gösterimiyle ilgili daha fazla bilgi için bkz.Bağlantı dizesi ve bağlama başvuruları
Başvuru ifadeleriyle bağlantı dizeleri oluşturma
Parametrelerden bir bağlantı dizesi oluşturmak ve hem geliştirme hem de üretimde doğru şekilde işlenmiş olduğundan emin olmak istiyorsanız, ile kullanın AddConnectionStringReferenceExpression.
Örneğin, bağlantı dizesinin küçük bir bölümünü depolayan bir gizli dizi parametreniz varsa, eklemek için şu kodu kullanın:
var secretKey = builder.AddParameter("secretkey", secret: true);
var connectionString = builder.AddConnectionString(
"composedconnectionstring",
ReferenceExpression.Create($"Endpoint=https://api.contoso.com/v1;Key={secretKey}"));
builder.AddProject<Projects.AspireReferenceExpressions_CatalogAPI>("catalogapi")
.WithReference(connectionString)
.WaitFor(connectionString);
Kaynaklar tarafından .NET.NET Aspire oluşturulan bağlantı dizelerine metin eklemek için başvuru ifadelerini de kullanabilirsiniz. Örneğin, çözümünüze .NET Aspire bir PostgreSQL kaynak eklediğinizde, veritabanı sunucusu bir kapsayıcıda çalışır ve bunun için bir bağlantı dizesi formüle edilir. Aşağıdaki kodda, ek özellik Include Error Details
, kullanan projelere geçirilmeden önce bu bağlantı dizesine eklenir:
var postgres = builder.AddPostgres("postgres");
var database = postgres.AddDatabase("db");
var pgConnectionString = builder.AddConnectionString(
"pgdatabase",
ReferenceExpression.Create($"{database};Include Error Details=true"));
builder.AddProject<Projects.AspireReferenceExpressions_CustomerAPI>("customerapi")
.WithReference(pgConnectionString)
.WaitFor(pgConnectionString);
Parametre örneği
Bir parametreyi ifade etmek için aşağıdaki örnek kodu göz önünde bulundurun:
var builder = DistributedApplication.CreateBuilder(args);
var db = builder.AddSqlServer("sql")
.PublishAsConnectionString()
.AddDatabase("db");
var insertionRows = builder.AddParameter("insertionRows");
builder.AddProject<Projects.Parameters_ApiService>("api")
.WithEnvironment("InsertionRows", insertionRows)
.WithReference(db);
builder.Build().Run();
Aşağıdaki adımlar gerçekleştirilir:
-
SQL Server adlı bir
sql
kaynağı ekler ve bunu bağlantı dizesi olarak yayımlar. -
db
adlı bir veritabanı ekler. -
insertionRows
adlı bir parametre ekler. -
api
adlı bir proje ekler ve bunuProjects.Parameters_ApiService
proje kaynak türü-parametresiyle ilişkilendirir. -
insertionRows
parametresiniapi
projesine geçirir. -
db
veritabanına başvurur.
insertionRows
parametresinin değeri, Parameters
uygulama ana bilgisayar yapılandırma dosyasının appsettings.json bölümünden okunur:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning",
"Aspire.Hosting.Dcp": "Warning"
}
},
"Parameters": {
"insertionRows": "1"
}
}
Parameters_ApiService
projesi insertionRows
parametresini tüketir.
Program.cs örnek dosyasını göz önünde bulundurun:
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
int insertionRows = builder.Configuration.GetValue<int>("InsertionRows", 1);
builder.AddServiceDefaults();
builder.AddSqlServerDbContext<MyDbContext>("db");
var app = builder.Build();
app.MapGet("/", async (MyDbContext context) =>
{
// You wouldn't normally do this on every call,
// but doing it here just to make this simple.
context.Database.EnsureCreated();
for (var i = 0; i < insertionRows; i++)
{
var entry = new Entry();
await context.Entries.AddAsync(entry);
}
await context.SaveChangesAsync();
var entries = await context.Entries.ToListAsync();
return new
{
totalEntries = entries.Count,
entries
};
});
app.Run();
Ayrıca bkz.
- dağıtım aracı oluşturucuları için
bildirim biçimi - Eğitici: Bir ASP.NET Core uygulamasını SQL Server'ye .NET Aspire ve Entity Framework Core kullanarak bağlamak
.NET Aspire