Aprovisionamiento de Azure local
.NET .NET Aspire simplifica el desarrollo de aplicaciones nativas de la nube local con su modelo atractivo de host de aplicaciones. Este modelo permite ejecutar la aplicación localmente con la misma configuración y servicios que en Azure. En este artículo aprenderá a aprovisionar recursos de Azure desde el entorno de desarrollo local a través del host de aplicación .NET.NET Aspire.
Nota
Para ser claros, los recursos se aprovisionan en Azure, pero el proceso de aprovisionamiento se inicia desde el entorno de desarrollo local. Para optimizar la experiencia de desarrollo local, considere la posibilidad de usar el emulador o los contenedores cuando estén disponibles. Para obtener más información, consulte experiencia típica de desarrollador.
Requisitos
En este artículo se supone que tiene una cuenta y una suscripción de Azure. Si no tiene una cuenta de Azure, puede crear una gratuita en Azure Cuenta Gratuita. Para que la funcionalidad de aprovisionamiento funcione correctamente, deberá autenticarse con Azure. Asegúrese de que tiene instalado el Azure Developer CLI. Además, deberá proporcionar algunos valores de configuración para que la lógica de aprovisionamiento pueda crear recursos en su nombre.
API de aprovisionamiento de host de aplicaciones
El host de la aplicación proporciona un conjunto de APIs para expresar recursos Azure. Estas API están disponibles como métodos de extensión en .NET AspireAzure bibliotecas de hospedaje, ampliando la interfaz IDistributedApplicationBuilder. Al agregar Azure recursos al host de tu aplicación, agregarán implícitamente la funcionalidad de aprovisionamiento adecuada. En otras palabras, no es necesario llamar directamente a ninguna API de aprovisionamiento.
Cuando se inicia el host de la aplicación, se ejecuta la siguiente lógica de aprovisionamiento:
- La sección de configuración de
Azure
se valida. - Cuando son inválidos, la salida del panel y del host de la aplicación proporciona sugerencias sobre lo que falta. Para obtener más información, consulte Faltan sugerencias de valor de configuración.
- Cuando se aprovisionan condicionalmente los recursos de Azure válidos:
- Si no existe una implementación de Azure para un recurso determinado, se crea y configura como una implementación.
- La configuración de dicha implementación se marca con una suma de comprobación como medio para admitir el aprovisionamiento de recursos solo cuando sea necesario.
Uso de recursos de Azure existentes
El host de la aplicación administra automáticamente el aprovisionamiento de recursos de Azure. La primera vez que se ejecuta el host de la aplicación, aprovisiona los recursos especificados en el host de la aplicación. Las ejecuciones posteriores no vuelven a aprovisionar los recursos a menos que cambie la configuración del host de la aplicación.
Si ya ha aprovisionado Azure recursos fuera del host de la aplicación y quiere utilizarlos, puede proporcionar la cadena de conexión mediante la API AddConnectionString, tal como se muestra en el ejemplo de Azure Key Vault a continuación.
// Service registration
var secrets = builder.ExecutionContext.IsPublishMode
? builder.AddAzureKeyVault("secrets")
: builder.AddConnectionString("secrets");
// Service consumption
builder.AddProject<Projects.ExampleProject>()
.WithReference(secrets)
El fragmento de código anterior muestra cómo agregar un Azure Key Vault al host de la aplicación. La API de AddAzureKeyVault se usa para agregar el Azure Key Vault al host de la aplicación. La API de AddConnectionString
se usa para proporcionar la cadena de conexión al host de la aplicación.
Como alternativa, para algunos recursos de Azure, puede optar por ejecutarlos como emulador con la API de RunAsEmulator
. Esta API está disponible para las integraciones de Azure Cosmos DB y Azure Storage. Por ejemplo, para ejecutar AzureAzure Cosmos DB como emulador, puede usar el siguiente fragmento de código:
var cosmos = builder.AddAzureCosmosDB("cosmos")
.RunAsEmulator();
La API de RunAsEmulator configura un recurso de Azure Cosmos DB que se va a emular mediante el emulador de Azure Cosmos DB con la API noSQL.
.NET Aspire Azure integraciones de hospedaje
Si usa recursos de Azure en el host de la aplicación, está utilizando una o varias de las integraciones de alojamiento de .NET AspireAzure. Estas bibliotecas de hospedaje proporcionan métodos de extensión a la interfaz de IDistributedApplicationBuilder para agregar Azure recursos al host de la aplicación.
Configuración
Al utilizar los recursos Azure en el entorno de desarrollo local, debe proporcionar los valores de configuración necesarios. Los valores de configuración se especifican en la sección Azure
:
-
SubscriptionId
: identificador de suscripción de Azure. -
AllowResourceGroupCreation
: un valor booleano que indica si se va a crear un nuevo grupo de recursos. -
ResourceGroup
: el nombre del grupo de recursos que se va a usar. -
Location
: la región de Azure a utilizar.
Considere el siguiente ejemplo de configuración appsettings.json:
{
"Azure": {
"SubscriptionId": "<Your subscription id>",
"AllowResourceGroupCreation": true,
"ResourceGroup": "<Valid resource group name>",
"Location": "<Valid Azure location>"
}
}
Importante
Se recomienda almacenar estos valores como secretos de aplicación. Para obtener más información, consulte Administrar secretos de aplicación.
Después de configurar los valores necesarios, puedes iniciar la provisionación de Azure recursos en el entorno de desarrollo local.
Azure almacén de credenciales de aprovisionamiento
El host de aplicación de .NET Aspire usa un almacén de credenciales para Azure autenticación y autorización de recursos. En función de la suscripción, es posible que se necesite el almacén de credenciales correcto para escenarios de aprovisionamiento multiinquilino.
Con el paquete NuGet 📦Aspire.Hosting.Azure instalado y, si el host de la aplicación depende de recursos Azure, el almacén de credenciales predeterminado de Azure se basa en el DefaultAzureCredential. Para cambiar este comportamiento, puede establecer el valor del almacén de credenciales en el archivo appsettings.json, como se muestra en el ejemplo siguiente:
{
"Azure": {
"CredentialSource": "AzureCli"
}
}
Al igual que con todas las opciones basadas en la configuración de , puede configurarlas con proveedores alternativos, como secretos de usuario o variables de entorno . El valor de Azure:CredentialSource
se puede establecer en uno de los siguientes valores:
-
AzureCli
: delega al AzureCliCredential. -
AzurePowerShell
: delega en el AzurePowerShellCredential. -
VisualStudio
: delega al VisualStudioCredential. -
VisualStudioCode
: delegados al VisualStudioCodeCredential. -
AzureDeveloperCli
: delega al AzureDeveloperCliCredential. -
InteractiveBrowser
: se delega a InteractiveBrowserCredential.
Propina
Para obtener más información sobre la autenticación y autorización del SDK de Azure, consulte cadenas de credenciales de en la biblioteca de identidades de Azure para .NET.
Soporte de herramientas
En Visual Studio, puede usar Servicios Conectados para configurar los valores predeterminados de aprovisionamiento Azure. Seleccione el proyecto host de la aplicación, haga clic con el botón derecho en el nodo Servicios Conectados y seleccione Azure Configuración de aprovisionamiento de recursos.
Se abrirá un cuadro de diálogo en el que puede configurar las opciones de aprovisionamiento de Azure, como se muestra en la captura de pantalla siguiente:
Sugerencias de valores de configuración faltantes
Cuando falta la sección de configuración de Azure
, faltan valores o no son válidos, el panel de .NET.NET Aspire proporciona sugerencias útiles. Por ejemplo, considere un host de aplicación que carece del valor de configuración de SubscriptionId
mientras intenta usar un recurso de Azure Key Vault. La página Recursos de
Además, los registros de Console muestran esta información, tenga en cuenta la siguiente captura de pantalla:
Limitaciones conocidas
Después de aprovisionar los recursos Azure de esta manera, debe eliminar manualmente los recursos en el portal de Azure, ya que .NET Aspire no provee un mecanismo integrado para eliminar recursos de Azure. La manera más fácil de lograrlo es eliminar el grupo de recursos configurado. Esto se puede hacer en el portal Azure o usando la CLI Azure.
az group delete --name <ResourceGroupName>
Reemplace <ResourceGroupName>
por el nombre del grupo de recursos que desea eliminar. Para obtener más información, consulte el comando az group delete.