随着 Azure CLI 的新变化,构建应用程序变得更加容易。这篇博文将引导您完成有助于提高生产力的关键变化。
一些重大变化包括:
- 用于在 Azure 上创建新 Postgres 单一服务器的简化单一命令。
- 能够在 CLI 命令之间使用上下文信息来帮助减少每个命令的击键次数。
- 参数 --public 的新值用于创建防火墙规则作为创建体验的一部分。
- 新命令 - 列出连接字符串。
- 改进了 sku 列表和服务器列表命令的可读表格格式输出。
注意:从 Azure CLI 页面下载 Azure CLI 的最新官方版本,或者从 GitHub Azure CLI 主页下载开发版本。
重要提示:虽然本文重点介绍 Azure Database for PostgreSQL 单服务器,但所描述的更改同样适用于我们的灵活服务器部署模型。
1.创建单个服务器实例的单个命令
使用“az login”登录到您的 Azure 帐户,选择您的订阅(如果与默认不同),然后运行命令“az postgres server create”以在 Azure 上创建 Postgres 单服务器实例。
请注意以下关键点:
- 在默认区域中为您创建一个具有随机名称的资源组。
- 系统会为您自动生成服务器名称、管理员用户名和密码
- 黄色文本表示幕后发生的事情。服务器使用默认值创建,可以使用
az postgres server create --help找到。 - 输出中引入了两个新字段(密码和连接字符串)。
- 要覆盖默认值,请将该参数与您选择的值一起传递。

2.支持param-persist
Azure Database for PostgreSQL 服务器 CLI 命令现在支持使用 az config param-persist 命令持久化参数值,该命令在本地存储您执行的每个连续 CLI 命令的位置、资源组、管理员登录名和服务器名称等信息。您可以使用 az config param-persist on 轻松打开 param persist 以存储信息。启用 param persist 后,您可以使用 az config param-persist show 查看上下文信息。您始终可以使用 az config param-persist off 关闭对 param persist 的支持。
下面列出了您可能会觉得有帮助的要点摘要:
- 通常存储在 param persist 中的字段是位置、资源组、服务器名称和管理员登录。
- 参数 persist 旨在为任何参数只保存一个值——始终来自最新执行的命令。
- 关闭参数 persist 不会自动清除存储的字段。您可以使用
az config param-persist delete中的命令清除参数持久化中的所有或特定值。 - 下面显示了 param persist 如何减少工作量的示例。

