31、提升 Azure 使用效率的实用技巧

提升 Azure 使用效率的实用技巧

1. Azure Traffic Manager 基础

Azure Traffic Manager 是一项重要的 Azure 服务,它主要实现流量分配功能。通过使用该服务,我们可以了解流量分配的基本概念和不同的路由方法,这些方法能覆盖许多日常工作中可能遇到的实际用例。合理利用其配置、真实用户测量和监控等功能,可以实现多种业务需求。

以下是一些关于 Azure Traffic Manager 的常见问题:
1. 支持的路由方法有哪些?
2. 如何使用真实用户测量功能?
3. 能否链接不同的 Azure Traffic Manager 配置文件?
4. 是否可以使用外部端点?
5. 客户端是否直接连接到 Azure Traffic Manager 返回的端点?
6. 网关和 Azure Traffic Manager 的主要区别是什么?
7. Azure Traffic Manager 能否用于实现高可用性?如果可以,如何实现?

2. 提升 Azure 操作效率的工具

在 Azure 生态系统中,有多种工具和捷径可用于资源调配、服务配置和应用开发。下面介绍两个基础工具:Azure CLI 和 Cloud Shell。

2.1 Azure CLI

Azure CLI 是一个跨平台的命令行工具,可在本地安装以管理 Azure 资源。一般命令格式如下:

$ az [resource] [command] -param1 "Foo" -param2 123

例如,使用 Azure CLI 创建一个函数应用:

$ az functionapp create --name "handsonazureapp" --storage-account "handsonazurestorage" --consumption-plan-location "westeurope" --resource-group "myResourceGroup"

安装 Azure CLI 的说明可参考相关文章,其支持 Windows、macOS 和 Linux 等多个平台。安装完成后,打开命令行终端,输入以下命令进行登录:

$ az login

登录时,会提示使用浏览器打开页面 https://microsoft.com/devicelogin ,并输入代码 DRXXXXXXX 进行认证。认证成功后,命令将显示与该账户关联的所有订阅信息。

如果不记得所有命令,可以使用以下命令查找相关命令:

$ az find -q "query"

例如,查找与 Azure Functions 相关的命令:

$ az find -q function
`az functionapp create`
    Create a function app.
    The function app's name must be able to produce a unique FQDN as
    AppName.azurewebsites.net.
`az functionapp list`
    List function apps.
`az functionapp delete`
    Delete a function app.
`az functionapp stop`
    Stop a function app.
`az functionapp start`
    Start a function app.
`az functionapp restart`
    Restart a function app.
`az functionapp update`
    Update a function app.
`az functionapp`
    Manage function apps.
`az functionapp config`
    Configure a function app.
`az functionapp show`
    Get the details of a function app.

下面是创建函数应用的完整示例:

$ az storage account create --sku Standard_LRS --kind Storage --resource-group handsonazure-euw-rg --name handsonazurestorage
$ az functionapp create --name handsonazure-euw-functionapp --storage-account handsonazurestorage --resource-group handsonazure-euw-rg --consumption-plan-location westeurope

如果需要创建新的资源组,可使用 az group create 命令。

2.2 Cloud Shell

Cloud Shell 是使用 Azure CLI 的替代工具。在 Azure 门户中,点击 Cloud Shell 按钮即可访问。

打开 Cloud Shell 时,门户底部会显示一个欢迎屏幕,提示选择所需的 shell(Bash 或 PowerShell),两种 shell 在功能上是一致的,可根据个人喜好选择。

如果是首次使用 Cloud Shell,还需要挂载一个存储账户,用于在会话之间持久保存文件。有两种选择:可以让系统自动创建存储账户,也可以点击“显示高级设置”按钮选择特定选项。

配置完成后,Azure 将尝试初始化 Cloud Shell 账户,初始化成功后会显示相关信息,如:

Your cloud drive has been created in:
Subscription Id: <subscription-id>
Resource group: cloudshell-euw-rg
Storage account: cloudshelleuwstorage
File share: cloudshelleuwfileshare
Initializing your account for Cloud Shell...\
Requesting a Cloud Shell.Succeeded.
Connecting terminal...
Welcome to Azure Cloud Shell
Type "dir" to see your Azure resources
Type "help" to learn about Cloud Shell

