Hızlı Başlangıç: Python için Microsoft Azure gizli kayıt defteri istemci kitaplığı
Python için Microsoft Azure gizli kayıt defteri istemci kitaplığını kullanmaya başlayın. Paketi yüklemek için bu makaledeki adımları izleyin ve temel görevler için örnek kodu deneyin.
Microsoft Azure gizli kayıt defteri, hassas veri kayıtlarını yönetmeye yönelik yeni ve son derece güvenli bir hizmettir. İzinli bir blok zinciri modeline dayalı olarak, Azure gizli kayıt defteri değişmezlik (kayıt defterini yalnızca ekleme) ve kurcalama yazım denetleme (tüm kayıtların bozulmadığından emin olmak için) gibi benzersiz veri bütünlüğü avantajları sunar.
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
API başvuru belgeleri | Kitaplık kaynak kodu | Paketi (Python Paket Dizini) Yönetim Kitaplığı| Paketi (Python Paket Dizini) İstemci Kitaplığı
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun. - Abonelik sahibi - Gizli bir kayıt defteri yalnızca Azure aboneliğinde Sahip izinleri olan kullanıcılar tarafından oluşturulabilir. Bu hızlı başlangıca devam etmeden önce uygun erişime sahip olduğunuzu onaylayın..
- Python için Azure SDK tarafından desteklenen Python sürümleri.
- Azure CLI veya Azure PowerShell.
Ayarlama
Bu hızlı başlangıçta Azure Hizmetleri'nde kullanıcının kimliğini doğrulamak için Azure CLI veya Azure PowerShell ile birlikte Azure Kimlik kitaplığı kullanılmaktadır. Geliştiriciler, aramalarının kimliğini doğrulamak için Visual Studio veya Visual Studio Code da kullanabilir. Daha fazla bilgi için bkz . Azure Identity istemci kitaplığıyla istemcinin kimliğini doğrulama.
Azure'da oturum açma
Azure CLI az login komutunu veya Azure PowerShell Connect-AzAccount cmdlet'ini kullanarak Azure'da oturum açın.
az login
CLI veya PowerShell varsayılan tarayıcınızı açabiliyorsa bunu yapar ve bir Azure oturum açma sayfası yükler. Aksi takdirde, terminalinizde görüntülenen yetkilendirme kodunu ziyaret edin https://aka.ms/devicelogin ve girin.
İstenirse, tarayıcıda hesap kimlik bilgilerinizle oturum açın.
Paketleri yükleme
Terminalde veya komut isteminde uygun bir proje klasörü oluşturun ve python sanal ortamlarını kullanma konusunda açıklandığı gibi bir Python sanal ortamı oluşturup etkinleştirin.
Microsoft Entra identity istemci kitaplığını yükleyin:
pip install azure-identity
Azure gizli kayıt defteri denetim düzlemi istemci kitaplığını yükleyin.
pip install azure.mgmt.confidentialledger
Azure gizli kayıt defteri veri düzlemi istemci kitaplığını yükleyin.
pip install azure.confidentialledger
Kaynak grubu oluşturma
Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturmak için Azure CLI az group create komutunu veya Azure PowerShell New-AzResourceGroup cmdlet'ini kullanın.
az group create --name "myResourceGroup" -l "EastUS"
Microsoft'u kaydedin. ConfidentialLedger kaynak sağlayıcısı
Kaynak sağlayıcısı, Azure kaynaklarını sağlayan bir hizmettir. Azure gizli kayıt defteri kaynak sağlayıcısı olan 'microsoft'u kaydetmek için Azure CLI az provider register komutunu veya Azure PowerShell Register-AzResourceProvider cmdlet'ini kullanın. ConfidentialLedger'.
az provider register --namespace "microsoft.ConfidentialLedger"
Azure CLI az provider register komutu veya Azure PowerShell Get-AzResourceProvider cmdlet'iyle kaydın tamamlandığını doğrulayabilirsiniz.
az provider show --namespace "microsoft.ConfidentialLedger"
Python uygulamanızı oluşturma
Başlatma
Artık Python uygulamamızı yazmaya başlayabiliriz. İlk olarak gerekli paketleri içeri aktarın.
# 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
Ardından, uygulamanın kimliğini doğrulamak için DefaultAzureCredential Sınıfını kullanın.
credential = DefaultAzureCredential()
Uygulamanızda kullanılacak bazı değişkenleri ayarlayarak kurulumu tamamlayın: kaynak grubu (myResourceGroup), oluşturmak istediğiniz kayıt defteri adı ve veri düzlemi istemci kitaplığı tarafından kullanılacak iki URL.
Önemli
Her kayıt defterinin genel olarak benzersiz bir adı olmalıdır. Benzersiz-kayıt defteri-adınızı> aşağıdaki örnekteki kayıt defterinizin adıyla değiştirin<.
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"
Denetim düzlemi istemci kitaplığını kullanma
Denetim düzlemi istemci kitaplığı (azure.mgmt.confidentialledger), kayıt defterlerinde oluşturma, değiştirme, silme, abonelikle ilişkili kayıt defterlerini listeleme ve belirli bir kayıt defterinin ayrıntılarını alma gibi işlemlere olanak tanır.
Kodda, önce ConfidentialLedgerAPI kimlik bilgisi değişkenini ve Azure abonelik kimliğinizi (her ikisi de yukarıda ayarlanmıştır) geçirerek bir denetim düzlemi istemcisi oluşturun.
confidential_ledger_mgmt = ConfidentialLedgerAPI(
credential, subscription_id
)
Artık kullanarak begin_create
bir kayıt defteri oluşturabiliriz. İşlev begin_create
üç parametre gerektirir: kaynak grubunuz, kayıt defteri için bir ad ve bir "özellikler" nesnesi.
Aşağıdaki anahtarlara ve değerlere sahip bir properties
sözlük oluşturun ve bunu bir değişkene atayın.
properties = {
"location": "eastus",
"tags": {},
"properties": {
"ledgerType": "Public",
"aadBasedSecurityPrincipals": [],
},
}
ledger_properties = ConfidentialLedger(**properties)
Şimdi kaynak grubunu, kayıt defterinizin adını ve properties nesnesini öğesine begin_create
geçirin.
confidential_ledger_mgmt.ledger.begin_create(resource_group, ledger_name, ledger_properties)
Kayıt defterinizin başarıyla oluşturulduğunu doğrulamak için işlevini kullanarak get
ayrıntılarını görüntüleyin.
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}")
Veri düzlemi istemci kitaplığını kullanma
Artık bir kayıt defterimiz olduğuna göre veri düzlemi istemci kitaplığını (azure.confidentialledger) kullanarak kayıt defteriyle etkileşime geçin.
İlk olarak gizli bir kayıt defteri sertifikası oluşturup kaydediyoruz.
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'])
Artık gizli bir kayıt defteri istemcisi oluşturmak için ağ sertifikasını, kayıt defteri URL'si ve kimlik bilgilerimizle birlikte kullanabiliriz.
ledger_client = ConfidentialLedgerClient(
endpoint=ledger_url,
credential=credential,
ledger_certificate_path=ledger_tls_cert_file_name
)
Kayıt defterine yazmaya hazırız. Bunu işlevini kullanarak yapacağız create_ledger_entry
.
sample_entry = {"contents": "Hello world!"}
append_result = ledger_client.create_ledger_entry(entry=sample_entry)
print(append_result['transactionId'])
Yazdırma işlevi, kayıt defterine yazma işleminizin hareket kimliğini döndürür ve bu kimlik kayıt defterine yazdığınız iletiyi almak için kullanılabilir.
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']}")
Yalnızca kayıt defterine kaydedilmiş en son hareketi istiyorsanız, işlevini kullanabilirsiniz get_current_ledger_entry
.
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']}")
Print işlevi ,kayıt defterinde hareket kimliğine karşılık gelen ve en son hareket olan ileti olduğundan "Merhaba dünya!" değerini döndürür.
Tam örnek kod
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']}")
Anketçiler
Yazma işleminizin kayıt defterinize işlenmesini beklemek isterseniz işlevini kullanabilirsiniz begin_create_ledger_entry
. Bu, girişin durarak işlenmesini beklemek için bir poller döndürür.
sample_entry = {"contents": "Hello world!"}
ledger_entry_poller = ledger_client.begin_create_ledger_entry(
entry=sample_entry
)
ledger_entry_result = ledger_entry_poller.result()
Eski bir kayıt defteri girişini sorgulamak için kayıt defterinin girişi diskten okuması ve doğrulaması gerekir. sorgulanan girdi görüntülenmeye hazır duruma gelene kadar bekleyecek bir poller oluşturmak için işlevini kullanabilirsiniz begin_get_ledger_entry
.
get_entry_poller = ledger_client.begin_get_ledger_entry(
transaction_id=ledger_entry_result['transactionId']
)
entry = get_entry_poller.result()
Kaynakları temizleme
Diğer Azure gizli kayıt defteri makaleleri bu hızlı başlangıcı temel alabilir. Sonraki hızlı başlangıç ve öğreticilerle çalışmaya devam etmeyi planlıyorsanız, bu kaynakları yerinde bırakmanız yararlı olabilir.
Aksi takdirde, bu makalede oluşturulan kaynaklarla işiniz bittiğinde, kaynak grubunu ve içerdiği tüm kaynakları silmek için Azure CLI az group delete komutunu kullanın:
az group delete --resource-group myResourceGroup