DatabaseProxy Klass
Ett gränssnitt för att interagera med en specifik databas.
Den här klassen ska inte instansieras direkt. Använd <xref:azure.cosmos.aio.cosmos_client.CosmosClient.get_database_client> i stället metoden för att hämta en befintlig databas eller <xref:azure.cosmos.aio.cosmos_client.CosmosClient.create_database> metoden för att skapa en ny databas.
En databas innehåller en eller flera containrar som var och en kan innehålla objekt, lagrade procedurer, utlösare och användardefinierade funktioner.
En databas kan också ha associerade användare, som var och en har konfigurerats med en uppsättning behörigheter för åtkomst till vissa containrar, lagrade procedurer, utlösare, användardefinierade funktioner eller objekt.
En Azure Cosmos DB SQL API-databas har följande systemgenererade egenskaper. Dessa egenskaper är skrivskyddade:
_rid: Resurs-ID.
_ts: När resursen senast uppdaterades. Värdet är en tidsstämpel.
_self: Resursens unika adresserbara URI.
_etag: Resursetaggar som krävs för optimistisk samtidighetskontroll.
_colls: Den adresserbara sökvägen för samlingsresursen.
_users: Den adresserbara sökvägen för användarresursen.
- Arv
-
builtins.objectDatabaseProxy
Konstruktor
DatabaseProxy(client_connection: CosmosClientConnection, id: str, properties: Dict[str, Any] = None)
Parametrar
- client_connection
- <xref:azure.cosmos.aio.CosmosClientConnection>
Klienten som den här databasen hämtades från.
- properties
Variabler
- id
Databasens ID (namn).
Metoder
create_container |
Skapa en ny container med det angivna ID:t (namn). Om det redan finns en container med det angivna ID:t utlöses en CosmosResourceExistsError. |
create_container_if_not_exists |
Skapa en container om den inte redan finns. Om containern redan finns returneras de befintliga inställningarna. Obs! Den kontrollerar eller uppdaterar inte befintliga containerinställningar eller erbjuder dataflöde om de skiljer sig från vad som skickades till metoden. |
create_user |
Skapa en ny användare i containern. Om du vill uppdatera eller ersätta en befintlig användare använder du <xref:ContainerProxy.upsert_user> metoden . |
delete_container |
Ta bort en container. |
delete_user |
Ta bort den angivna användaren från containern. |
get_container_client |
Hämta en ContainerProxy för en container med angivet ID (namn). |
get_throughput |
Hämta objektet ThroughputProperties för den här databasen. Om det inte redan finns några dataflödesegenskaper för databasen utlöses ett undantag. |
get_user_client |
Hämta en UserProxy för en användare med angivet ID. |
list_containers |
Visa en lista över containrarna i databasen. |
list_users |
Visa en lista över alla användare i containern. |
query_containers |
Visa en lista över egenskaperna för containrar i den aktuella databasen. |
query_users |
Returnera alla användare som matchar den angivna frågan. |
read |
Läs databasegenskaperna. |
replace_container |
Återställ egenskaperna för containern. Egenskapsändringar sparas omedelbart. Alla egenskaper som inte anges återställs till standardvärdena. |
replace_throughput |
Ersätt dataflödet på databasnivå. Om det inte redan finns några dataflödesegenskaper för databasen utlöses ett undantag. |
replace_user |
Ersätter den angivna användaren om den finns i containern. |
upsert_user |
Infoga eller uppdatera den angivna användaren. Om användaren redan finns i containern ersätts den. Om användaren inte redan finns infogas den. |
create_container
Skapa en ny container med det angivna ID:t (namn).
Om det redan finns en container med det angivna ID:t utlöses en CosmosResourceExistsError.
async create_container(id: str, partition_key: PartitionKey, **kwargs: Any) -> ContainerProxy
Parametrar
- default_ttl
- int
Standardtid att leva (TTL) för objekt i containern. Om objekten är ospecificerade upphör de inte att gälla.
- offer_throughput
- Union[int, ThroughputProperties]
Det etablerade dataflödet för det här erbjudandet.
Konfliktlösningsprincipen som ska tillämpas på containern.
- session_token
- str
Token för användning med sessionskonsekvens.
- etag
- str
Ett ETag-värde eller jokertecknet (*). Används för att kontrollera om resursen har ändrats och agera enligt villkoret som anges av parametern match_condition .
- match_condition
- MatchConditions
Matchningsvillkoret som ska användas på etag.
En anropsbar anropad med svarsmetadata.
- analytical_storage_ttl
- int
TTL (Analytical Store Time to Live) för objekt i containern. Värdet None lämnar analyslagringen inaktiverad och värdet -1 aktiverar analyslagring utan TTL. Observera att analyslagring endast kan aktiveras på Synapse Link aktiverade konton.
Returer
En ContainerProxy-instans som representerar den nya containern.
Returtyp
Undantag
Det gick inte att skapa containern.
Exempel
Skapa en container med standardinställningar:
container_name = "products"
try:
container = await database.create_container(
id=container_name, partition_key=PartitionKey(path="/productName")
)
except exceptions.CosmosResourceExistsError:
container = database.get_container_client(container_name)
Skapa en container med specifika inställningar. i det här fallet en anpassad partitionsnyckel:
customer_container_name = "customers"
try:
customer_container = await database.create_container(
id=customer_container_name,
partition_key=PartitionKey(path="/city"),
default_ttl=200,
)
except exceptions.CosmosResourceExistsError:
customer_container = database.get_container_client(customer_container_name)
create_container_if_not_exists
Skapa en container om den inte redan finns.
Om containern redan finns returneras de befintliga inställningarna. Obs! Den kontrollerar eller uppdaterar inte befintliga containerinställningar eller erbjuder dataflöde om de skiljer sig från vad som skickades till metoden.
async create_container_if_not_exists(id: str, partition_key: PartitionKey, **kwargs: Any) -> ContainerProxy
Parametrar
- default_ttl
- int
Standardtid att leva (TTL) för objekt i containern. Om objekten är ospecificerade upphör de inte att gälla.
- offer_throughput
- Union[int, ThroughputProperties]
Det etablerade dataflödet för det här erbjudandet.
Konfliktlösningsprincipen som ska tillämpas på containern.
- session_token
- str
Token för användning med sessionskonsekvens.
- etag
- str
Ett ETag-värde eller jokertecknet (*). Används för att kontrollera om resursen har ändrats och agera enligt villkoret som anges av parametern match_condition .
- match_condition
- MatchConditions
Matchningsvillkoret som ska användas på etag.
En anropsbar anropad med svarsmetadata.
- analytical_storage_ttl
- int
TTL (Analytical Store Time to Live) för objekt i containern. Värdet None lämnar analyslagringen inaktiverad och värdet -1 aktiverar analyslagring utan TTL. Observera att analyslagring endast kan aktiveras på Synapse Link aktiverade konton.
Returer
En ContainerProxy-instans som representerar den nya containern.
Returtyp
Undantag
Det gick inte att skapa containern.
create_user
Skapa en ny användare i containern.
Om du vill uppdatera eller ersätta en befintlig användare använder du <xref:ContainerProxy.upsert_user> metoden .
async create_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy
Parametrar
Ett diktaliknande objekt med en ID-nyckel och ett värde som representerar användaren som ska skapas. Användar-ID:t måste vara unikt i databasen och bestå av högst 255 tecken.
En anropsbar anropad med svarsmetadata.
Returer
En UserProxy-instans som representerar den nya användaren.
Returtyp
Undantag
Om det inte gick att skapa den angivna användaren.
Exempel
Skapa en databasanvändare:
try:
await database.create_user(dict(id="Walter Harp"))
print("Created user Walter Harp.")
except exceptions.CosmosResourceExistsError:
print("A user with that ID already exists.")
except exceptions.CosmosHttpResponseError as failure:
print("Failed to create user. Status code:{}".format(failure.status_code))
delete_container
Ta bort en container.
async delete_container(container: str | ContainerProxy | Dict[str, Any], **kwargs: Any) -> None
Parametrar
- container
- str eller Dict[str, Any] eller ContainerProxy
ID:t (namn) för containern som ska tas bort. Du kan antingen skicka ID:t för containern för att ta bort, en ContainerProxy instans eller en diktamen som representerar containerns egenskaper.
- session_token
- str
Token för användning med sessionskonsekvens.
- etag
- str
Ett ETag-värde eller jokertecknet (*). Används för att kontrollera om resursen har ändrats och agera enligt villkoret som anges av parametern match_condition .
- match_condition
- MatchConditions
Matchningsvillkoret som ska användas på etag.
Returtyp
Undantag
Om containern inte kunde tas bort.
delete_user
Ta bort den angivna användaren från containern.
async delete_user(user: str | UserProxy | Dict[str, Any], **kwargs: Any) -> None
Parametrar
ID:t (namn), diktat som representerar egenskaperna eller UserProxy instansen för den användare som ska tas bort.
Returtyp
Undantag
Användaren har inte tagits bort.
Användaren finns inte i containern.
get_container_client
Hämta en ContainerProxy för en container med angivet ID (namn).
get_container_client(container: str | ContainerProxy | Dict[str, Any]) -> ContainerProxy
Parametrar
ID :t (namn), diktamen som representerar egenskaperna eller ContainerProxy instansen av containern som ska hämtas.
Returer
En ContainerProxy-instans som representerar containern.
Returtyp
Undantag
Det gick inte att skapa containern.
Exempel
Hämta en befintlig container, hantera ett fel om det påträffas:
database = client.get_database_client(database_name)
container = database.get_container_client(container_name)
get_throughput
Hämta objektet ThroughputProperties för den här databasen.
Om det inte redan finns några dataflödesegenskaper för databasen utlöses ett undantag.
async get_throughput(**kwargs: Any) -> ThroughputProperties
Parametrar
En anropsbar anropad med svarsmetadata.
Returer
DataflödeEgenskaper för databasen.
Returtyp
Undantag
Det finns inga dataflödesegenskaper för databasen eller så gick det inte att hämta dataflödesegenskaperna.
get_user_client
Hämta en UserProxy för en användare med angivet ID.
get_user_client(user: str | UserProxy | Dict[str, Any]) -> UserProxy
Parametrar
ID :t (namn), diktat som representerar egenskaperna eller UserProxy instansen av användaren som ska hämtas.
Returer
En UserProxy-instans som representerar den hämtade användaren.
Returtyp
Undantag
Det gick inte att skapa containern.
list_containers
Visa en lista över containrarna i databasen.
list_containers(**kwargs) -> AsyncItemPaged[Dict[str, Any]]
Parametrar
- max_item_count
- int
Maximalt antal objekt som ska returneras i uppräkningsåtgärden.
- session_token
- str
Token för användning med sessionskonsekvens.
En anropsbar anropad med svarsmetadata.
Returer
AsyncItemPaged med containeregenskaper (dikteringar).
Returtyp
Undantag
Det gick inte att skapa containern.
Exempel
Visa en lista över alla containrar i databasen:
database = client.get_database_client(database_name)
async for container in database.list_containers():
print("Container ID: {}".format(container['id']))
list_users
Visa en lista över alla användare i containern.
list_users(**kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]
Parametrar
- max_item_count
- int
Maximalt antal användare som ska returneras i uppräkningsåtgärden.
En anropsbar anropad med svarsmetadata.
Returer
AsyncItemPaged med användaregenskaper (dikteringar).
Returtyp
Undantag
Det gick inte att skapa containern.
query_containers
Visa en lista över egenskaperna för containrar i den aktuella databasen.
query_containers(**kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]
Parametrar
Valfri matris med parametrar i frågan. Varje parameter är en dict() med "namn" och "värde"-nycklar.
- max_item_count
- int
Maximalt antal objekt som ska returneras i uppräkningsåtgärden.
- session_token
- str
Token för användning med sessionskonsekvens.
En anropsbar anropad med svarsmetadata.
Returer
AsyncItemPaged med containeregenskaper (dikteringar).
Returtyp
Undantag
Det gick inte att skapa containern.
query_users
Returnera alla användare som matchar den angivna frågan.
query_users(query: str | Dict[str, Any], **kwargs: Any) -> AsyncItemPaged[Dict[str, Any]]
Parametrar
Valfri matris med parametrar i frågan. Varje parameter är en dict() med "namn" och "värde"-nycklar. Ignoreras om ingen fråga har angetts.
- max_item_count
- int
Maximalt antal användare som ska returneras i uppräkningsåtgärden.
En anropsbar anropad med svarsmetadata.
Returer
AsyncItemPaged med användaregenskaper (dikteringar).
Returtyp
Undantag
Det gick inte att skapa containern.
read
Läs databasegenskaperna.
async read(**kwargs: Any) -> Dict[str, Any]
Parametrar
- session_token
- str
Token för användning med sessionskonsekvens.
En anropsbar anropad med svarsmetadata.
Returer
En diktamen som representerar databasegenskaperna
Returtyp
Undantag
Om den angivna databasen inte kunde hämtas.
replace_container
Återställ egenskaperna för containern.
Egenskapsändringar sparas omedelbart. Alla egenskaper som inte anges återställs till standardvärdena.
async replace_container(container: str | ContainerProxy | Dict[str, Any], partition_key: PartitionKey, **kwargs: Any) -> ContainerProxy
Parametrar
ID:t (namn), diktamen som representerar egenskaperna eller ContainerProxy instansen av containern som ska ersättas.
- default_ttl
- int
Standardtid att leva (TTL) för objekt i containern. Om objekten är ospecificerade upphör de inte att gälla.
Konfliktlösningsprincipen som ska tillämpas på containern.
- session_token
- str
Token för användning med sessionskonsekvens.
- etag
- str
Ett ETag-värde eller jokertecknet (*). Används för att kontrollera om resursen har ändrats och agera enligt villkoret som anges av parametern match_condition .
- match_condition
- MatchConditions
Matchningsvillkoret som ska användas på etag.
En anropsbar anropad med svarsmetadata.
- analytical_storage_ttl
- int
TTL (Analytical Store Time to Live) för objekt i containern. Värdet None lämnar analyslagringen inaktiverad och värdet -1 aktiverar analyslagring utan TTL. Observera att analyslagring endast kan aktiveras på Synapse Link aktiverade konton.
Returer
En ContainerProxy-instans som representerar containern efter att ersättningen har slutförts.
Returtyp
Undantag
Upphöjt om containern inte kunde ersättas. Detta inkluderar om containern med angivet ID inte finns.
Exempel
Återställ TTL-egenskapen i en container och visa de uppdaterade egenskaperna:
# Set the TTL on the container to 3600 seconds (one hour)
await database.replace_container(container, partition_key=PartitionKey(path='/productName'), default_ttl=3600)
# Display the new TTL setting for the container
container_props = await database.get_container_client(container_name).read()
print("New container TTL: {}".format(json.dumps(container_props['defaultTtl'])))
replace_throughput
Ersätt dataflödet på databasnivå.
Om det inte redan finns några dataflödesegenskaper för databasen utlöses ett undantag.
async replace_throughput(throughput: int | ThroughputProperties, **kwargs: Any) -> ThroughputProperties
Parametrar
En anropsbar anropad med svarsmetadata.
Returer
DataflödeEgenskaper för databasen, uppdaterade med nytt dataflöde.
Returtyp
Undantag
Det finns inga dataflödesegenskaper för databasen eller så gick det inte att uppdatera dataflödesegenskaperna.
replace_user
Ersätter den angivna användaren om den finns i containern.
async replace_user(user: str | UserProxy | Dict[str, Any], body: Dict[str, Any], **kwargs: Any) -> UserProxy
Parametrar
ID:t (namn), diktat som representerar egenskaperna eller UserProxy instansen för den användare som ska ersättas.
Ett diktaliknande objekt som representerar användaren som ska ersättas.
En anropsbar anropad med svarsmetadata.
Returer
En UserProxy-instans som representerar användaren efter ersättningen gick igenom.
Returtyp
Undantag
Om ersättningen misslyckades eller om användaren med angivet ID inte finns.
upsert_user
Infoga eller uppdatera den angivna användaren.
Om användaren redan finns i containern ersätts den. Om användaren inte redan finns infogas den.
async upsert_user(body: Dict[str, Any], **kwargs: Any) -> UserProxy
Parametrar
Ett diktaliknande objekt som representerar användaren att uppdatera eller infoga.
En anropsbar anropad med svarsmetadata.
Returer
En UserProxy-instans som representerar den upserted användaren.
Returtyp
Undantag
Om den angivna användaren inte kunde upserted.
Azure SDK for Python
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för