使用 Cloud Shell 类似于浏览文件系统,Azure 资源以目录形式呈现,可使用 dir cd 等常见命令行命令进行访问。例如,选择要使用的订阅:

PS Azure:\> cd <subscription-name>

然后浏览其中的所有资源:

PS Azure:\> cd AllResources
PS Azure:\> dir

需要注意的是,通过 Cloud Shell 可操作的资源有限,目前可用于操作以下服务:
- 资源组
- Web 应用
- 存储账户
- 虚拟机

例如,获取 Azure 文件的连接字符串:

PS Azure:\> cd StorageAccounts\<storage-account-name>\files
PS Azure:\> dir

在 Cloud Shell 中,既可以使用 Azure PowerShell 命令,也可以使用 Azure CLI。输入 az 命令会显示相应结果,之前在 Azure CLI 部分学到的内容都可以在这里应用。

3. 资源锁定

在创建和管理大量 Azure 资源时,可能会不小心移动、重命名或删除不应操作的资源。为防止这种情况发生,可以使用资源锁定功能。

资源锁定有两种类型:删除锁定和只读锁定。
- 删除锁定 :阻止对资源进行删除操作。例如,要保护资源组不被删除,可点击资源组的“Locks”选项卡,然后点击“+ Add”按钮并选择相应的锁定类型。之后尝试删除该资源组时,会收到错误提示。
- 只读锁定 :防止对资源进行更改。对于资源组,无法添加新服务;对于 Azure 存储账户,无法对服务配置进行任何更改。

锁定也是 Azure 资源,可以使用 Azure PowerShell 命令(如 Get-AzureRmResourceLock )或 ARM 模板进行管理。

4. 资源命名规范

在 Azure 中管理资源时,采用合适的命名规范非常重要。一个好的命名规范应该简单、直观且易于遵循。在考虑资源命名时,需要考虑以下几个方面:
- 资源的部署区域
- 资源类型
- 资源名称
- 资源实例类型/环境

以资源组为例,默认命名可能是 MyNewService newPortal oldplatform 等,但这些名称缺乏资源位置和环境等信息。为了使名称更具描述性,可以添加资源类型、位置和环境信息,如下所示:

原始名称 添加类型后 添加位置和类型后 添加位置、类型和环境后
MyNewService MyNewServiceResourceGroup MyNewResourceResourceGroupEastUS2 MyNewResourceResourceGroupEastUS2Test
newPortal newPortal-resourceGroup newPortal-westEurope-resourceGroup newPortal-westEurope-prod-resourceGroup
oldplatform oldplatform-rg oldplatform-eun-rg oldplatform-staging-eun-rg

不同的 Azure 资源对名称的限制不同,例如 Azure App Services 对名称的限制相对较少,而 Azure Storage 只允许使用字母和数字。因此,命名规范应根据实际需求进行调整,同时要具有一定的灵活性,以适应未来业务的变化。

5. 访问 Azure 资源属性

在 Azure 中,大部分操作都涉及到资源的管理。可以使用 Azure Resource Manager(Azure RM)来管理各种资源,包括特定服务(如 Azure Functions 或 Azure Traffic Manager)、服务的部分设置(如 Azure App Services 的应用设置)以及特定功能(如资源锁定)。

访问 Azure 资源属性的最简单方法是使用 Azure Resource Explorer,可通过访问 https://resources.azure.com/ 来使用该工具。

打开后,默认屏幕上有两种节点类型:
- providers :与特定的 Azure 服务相关,如 Azure Cosmos DB 或 Azure Storage。
- subscription :订阅也是一种 Azure 资源,可以通过该节点浏览订阅内的资源。

通过这些节点,不仅可以直接查看资源的参数,还可以将收集到的信息用于 ARM 模板。此外,该工具允许直接编辑资源参数(点击“Edit”按钮),并生成可用于管理资源的 PowerShell/Ansible 脚本。以下是为 Azure 存储账户生成的 PowerShell 命令示例:

