本文介绍设置或升级 Azure 优化引擎(AOE)的先进方案。
使用本地存储库
如果选择从自己的本地存储库部署所有依赖项,则必须将解决方案文件发布到可公开访问的 URL 中。 必须确保整个 AOE 项目结构在同一基 URL 中可用。 不支持基于存储帐户 SAS 令牌的 URL。
.\Deploy-AzureOptimizationEngine.ps1 -TemplateUri <URL to the Bicep file (for example, 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
无提示部署
(可选)还可以使用 SilentDeploymentSettingsPath
输入参数以更自动化的方式部署 AOE。
引用文件应是一个 JSON 文件,其中包含定义的所需属性(除非指定所有必需 属性)。
此类无提示部署文件的内容示例如下:
{
"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'
}
在以无提示方式部署 AOE 时(通常在自动化持续部署工作流中发生),可能需要对 Azure SQL 参数使用 Microsoft Entra 身份验证。 例如,为包含工作流自动化服务主体的 Microsoft Entra ID 组授予 SQL 管理员角色。 下面是一个示例:
.\Deploy-AzureOptimizationEngine.ps1 -SilentDeploymentSettingsPath "<path to deployment settings file>" -SqlAdminPrincipalType Group -SqlAdminPrincipalName "<Group Name>" -SqlAdminPrincipalObjectId "<Group Object GUID>"
注意
使用非用户标识(服务主体)部署 AOE 时,必须确保向 AOE SQL Server 分配系统标识,并在 Microsoft Entra ID 中向其授予 Directory Readers
角色。 请遵循 Azure SQL 中的 Microsoft Entra 服务主体的步骤进行操作。
启用 Azure 承诺工作簿
若要使用工作簿来分析 Azure 承诺使用情况(Benefits Usage
、Reservations Usage
和Savings Plans Usage
),或估计其他消耗承诺的影响(Benefits Simulation
和Reservations Potential
),您需要配置 AOE,并在消耗协议层级(EA 或 Microsoft 客户协议 (MCA))授予其托管标识相应权限。 如果在设置/升级期间无法执行此操作,仍可以执行这些额外的配置步骤,前提是用户既是 AOE 资源组中的参与者,又具有对消耗协议 的管理权限(适用于 EA 的企业注册管理员或 MCA 计费配置文件所有者)。 只需按以下语法来使用 Setup-BenefitsUsageDependencies.ps1
脚本并回答输入请求:
./Setup-BenefitsUsageDependencies.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> [-AzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>]
如果遇到由于 CSV 导出文件过大而引起的 Azure 价目表引入问题,可以创建以下 Azure 自动化变量,以筛选价目表区域:AzureOptimization_PriceSheetMeterRegions
设置为虚拟机的逗号分隔计费区域。 例如, 欧盟西部、欧盟和北部。
预留使用情况工作簿中的“未使用预留”磁贴需要 AOE,以在 EA/MCA 范围(而非默认订阅范围)导出消耗数据。 可以通过创建或更新值为 BillingAccount
(EA/MCA,需手动授予 AOE 托管标识另一个计费帐户读取者角色)或 BillingProfile
(仅 MCA)的 AzureOptimization_ConsumptionScope
自动化变量,切换至 EA/MCA 范围消耗。 此选项可以生成大型单个消耗量导出,这可能会由于内存不足而导致错误(这种情况需要使用混合辅助角色部署 AOE)。
升级 AOE
如果有以前版本的 AOE 并想要升级,则只需重新运行部署脚本即可。 使用在初始部署中选择的资源命名选项。 它重新部署 ARM 模板,添加新资源并更新现有资源。
但是,如果之前自定义了组件(例如自动化变量或计划),使用混合辅助角色提升了作业执行性能,或者通过专用链接强化了解决方案,那么您应该使用DoPartialUpgrade
开关运行部署脚本,例如:
.\Deploy-AzureOptimizationEngine.ps1 -DoPartialUpgrade
使用 DoPartialUpgrade
切换时,部署将仅:
- 添加新存储容器
- 更新/添加自动化 Runbook
- 更新/添加自动化模块
- 添加新的自动化计划
- 添加新的自动化变量
- 升级 SQL 数据库模型
- 更新 Log Analytics 工作簿
某些客户还可以自定义 SQL Server 部署,例如,从SQL 数据库迁移到SQL 托管实例。 没有可用于帮助迁移的工具,但在手动完成数据库迁移后,AOE 升级脚本在 IgnoreNamingAvailabilityErrors
开关开启时(跳过 SQL Server 命名/存在验证)支持将来的 DoPartialUpgrade
升级。
相关内容
相关的 FinOps 功能:
相关产品:
相关解决方案: