إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوفر Azure App Service خدمة استضافة ويب قابلة للتوسع وذات الترقيع الذاتي في Azure. كما يوفر managed identity لتطبيقك، وهو حل جاهز لتأمين الوصول إلى Azure Database for PostgreSQL وخدمات Azure الأخرى. تجعل الهويات المدارة في App Service تطبيقك أكثر أمانا من خلال التخلص من الأسرار من تطبيقك، مثل بيانات الاعتماد في متغيرات البيئة. في هذا البرنامج التعليمي، تتعلم كيفية:
- إنشاء قاعدة بيانات PostgreSQL.
- Deploy the sample app to Azure App Service on Tomcat using WAR packaging.
- قم بتكوين تطبيق ويب Tomcat لاستخدام مصادقة Microsoft Entra مع قاعدة بيانات PostgreSQL.
- الاتصال بقاعدة بيانات PostgreSQL باستخدام الهوية المدارة باستخدام موصل الخدمة.
إذا لم يكن لديك حساب Azure، أنشئ حسابا مجاني قبل أن تبدأ.
المتطلبات الأساسية
- بوابه
- Java مجموعة التطوير (JDK)
- مخضرم
- Azure CLI الإصدار 2.45.0 أو أعلى.
استنساخ نموذج التطبيق وإعداد المستودع
قم بتشغيل الأوامر التالية في الوحدة الطرفية الخاصة بك لاستنساخ عينة الريبو وإعداد بيئة نموذج التطبيق.
git clone https://github.com/Azure-Samples/Passwordless-Connections-for-Java-Apps
cd Passwordless-Connections-for-Java-Apps/Tomcat/
إنشاء قاعدة Azure Database for PostgreSQL
اتبع هذه الخطوات لإنشاء قاعدة بيانات Azure ل Postgres ضمن اشتراكك. يتصل تطبيق تومكات بهذه قاعدة البيانات ويخزن بياناته أثناء التشغيل، مع الحفاظ على حالة التطبيق بغض النظر عن مكان تشغيل التطبيق.
سجل الدخول إلى Azure CLI، واختر تعيين اشتراكك إذا كان لديك أكثر من واحد متصل ببيانات الدخول الخاصة بك.
az login az account set --subscription <subscription-ID>أنشئ مجموعة موارد Azure مع ملاحظة اسم مجموعة الموارد.
export RESOURCE_GROUP=<resource-group-name> export LOCATION=eastus az group create --name $RESOURCE_GROUP --location $LOCATIONإنشاء قاعدة بيانات Azure Database for PostgreSQL server. يتم إنشاء الخادم بحساب مسؤول، لكنه لا يستخدم لأننا سنستخدم حساب مسؤول Microsoft Entra لأداء المهام الإدارية.
export POSTGRESQL_ADMIN_USER=azureuser # PostgreSQL admin access rights won't be used because Azure AD authentication is leveraged to administer the database. export POSTGRESQL_ADMIN_PASSWORD=<admin-password> export POSTGRESQL_HOST=<postgresql-host-name> # Create a PostgreSQL server. az postgres flexible-server create \ --resource-group $RESOURCE_GROUP \ --name $POSTGRESQL_HOST \ --location $LOCATION \ --admin-user $POSTGRESQL_ADMIN_USER \ --admin-password $POSTGRESQL_ADMIN_PASSWORD \ --public-access 0.0.0.0 \ --sku-name Standard_D2s_v3إنشاء قاعدة بيانات للتطبيق.
export DATABASE_NAME=checklist az postgres flexible-server db create \ --resource-group $RESOURCE_GROUP \ --server-name $POSTGRESQL_HOST \ --database-name $DATABASE_NAME
نشر التطبيق إلى App Service
اتبع هذه الخطوات لبناء ملف WAR ونشره على Azure App Service على Tomcat باستخدام تغليف WAR.
يحتوي نموذج التطبيق على ملف pom.xml يمكنه إنشاء ملف WAR. لبناء التطبيق، قم بتشغيل الأمر التالي.
mvn clean package -f pom.xmlأنشئ موردا Azure App Service على لينكس باستخدام تومكات 9.0.
export APPSERVICE_PLAN=<app-service-plan> export APPSERVICE_NAME=<app-service-name> # Create an App Service plan az appservice plan create \ --resource-group $RESOURCE_GROUP \ --name $APPSERVICE_PLAN \ --location $LOCATION \ --sku B1 \ --is-linux # Create an App Service resource. az webapp create \ --resource-group $RESOURCE_GROUP \ --name $APPSERVICE_NAME \ --plan $APPSERVICE_PLAN \ --runtime "TOMCAT:10.0-java11"نشر حزمة WAR إلى App Service.
az webapp deploy \ --resource-group $RESOURCE_GROUP \ --name $APPSERVICE_NAME \ --src-path target/app.war \ --type war
توصيل قاعدة بيانات Postgres باتصال الهوية
بعد ذلك، قم بتوصيل قاعدة البيانات باستخدام Service Connector.
تثبيت الامتداد بدون كلمة المرور لخدمة موصل الخدمة لجهاز Azure CLI:
az extension add --name serviceconnector-passwordless --upgrade
بعد ذلك، قم بتوصيل تطبيقك بقاعدة بيانات Postgres بهوية مدارة معينة من قبل النظام باستخدام Service Connector.
لإجراء هذا الاتصال، قم بتشغيل الأمر az webapp connection create .
az webapp connection create postgres-flexible \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
--target-resource-group $RESOURCE_GROUP \
--server $POSTGRESQL_HOST \
--database $DATABASE_NAME \
--system-identity \
--client-type java
ينشئ هذا الأمر اتصالا بين تطبيق الويب الخاص بك وخادم PostgreSQL الخاص بك، ويدير المصادقة من خلال هوية مدارة معينة من قبل النظام.
بعد ذلك، قم بتحديث إعدادات التطبيق وإضافة إضافة في connection string
export AZURE_POSTGRESQL_CONNECTIONSTRING=$(\
az webapp config appsettings list \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
| jq -c -r '.[] \
| select ( .name == "AZURE_POSTGRESQL_CONNECTIONSTRING" ) \
| .value')
az webapp config appsettings set \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
--settings 'CATALINA_OPTS=-DdbUrl="'"${AZURE_POSTGRESQL_CONNECTIONSTRING}"'&authenticationPluginClassName=com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin"'
اختبار نموذج تطبيق الويب
اختبر التطبيق بتشغيل الأمر التالي.
export WEBAPP_URL=$(az webapp show \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
--query defaultHostName \
--output tsv)
# Create a list
curl -X POST -H "Content-Type: application/json" -d '{"name": "list1","date": "2022-03-21T00:00:00","description": "Sample checklist"}' https://${WEBAPP_URL}/checklist
# Create few items on the list 1
curl -X POST -H "Content-Type: application/json" -d '{"description": "item 1"}' https://${WEBAPP_URL}/checklist/1/item
curl -X POST -H "Content-Type: application/json" -d '{"description": "item 2"}' https://${WEBAPP_URL}/checklist/1/item
curl -X POST -H "Content-Type: application/json" -d '{"description": "item 3"}' https://${WEBAPP_URL}/checklist/1/item
# Get all lists
curl https://${WEBAPP_URL}/checklist
# Get list 1
curl https://${WEBAPP_URL}/checklist/1
تنظيف الموارد
في الخطوات السابقة، أنشأت موارد Azure في مجموعة موارد. إذا لم تكن تتوقع الحاجة لهذه الموارد في المستقبل، احذف مجموعة الموارد بتشغيل الأمر التالي في Cloud Shell:
az group delete --name myResourceGroup
قد يستغرق تشغيل هذا الأمر دقيقة.
الخطوات التالية
تعرف أكثر على تشغيل تطبيقات Java على App Service on Linux في دليل المطورين.
تعرف على كيفية تأمين تطبيقك باستخدام مجال وشهادة مخصصين.