Wiele chmur: Połączenie do wszystkich regionów z bibliotekami platformy Azure dla języka Python
Biblioteki platformy Azure dla języka Python umożliwiają łączenie się ze wszystkimi regionami, w których platforma Azure jest dostępna.
Domyślnie biblioteki platformy Azure są skonfigurowane do łączenia się z globalną chmurą platformy Azure.
Używanie wstępnie zdefiniowanych stałych suwerennej chmury
Wstępnie zdefiniowane stałe suwerennej chmury są dostarczane przez AzureAuthorityHosts
moduł azure.identity
biblioteki:
AZURE_CHINA
AZURE_GOVERNMENT
AZURE_PUBLIC_CLOUD
Aby użyć definicji, zaimportuj odpowiednią stałą i azure.identity.AzureAuthorityHosts
zastosuj ją podczas tworzenia obiektów klienta.
W przypadku używania elementu DefaultAzureCredential
, jak pokazano w poniższym przykładzie, możesz określić chmurę przy użyciu odpowiedniej wartości z azure.identity.AzureAuthorityHosts
.
import os
from azure.mgmt.resource import ResourceManagementClient, SubscriptionClient
from azure.identity import DefaultAzureCredential, AzureAuthorityHosts
authority = AzureAuthorityHosts.AZURE_CHINA
resource_manager = "https://management.chinacloudapi.cn"
# Set environment variable AZURE_SUBSCRIPTION_ID as well as environment variables
# for DefaultAzureCredential. For combinations of environment variables, see
# https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#environment-variables
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
# When using sovereign domains (that is, any cloud other than AZURE_PUBLIC_CLOUD),
# you must use an authority with DefaultAzureCredential.
credential = DefaultAzureCredential(authority=authority)
resource_client = ResourceManagementClient(
credential, subscription_id,
base_url=resource_manager,
credential_scopes=[resource_manager + "/.default"])
subscription_client = SubscriptionClient(
credential,
base_url=resource_manager,
credential_scopes=[resource_manager + "/.default"])
Korzystanie z własnej definicji chmury
W poniższym kodzie zastąp wartości authority
zmiennych , endpoint
i audience
wartościami odpowiednimi dla chmury prywatnej.
import os
from azure.mgmt.resource import ResourceManagementClient, SubscriptionClient
from azure.identity import DefaultAzureCredential
from azure.profiles import KnownProfiles
# Set environment variable AZURE_SUBSCRIPTION_ID as well as environment variables
# for DefaultAzureCredential. For combinations of environment variables, see
# https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#environment-variables
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
authority = "<your authority>"
endpoint = "<your endpoint>"
audience = "<your audience>"
# When using a private cloud, you must use an authority with DefaultAzureCredential.
# The active_directory endpoint should be a URL like https://login.microsoftonline.com.
credential = DefaultAzureCredential(authority=authority)
resource_client = ResourceManagementClient(
credential, subscription_id,
base_url=endpoint,
profile=KnownProfiles.v2019_03_01_hybrid,
credential_scopes=[audience])
subscription_client = SubscriptionClient(
credential,
base_url=endpoint,
profile=KnownProfiles.v2019_03_01_hybrid,
credential_scopes=[audience])
Na przykład w usłudze Azure Stack możesz użyć polecenia az cloud show CLI, aby zwrócić szczegóły zarejestrowanej chmury. Poniższe dane wyjściowe pokazują wartości zwracane dla chmury publicznej platformy Azure, ale dane wyjściowe dla chmury prywatnej usługi Azure Stack powinny być podobne.
{
"endpoints": {
"activeDirectory": "https://login.microsoftonline.com",
"activeDirectoryDataLakeResourceId": "https://datalake.azure.net/",
"activeDirectoryGraphResourceId": "https://graph.windows.net/",
"activeDirectoryResourceId": "https://management.core.windows.net/",
"appInsightsResourceId": "https://api.applicationinsights.io",
"appInsightsTelemetryChannelResourceId": "https://dc.applicationinsights.azure.com/v2/track",
"attestationResourceId": "https://attest.azure.net",
"azmirrorStorageAccountResourceId": null,
"batchResourceId": "https://batch.core.windows.net/",
"gallery": "https://gallery.azure.com/",
"logAnalyticsResourceId": "https://api.loganalytics.io",
"management": "https://management.core.windows.net/",
"mediaResourceId": "https://rest.media.azure.net",
"microsoftGraphResourceId": "https://graph.microsoft.com/",
"ossrdbmsResourceId": "https://ossrdbms-aad.database.windows.net",
"portal": "https://portal.azure.com",
"resourceManager": "https://management.azure.com/",
"sqlManagement": "https://management.core.windows.net:8443/",
"synapseAnalyticsResourceId": "https://dev.azuresynapse.net",
"vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json"
},
"isActive": true,
"name": "AzureCloud",
"profile": "latest",
"suffixes": {
"acrLoginServerEndpoint": ".azurecr.io",
"attestationEndpoint": ".attest.azure.net",
"azureDatalakeAnalyticsCatalogAndJobEndpoint": "azuredatalakeanalytics.net",
"azureDatalakeStoreFileSystemEndpoint": "azuredatalakestore.net",
"keyvaultDns": ".vault.azure.net",
"mariadbServerEndpoint": ".mariadb.database.azure.com",
"mhsmDns": ".managedhsm.azure.net",
"mysqlServerEndpoint": ".mysql.database.azure.com",
"postgresqlServerEndpoint": ".postgres.database.azure.com",
"sqlServerHostname": ".database.windows.net",
"storageEndpoint": "core.windows.net",
"storageSyncEndpoint": "afs.azure.net",
"synapseAnalyticsEndpoint": ".dev.azuresynapse.net"
}
}
W poprzednim kodzie można ustawić authority
wartość endpoints.activeDirectory
właściwości na wartość endpoints.resourceManager
właściwości, endpoint
wartość właściwości i audience
wartość endpoints.activeDirectoryResourceId
właściwości + ".default".
Aby uzyskać więcej informacji, zobacz Używanie interfejsu wiersza polecenia platformy Azure z usługą Azure Stack Hub i Uzyskiwanie informacji o uwierzytelnianiu dla usługi Azure Stack Hub.