# PowerShell equivalent script
# GET handsonazureeuwstorage
Get-AzureRmResource -ResourceGroupName handsonazure-euw-rg -ResourceType Microsoft.Storage/storageAccounts -ResourceName "handsonazureeuwstorage" -ApiVersion 2017-10-01
# SET handsonazureeuwstorage
$PropertiesObject = @{
  #Property = value;
}
Set-AzureRmResource -PropertyObject $PropertiesObject -ResourceGroupName handsonazure-euw-rg -ResourceType Microsoft.Storage/storageAccounts -ResourceName "handsonazureeuwstorage" -ApiVersion 2017-10-01 -Force
# DELETE handsonazureeuwstorage
Remove-AzureRmResource -ResourceGroupName handsonazure-euw-rg -ResourceType Microsoft.Storage/storageAccounts -ResourceName "handsonazureeuwstorage" -ApiVersion 2017-10-01 -Force
# Action ListAccountSas
$ParametersObject = @{
  signedServices = "(String)"
  signedResourceTypes = "(String)"
  signedPermission = "(String)"
  signedIp = "(String)"
  signedProtocol = "(String)"
  signedStart = "(String)"
  signedExpiry = "(String)"
  keyToSign = "(String)"
}
Invoke-AzureRmResourceAction -ResourceGroupName handsonazure-euw-rg -ResourceType Microsoft.Storage/storageAccounts -ResourceName handsonazureeuwstorage -Action ListAccountSas -Parameters $ParametersObject -ApiVersion 2017-10-01 -Force
# Action ListServiceSas
$ParametersObject = @{
  canonicalizedResource = "(String)"
  signedResource = "(String)"
  signedPermission = "(String)"
  signedIp = "(String)"
  signedProtocol = "(String)"
  signedStart = "(String)"
  signedExpiry = "(String)"
  signedIdentifier = "(String)"
  startPk = "(String)"
  endPk = "(String)"
  startRk = "(String)"
  endRk = "(String)"
  keyToSign = "(String)"
  rscc = "(String)"
  rscd = "(String)"
  rsce = "(String)"
  rscl = "(String)"
  rsct = "(String)"
}
Invoke-AzureRmResourceAction -ResourceGroupName handsonazure-euw-rg -ResourceType Microsoft.Storage/storageAccounts -ResourceName handsonazureeuwstorage -Action ListServiceSas -Parameters $ParametersObject -ApiVersion 2017-10-01 -Force
# Action listKeys
Invoke-AzureRmResourceAction -ResourceGroupName handsonazure-euw-rg -ResourceType Microsoft.Storage/storageAccounts -ResourceName handsonazureeuwstorage -Action listKeys -ApiVersion 2017-10-01 -Force
# Action regenerateKey
$ParametersObject = @{
  keyName = "(String)"
}
Invoke-AzureRmResourceAction -ResourceGroupName handsonazure-euw-rg -ResourceType Microsoft.Storage/storageAccounts -ResourceName handsonazureeuwstorage -Action regenerateKey -Parameters $ParametersObject -ApiVersion 2017-10-01 -Force

通过这些脚本,无需手动编写复杂的管理脚本,只需复制并根据需要进行调整即可。

综上所述,掌握 Azure CLI 和 Cloud Shell 的使用、合理运用资源锁定、采用适当的命名规范以及利用 Azure Resource Explorer 访问资源属性,能够显著提升 Azure 资源管理的效率,帮助开发者和架构师更好地构建和管理基于 Azure 的解决方案。同时,由于云计算领域发展迅速,建议持续关注相关信息,不断更新知识和技能,以适应不断变化的业务需求。

提升 Azure 使用效率的实用技巧(续)

6. 总结与展望

在前面的内容中,我们详细介绍了一系列提升 Azure 使用效率的实用技巧。这些技巧不仅能帮助我们更高效地管理资源,还能增强资源的安全性和可维护性。下面对这些技巧进行简要总结,并对未来的学习和实践给出一些建议。

6.1 技巧回顾
  • Azure Traffic Manager :了解了其流量分配的基本概念和不同路由方法,能应对多种实际用例。
  • Azure CLI :跨平台命令行工具,可通过命令快速管理 Azure 资源,如创建函数应用等。
  • Cloud Shell :在 Azure 门户中直接使用,功能与 Azure CLI 类似,且支持持久化存储。
  • 资源锁定 :通过删除锁定和只读锁定保护资源,避免误操作。
  • 命名规范 :合理的命名规范能使资源管理更清晰,便于识别和维护。
  • Azure Resource Explorer :方便查看和编辑资源参数,还能生成管理脚本。
