暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Azure Database for PostgreSQL 的 Azure CLI 改进 - 单服务器

原创 CiciLee 2022-07-11
442

随着 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 找到。
  • 输出中引入了两个新字段(密码和连接字符串)。
  • 要覆盖默认值,请将该参数与您选择的值一起传递。

图片.png

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 如何减少工作量的示例。

图片.png

  • 请注意,当您向刚刚创建的服务器添加新的防火墙规则时,不再需要在防火墙创建命令中提供服务器名称和资源组。
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 将列出资源组中所有服务器的详细信息。

图片.png

将强大的 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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论