Rychlý start: Klientská knihovna důvěrné knihy Microsoft Azure pro Python
Začínáme s klientskou knihovnou důvěrného registru Microsoft Azure pro Python Podle kroků v tomto článku nainstalujte balíček a vyzkoušejte ukázkový kód pro základní úlohy.
Důvěrný registr Microsoft Azure je nová a vysoce zabezpečená služba pro správu záznamů citlivých dat. Na základě modelu blockchainu s oprávněním nabízí důvěrné registru Azure jedinečné výhody integrity dat, jako je neměnnost (vytváření pouze připojení hlavní knihy) a kontrola pravopisu manipulací (aby se zajistilo, že všechny záznamy zůstanou nedotčené).
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Referenční dokumentace k | rozhraní API – Balíček knihovny zdrojového kódu | knihovny (Index balíčků Pythonu) – balíček knihovny pro| správu (index balíčků Pythonu)
Požadavky
- Předplatné Azure – vytvořte si ho zdarma. – Vlastník předplatného – Důvěrný registr může vytvářet jenom uživatelé, kteří mají oprávnění vlastníka k předplatnému Azure. Než budete pokračovat v tomto rychlém startu, ověřte, že máte odpovídající přístup .
- Verze Pythonu podporované sadou Azure SDK pro Python
- Azure CLI nebo Azure PowerShell.
Nastavení
V tomto rychlém startu se k ověření uživatele ve službách Azure používá knihovna identit Azure spolu s Azure CLI nebo Azure PowerShellem. Vývojáři také můžou k ověření volání použít Visual Studio nebo Visual Studio Code. Další informace najdete v tématu Ověřování klienta pomocí klientské knihovny Azure Identity.
Přihlášení k Azure
Přihlaste se k Azure pomocí příkazu az login azure CLI nebo rutiny Azure PowerShell Connect-AzAccount.
az login
Pokud může rozhraní příkazového řádku nebo PowerShell otevřít výchozí prohlížeč, provede se to a načte přihlašovací stránku Azure. V opačném případě navštivte https://aka.ms/devicelogin a zadejte autorizační kód zobrazený v terminálu.
Pokud se zobrazí výzva, přihlaste se pomocí přihlašovacích údajů k účtu v prohlížeči.
Instalace balíčků
V terminálu nebo příkazovém řádku vytvořte vhodnou složku projektu a pak vytvořte a aktivujte virtuální prostředí Pythonu, jak je popsáno v tématu Použití virtuálních prostředí Pythonu.
Nainstalujte klientskou knihovnu Microsoft Entra Identity:
pip install azure-identity
Nainstalujte klientskou knihovnu řídicí roviny registru Azure.
pip install azure.mgmt.confidentialledger
Nainstalujte klientskou knihovnu roviny dat v rovině důvěrných registrů Azure.
pip install azure.confidentialledger
Vytvoření skupiny zdrojů
Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Pomocí příkazu Az group az cli nebo rutiny Azure PowerShell New-AzResourceGroup vytvořte skupinu prostředků myResourceGroup v umístění eastus.
az group create --name "myResourceGroup" -l "EastUS"
Zaregistrujte microsoft. Poskytovatel prostředků ConfidentialLedger
Poskytovatel prostředků je služba, která poskytuje prostředky Azure. Pomocí příkazu Az provider az Azure CLI nebo rutiny Azure PowerShell Register-AzResourceProvider zaregistrujte poskytovatele prostředků důvěrného registru Azure microsoft. Důvěrnéledger'.
az provider register --namespace "microsoft.ConfidentialLedger"
Registraci můžete ověřit pomocí příkazu az provider register v Azure CLI nebo pomocí rutiny Azure PowerShell Get-AzResourceProvider.
az provider show --namespace "microsoft.ConfidentialLedger"
Vytvoření aplikace v Pythonu
Inicializace
Teď můžeme začít psát naši aplikaci v Pythonu. Nejprve naimportujte požadované balíčky.
# Import the Azure authentication library
from azure.identity import DefaultAzureCredential
## Import the control plane sdk
from azure.mgmt.confidentialledger import ConfidentialLedger as ConfidentialLedgerAPI
from azure.mgmt.confidentialledger.models import ConfidentialLedger
# import the data plane sdk
from azure.confidentialledger import ConfidentialLedgerClient
from azure.confidentialledger.certificate import ConfidentialLedgerCertificateClient
Dále použijte defaultAzureCredential Třída k ověření aplikace.
credential = DefaultAzureCredential()
Dokončete nastavení nastavením některých proměnných pro použití v aplikaci: skupina prostředků (myResourceGroup), název registru, který chcete vytvořit, a dvě adresy URL, které má klientská knihovna roviny dat používat.
Důležité
Každý registr musí mít globálně jedinečný název. Nahraďte <název registru jedinečným> názvem registru v následujícím příkladu.
resource_group = "<azure-resource-group>"
ledger_name = "<your-unique-ledger-name>"
subscription_id = "<azure-subscription-id>"
identity_url = "https://identity.confidential-ledger.core.azure.com"
ledger_url = "https://" + ledger_name + ".confidential-ledger.azure.com"
Použití klientské knihovny řídicí roviny
Klientská knihovna řídicí roviny (azure.mgmt.confidentialledger) umožňuje operace s registry, jako je vytvoření, úprava, odstranění, výpis registrů přidružených k předplatnému a získání podrobností o konkrétním registru.
V kódu nejprve vytvořte klienta řídicí roviny předáním důvěrnéledgerAPI proměnné přihlašovacích údajů a ID předplatného Azure (obojí je nastaveno výše).
confidential_ledger_mgmt = ConfidentialLedgerAPI(
credential, subscription_id
)
Nyní můžeme vytvořit registr pomocí begin_create
. Funkce begin_create
vyžaduje tři parametry: vaši skupinu prostředků, název hlavní knihy a objekt "properties".
properties
Vytvořte slovník s následujícími klíči a hodnotami a přiřaďte ho proměnné.
properties = {
"location": "eastus",
"tags": {},
"properties": {
"ledgerType": "Public",
"aadBasedSecurityPrincipals": [],
},
}
ledger_properties = ConfidentialLedger(**properties)
Nyní předejte skupinu prostředků, název registru a objekt vlastností do begin_create
.
confidential_ledger_mgmt.ledger.begin_create(resource_group, ledger_name, ledger_properties)
Pokud chcete ověřit, že se registr úspěšně vytvořil, zobrazte jeho podrobnosti pomocí get
funkce.
myledger = confidential_ledger_mgmt.ledger.get(resource_group, ledger_name)
print("Here are the details of your newly created ledger:")
print (f"- Name: {myledger.name}")
print (f"- Location: {myledger.location}")
print (f"- ID: {myledger.id}")
Použití klientské knihovny roviny dat
Když teď máme hlavní knihy, interagujte s ní pomocí klientské knihovny roviny dat (azure.confidentialledger).
Nejprve vygenerujeme a uložíme důvěrný certifikát registru.
identity_client = ConfidentialLedgerCertificateClient(identity_url)
network_identity = identity_client.get_ledger_identity(
ledger_id=ledger_name
)
ledger_tls_cert_file_name = "networkcert.pem"
with open(ledger_tls_cert_file_name, "w") as cert_file:
cert_file.write(network_identity['ledgerTlsCertificate'])
Teď můžeme použít síťový certifikát spolu s adresou URL registru a našimi přihlašovacími údaji k vytvoření důvěrného klienta registru.
ledger_client = ConfidentialLedgerClient(
endpoint=ledger_url,
credential=credential,
ledger_certificate_path=ledger_tls_cert_file_name
)
Jsme připraveni napsat do registru. Provedeme to pomocí create_ledger_entry
funkce.
sample_entry = {"contents": "Hello world!"}
append_result = ledger_client.create_ledger_entry(entry=sample_entry)
print(append_result['transactionId'])
Funkce tisku vrátí ID transakce zápisu do registru, které lze použít k načtení zprávy, kterou jste napsali do registru.
entry = ledger_client.get_ledger_entry(transaction_id=append_result['transactionId'])['entry']
print(f"Entry (transaction id = {entry['transactionId']}) in collection {entry['collectionId']}: {entry['contents']}")
Pokud chcete jenom nejnovější transakci, která byla potvrzena do registru, můžete použít get_current_ledger_entry
funkci.
latest_entry = ledger_client.get_current_ledger_entry()
print(f"Current entry (transaction id = {latest_entry['transactionId']}) in collection {latest_entry['collectionId']}: {latest_entry['contents']}")
Funkce tisku vrátí "Hello world!", protože se jedná o zprávu v registru, která odpovídá ID transakce a je nejnovější transakcí.
Celý ukázkový kód
import time
from azure.identity import DefaultAzureCredential
## Import control plane sdk
from azure.mgmt.confidentialledger import ConfidentialLedger as ConfidentialLedgerAPI
from azure.mgmt.confidentialledger.models import ConfidentialLedger
# import data plane sdk
from azure.confidentialledger import ConfidentialLedgerClient
from azure.confidentialledger.certificate import ConfidentialLedgerCertificateClient
# Set variables
resource_group = "<azure-resource-group>"
ledger_name = "<your-unique-ledger-name>"
subscription_id = "<azure-subscription-id>"
identity_url = "https://identity.confidential-ledger.core.azure.com"
ledger_url = "https://" + ledger_name + ".confidential-ledger.azure.com"
# Authentication
# Need to do az login to get default credential to work
credential = DefaultAzureCredential()
# Control plane (azure.mgmt.confidentialledger)
#
# initialize endpoint with credential and subscription
confidential_ledger_mgmt = ConfidentialLedgerAPI(
credential, "<subscription-id>"
)
# Create properties dictionary for begin_create call
properties = {
"location": "eastus",
"tags": {},
"properties": {
"ledgerType": "Public",
"aadBasedSecurityPrincipals": [],
},
}
ledger_properties = ConfidentialLedger(**properties)
# Create a ledger
confidential_ledger_mgmt.ledger.begin_create(resource_group, ledger_name, ledger_properties)
# Get the details of the ledger you just created
print(f"{resource_group} / {ledger_name}")
print("Here are the details of your newly created ledger:")
myledger = confidential_ledger_mgmt.ledger.get(resource_group, ledger_name)
print (f"- Name: {myledger.name}")
print (f"- Location: {myledger.location}")
print (f"- ID: {myledger.id}")
# Data plane (azure.confidentialledger)
#
# Create a CL client
identity_client = ConfidentialLedgerCertificateClient(identity_url)
network_identity = identity_client.get_ledger_identity(
ledger_id=ledger_name
)
ledger_tls_cert_file_name = "networkcert.pem"
with open(ledger_tls_cert_file_name, "w") as cert_file:
cert_file.write(network_identity['ledgerTlsCertificate'])
ledger_client = ConfidentialLedgerClient(
endpoint=ledger_url,
credential=credential,
ledger_certificate_path=ledger_tls_cert_file_name
)
# Write to the ledger
sample_entry = {"contents": "Hello world!"}
ledger_client.create_ledger_entry(entry=sample_entry)
# Read from the ledger
latest_entry = ledger_client.get_current_ledger_entry()
print(f"Current entry (transaction id = {latest_entry['transactionId']}) in collection {latest_entry['collectionId']}: {latest_entry['contents']}")
Pollers
Pokud chcete počkat na potvrzení transakce zápisu do registru, můžete použít begin_create_ledger_entry
funkci. Tím se vrátí poller, který počká, dokud nebude trvale potvrzena položka.
sample_entry = {"contents": "Hello world!"}
ledger_entry_poller = ledger_client.begin_create_ledger_entry(
entry=sample_entry
)
ledger_entry_result = ledger_entry_poller.result()
Dotazování starší položky registru vyžaduje, aby hlavní kniha přečetla položku z disku a ověřila ji. Pomocí funkce můžete begin_get_ledger_entry
vytvořit poller, která bude čekat, až bude dotazovaná položka ve stavu připraveno k zobrazení.
get_entry_poller = ledger_client.begin_get_ledger_entry(
transaction_id=ledger_entry_result['transactionId']
)
entry = get_entry_poller.result()
Vyčištění prostředků
Další články o důvěrných registrech Azure můžou vycházet z tohoto rychlého startu. Pokud chcete pokračovat v práci s dalšími rychlými starty a kurzy, možná budete chtít tyto prostředky zachovat.
Jinak po dokončení práce s prostředky vytvořenými v tomto článku pomocí příkazu az group delete v Azure CLI odstraňte skupinu prostředků a všechny její obsažené prostředky:
az group delete --resource-group myResourceGroup