6.2 持续学习建议

云计算领域不断发展,Azure 也在持续更新和完善其功能。为了更好地适应这些变化,建议大家通过以下方式持续学习:
- 阅读官方文档 :Azure 官方文档是最权威的学习资源,包含了详细的功能介绍和操作指南。
- 关注技术博客 :许多技术专家会在博客上分享他们的经验和见解,能帮助我们了解最新的技术趋势。
- 参加培训和会议 :参加专业的培训课程和行业会议,与同行交流经验,拓宽视野。

7. 常见问题解答

为了帮助大家更好地理解和应用这些技巧,下面对一些常见问题进行解答。

问题 解答
资源锁定的两种类型(删除锁定和只读锁定)是如何工作的? 删除锁定阻止对资源进行删除操作;只读锁定防止对资源进行更改,如对资源组无法添加新服务,对存储账户无法更改服务配置。
能否在 Cloud Shell 中使用 Azure CLI? 可以,在 Cloud Shell 中既可以使用 Azure PowerShell 命令,也可以使用 Azure CLI,之前在 Azure CLI 部分学到的内容都可以在这里应用。
在哪里可以获取 Azure 中已配置资源的详细信息? 可以使用 Azure Resource Explorer,访问 https://resources.azure.com/ ,通过该工具可以查看资源参数,并生成管理脚本。
采用合适的命名规范有什么好处? 合适的命名规范能使资源名称更具描述性,便于识别资源的位置、类型和环境,提高资源管理的效率。
为什么 Cloud Shell 需要配置存储账户? Cloud Shell 使用存储账户在会话之间持久保存文件。
8. 实践案例分析

为了更直观地展示这些技巧的应用,下面通过一个实践案例进行分析。

假设我们要创建一个基于 Azure 的 Web 应用,包含存储账户和函数应用,并且要确保资源的安全性和可管理性。以下是具体的操作步骤:

8.1 创建资源组并命名

首先,使用 Azure CLI 创建一个资源组,采用合适的命名规范,包含位置和环境信息:

$ az group create --name mywebapp-prod-eastus-rg --location eastus
8.2 创建存储账户

在创建的资源组中创建一个存储账户:

$ az storage account create --sku Standard_LRS --kind Storage --resource-group mywebapp-prod-eastus-rg --name mywebappstorage
8.3 创建函数应用

使用存储账户创建一个函数应用:

$ az functionapp create --name mywebappfunctionapp --storage-account mywebappstorage --resource-group mywebapp-prod-eastus-rg --consumption-plan-location eastus
8.4 配置资源锁定

为了防止误删除和更改,对资源组和存储账户应用资源锁定:

# 为资源组添加删除锁定
$resourceGroupLock = New-AzureRmResourceLock -LockLevel CanNotDelete -LockName ResourceGroupDeleteLock -ResourceName mywebapp-prod-eastus-rg -ResourceType Microsoft.Resources/resourceGroups -ResourceGroupName mywebapp-prod-eastus-rg
# 为存储账户添加只读锁定
$storageAccountLock = New-AzureRmResourceLock -LockLevel ReadOnly -LockName StorageAccountReadOnlyLock -ResourceName mywebappstorage -ResourceType Microsoft.Storage/storageAccounts -ResourceGroupName mywebapp-prod-eastus-rg
8.5 查看资源信息

使用 Azure Resource Explorer 查看资源的详细信息,并生成管理脚本:
- 访问 https://resources.azure.com/
- 展开相应的节点,查看资源参数。
- 点击“Edit”按钮编辑资源参数。
- 复制生成的 PowerShell 脚本进行资源管理。

9. 流程图总结

下面是一个 mermaid 格式的流程图,总结了创建和管理 Azure 资源的主要步骤:

graph LR
    A[创建资源组] --> B[创建存储账户]
    B --> C[创建函数应用]
    C --> D[配置资源锁定]
    D --> E[查看资源信息]
    E --> F[使用管理脚本]

通过以上步骤和技巧的应用,我们能够高效地创建和管理 Azure 资源,确保资源的安全性和可维护性。希望这些内容能帮助大家更好地使用 Azure,提升工作效率和技能水平。在未来的实践中,不断探索和应用新的技术,以适应云计算领域的快速发展。

先展示下效果 https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值