Подготовка локальных Azure
.NET .NET Aspire упрощает разработку локальных облачных приложений с помощью привлекательной модели узла приложения. Эта модель позволяет локально запускать приложение с той же конфигурацией и службами, что и в Azure. В этой статье вы узнаете, как настраивать ресурсы Azure из вашей локальной среды разработки посредством узла приложения .NET.NET Aspire.
Заметка
Чтобы быть ясным, ресурсы подготавливаются в Azure, но процесс подготовки инициируется из локальной среды разработки. Чтобы оптимизировать локальный интерфейс разработки, рекомендуется использовать эмулятор или контейнеры при наличии. Дополнительные сведения см. в разделе Типичный интерфейс разработчика.
Требования
В этой статье предполагается, что у вас есть Azure учетная запись и подписка. Если у вас нет учетной записи Azure, вы можете бесплатно создать её на сайте Azure. Для правильной работы функций подготовки необходимо пройти аутентификацию с помощью Azure. Убедитесь, что установлен Azure Developer CLI. Кроме того, необходимо указать некоторые значения конфигурации, чтобы логика развертывания могла создавать ресурсы от вашего имени.
API подготовки узла приложений
Хост приложения предоставляет набор API-интерфейсов для выражения ресурсов Azure. Эти API доступны в качестве методов расширения в библиотеках размещения .NET AspireAzure, тем самым расширяя интерфейс IDistributedApplicationBuilder. При добавлении Azure ресурсов на узел приложения они автоматически добавят соответствующие функции обеспечения. Другими словами, вам не нужно напрямую вызывать API обеспечения.
При запуске хоста приложения выполняется следующая логика подготовки:
- Раздел конфигурации
Azure
проверен. - Когда имеется недопустимость, вывод панели мониторинга и хоста приложения предоставляет подсказки о том, чего не хватает. Дополнительные сведения см. в подсказках о недостающих значениях конфигурации.
- Если допустимые Azure ресурсы подготавливаются условно:
- Если развертывание Azure для данного ресурса не существует, оно создается и настраивается как развертывание.
- Конфигурация указанного развертывания помечена контрольной суммой в качестве средства для поддержки предоставления ресурсов строго по мере необходимости.
Использование существующих ресурсов Azure
Хост приложения автоматически управляет предоставлением ресурсов Azure. При первом запуске узла приложения он подготавливает ресурсы, указанные в узле приложения. Последующие запуски не подготавливают ресурсы повторно, если конфигурация узла приложения не изменяется.
Если вы уже подготовили Azure ресурсы за пределами узла приложения и хотите их использовать, укажите строку подключения с API AddConnectionString, как это показано в следующем примере Azure Key Vault.
// Service registration
var secrets = builder.ExecutionContext.IsPublishMode
? builder.AddAzureKeyVault("secrets")
: builder.AddConnectionString("secrets");
// Service consumption
builder.AddProject<Projects.ExampleProject>()
.WithReference(secrets)
В приведенном выше фрагменте кода показано, как добавить Azure Key Vault в хост приложения. API AddAzureKeyVault используется для добавления Azure Key Vault в хост приложения. API AddConnectionString
используется для предоставления строки подключения узлу приложения.
Кроме того, для некоторых Azure ресурсов вы можете выбрать вариант использования их в качестве эмулятора с помощью API RunAsEmulator
. Этот API доступен для интеграций хранилищ Azure Cosmos DB и Azure. Например, чтобы запустить AzureAzure Cosmos DB в качестве эмулятора, можно использовать следующий фрагмент кода:
var cosmos = builder.AddAzureCosmosDB("cosmos")
.RunAsEmulator();
API RunAsEmulator настраивает ресурс Azure Cosmos DB для эмулирования с помощью эмулятора Azure Cosmos DB с API NoSQL.
.NET Aspire Azure интеграции хостинга
Если вы используете Azure ресурсы в хостинге приложения, вы используете одну или несколько .NET AspireAzure интеграций размещения. Эти библиотеки хостинга предоставляют методы расширения интерфейсу IDistributedApplicationBuilder для добавления Azure ресурсов в хост приложения.
Конфигурация
При использовании Azure ресурсов в локальной среде разработки необходимо указать необходимые значения конфигурации. Значения конфигурации указываются в разделе Azure
:
-
SubscriptionId
: идентификатор подписки Azure. -
AllowResourceGroupCreation
: логическое значение, указывающее, следует ли создавать новую группу ресурсов. -
ResourceGroup
: имя используемой группы ресурсов. -
Location
: используемый регион Azure.
Рассмотрим следующий пример конфигурации appsettings.json:
{
"Azure": {
"SubscriptionId": "<Your subscription id>",
"AllowResourceGroupCreation": true,
"ResourceGroup": "<Valid resource group name>",
"Location": "<Valid Azure location>"
}
}
Важный
Рекомендуется хранить эти значения в виде секретов приложения. Дополнительные сведения см. в разделе Управление секретами приложений.
После настройки необходимых значений можно начать подготовку Azure ресурсов в локальной среде разработки.
Azure подготовка хранилища учетных данных
Хост приложения .NET Aspire использует хранилище учетных данных для проверки подлинности и авторизации ресурса Azure. В зависимости от вашей подписки, для сценариев предоставления услуг в многопользовательской среде может потребоваться соответствующий репозиторий учетных данных.
С 📦Aspire. Хостинг.Azure установлен пакет NuGet и если узел приложения зависит от Azure ресурсов, то хранилище учетных данных по умолчанию Azure зависит от DefaultAzureCredential. Чтобы изменить это поведение, можно задать значение хранилища учетных данных в файле appsettings.json, как показано в следующем примере:
{
"Azure": {
"CredentialSource": "AzureCli"
}
}
Как и для всех параметров конфигурации, их можно настроить с помощью альтернативных поставщиков, например пользовательских секретов или переменных среды. Значение Azure:CredentialSource
можно задать одним из следующих значений:
-
AzureCli
: делегаты AzureCliCredential. -
AzurePowerShell
: делегаты AzurePowerShellCredential. -
VisualStudio
: делегирует полномочия VisualStudioCredential. -
VisualStudioCode
: делегаты VisualStudioCodeCredential. -
AzureDeveloperCli
: делегаты AzureDeveloperCliCredential. -
InteractiveBrowser
: делегаты в InteractiveBrowserCredential.
Совет
Дополнительные сведения о проверке подлинности и авторизации пакета SDK Azure см. в цепочках учетных данных в библиотеке удостоверений Azure для .NET.
Поддержка оснащения
В Visual Studioвы можете использовать подключенные службы для настройки по умолчанию параметров подготовки Azure. Выберите проект хоста приложения, щелкните правой кнопкой мыши на узле подключенных служб и выберите Azure настройки резервирования ресурсов:
Откроется диалоговое окно, где можно настроить параметры подготовки Azure, как показано на следующем снимке экрана.
Отсутствие подсказок для значений конфигурации
Если раздел конфигурации SubscriptionId
, пытаясь использовать ресурс Azure Key Vault. Страница
панель мониторинга
Кроме того, журналы консоли отображают эти сведения, а также рассмотрим следующий снимок экрана:
Известные ограничения
После распределения ресурсов Azure таким образом, необходимо вручную очистить ресурсы на портале Azure, так как .NET Aspire не предоставляет встроенного механизма для удаления ресурсов Azure. Самый простой способ добиться этого — удалить настроенную группу ресурсов. Это можно сделать на портале Azure или с помощью интерфейса командной строки Azure:
az group delete --name <ResourceGroupName>
Замените <ResourceGroupName>
именем группы ресурсов, которую вы хотите удалить. Дополнительные сведения см. в статье az group delete.
.NET Aspire