Opciones de configuración del motor de optimización de Azure
En este artículo se describen los escenarios avanzados para configurar o actualizar el motor de optimización de Azure (AOE).
Uso de un repositorio local
Si decide implementar todas las dependencias desde su propio repositorio local, debe publicar los archivos de solución en una dirección URL accesible públicamente. Debe asegurarse de que toda la estructura del proyecto de AOE esté disponible en la misma dirección URL base. No se admiten las direcciones URL basadas en tokens de SAS de la cuenta de almacenamiento.
.\Deploy-AzureOptimizationEngine.ps1 -TemplateUri <URL to the Bicep file (e.g., https://contoso.com/azuredeploy.bicep)> [-AzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>]
# Example - Deploying from a public endpoint
.\Deploy-AzureOptimizationEngine.ps1 -TemplateUri "https://contoso.com/azuredeploy.bicep"
# Example 2 - Deploying from a public endpoint, using resource tags
$tags = @{"CostCenter"="FinOps";"Environment"="Production"}
.\Deploy-AzureOptimizationEngine.ps1 -TemplateUri "https://contoso.com/azuredeploy.bicep" -ResourceTags $tags
Implementación silenciosa
Opcionalmente, también puede usar el SilentDeploymentSettingsPath
parámetro de entrada para implementar AOE de forma más automatizada.
El archivo que hace referencia debe ser un archivo JSON con los atributos necesarios definidos (todos obligatorios a menos que se especifique).
Un ejemplo del contenido de este archivo de implementación silenciosa es:
{
"SubscriptionId": "<<SubscriptionId>>",
"NamePrefix": "<<CustomNamePrefix>>", // prefix for all resources. Fill in 'EmptyNamePrefix' to specify the resource names
"WorkspaceReuse": "n", // y = reuse existing workspace, n = create new workspace
"ResourceGroupName": "<<CustomName>>-rg", // mandatory if NamePrefix is set to 'EmptyNamePrefix'
"StorageAccountName": "<<CustomName>>sa", // mandatory if NamePrefix is set to 'EmptyNamePrefix'
"AutomationAccountName": "<<CustomName>>-auto", // mandatory if NamePrefix is set to 'EmptyNamePrefix'
"SqlServerName": "<<CustomName>>-sql", // mandatory if NamePrefix is set to 'EmptyNamePrefix'
"SqlDatabaseName": "<<CustomName>>-db", // mandatory if NamePrefix is set to 'EmptyNamePrefix'
"WorkspaceName": "<<ExistingName>>", // mandatory if WorkspaceReuse is set to 'n'
"WorkspaceResourceGroupName": "<<ExistingName>>", // mandatory if workspaceReuse is set to 'n'
"DeployWorkbooks": "y", // y = deploy the workbooks, n = don't deploy the workbooks
"TargetLocation": "westeurope",
"DeployBenefitsUsageDependencies": "y", // deploy the dependencies for the Azure commitments workbooks (EA/MCA customers only + agreement administrator role required)
"CustomerType": "MCA", // mandatory if DeployBenefitsUsageDependencies is set to 'y', MCA/EA
"BillingAccountId": "<guid>:<guid>_YYYY-MM-DD", // mandatory if DeployBenefitsUsageDependencies is set to 'y', MCA or EA Billing Account ID
"BillingProfileId": "ABCD-DEF-GHI-JKL", // mandatory if CustomerType is set to 'MCA"
"CurrencyCode": "EUR" // mandatory if DeployBenefitsUsageDependencies is set to 'y'
}
Al implementar AOE de forma silenciosa, lo que suele ocurrir en flujos de trabajo de implementación continua automatizados, es posible que desee usar la autenticación de Microsoft Entra para los parámetros de Azure SQL. Por ejemplo, para conceder el rol de administrador de SQL a un grupo de identificadores de Microsoft Entra que tenga la entidad de servicio de automatización del flujo de trabajo como miembro. Este es un ejemplo:
.\Deploy-AzureOptimizationEngine.ps1 -SilentDeploymentSettingsPath "<path to deployment settings file>" -SqlAdminPrincipalType Group -SqlAdminPrincipalName "<Group Name>" -SqlAdminPrincipalObjectId "<Group Object GUID>"
Nota:
Al implementar AOE con identidades que no son de usuario (entidades de servicio), debe asegurarse de asignar una identidad del sistema a AOE SQL Server y concederle el Directory Readers
rol en microsoft Entra ID. Siga los pasos descritos en Entidades de servicio de Microsoft Entra con Azure SQL.
Habilitación de libros de compromisos de Azure
Para usar los libros que le permiten analizar el uso de los compromisos de Azure (, Reservations Usage
y Savings Plans Usage
) o calcular el efecto de tener otros compromisos de consumo (Benefits Simulation
y Reservations Potential
), debe configurar AOE y conceder privilegios a su identidad administrada en el nivel de contrato de consumo (Benefits Usage
EA o Contrato de cliente de Microsoft (MCA)). Si no pudo hacerlo durante la instalación o actualización, puede seguir ejecutando esos pasos de configuración adicionales, siempre que lo haga con un usuario que sea Colaborador en el grupo de recursos de AOE y tenga privilegios administrativos sobre el contrato de consumo (Administrador de inscripción empresarial para EA o Propietario del perfil de facturación para MCA). Solo tiene que usar el Setup-BenefitsUsageDependencies.ps1
script mediante la sintaxis siguiente y responder a las solicitudes de entrada:
./Setup-BenefitsUsageDependencies.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> [-AzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>]
Si tiene problemas con la ingesta de hojas de precios de Azure (debido al gran tamaño de la exportación de CVS), puede crear la siguiente variable de Azure Automation para filtrar en las regiones hoja de precios: AzureOptimization_PriceSheetMeterRegions
establezca en las regiones de facturación separadas por comas de las máquinas virtuales. Por ejemplo, Oeste de la UE, UE y Norte.
El libro de uso de reservas tiene un par de iconos de "Reservas sin usar" que requieren AOE para exportar datos de consumo en el ámbito ea/MCA (en lugar del ámbito de suscripción predeterminado). Puede cambiar al consumo de ámbito de EA/MCA mediante la creación o actualización de la AzureOptimization_ConsumptionScope
variable automation con BillingAccount
(EA/MCA, que requiere otro rol lector de cuenta de facturación concedido manualmente a la identidad administrada de AOE) o BillingProfile
(solo MCA) como valor. Esta opción puede generar una exportación de consumo único grande que podría provocar errores debido a la falta de memoria (a su vez requeriría la implementación de AOE con hybrid Worker).
Actualización de AOE
Si tiene una versión anterior de AOE y quiere actualizarla, es tan simple como volver a ejecutar el script de implementación. Use las opciones de nomenclatura de recursos que eligió en la implementación inicial. Vuelve a implementar la plantilla de ARM, agregando nuevos recursos y actualizando los existentes.
Sin embargo, si anteriormente personalizaba componentes como variables o programaciones de Automation, mejoraba el rendimiento de la ejecución de trabajos con Hybrid Worker o protegeba la solución con Private Link, debe ejecutar el script de implementación con el DoPartialUpgrade
modificador, por ejemplo:
.\Deploy-AzureOptimizationEngine.ps1 -DoPartialUpgrade
Con el DoPartialUpgrade
modificador, la implementación solo hará lo siguiente:
- Adición de nuevos contenedores de almacenamiento
- Actualizar o agregar runbooks de Automation
- Actualizar o agregar módulos de Automatización
- Adición de nuevas programaciones de Automation
- Adición de nuevas variables de Automation
- Actualización del modelo de base de datos SQL
- Actualización de libros de Log Analytics
Algunos clientes también pueden personalizar la implementación de SQL Server, por ejemplo, migrar de SQL Database a un Instancia administrada de SQL. No hay herramientas disponibles para ayudar a la migración, pero una vez que la migración de la base de datos se realiza manualmente, el script de actualización de AOE admite actualizaciones futuras DoPartialUpgrade
con el IgnoreNamingAvailabilityErrors
modificador (omite la validación de nomenclatura o existencia de SQL Server).
Contenido relacionado
Funcionalidades relacionadas de FinOps:
Productos relacionados:
Soluciones relacionadas: