مشاركة عبر


إنشاء Azure Function التي تتصل بقاعدة بيانات Azure Cosmos DB

هذا البرنامج النصي النموذجي لـ Azure Functions ينشئ تطبيق دوال ويربط الدالة بقاعدة بيانات Azure Cosmos DB. يقوم بإجراء الاتصال باستخدام نقطة نهاية Azure Cosmos DB ومفتاح الوصول الذي يضيفه إلى إعدادات التطبيق. يمكن استخدام إعداد التطبيق الذي تم إنشاؤه والذي يحتوي على الاتصال مع مشغل أو ربط Azure Cosmos DB.

إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.

المتطلبات الأساسية

نموذج البرنامج النصي

إطلاق Azure Cloud Shell

Azure Cloud Shell هو shell تفاعلية مجانية التي يمكنك استخدامها لتشغيل الخطوات في هذه المقالة. يحتوي على أدوات Azure الشائعة المثبتة مسبقًا والمهيئة للاستخدام مع حسابك.

لفتح Cloud Shell، ما عليك سوى تحديد جربه من الزاوية اليمنى العليا من مجموعة التعليمات البرمجية. يمكنك أيضًا تشغيل Cloud Shell في علامة تبويب مستعرض منفصلة بالانتقال إلى https://shell.azure.com.

عند فتح Cloud Shell، تحقق من تحديد Bash لبيئتك. ستستخدم الجلسات اللاحقة Azure CLI في بيئة Bash، حدد نسخ لنسخ كتل التعليمات البرمجية، وألصقها في Cloud Shell، واضغط على Enter لتشغيلها.

تسجيل الدخول إلى Azure

يُصادق Cloud Shell تلقائياً بموجب الحساب الأولي الذي سُجل الدخول به. استخدم البرنامج النصي التالي لتسجيل الدخول باستخدام اشتراك مختلف، واستبدال subscriptionId بمعرف اشتراك Azure الخاص بك.

إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.

subscription="subscriptionId" # Set Azure subscription ID here

az account set -s $subscription # ...or use 'az login'

لمزيد من المعلومات، راجع تعيين الاشتراك النشط أو تسجيل الدخول بشكل تفاعلي.

تشغيل البرنامج النصي

# Function app and storage account names must be unique.

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="eastus"
resourceGroup="msdocs-azure-functions-rg-$randomIdentifier"
tag="create-function-app-connect-to-cosmos-db"
storage="msdocsaccount$randomIdentifier"
functionApp="msdocs-serverless-function-$randomIdentifier"
skuStorage="Standard_LRS"
functionsVersion="4"

# Create a resource group
echo "Creating $resourceGroup in "$location"..."
az group create --name $resourceGroup --location "$location" --tags $tag

# Create a storage account for the function app. 
echo "Creating $storage"
az storage account create --name $storage --location "$location" --resource-group $resourceGroup --sku $skuStorage

# Create a serverless function app in the resource group.
echo "Creating $functionApp"
az functionapp create --name $functionApp --resource-group $resourceGroup --storage-account $storage --consumption-plan-location "$location" --functions-version $functionsVersion

# Create an Azure Cosmos DB database account using the same function app name.
echo "Creating $functionApp"
az cosmosdb create --name $functionApp --resource-group $resourceGroup

# Get the Azure Cosmos DB connection string.
endpoint=$(az cosmosdb show --name $functionApp --resource-group $resourceGroup --query documentEndpoint --output tsv)
echo $endpoint

key=$(az cosmosdb keys list --name $functionApp --resource-group $resourceGroup --query primaryMasterKey --output tsv)
echo $key

# Configure function app settings to use the Azure Cosmos DB connection string.
az functionapp config appsettings set --name $functionApp --resource-group $resourceGroup --setting CosmosDB_Endpoint=$endpoint CosmosDB_Key=$key

تنظيف الموارد

استخدم الأمر التالي لإزالة مجموعة الموارد وجميع الموارد المقترنة بها باستخدام الأمر az group delete - إلا إذا وُجدت حاجة مستمرة لهذه الموارد. قد يستغرق إنشاء بعض هذه الموارد بعض الوقت، وكذلك حذفها.

az group delete --name $resourceGroup

نموذج مرجع

الأمر ملاحظات
مجموعة az Create إنشاء مجموعة موارد مع الموقع
إنشاء حسابات تخزين az إنشاء حساب تخزين
az functionapp create ينشئ تطبيق دوال في خطة الاستهلاك التي بلا خادم.
إنشاء az cosmosdb إنشاء قاعدة بيانات في Azure Cosmos DB.
عرض az cosmosdb يحصل على اتصال حساب قاعدة البيانات.
قائمة مفاتيح az cosmosdb يحصل على مفاتيح قاعدة البيانات.
az functionapp config appSettings set يضبط سلسلة الاتصال كإعداد تطبيق في تطبيق الوظيفة.

الخطوات التالية

لمزيد من المعلومات عن Azure CLI، راجع وثائق Azure CLI.

يمكن العثور على نماذج البرامج النصية الإضافية لـ Azure Functions CLI في وثائق Azure Functions.