- 请注意,当您向刚刚创建的服务器添加新的防火墙规则时,不再需要在防火墙创建命令中提供服务器名称和资源组。
az postgres server firewall-rule create -n firewall-rule-1 --start-ip-address 107.223.9.21 --end-ip-address 107.223.9.27
- 当对从 param 获取的值感到困惑时,请在命令输出中查找文本“来自本地上下文的命令参数值”字段,如下所示。
Local context is turned on. Its information is saved in working directory /home/aritra. You can run `az local-context off` to turn it off.
Command argument values from local context: --resource-group: group2029187709, --server-name: server905314632
{- Finished ..
"endIpAddress": "107.223.9.27",
"id": "/subscriptions/<your-subscription-id>/resourceGroups/group2029187709/providers/Microsoft.DBforPostgreSQL/servers/server905314632/firewallRules/firewall-rule-1",
"name": "firewall-rule-1",
"resourceGroup": "group2029187709",
"startIpAddress": "107.223.9.21",
"type": "Microsoft.DBforPostgreSQL/servers/firewallRules"
}
3. az postgres server create 命令中 --public 参数的新值
在 Azure 上使用我们的托管数据库服务创建 Postgres 服务器时,您希望快速开始。 您现在可以让创建体验根据您在创建命令中为 --public 参数传递的值来处理可访问性。 当使用这些新支持的值中的任何一个创建服务器时,新字段“firewallName”将显示在 create 命令的输出中。 除了现有的“启用”和“禁用”值之外,我们现在还支持以下值:
| 设想 | 命令 |
|---|---|
| 允许 0.0.0.0-255.255.255.255 的所有 IP | az postgres server create --public all |
| 仅允许访问您的客户端 IP | az postgres server create --public (SingleIP) |
| 允许范围内的所有 IP | az postgres server create --public (StartIP-DestinationIP) |
| 允许访问所有 Azure 服务 | az postgres server create --public 0.0.0.0 |
| 允许公共访问,但稍后添加允许的 IP | az postgres server create --public Enabled 注意:您需要使用 firewall-rule create 命令添加允许的 IP |
4. 新命令 – az postgres server show-connection-string
az postgres server show-connection-string:列出用于将 Postgres 数据库连接到 ADO.NET、JDBC、JDBC Spring、Node.JS、PHP、Python 和 Ruby 等应用程序的连接字符串。
az postgres server show-connection-string -s server905314632 -u flexibleHorse
当您在上述命令中将它们作为参数传递时,连接字符串中 {} 内的所有占位符字段都可以替换为实际值。
"connectionStrings": {
"C++ (libpq)": "host=server905314632.postgres.database.azure.com port=5432 dbname={database} user=flexibleHorse@server905314632 password={password} sslmode=require",
"ado.net": "Server=server905314632.postgres.database.azure.com;Database={database};Port=5432;User Id=flexibleHorse@server905314632;Password={password};",
"jdbc": "jdbc:postgresql://server905314632.postgres.database.azure.com:5432/{database}?user=flexibleHorse@server905314632&password={password}",
"node.js": "var client = new pg.Client('postgres://flexibleHorse@server905314632:{password}@server905314632.postgres.database.azure.com:5432/{database}');",
"php": "host=server905314632.postgres.database.azure.com port=5432 dbname={database} user=flexibleHorse@server905314632 password={password}",
"psql_cmd": "postgresql://flexibleHorse@server905314632:{password}@server905314632.postgres.database.azure.com/{database}?sslmode=require",
"python": "cnx = psycopg2.connect(database='{database}', user='flexibleHorse@server905314632', host='server905314632.postgres.database.azure.com', password='{password}', port='5432')",
"ruby": "cnx = PG::Connection.new(:host => 'server905314632.postgres.database.azure.com', :user => 'flexibleHorse@server905314632', :dbname => '{database}', :port => '5432', :password => '{password}')"
}
}
5. 改进可读的表格格式
对于以下命令,最新版本的 Azure CLI 支持以表格格式查看输出,从而为您提供快照视图。
az postgres 服务器列表-skus -leastus -o 表az postgres 服务器列表 [-g <group_name>] [-n <server_name>] -o table- 不提供 -g 和 -n 将列出订阅中的所有服务器。
- 提供 -g 和 -n 将列出单个服务器的详细信息。
- 仅提供 -g 将列出资源组中所有服务器的详细信息。

将强大的 Azure CLI 实用程序与单服务器 CLI 结合使用
Azure CLI 具有强大的实用程序,可与 PostgreSQL 服务器 CLI 命令一起使用,以查找正确的命令、获取可读输出甚至运行 REST API。
- az find 查找您正在查找的命令。
- 使用 --help 参数获取组的命令和子组的完整列表。
- 将输出格式更改为您认为合适的表格或 tsv 或 yaml 格式。
- 使用 az 交互模式,该模式为交互式 shell 提供自动完成、命令描述和示例。
- 使用 az upgrade 更新您的 CLI 和扩展。
- 使用 az rest 命令可以调用服务端点以安全的方式运行 GET、PUT、PATCH 方法。
这些改进旨在支持开发人员创建和管理其 PostgreSQL 服务器的最佳体验。 我们希望您尝试改进并分享您对新 CLI 命令或现有命令问题的反馈。
原文标题:Azure CLI improvements for Azure Database for PostgreSQL – Single server
原文作者:Aritra De
原文地址:https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/azure-cli-improvements-for-azure-database-for-postgresql-single/ba-p/1925694




