إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا التشغيل السريع، يمكنك نشر Azure Cosmos DB أساسي لتطبيق Table باستخدام Azure SDK ل Go. Azure Cosmos DB للجدول هو مخزن بيانات بلا مخطط يسمح للتطبيقات بتخزين بيانات الجدول المنظمة في السحابة. ستتعلم كيفية إنشاء جداول وصفوف وتنفيذ المهام الأساسية داخل مورد Azure Cosmos DB باستخدام Azure SDK ل Go.
حزمة التعليمات البرمجية | لمصدر المكتبة (Go) | Azure Developer CLI
المتطلبات الأساسية
- Azure Developer CLI
- سطح مكتب Docker
-
Go1.21 أو أحدث
إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
تهيئة المشروع
استخدم Azure Developer CLI (azd) لإنشاء حساب Azure Cosmos DB للجدول ونشر نموذج تطبيق حاوية. يستخدم نموذج التطبيق مكتبة العميل لإدارة البيانات النموذجية وإنشاءها وقراءتها والاستعلام عن البيانات.
افتح محطة طرفية في دليل فارغ.
إذا لم تكن قد تمت مصادقتك بالفعل، فقم بالمصادقة على Azure Developer CLI باستخدام
azd auth login. اتبع الخطوات المحددة بواسطة الأداة للمصادقة على CLI باستخدام بيانات اعتماد Azure المفضلة لديك.azd auth loginاستخدم
azd initلتهيئة المشروع.azd init --template cosmos-db-table-go-quickstartأثناء التهيئة، قم بتكوين اسم بيئة فريد.
انشر حساب Azure Cosmos DB باستخدام
azd up. تنشر قوالب Bicep أيضا نموذج تطبيق ويب.azd upأثناء عملية التوفير، حدد اشتراكك والموقع المطلوب ومجموعة الموارد المستهدفة. انتظر حتى اكتمال عملية التوفير. قد تستغرق العملية حوالي خمس دقائق.
بمجرد توفير موارد Azure الخاصة بك، يتم تضمين عنوان URL لتطبيق الويب قيد التشغيل في الإخراج.
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io> SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.استخدم عنوان URL في وحدة التحكم للانتقال إلى تطبيق الويب الخاص بك في المستعرض. لاحظ إخراج التطبيق قيد التشغيل.
تثبيت مكتبة العميل
تتوفر مكتبة العميل من خلال Go، كحزمة aztables .
افتح terminal وانتقل إلى
/srcالمجلد.cd ./srcإذا لم يكن مثبتا بالفعل، فقم بتثبيت الحزمة
aztablesباستخدامgo install.go install github.com/Azure/azure-sdk-for-go/sdk/data/aztablesافتح الملف src/go.mod وراجعه للتحقق من
github.com/Azure/azure-sdk-for-go/sdk/data/aztablesوجود الإدخال.
استيراد مكتبات
github.com/Azure/azure-sdk-for-go/sdk/azidentity استيراد الحزم و github.com/Azure/azure-sdk-for-go/sdk/data/aztables إلى التعليمات البرمجية للتطبيق الخاص بك.
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/data/aztables"
)
نموذج الكائن
| Name | الوصف |
|---|---|
ServiceClient |
هذا النوع هو نوع العميل الأساسي ويستخدم لإدارة بيانات التعريف أو قواعد البيانات على مستوى الحساب. |
Client |
يمثل هذا النوع العميل لجدول داخل الحساب. |
أمثلة على التعليمات البرمجية
يستخدم نموذج التعليمات البرمجية في القالب جدولا يسمى cosmicworks-products.
cosmicworks-products يحتوي الجدول على تفاصيل مثل الاسم والفئة والكمية والسعر والمعرف الفريد وعلامة البيع لكل منتج. تستخدم الحاوية معرفا فريدا كمفتاح الصف والفئة كمفتاح قسم.
مصادقة العميل
ينشئ هذا النموذج مثيلا جديدا من ServiceClient النوع .
credential, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
return err
}
client, err := aztables.NewServiceClient("<azure-cosmos-db-table-account-endpoint>", credential)
if err != nil {
log.Fatal(err)
}
الحصول على جدول
ينشئ هذا النموذج مثيلا من Client النوع باستخدام الدالة NewClient من ServiceClient النوع .
table, err := client.NewClient("<azure-cosmos-db-table-name>")
if err != nil {
log.Fatal(err)
}
إنشاء كيان
أسهل طريقة لإنشاء كيان جديد في جدول هي إنشاء مثيل من النوع aztables.EDMEntity. قم بتعيين الخصائص RowKey و PartitionKey باستخدام aztables.Entity النوع ثم قم بتعيين أي خصائص إضافية باستخدام مخطط سلسلة.
entity := aztables.EDMEntity{
Entity: aztables.Entity{
RowKey: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
PartitionKey: "gear-surf-surfboards",
},
Properties: map[string]any{
"Name": "Yamba Surfboard",
"Quantity": 12,
"Price": 850.00,
"Clearance": false,
},
}
قم باختر الكيان في صفيف بايت باستخدام json.Marshal ثم قم بإنشاء الكيان في الجدول باستخدام UpsertEntity.
bytes, err := json.Marshal(entity)
if err != nil {
panic(err)
}
_, err = table.UpsertEntity(context.TODO(), bytes, nil)
if err != nil {
panic(err)
}
الحصول على كيان
يمكنك استرداد كيان معين من جدول باستخدام GetEntity. يمكنك بعد ذلك استخدام json.Unmarshal لتحليله باستخدام aztables.EDMEntity النوع .
rowKey := "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
partitionKey := "gear-surf-surfboards"
response, err := table.GetEntity(context.TODO(), partitionKey, rowKey, nil)
if err != nil {
panic(err)
}
var entity aztables.EDMEntity
err = json.Unmarshal(response.Value, &entity)
if err != nil {
panic(err)
}
الاستعلام عن الكيانات
بعد إدراج كيان، يمكنك أيضا تشغيل استعلام للحصول على كافة الكيانات التي تطابق عامل تصفية معين باستخدام NewListEntitiesPager مع عامل تصفية سلسلة.
category := "gear-surf-surfboards"
// Ensure the value is OData-compliant by escaping single quotes
safeCategory := strings.ReplaceAll(category, "'", "''")
filter := fmt.Sprintf("PartitionKey eq '%s'", safeCategory)
options := &aztables.ListEntitiesOptions{
Filter: &filter,
}
pager := table.NewListEntitiesPager(options)
تحليل النتائج المرقمة للاستعلام باستخدام More دالة pager لتحديد ما إذا كان هناك المزيد من الصفحات، ثم الدالة NextPage للحصول على الصفحة التالية من النتائج.
for pager.More() {
response, err := pager.NextPage(context.TODO())
if err != nil {
panic(err)
}
for _, entityBytes := range response.Entities {
var entity aztables.EDMEntity
err := json.Unmarshal(entityBytes, &entity)
if err != nil {
panic(err)
}
writeOutput(fmt.Sprintf("Found entity:\t%s\t%s", entity.Properties["Name"], entity.RowKey))
}
}
تنظيف الموارد
عندما لم تعد بحاجة إلى نموذج التطبيق أو الموارد، قم بإزالة التوزيع المقابل وجميع الموارد.
azd down