TableServiceClient 類別
在帳戶層級與資料表服務互動的用戶端。
此用戶端提供作業來擷取和設定帳戶屬性,以及列出、建立和刪除帳戶內的資料表。 對於與特定資料表相關的作業,可以使用 函式擷取此實體的 get_table_client 用戶端。
從認證建立 TablesBaseClient。
- 繼承
-
azure.data.tables._base_client.TablesBaseClientTableServiceClient
建構函式
TableServiceClient(endpoint: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs)
參數
- credential
- AzureNamedKeyCredential 或 AzureSasCredential 或 TokenCredential 或 None
要用來驗證的認證。 如果帳戶 URL 已經有 SAS 權杖,則這是選擇性的。 此值可以是 azure-core (azure-core) 、AzureSasCredential (azure-core) 或來自 azure-identity 的 TokenCredential 實作之一。
- api_version
- str
要用於要求的儲存體 API 版本。 預設值為 '2019-02-02'。 將 設定為較舊版本可能會導致功能相容性降低。
- credential
- AzureNamedKeyCredential 或 AzureSasCredential 或 TokenCredential 或 None
要用來驗證的認證。 如果帳戶 URL 已經有 SAS 權杖,則這是選擇性的。 此值可以是 azure-core (azure-core) 、AzureSasCredential (azure-core) 或來自 azure-identity 的 TokenCredential 實作之一。
範例
從共用存取金鑰驗證 TableServiceClient
from azure.data.tables import TableServiceClient
from azure.core.credentials import AzureNamedKeyCredential, AzureSasCredential
# Create a SAS token to use for authentication of a client
from azure.data.tables import generate_account_sas, ResourceTypes, AccountSasPermissions
print("Account name: {}".format(self.account_name))
credential = AzureNamedKeyCredential(self.account_name, self.access_key) # type: ignore[arg-type]
sas_token = generate_account_sas(
credential,
resource_types=ResourceTypes(service=True),
permission=AccountSasPermissions(read=True),
expiry=datetime.utcnow() + timedelta(hours=1),
)
with TableServiceClient(
endpoint=self.endpoint, credential=AzureSasCredential(sas_token)
) as token_auth_table_service:
properties = token_auth_table_service.get_service_properties()
print("Shared Access Signature: {}".format(properties))
從共用帳戶金鑰驗證 TableServiceClient
from azure.data.tables import TableServiceClient
from azure.core.credentials import AzureNamedKeyCredential
credential = AzureNamedKeyCredential(self.account_name, self.access_key) # type: ignore[arg-type]
with TableServiceClient(endpoint=self.endpoint, credential=credential) as table_service:
properties = table_service.get_service_properties()
print("Shared Key: {}".format(properties))
變數
- account_name
- str
資料表帳戶的名稱。
- url
- str
資料表帳戶的完整 URL。
方法
close |
這個方法是關閉用戶端所開啟的通訊端。 搭配內容管理員使用時,不需要使用它。 |
create_table |
在目前帳戶下建立新的資料表。 |
create_table_if_not_exists |
如果資料表目前不存在,請建立新的資料表。 如果資料表目前存在,則會傳回目前的資料表。 |
delete_table |
刪除目前帳戶底下的資料表。 如果找不到指定的資料表,將不會引發任何錯誤。 |
from_connection_string |
從連接字串建立 TableServiceClient。 |
get_service_properties |
取得帳戶資料表服務的屬性,包括分析與 CORS (跨原始資源分享) 規則的屬性。 |
get_service_stats |
擷取與表格服務的複寫相關的統計資料。 只有在帳戶啟用讀取權限異地備援複寫時,才能在次要位置端點上使用。 |
get_table_client |
取得用戶端以與指定的資料表互動。 資料表尚未存在。 |
list_tables |
查詢指定帳戶下的資料表。 |
query_tables |
查詢指定帳戶下的資料表。 |
set_service_properties |
設定帳戶資料表服務端點的屬性,包括分析與 CORS (跨原始來源資源分享) 規則的屬性。 |
close
這個方法是關閉用戶端所開啟的通訊端。 搭配內容管理員使用時,不需要使用它。
close() -> None
create_table
在目前帳戶下建立新的資料表。
create_table(table_name: str, **kwargs) -> TableClient
參數
傳回
TableClient
傳回類型
例外狀況
範例
從 TableServiceClient 物件建立資料表
with TableServiceClient.from_connection_string(self.connection_string) as table_service_client:
try:
table_client = table_service_client.create_table(table_name=self.table_name)
print("Created table {}!".format(table_client.table_name))
except ResourceExistsError:
print("Table already exists")
create_table_if_not_exists
如果資料表目前不存在,請建立新的資料表。 如果資料表目前存在,則會傳回目前的資料表。
create_table_if_not_exists(table_name: str, **kwargs) -> TableClient
參數
傳回
TableClient
傳回類型
例外狀況
範例
如果資料表不存在,請從 TableServiceClient 物件建立資料表
with TableServiceClient.from_connection_string(self.connection_string) as table_service_client:
table_client = table_service_client.create_table_if_not_exists(table_name=self.table_name)
print("Table name: {}".format(table_client.table_name))
delete_table
刪除目前帳戶底下的資料表。 如果找不到指定的資料表,將不會引發任何錯誤。
delete_table(table_name: str, **kwargs) -> None
參數
傳回
無
例外狀況
範例
從 TableServiceClient 物件刪除資料表
with TableServiceClient.from_connection_string(self.connection_string) as table_service_client:
table_service_client.delete_table(table_name=self.table_name)
print("Deleted table {}!".format(self.table_name))
from_connection_string
從連接字串建立 TableServiceClient。
from_connection_string(conn_str: str, **kwargs) -> TableServiceClient
參數
傳回
資料表服務用戶端。
傳回類型
範例
從connection_string驗證 TableServiceClient
from azure.data.tables import TableServiceClient
with TableServiceClient.from_connection_string(conn_str=self.connection_string) as table_service:
properties = table_service.get_service_properties()
print("Connection String: {}".format(properties))
get_service_properties
取得帳戶資料表服務的屬性,包括分析與 CORS (跨原始資源分享) 規則的屬性。
get_service_properties(**kwargs) -> Dict[str, object]
傳回
服務屬性的字典
傳回類型
例外狀況
get_service_stats
擷取與表格服務的複寫相關的統計資料。 只有在帳戶啟用讀取權限異地備援複寫時,才能在次要位置端點上使用。
get_service_stats(**kwargs) -> Dict[str, object]
傳回
服務統計資料的字典
傳回類型
例外狀況
get_table_client
取得用戶端以與指定的資料表互動。
資料表尚未存在。
get_table_client(table_name: str, **kwargs) -> TableClient
參數
傳回
TableClient 物件。
傳回類型
list_tables
查詢指定帳戶下的資料表。
list_tables(**kwargs) -> ItemPaged[TableItem]
參數
- results_per_page
- int
傳回 ItemPaged 中每頁的資料表數目
傳回
的反覆運算器 TableItem
傳回類型
例外狀況
範例
列出儲存體帳戶中的所有資料表
# List all the tables in the service
list_tables = table_service.list_tables()
print("Listing tables:")
for table in list_tables:
print("\t{}".format(table.name))
query_tables
查詢指定帳戶下的資料表。
query_tables(query_filter: str, **kwargs) -> ItemPaged[TableItem]
參數
- results_per_page
- int
傳回 ItemPaged 中每頁的資料表數目
傳回
的反覆運算器 TableItem
傳回類型
例外狀況
範例
查詢儲存體帳戶中的資料表
table_name = "mytable1"
name_filter = "TableName eq '{}'".format(table_name)
queried_tables = table_service.query_tables(name_filter)
print("Queried_tables")
for table in queried_tables:
print("\t{}".format(table.name))
set_service_properties
設定帳戶資料表服務端點的屬性,包括分析與 CORS (跨原始來源資源分享) 規則的屬性。
set_service_properties(**kwargs) -> None
參數
- analytics_logging
- TableAnalyticsLogging
分析的屬性
- hour_metrics
- TableMetrics
小時層級計量
- minute_metrics
- TableMetrics
分鐘層級計量
- cors
- list[TableCorsRule]
跨原始來源資源分享規則
傳回
無
例外狀況
屬性
api_version
用於要求的儲存體 API 版本。
傳回
儲存體 API 版本。
url
此實體的完整端點 URL,包括使用 SAS 權杖。
這可能是主要端點或次要端點,視目前的 <xref:azure.data.tables.location_mode> 而定。
傳回
使用時包含 SAS 權杖的完整端點 URL。