Aracılığıyla paylaş


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.

Hangi kaynakların hangi yer tutucu dizelere katkıda bulunu olduğunu gösteren diyagram.

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:

Bildirim JSON yapısının yer tutucu dizelerle nasıl eş olduğunu gösteren diyagram.

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 kaynaklarda connectionString 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öre url 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.v0ve 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 .

alan türü, değerlerinyer tutucu dizeleri içerebileceği temel bir anahtar/değer eşlemesidir.

Bağlamalar, bindings alanında, her bağlamanın bindingsJSON 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, udpveya httphttpsaşağıdaki değerlerden biri.
  • protocol: tcp veya udp aşağıdaki değerlerden biri
  • transport: schemeile aynıdır, ancak http ile http2arası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, connectionStringolan 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.v0kapsayı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ıntılı kılavuz)kullanarak için proje dağıtma .

Ayrıca bkz.