Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Aspire tillhandahåller API:er för att anpassa hur dina program distribueras. Den här artikeln visar hur du använder dessa API:er för att konfigurera distributionsspecifika inställningar, inklusive dynamisk bildtaggning, resurskonfiguration och distributionsbeteenden.
Förutsättningar
- Aspire 9.5 eller senare
- Ett befintligt Aspire projekt
Information om hur du skapar ett Aspire projekt finns i Skapa din första Aspire app.
Märkning av dynamisk containerbild
Använd WithDeploymentImageTag-metoden för att generera containerbildstaggar dynamiskt vid distributionstillfället. Detta möjliggör flexibla versionshanteringsstrategier baserat på distributionskontext, git-incheckningar, tidsstämplar eller externa system.
AspireDen inbyggda Azure distribueraren använder taggen distributionsavbildning när avbildningar skickas till det fjärrcontainerregister som har etablerats för distributionen.
Grundläggande användning
Konfigurera statiska eller beräknade taggar för dina resurser:
var builder = DistributedApplication.CreateBuilder(args);
// Static tag
var api = builder.AddProject<Projects.Api>("api")
.WithDeploymentImageTag(() => "v1.2.3-stable");
// Dynamic tag with timestamp
var worker = builder.AddProject<Projects.Worker>("worker")
.WithDeploymentImageTag(() => $"build-{DateTime.UtcNow:yyyyMMdd-HHmm}");
builder.Build().Run();
Generering av asynkron tagg
Använd asynkrona callback-funktioner för komplexa taggenereringsscenarier.
var service = builder.AddProject<Projects.Service>("service")
.WithDeploymentImageTag(async context =>
{
// Fetch version from external API
var buildInfo = await GetBuildInfoFromApi();
return $"service-{buildInfo.Version}";
});
Använda taggar för alla resurser med eventing
Använd händelse-API:erna för att automatiskt tillämpa distributionsbildtaggar på alla resurser i ditt program. Den här metoden är användbar när du vill ha konsekvent taggning för alla containerbaserade resurser:
var builder = DistributedApplication.CreateBuilder(args);
// Subscribe to the BeforeStartEvent to configure all resources
builder.Eventing.Subscribe<BeforeStartEvent>(async (evt, ct) =>
{
var timestamp = DateTime.UtcNow.ToString("yyyyMMdd-HHmmss");
foreach (var resource in evt.Model.Resources)
{
builder.CreateResourceBuilder(resource).WithDeploymentImageTag((context) =>
{
var resourceName = resource.Name.ToLowerInvariant();
return $"{resourceName}-{timestamp}";
});
}
});
builder.Build().Run();
Anpassa Azure Bicep-resurser
Använd ConfigureInfrastructure metoden för att anpassa de underliggande Azure Bicep-mallarna som genereras av Aspire under distributionen. På så sätt kan du ändra Azure resursegenskaper, lägga till anpassade konfigurationer eller integrera med befintlig Azure infrastruktur.
Grundläggande anpassning av infrastruktur
Anpassa Azure resurser genom att ändra deras Bicep-egenskaper:
var builder = DistributedApplication.CreateBuilder(args);
// Customize Azure Service Bus configuration
var serviceBus = builder.AddAzureServiceBus("servicebus");
serviceBus.AddServiceBusQueue("queue1");
serviceBus.ConfigureInfrastructure(infrastructure =>
{
var queue = infrastructure.GetProvisionableResources().OfType<ServiceBusQueue>().Single(q => q.BicepIdentifier == "queue1");
queue.MaxDeliveryCount = 5;
queue.LockDuration = TimeSpan.FromMinutes(5);
});