Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本快速入门介绍如何使用 Azure Python SDK 与 Azure Database for PostgreSQL 灵活服务器实例交互。
Azure Database for PostgreSQL 灵活服务器是一项托管服务,用于在云中运行、管理和缩放高度可用的 PostgreSQL 数据库。 可以使用 Python SDK 在服务器上预配 Azure Database for PostgreSQL 灵活服务器实例、多个服务器或多个数据库。
可以使用此库执行以下操作:
- 创建 PostgreSQL 灵活服务器
- 管理数据库
- 配置防火墙规则
- 缩放操作
- 备份和还原
本指南可帮助你了解此 SDK 的基本功能,包括创建灵活服务器实例、查看创建的服务器、创建数据库以及删除实例。
具有活动订阅的 Azure 帐户。 创建一个试用帐户。
安装以下 Azure Python 库。
pip install azure-mgmt-resource
pip install azure-identity
pip install azure-mgmt-postgresqlflexibleservers
登录到您的帐户,使用 azurecli
进行身份验证。
az login
执行此命令后,选择要登录的有效帐户,然后从列表中选择要登录的订阅 ID。
创建文件 create_postgres_flexible_server.py
并包含以下代码。
from azure.identity import DefaultAzureCredential
from azure.mgmt.postgresqlflexibleservers import PostgreSQLManagementClient
def main():
client = PostgreSQLManagementClient(
credential=DefaultAzureCredential(),
subscription_id="<subscription-id>",
base_url="https://management.chinacloudapi.cn/",
)
response = client.servers.begin_create(
resource_group_name="<resource-group-name>",
server_name="<server-name>",
parameters={
"location": "<region>",
"properties": {
"administratorLogin": "<admin-username>",
"administratorLoginPassword": "<password>",
"availabilityZone": "1",
"backup": {"backupRetentionDays": 7, "geoRedundantBackup": "Disabled"},
"createMode": "Create",
"highAvailability": {"mode": "ZoneRedundant"},
"network": {
"delegatedSubnetResourceId": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>",
"privateDnsZoneArmResourceId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Network/privateDnsZones/<private-DNS-zone-name>.postgres.database.chinacloudapi.cn",
},
"version": "<pg-version>",
},
"sku": {"name": "<sku-name>", "tier": "<tier-type>"},
"tags": {"ElasticServer": "1"},
},
).result()
print(response)
if __name__ == "__main__":
main()
将以下参数替换为你自己的数据:
- subscription-id:自己的订阅 ID。
- resource-group:命名要使用的资源组。 如果不存在,该脚本将新建一个。
- server-name:用于标识 Azure Database for PostgreSQL 灵活服务器实例的唯一名称。 域名
postgres.database.chinacloudapi.cn
将追加到所提供的服务器名称后面。 服务器名称必须为 3-63 个字符,并且只能包含小写字母、数字和连字符。 - 位置:要在其中创建 Azure Database for PostgreSQL 灵活服务器实例的 Azure 区域。 它定义服务器及其数据所在的地理位置。 选择靠近用户的区域,可降低延迟。 位置应以 Azure 区域短名称格式指定,例如
chinaeast2
chinanorth2
。 - admin-username:服务器的主管理员用户名。 在创建服务器后,可以创建其他用户。
- password:服务器主管理员的密码。 该密码必须包含 8 到 128 个字符。 密码必须包含三类字符:英文大写字母、英文小写字母、数字(0 到 9)及非字母数字字符(!、$、#、% 等)。
还可以为其他参数添加值,例如 vnet-name、subnet-name、private-DNS-zone,以及自定义存储大小、引擎版本等其他参数。
Nota
DefaultAzureCredential 类会尝试使用各种方法(例如环境变量、托管标识或 Azure CLI)进行身份验证。
确保已设置以下方法之一。 可以在 Azure SDK 文档中查找有关身份验证的详细信息。
运行此代码会初始化实例创建过程,此过程可能需要几分钟才能完成。
可以使用 Python SDK、Azure 门户、Azure CLI、Azure PowerShell 和其他各种工具来验证部署并查看已部署的资源。 下面提供了一些示例。
将 check_server_created
函数添加到现有脚本,以使用 PostgreSQLManagementClient 实例的服务器属性来检查是否已创建 Azure Database for PostgreSQL 灵活服务器实例:
def check_server_created(subscription_id, resource_group, server_name):
# Authenticate with your Azure account
credential = DefaultAzureCredential()
# Create PostgreSQL management client
postgres_client = PostgreSQLManagementClient(credential, subscription_id, base_url='https://management.chinacloudapi.cn/')
try:
server = postgres_client.servers.get(resource_group, server_name)
if server:
print(f"Server '{server_name}' exists in resource group '{resource_group}'.")
print(f"Server state: {server.state}")
else:
print(f"Server '{server_name}' not found in resource group '{resource_group}'.")
except Exception as e:
print(f"Error occurred: {e}")
print(f"Server '{server_name}' not found in resource group '{resource_group}'.")
使用适当的参数调用它。
check_server_created(subscription_id, resource_group, server_name)
Nota
预配服务器后,函数 check_server_created
会立即返回服务器状态。 但服务器可能需要几分钟才能完全可用。 在连接到服务器之前,请确保等待服务器准备就绪。 它将在响应 postgres_client.servers.get 方法时返回 state、ID、name、location 等参数。
使用此示例代码在灵活服务器中创建数据库
from azure.identity import DefaultAzureCredential
from azure.mgmt.postgresqlflexibleservers import PostgreSQLManagementClient
def main():
client = PostgreSQLManagementClient(
credential=DefaultAzureCredential(),
subscription_id=<subscription-id>,
base_url="https://management.chinacloudapi.cn/",
)
# Create database
response = client.databases.begin_create(
resource_group_name="<resource-group-name>",
server_name="<server-name>",
database_name="<database-name>",
parameters={"properties": {"charset": "utf8", "collation": "en_US.utf8"}},
).result()
print(response)
if __name__ == "__main__":
main()
- subscription-id:自己的订阅 ID。
- resource-group-name:命名要使用的资源组。 如果不存在,该脚本将创建新的资源组。
- sever-name:之前创建的 Azure 数据库灵活服务器实例的名称
- database-name:要创建的数据库的名称。
如果不再需要 Azure Database for PostgreSQL 灵活服务器实例,则可以使用 Portal、Python SDK 或 Azure CLI 删除它和关联的资源组。
创建“delete_server.py”文件以删除已创建的 Azure Databases for PostgreSQL 服务器实例。
from azure.identity import DefaultAzureCredential
from azure.mgmt.postgresqlflexibleservers import PostgreSQLManagementClient
def main():
client = PostgreSQLManagementClient(
credential=DefaultAzureCredential(),
subscription_id=<subscription-id>,
base_url="https://management.chinacloudapi.cn/")
client.servers.begin_delete(
resource_group_name=<rg-name>,
server_name=<server-name>,
).result()
if __name__ == "__main__":
main()