Hızlı Başlangıç: RESTful API uygulamasını Azure Spring Apps'e dağıtma
Not
Temel, Standart ve Kurumsal planları, 3 yıllık kullanımdan kaldırma süresiyle Mart 2025 ortasından itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.
Standart tüketim ve ayrılmış plan, altı ay sonra tamamen kapatılarak 30 Eylül 2024'den itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps Standart tüketimini ve ayrılmış planı Azure Container Apps'e geçirme.
Bu makalede, Microsoft Entra Id ile korunan bir RESTful API uygulamasının Azure Spring Apps'e nasıl dağıtılacağı açıklanmaktadır. Örnek proje, yalnızca arka uç hizmetini sağlayan ve RESTful API'lerini korumak için Microsoft Entra Id kullanan Basit Todo web uygulamasını temel alan basitleştirilmiş bir sürümdür.
Bu RESTful API'leri rol tabanlı erişim denetimi (RBAC) uygulanarak korunur. Anonim kullanıcılar hiçbir veriye erişemez ve farklı kullanıcıların erişimini denetlemelerine izin verilmez. Anonim kullanıcılar yalnızca aşağıdaki üç izne sahiptir:
- Okuma: Bu izinle, kullanıcı ToDo verilerini okuyabilir.
- Yazma: Bu izinle, kullanıcı ToDo verilerini ekleyebilir veya güncelleştirebilir.
- Sil: Bu izinle, kullanıcı ToDo verilerini silebilir.
Dağıtım başarılı olduktan sonra API'leri Swagger kullanıcı arabirimi aracılığıyla görüntüleyebilir ve test edebilirsiniz.
Aşağıdaki diyagramda sistemin mimarisi gösterilmektedir:
Bu makalede, kaynakları oluşturmak ve Azure Spring Apps'e dağıtmak için aşağıdaki seçenekler açıklanmaktadır:
- Azure portalı + Maven eklentisi seçeneği, kaynakları oluşturmak ve uygulamaları adım adım dağıtmak için daha geleneksel bir yol sağlar. Bu seçenek, Azure bulut hizmetlerini ilk kez kullanan Spring geliştiricileri için uygundur.
- Azure Geliştirici CLI seçeneği, kaynakları otomatik olarak oluşturmanın ve uygulamaları basit komutlar aracılığıyla dağıtmanın daha verimli bir yoludur. Azure Geliştirici CLI'sı, gerekli Azure kaynaklarını sağlamak ve uygulama kodunu dağıtmak için bir şablon kullanır. Bu seçenek, Azure bulut hizmetlerini bilen Spring geliştiricileri için uygundur.
Bu makalede, kaynakları oluşturmak ve Azure Spring Apps'e dağıtmak için aşağıdaki seçenekler açıklanmaktadır:
- Azure portalı + Maven eklentisi seçeneği, kaynakları oluşturmak ve uygulamaları adım adım dağıtmak için daha geleneksel bir yol sağlar. Bu seçenek, Azure bulut hizmetlerini ilk kez kullanan Spring geliştiricileri için uygundur.
- Azure CLI seçeneği, Azure kaynaklarını yönetmek için güçlü bir komut satırı aracı kullanır. Bu seçenek, Azure bulut hizmetlerini bilen Spring geliştiricileri için uygundur.
1. Önkoşullar
Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun.
Aşağıdaki rollerden biri:
- Herhangi bir API için herhangi bir izin isteyen uygulamalara onay vermek için Genel Yönetici veya Ayrıcalıklı Rol Yöneticisi.
- Bulut Uygulaması Yöneticisi veya Uygulama Yöneticisi, Microsoft Graph uygulama rolleri (uygulama izinleri) dışında herhangi bir API için herhangi bir izin isteyen uygulamalar için onay vermek için.
- Uygulamanın gerektirdiği izinler için uygulamalara izin verme iznini içeren özel dizin rolü.
Daha fazla bilgi için bkz . Uygulamaya kiracı genelinde yönetici onayı verme.
Hedef abonelikte ilk kez bir Azure Spring Apps Kurumsal plan örneği dağıtıyorsanız Azure Market'deki Kurumsal plan'ın Gereksinimler bölümüne bakın.
Git.
Java Development Kit (JDK), sürüm 17.
Microsoft Entra kiracısı. Oluşturma yönergeleri için bkz . Hızlı Başlangıç: Microsoft Entra Id'de yeni kiracı oluşturma.
Azure aboneliği, Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun.
Aşağıdaki rollerden biri:
- Herhangi bir API için herhangi bir izin isteyen uygulamalara onay vermek için Genel Yönetici veya Ayrıcalıklı Rol Yöneticisi.
- Bulut Uygulaması Yöneticisi veya Uygulama Yöneticisi, Microsoft Graph uygulama rolleri (uygulama izinleri) dışında herhangi bir API için herhangi bir izin isteyen uygulamalar için onay vermek için.
- Uygulamanın gerektirdiği izinler için uygulamalara izin verme iznini içeren özel dizin rolü.
Daha fazla bilgi için bkz . Uygulamaya kiracı genelinde yönetici onayı verme.
Git.
Java Development Kit (JDK), sürüm 17.
Microsoft Entra kiracısı. Oluşturma yönergeleri için bkz . Hızlı Başlangıç: Microsoft Entra Id'de yeni kiracı oluşturma.
2. Spring projesini hazırlama
RESTful API uygulamasını dağıtmak için ilk adım Spring projesini yerel olarak çalışacak şekilde hazırlamaktır.
Uygulamayı yerel olarak kopyalamak ve çalıştırmak için aşağıdaki adımları kullanın:
GitHub'dan örnek projeyi kopyalamak için aşağıdaki komutu kullanın:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Uygulamayı yerel olarak çalıştırmak istiyorsanız, önce RESTful API'lerini Kullanıma Sunma ve Uygulama yapılandırması bölümlerini güncelleştirme bölümündeki adımları tamamlayın ve ardından örnek uygulamayı Maven ile çalıştırmak için aşağıdaki komutu kullanın:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Bulut ortamını hazırlama
Bu örnek uygulamayı çalıştırmak için gereken ana kaynaklar bir Azure Spring Apps örneği ve bir PostgreSQL için Azure Veritabanı örneğidir. Aşağıdaki bölümlerde bu kaynakların nasıl oluşturulacağı açıklanmaktadır.
3.1. Azure portalda oturum açma
Azure portalına gidin ve portalda oturum açmak için kimlik bilgilerinizi girin. Varsayılan görünüm hizmet panonuzu içerir.
3.2. Azure Spring Apps örneği oluşturma
Azure Spring Apps hizmet örneği oluşturmak için aşağıdaki adımları kullanın:
Azure portalının köşesinde kaynak oluştur'u seçin.
İşlem>Azure Spring Apps'i seçin.
Temel bilgiler formunu aşağıdaki bilgilerle doldurun:
Seçimlerinizi gözden geçirmek için Gözden Geçir ve Oluştur'u seçin. Ardından Oluştur'u seçerek Azure Spring Apps örneğini sağlayın.
Araç çubuğunda, dağıtım sürecini izlemek için Bildirimler simgesini (zil) seçin. Dağıtım tamamlandıktan sonra Panoya sabitle'yi seçerek Azure portalı panonuzda hizmetin Genel Bakış sayfasının kısayolu olarak bu hizmet için bir kutucuk oluşturabilirsiniz.
Azure Spring Apps'e Genel Bakış sayfasına gitmek için Kaynağa git'i seçin.
3.3. PostgreSQL örneğini hazırlama
PostgreSQL için Azure Veritabanı sunucusu oluşturmak için aşağıdaki adımları kullanın:
Azure portalına gidin ve Kaynak oluştur'u seçin.
Veritabanları>PostgreSQL için Azure Veritabanı'nı seçin.
Esnek sunucu dağıtımı seçeneğini belirleyin.
Temel Bilgiler sekmesini aşağıdaki bilgilerle doldurun:
- Sunucu adı: my-demo-pgsql
- Bölge: Doğu ABD
- PostgreSQL sürümü: 14
- İş yükü türü: Geliştirme
- Yüksek kullanılabilirliği etkinleştirme: seçilmemiş
- Kimlik doğrulama yöntemi: Yalnızca PostgreSQL kimlik doğrulaması
- Yönetici kullanıcı adı: myadmin
- Parola ve Parolayı onayla: Bir parola girin.
Ağ sekmesini yapılandırmak için aşağıdaki bilgileri kullanın:
- Bağlantı yöntemi: Genel erişim (izin verilen IP adresleri)
- Azure'ın içindeki herhangi bir Azure hizmetinden bu sunucuya genel erişime izin ver: seçili
Seçimlerinizi gözden geçirmek için Gözden geçir + oluştur'u ve sunucuyu sağlamak için Oluştur'u seçin. Bu işlem birkaç dakika sürebilir.
Azure portalında PostgreSQL sunucunuza gidin. Genel Bakış sayfasında Sunucu adı değerini arayın ve daha sonra kullanmak üzere kaydedin. Azure Spring Apps'te uygulamanın ortam değişkenlerini yapılandırmak için buna ihtiyacınız vardır.
Veritabanı oluşturmak için gezinti menüsünden Veritabanları'nı (örneğin, todo) seçin.
3.4. Uygulama örneğini PostgreSQL örneğine bağlama
Hizmet örneklerinizi bağlamak için aşağıdaki adımları kullanın:
Azure portalında Azure Spring Apps örneğine gidin.
Gezinti menüsünden Uygulamalar'ı açın ve Ardından Uygulama Oluştur'u seçin.
Uygulama Oluştur sayfasında, simple-todo-api uygulama adını doldurun ve ardından dağıtım türü olarak Java yapıtları'nı seçin.
Uygulama oluşturmayı tamamlamak için Oluştur'u seçin ve ardından ayrıntıları görüntülemek için uygulamayı seçin.
Azure portalında oluşturduğunuz uygulamaya gidin. Genel Bakış sayfasında Uç nokta ata'yı seçerek uygulamanın genel uç noktasını kullanıma sunun. Dağıtımdan sonra uygulamaya erişmek için URL'yi kaydedin.
Gezinti bölmesinden Hizmet Bağlayıcısı'nı ve ardından Oluştur'u seçerek yeni bir hizmet bağlantısı oluşturun.
Temel Bilgiler sekmesini aşağıdaki bilgilerle doldurun:
- Hizmet türü: PostgreSQL esnek sunucusu için DB
- Bağlantı adı: Otomatik olarak oluşturulan bir ad doldurulur ve bu ad da değiştirilebilir.
- Abonelik: Aboneliğinizi seçin.
- PostgreSQL esnek sunucusu: my-demo-pgsql
- PostgreSQL veritabanı: Oluşturduğunuz veritabanını seçin.
- İstemci türü: SpringBoot
Sonraki: Kimlik Doğrulaması sekmesini aşağıdaki bilgilerle yapılandırın:
- İşlem hizmetinizle hedef hizmet arasında kullanmak istediğiniz kimlik doğrulama türünü seçin.: Bağlantı dizesi'ni seçin.
- Devam edin...: Veritabanı kimlik bilgilerini seçin
- Kullanıcı adı: myadmin
- Parola: Parolanızı girin.
İleri: Ağ'ı seçin. Hedef hizmete erişimi etkinleştirmek için Güvenlik duvarı kurallarını yapılandırma varsayılan seçeneğini kullanın.
Seçimlerinizi gözden geçirmek için İleri: Gözden Geçir ve Oluştur'u, ardından bağlantıyı oluşturmak için Oluştur'u seçin.
3.5. RESTful API'lerini kullanıma sunma
Microsoft Entra ID'de RESTful API'lerinizi kullanıma açmak için aşağıdaki adımları kullanın:
Azure Portal’ında oturum açın.
Birden çok kiracıya erişiminiz varsa, bir uygulamayı kaydetmek istediğiniz kiracıyı seçmek için Dizin + abonelik filtresini ( ) kullanın.
Microsoft Entra ID öğesini arayıp seçin.
Yönet'in altında Uygulama kayıtları> Yeni kayıt'ı seçin.
Ad alanına uygulamanız için bir ad girin; örneğin, Todo. Uygulamanızın kullanıcıları bu adı görebilir ve daha sonra değiştirebilirsiniz.
Desteklenen hesap türleri için herhangi bir kuruluş dizinindeki Hesaplar (Herhangi bir Microsoft Entra dizini - Çok Kiracılı) ve kişisel Microsoft hesapları'nı seçin.
Uygulamayı kaydetmek için Kaydet'i seçin.
Uygulamaya Genel Bakış sayfasında Uygulama (istemci) kimliği değerini bulun ve daha sonra kullanmak üzere kaydedin. Bu proje için YAML yapılandırma dosyasını yapılandırmak için bu dosyaya ihtiyacınız vardır.
Yönet'in altında Api'yi kullanıma sunma'yı seçin, sayfanın başında Uygulama Kimliği URI'sini bulun ve Ekle'yi seçin.
Uygulama kimliği URI'sini düzenle sayfasında, önerilen Uygulama Kimliği URI'sini (
api://{client ID}
) kabul edin veya gibiapi://simple-todo
istemci kimliği yerine anlamlı bir ad kullanın ve kaydet'i seçin.Yönet'in altında, API'yi>kullanıma sunma Kapsam ekle'yi seçin ve aşağıdaki bilgileri girin:
- Kapsam adı olarak ToDo.Read girin.
- Kim onaylayabilir? için Yalnızca yöneticiler'i seçin.
- Yönetici onayı görünen adı için ToDo verilerini okuyun yazın.
- Yönetici onayı açıklaması için Kimliği doğrulanmış kullanıcıların ToDo verilerini okumasına izin verir.. yazın.
- State için etkin tutun.
- Kapsam ekle'yi seçin.
Diğer iki kapsamı eklemek için önceki adımları yineleyin: ToDo.Write ve ToDo.Delete.
3.6. Uygulama yapılandırmasını güncelleştirme
YAML dosyasını, RESTful API uygulamasıyla ilişki kurmak üzere Microsoft Entra kayıtlı uygulama bilgilerinizi kullanacak şekilde güncelleştirmek için aşağıdaki adımları kullanın:
Uygulama için
simple-todo-api
src/main/resources/application.yml dosyasını bulun. bölümündeki yapılandırmayıspring.cloud.azure.active-directory
aşağıdaki örnekle eşleşecek şekilde güncelleştirin. Yer tutucuları daha önce oluşturduğunuz değerlerle değiştirdiğinizden emin olun.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>
Not
v1.0 belirteçlerinde yapılandırma api'nin istemci kimliğini gerektirirken v2.0 belirteçlerinde istekte istemci kimliğini veya uygulama kimliği URI'sini kullanabilirsiniz. her ikisini de izleyici doğrulamasını düzgün bir şekilde tamamlayacak şekilde yapılandırabilirsiniz.
için
tenant-id
izin verilen değerler şunlardır:common
,organizations
,consumers
veya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için Hata AADSTS50020 - Kimlik sağlayıcısı kullanıcı hesabı kiracıda yok hatasının Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz . Microsoft Entra Id'de tek kiracılı uygulamayı çok kiracılıya dönüştürme.Örnek projeyi yeniden derlemek için aşağıdaki komutu kullanın:
./mvnw clean package
4. Uygulamayı Azure Spring Apps'e dağıtma
Artık uygulamayı Azure Spring Apps'e dağıtabilirsiniz.
Azure Spring Apps için Maven eklentisini kullanarak dağıtmak için aşağıdaki adımları kullanın:
Tam dizine gidin ve uygulamayı Azure Spring Apps'te yapılandırmak için aşağıdaki komutu çalıştırın:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
Aşağıdaki listede komut etkileşimleri açıklanmaktadır:
- OAuth2 oturum açma: OAuth2 protokolüne göre Azure'da oturum açmayı yetkilendirmeniz gerekir.
- Aboneliği seçin: Oluşturduğunuz Azure Spring Apps örneğinin abonelik listesi numarasını seçin ve varsayılan olarak listedeki ilk aboneliği seçin. Varsayılan sayıyı kullanıyorsanız doğrudan Enter tuşuna basın.
- Azure'da mevcut Azure Spring Apps'i kullanma: Mevcut Azure Spring Apps örneğini kullanmak için y tuşuna basın.
- Dağıtım için Azure Spring Apps'i seçin: Oluşturduğunuz Azure Spring Apps örneğinin numarasını seçin. Varsayılan sayıyı kullanıyorsanız doğrudan Enter tuşuna basın.
- Azure Spring Apps'te <mevcut uygulamayı kullanın örnek-adınız>: Oluşturulan uygulamayı kullanmak için y tuşuna basın.
- Yukarıdaki tüm yapılandırmaları kaydetmek için onaylayın: y tuşuna basın. n tuşuna basarsanız yapılandırma POM dosyalarına kaydedilmez.
Uygulamayı dağıtmak için aşağıdaki komutu kullanın:
./mvnw azure-spring-apps:deploy
Aşağıdaki listede komut etkileşimi açıklanmaktadır:
- OAuth2 oturum açma: OAuth2 protokolüne göre Azure'da oturum açmayı yetkilendirmeniz gerekir.
Komut yürütüldükten sonra, dağıtımın başarılı olduğunu aşağıdaki günlük iletilerinden görebilirsiniz:
[INFO] Deployment Status: Running
[INFO] InstanceName:simple-todo-api-default-15-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:N/A
[INFO] Getting public url of app(simple-todo-api)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-simple-todo-api.azuremicroservices.io
5. Uygulamayı doğrulama
Artık RESTful API'sine erişerek çalışıp çalışmadığını görebilirsiniz.
5.1. Erişim belirteci isteme
RESTful API'leri, Microsoft Entra Kimliği ile korunan bir kaynak sunucusu görevi görür. Erişim belirtecini almadan önce, başka bir uygulamayı Microsoft Entra Id'ye kaydetmeniz ve adlı ToDoWeb
istemci uygulamasına izinler vermelisiniz.
İstemci uygulamasını kaydetme
Bir uygulamayı, uygulamanın izinlerini eklemek için kullanılan Microsoft Entra Id'ye kaydetmek için ToDo
aşağıdaki adımları kullanın:
Azure Portal’ında oturum açın.
Birden çok kiracıya erişiminiz varsa, bir uygulamayı kaydetmek istediğiniz kiracıyı seçmek için Dizin + abonelik filtresini ( ) kullanın.
Microsoft Entra ID öğesini arayıp seçin.
Yönet'in altında Uygulama kayıtları> Yeni kayıt'ı seçin.
Ad alanına uygulamanız için bir ad girin; örneğin, ToDoWeb. Uygulamanızın kullanıcıları bu adı görebilir ve daha sonra değiştirebilirsiniz.
Desteklenen hesap türleri için yalnızca bu kuruluş dizinindeki Hesaplar varsayılan değerini kullanın.
Uygulamayı kaydetmek için Kaydet'i seçin.
Uygulamaya Genel Bakış sayfasında Uygulama (istemci) kimliği değerini bulun ve daha sonra kullanmak üzere kaydedin. Erişim belirteci almak için buna ihtiyacınız vardır.
API izinleri>İzin ekle API'lerim'i> seçin.
ToDo
Daha önce kaydettiğiniz uygulamayı seçin ve ardından ToDo.Read, ToDo.Write ve ToDo.Delete izinlerini seçin. İzinler ekle'yi seçin.Eklediğiniz izinler için yönetici onayı vermek için Kiracı-adınız> için <yönetici onayı ver'i seçin.
RESTful API'lerine erişmek için kullanıcı ekleme
Microsoft Entra kiracınızda üye kullanıcı oluşturmak için aşağıdaki adımları kullanın. Daha sonra kullanıcı, RESTful API'leri aracılığıyla uygulamanın verilerini ToDo
yönetebilir.
Yönet'in altında Kullanıcılar>Yeni kullanıcı Yeni kullanıcı> oluştur'u seçin.
Yeni kullanıcı oluştur sayfasında aşağıdaki bilgileri girin:
- Kullanıcı asıl adı: Kullanıcı için bir ad girin.
- Görünen ad: Kullanıcı için bir görünen ad girin.
- Parola: Parola kutusunda sağlanan otomatik oluşturulan parolayı kopyalayın.
Not
Yeni kullanıcıların ilk oturum açma kimlik doğrulamasını tamamlaması ve parolalarını güncelleştirmesi gerekir, aksi takdirde erişim belirtecini aldığınızda bir
AADSTS50055: The password is expired
hata alırsınız.Yeni bir kullanıcı oturum açtığında, bir Eylem Gerekli istemi alır. Doğrulamayı atlamak için Daha sonra sor'u seçebilirler.
Seçimlerinizi gözden geçirmek için Gözden Geçir + oluştur'u seçin. Kullanıcıyı oluşturmak için Oluştur'u seçin.
Swagger UI yetkilendirmesi için OAuth2 yapılandırmasını güncelleştirme
Swagger UI yetkilendirmesi için OAuth2 yapılandırmasını güncelleştirmek için aşağıdaki adımları kullanın. Ardından, kullanıcılara uygulama aracılığıyla ToDoWeb
erişim belirteçleri alma yetkisi vekleyebilirsiniz.
Azure portalında Microsoft Entra Id kiracınızı açın ve kayıtlı
ToDoWeb
uygulamaya gidin.Yönet'in altında Kimlik Doğrulama'yı, Platform ekle'yi ve ardından Tek sayfalı uygulama'yı seçin.
Biçimi
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
Yeniden Yönlendirme URI'leri alanında OAuth2 yeniden yönlendirme URL'si olarak kullanın ve yapılandır'ı seçin.
2. Spring projesini hazırlama
RESTful API uygulamasını dağıtmak için ilk adım Spring projesini yerel olarak çalışacak şekilde hazırlamaktır.
Uygulamayı yerel olarak kopyalamak ve çalıştırmak için aşağıdaki adımları kullanın:
GitHub'dan örnek projeyi kopyalamak için aşağıdaki komutu kullanın:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Uygulamayı yerel olarak çalıştırmak istiyorsanız, önce RESTful API'lerini Kullanıma Sunma ve Uygulama yapılandırması bölümlerini güncelleştirme bölümündeki adımları tamamlayın ve ardından örnek uygulamayı Maven ile çalıştırmak için aşağıdaki komutu kullanın:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Bulut ortamını hazırlama
Bu örnek uygulamayı çalıştırmak için gereken ana kaynaklar bir Azure Spring Apps örneği ve bir PostgreSQL için Azure Veritabanı örneğidir. Aşağıdaki bölümlerde bu kaynakların nasıl oluşturulacağı açıklanmaktadır.
3.1. Azure portalda oturum açma
Azure portalına gidin ve portalda oturum açmak için kimlik bilgilerinizi girin. Varsayılan görünüm hizmet panonuzu içerir.
3.2. Azure Spring Apps örneği oluşturma
Hizmet örneği oluşturmak için aşağıdaki adımları kullanın:
Portalın köşesinde kaynak oluştur'u seçin.
İşlem>Azure Spring Apps'i seçin.
Temel Bilgiler formunu doldurun. Formu tamamlamak için kılavuz olarak aşağıdaki tabloyu kullanın. Önerilen Plan değeri Standart tüketim ve ayrılmış (önizleme) değeridir.
Ayar Önerilen değer Açıklama Abonelik Abonelik adınız. Sunucunuz için kullanmak istediğiniz Azure aboneliği. Birden çok aboneliğiniz varsa kaynak için faturalandırılacak aboneliği seçin. Kaynak grubu myresourcegroup Yeni bir kaynak grubu adı veya aboneliğinizde var olan bir kaynak grubu. Ad myasa Azure Spring Apps hizmetinizi tanımlayan benzersiz bir ad. Ad 4 ile 32 karakter uzunluğunda olmalıdır ve yalnızca küçük harf, sayı ve kısa çizgi içerebilir. Hizmet adının ilk karakteri bir harf, son karakter ise harf veya sayı olmalıdır. Plan Standart tüketim ve ayrılmış (önizleme) Fiyatlandırma planı, örneğinizle ilişkili kaynakları ve maliyeti belirler. Bölge Kullanıcılarınıza en yakın bölge. Kullanıcılarınız için en yakın olan konum. Container Apps Ortamı myenvironment Aynı sanal ağı diğer hizmetler ve kaynaklarla paylaşacak Container Apps ortam örneğini seçme seçeneği. Container Apps Ortamı oluşturma kılavuzu olarak aşağıdaki tabloyu kullanın:
Ayar Önerilen değer Açıklama Ortam adı myenvironment Azure Container Apps Ortam hizmetinizi tanımlayan benzersiz bir ad. Plan Tüketim Fiyatlandırma planı, örneğinizle ilişkili kaynakları ve maliyeti belirler. Alanlar Arası Yedekli Devre dışı Container Apps Ortam hizmetinizi bir Azure kullanılabilirlik alanında oluşturma seçeneği. Seçimlerinizi gözden geçirmek için Gözden Geçir ve Oluştur'u seçin. Ardından Oluştur'u seçerek Azure Spring Apps örneğini sağlayın.
Araç çubuğunda, dağıtım sürecini izlemek için Bildirimler simgesini (zil) seçin. Dağıtım tamamlandıktan sonra Panoya sabitle'yi seçerek Azure portalı panonuzda hizmetin Genel Bakış sayfasının kısayolu olarak bu hizmet için bir kutucuk oluşturabilirsiniz.
Hizmetin Genel Bakış sayfasını açmak için Kaynağa git'i seçin.
Önemli
Tüketim iş yükü profili, başlangıç maliyeti olmadan kullandıkça öde faturalama modeline sahiptir. Sağlanan kaynaklara göre ayrılmış iş yükü profili için faturalandırılırsınız. Daha fazla bilgi için bkz . Azure Container Apps'te iş yükü profilleri ve Azure Spring Apps fiyatlandırması.
3.3. PostgreSQL örneğini hazırlama
PostgreSQL için Azure Veritabanı sunucusu oluşturmak için aşağıdaki adımları kullanın:
Azure portalına gidin ve Kaynak oluştur'u seçin.
Veritabanları>PostgreSQL için Azure Veritabanı'nı seçin.
Esnek sunucu dağıtımı seçeneğini belirleyin.
Temel Bilgiler sekmesini aşağıdaki bilgilerle doldurun:
- Sunucu adı: my-demo-pgsql
- Bölge: Doğu ABD
- PostgreSQL sürümü: 14
- İş yükü türü: Geliştirme
- Yüksek kullanılabilirliği etkinleştirme: seçilmemiş
- Kimlik doğrulama yöntemi: Yalnızca PostgreSQL kimlik doğrulaması
- Yönetici kullanıcı adı: myadmin
- Parola ve Parolayı onayla: Bir parola girin.
Ağ sekmesini yapılandırmak için aşağıdaki bilgileri kullanın:
- Bağlantı yöntemi: Genel erişim (izin verilen IP adresleri)
- Azure'ın içindeki herhangi bir Azure hizmetinden bu sunucuya genel erişime izin ver: seçili
Seçimlerinizi gözden geçirmek için Gözden geçir + oluştur'u ve sunucuyu sağlamak için Oluştur'u seçin. Bu işlem birkaç dakika sürebilir.
Azure portalında PostgreSQL sunucunuza gidin. Genel Bakış sayfasında Sunucu adı değerini arayın ve daha sonra kullanmak üzere kaydedin. Azure Spring Apps'te uygulamanın ortam değişkenlerini yapılandırmak için buna ihtiyacınız vardır.
Veritabanı oluşturmak için gezinti menüsünden Veritabanları'nı (örneğin, todo) seçin.
3.4. Uygulama örneğini PostgreSQL örneğine bağlama
Hizmet örneklerinizi bağlamak için aşağıdaki adımları kullanın:
Azure portalında Azure Spring Apps örneğine gidin.
Gezinti menüsünden Uygulamalar'ı açın ve Ardından Uygulama Oluştur'u seçin.
Uygulama Oluştur sayfasında, simple-todo-api uygulama adını doldurun ve dağıtım türü olarak Java yapıtları'nı seçin.
Uygulama oluşturmayı tamamlamak için Oluştur'u seçin ve ayrıntıları görüntülemek için uygulamayı seçin.
Azure portalında oluşturduğunuz uygulamaya gidin. Genel Bakış sayfasında Uç nokta ata'yı seçerek uygulamanın genel uç noktasını kullanıma sunun. Dağıtımdan sonra uygulamaya erişmek için URL'yi kaydedin.
Oluşturduğunuz uygulamaya gidin, Ayarlar'ı genişletin, gezinti menüsünden Yapılandırma'yı seçin ve ortam değişkenlerini ayarlamak için Ortam değişkenleri'ni seçin.
PostgreSQL bağlantısı için aşağıdaki ortam değişkenlerini ekleyin ve ardından Kaydet'i seçerek uygulama yapılandırma güncelleştirmesini tamamlayın. Yer tutucuları daha önce oluşturduğunuz kendi değerlerinizle değiştirdiğinizden emin olun.
Ortam değişkeni Değer SPRING_DATASOURCE_URL
jdbc:postgresql://<your-PostgreSQL-server-name>:5432/<your-PostgreSQL-database-name>
SPRING_DATASOURCE_USERNAME
<your-PostgreSQL-admin-user>
SPRING_DATASOURCE_PASSWORD
<your-PostgreSQL-admin-password>
3.5. RESTful API'lerini kullanıma sunma
Microsoft Entra ID'de RESTful API'lerinizi kullanıma açmak için aşağıdaki adımları kullanın:
Azure Portal’ında oturum açın.
Birden çok kiracıya erişiminiz varsa, bir uygulamayı kaydetmek istediğiniz kiracıyı seçmek için Dizin + abonelik filtresini ( ) kullanın.
Microsoft Entra ID öğesini arayıp seçin.
Yönet'in altında Uygulama kayıtları> Yeni kayıt'ı seçin.
Ad alanına uygulamanız için bir ad girin; örneğin, Todo. Uygulamanızın kullanıcıları bu adı görebilir ve daha sonra değiştirebilirsiniz.
Desteklenen hesap türleri için herhangi bir kuruluş dizinindeki Hesaplar (Herhangi bir Microsoft Entra dizini - Çok Kiracılı) ve kişisel Microsoft hesapları'nı seçin.
Uygulamayı kaydetmek için Kaydet'i seçin.
Uygulamaya Genel Bakış sayfasında Uygulama (istemci) kimliği değerini bulun ve daha sonra kullanmak üzere kaydedin. Bu proje için YAML yapılandırma dosyasını yapılandırmak için bu dosyaya ihtiyacınız vardır.
Yönet'in altında Api'yi kullanıma sunma'yı seçin, sayfanın başında Uygulama Kimliği URI'sini bulun ve Ekle'yi seçin.
Uygulama kimliği URI'sini düzenle sayfasında, önerilen Uygulama Kimliği URI'sini (
api://{client ID}
) kabul edin veya gibiapi://simple-todo
istemci kimliği yerine anlamlı bir ad kullanın ve kaydet'i seçin.Yönet'in altında, API'yi>kullanıma sunma Kapsam ekle'yi seçin ve aşağıdaki bilgileri girin:
- Kapsam adı olarak ToDo.Read girin.
- Kim onaylayabilir? için Yalnızca yöneticiler'i seçin.
- Yönetici onayı görünen adı için ToDo verilerini okuyun yazın.
- Yönetici onayı açıklaması için Kimliği doğrulanmış kullanıcıların ToDo verilerini okumasına izin verir.. yazın.
- State için etkin tutun.
- Kapsam ekle'yi seçin.
Diğer iki kapsamı eklemek için önceki adımları yineleyin: ToDo.Write ve ToDo.Delete.
3.6. Uygulama yapılandırmasını güncelleştirme
YAML dosyasını, RESTful API uygulamasıyla ilişki kurmak üzere Microsoft Entra kayıtlı uygulama bilgilerinizi kullanacak şekilde güncelleştirmek için aşağıdaki adımları kullanın:
Uygulama için
simple-todo-api
src/main/resources/application.yml dosyasını bulun. bölümündeki yapılandırmayıspring.cloud.azure.active-directory
aşağıdaki örnekle eşleşecek şekilde güncelleştirin. Yer tutucuları daha önce oluşturduğunuz değerlerle değiştirdiğinizden emin olun.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>
Not
v1.0 belirteçlerinde yapılandırma api'nin istemci kimliğini gerektirirken v2.0 belirteçlerinde istekte istemci kimliğini veya uygulama kimliği URI'sini kullanabilirsiniz. her ikisini de izleyici doğrulamasını düzgün bir şekilde tamamlayacak şekilde yapılandırabilirsiniz.
için
tenant-id
izin verilen değerler şunlardır:common
,organizations
,consumers
veya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için Hata AADSTS50020 - Kimlik sağlayıcısı kullanıcı hesabı kiracıda yok hatasının Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz . Microsoft Entra Id'de tek kiracılı uygulamayı çok kiracılıya dönüştürme.Örnek projeyi yeniden derlemek için aşağıdaki komutu kullanın:
./mvnw clean package
4. Uygulamayı Azure Spring Apps'e dağıtma
Artık uygulamayı Azure Spring Apps'e dağıtabilirsiniz.
Azure Spring Apps için Maven eklentisini kullanarak dağıtmak için aşağıdaki adımları kullanın:
Tam dizine gidin ve uygulamayı Azure Spring Apps'te yapılandırmak için aşağıdaki komutu çalıştırın:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
Aşağıdaki listede komut etkileşimleri açıklanmaktadır:
- OAuth2 oturum açma: OAuth2 protokolüne göre Azure'da oturum açmayı yetkilendirmeniz gerekir.
- Aboneliği seçin: Oluşturduğunuz Azure Spring Apps örneğinin abonelik listesi numarasını seçin ve varsayılan olarak listedeki ilk aboneliği seçin. Varsayılan sayıyı kullanıyorsanız doğrudan Enter tuşuna basın.
- Azure'da mevcut Azure Spring Apps'i kullanma: Mevcut Azure Spring Apps örneğini kullanmak için y tuşuna basın.
- Dağıtım için Azure Spring Apps'i seçin: Oluşturduğunuz Azure Spring Apps örneğinin numarasını seçin. Varsayılan sayıyı kullanıyorsanız doğrudan Enter tuşuna basın.
- Azure Spring Apps'te <mevcut uygulamayı kullanın örnek-adınız>: Oluşturulan uygulamayı kullanmak için y tuşuna basın.
- Yukarıdaki tüm yapılandırmaları kaydetmek için onaylayın: y tuşuna basın. n tuşuna basarsanız yapılandırma POM dosyalarına kaydedilmez.
Uygulamayı dağıtmak için aşağıdaki komutu kullanın:
./mvnw azure-spring-apps:deploy
Aşağıdaki listede komut etkileşimi açıklanmaktadır:
- OAuth2 oturum açma: OAuth2 protokolüne göre Azure'da oturum açmayı yetkilendirmeniz gerekir.
Komut yürütüldükten sonra, dağıtımın başarılı olduğunu aşağıdaki günlük iletilerinden görebilirsiniz:
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
[INFO] InstanceName:demo--default-xxxxxxx-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:NONE
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://demo.<unique-identifier>.<region-name>.azurecontainerapps.io
5. Uygulamayı doğrulama
Artık RESTful API'sine erişerek çalışıp çalışmadığını görebilirsiniz.
5.1. Erişim belirteci isteme
RESTful API'leri, Microsoft Entra Kimliği ile korunan bir kaynak sunucusu görevi görür. Erişim belirtecini almadan önce, başka bir uygulamayı Microsoft Entra Id'ye kaydetmeniz ve adlı ToDoWeb
istemci uygulamasına izinler vermelisiniz.
İstemci uygulamasını kaydetme
Bir uygulamayı, uygulamanın izinlerini eklemek için kullanılan Microsoft Entra Id'ye kaydetmek için ToDo
aşağıdaki adımları kullanın:
Azure Portal’ında oturum açın.
Birden çok kiracıya erişiminiz varsa, bir uygulamayı kaydetmek istediğiniz kiracıyı seçmek için Dizin + abonelik filtresini ( ) kullanın.
Microsoft Entra ID öğesini arayıp seçin.
Yönet'in altında Uygulama kayıtları> Yeni kayıt'ı seçin.
Ad alanına uygulamanız için bir ad girin; örneğin, ToDoWeb. Uygulamanızın kullanıcıları bu adı görebilir ve daha sonra değiştirebilirsiniz.
Desteklenen hesap türleri için yalnızca bu kuruluş dizinindeki Hesaplar varsayılan değerini kullanın.
Uygulamayı kaydetmek için Kaydet'i seçin.
Uygulamaya Genel Bakış sayfasında Uygulama (istemci) kimliği değerini bulun ve daha sonra kullanmak üzere kaydedin. Erişim belirteci almak için buna ihtiyacınız vardır.
API izinleri>İzin ekle API'lerim'i> seçin.
ToDo
Daha önce kaydettiğiniz uygulamayı seçin ve ardından ToDo.Read, ToDo.Write ve ToDo.Delete izinlerini seçin. İzinler ekle'yi seçin.Eklediğiniz izinler için yönetici onayı vermek için Kiracı-adınız> için <yönetici onayı ver'i seçin.
RESTful API'lerine erişmek için kullanıcı ekleme
Microsoft Entra kiracınızda üye kullanıcı oluşturmak için aşağıdaki adımları kullanın. Daha sonra kullanıcı, RESTful API'leri aracılığıyla uygulamanın verilerini ToDo
yönetebilir.
Yönet'in altında Kullanıcılar>Yeni kullanıcı Yeni kullanıcı> oluştur'u seçin.
Yeni kullanıcı oluştur sayfasında aşağıdaki bilgileri girin:
- Kullanıcı asıl adı: Kullanıcı için bir ad girin.
- Görünen ad: Kullanıcı için bir görünen ad girin.
- Parola: Parola kutusunda sağlanan otomatik oluşturulan parolayı kopyalayın.
Not
Yeni kullanıcıların ilk oturum açma kimlik doğrulamasını tamamlaması ve parolalarını güncelleştirmesi gerekir, aksi takdirde erişim belirtecini aldığınızda bir
AADSTS50055: The password is expired
hata alırsınız.Yeni bir kullanıcı oturum açtığında, bir Eylem Gerekli istemi alır. Doğrulamayı atlamak için Daha sonra sor'u seçebilirler.
Seçimlerinizi gözden geçirmek için Gözden Geçir + oluştur'u seçin. Kullanıcıyı oluşturmak için Oluştur'u seçin.
Swagger UI yetkilendirmesi için OAuth2 yapılandırmasını güncelleştirme
Swagger UI yetkilendirmesi için OAuth2 yapılandırmasını güncelleştirmek için aşağıdaki adımları kullanın. Ardından, kullanıcılara uygulama aracılığıyla ToDoWeb
erişim belirteçleri alma yetkisi vekleyebilirsiniz.
Azure portalında Microsoft Entra Id kiracınızı açın ve kayıtlı
ToDoWeb
uygulamaya gidin.Yönet'in altında Kimlik Doğrulama'yı, Platform ekle'yi ve ardından Tek sayfalı uygulama'yı seçin.
Biçimi
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
Yeniden Yönlendirme URI'leri alanında OAuth2 yeniden yönlendirme URL'si olarak kullanın ve yapılandır'ı seçin.
Erişim belirtecini alma
Microsoft Entra Id ile bir erişim belirteci almak ve ardından uygulamanın RESTful API'lerine ToDo
erişmek için OAuth 2.0 yetkilendirme kodu akışı yöntemini kullanmak için aşağıdaki adımları kullanın:
Uygulama tarafından sunulan URL'yi açın, ardından OAuth2 kimlik doğrulamasını hazırlamak için Yetki ver'i seçin.
Kullanılabilir yetkilendirmeler penceresinde, client_id alanına uygulamanın istemci kimliğini
ToDoWeb
girin, Kapsamlar alanı için tüm kapsamları seçin, client_secret alanını yoksayın ve ardından Microsoft Entra oturum açma sayfasına yeniden yönlendirmek için Yetkile'yi seçin.
Önceki kullanıcıyla oturum açma işlemini tamamladıktan sonra Kullanılabilir yetkilendirmeler penceresine geri dönersiniz.
5.2. RESTful API'lerine erişme
Swagger kullanıcı arabiriminde uygulamanın RESTful API'lerine ToDo
erişmek için aşağıdaki adımları kullanın:
API POST /api/simple-todo/lists öğesini ve ardından Deneyin'i seçin. Aşağıdaki istek gövdesini girin ve ardından Yürüt'e seçerek bir ToDo listesi oluşturun.
{ "name": "My List" }
Yürütme tamamlandıktan sonra aşağıdaki Yanıt gövdesini görürsünüz:
{ "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null }
API POST /api/simple-todo/lists/{listId}/items öğesini ve ardından Deneyin'i seçin. listId için, daha önce oluşturduğunuz ToDo liste kimliğini girin, aşağıdaki istek gövdesini girin ve ardından Yürüt'i seçerek bir ToDo öğesi oluşturun.
{ "name": "My first ToDo item", "listId": "<ID-of-the-ToDo-list>", "state": "todo" }
Bu eylem aşağıdaki ToDo öğesini döndürür:
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.9033069+08:00", "completedDate": null }
API GET /api/simple-todo/lists öğesini seçin ve ardından ToDo listelerini sorgulamak için Yürüt'e tıklayın. Bu eylem aşağıdaki ToDo listelerini döndürür:
[ { "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null } ]
API GET /api/simple-todo/lists/{listId}/items öğesini ve ardından Deneyin'i seçin. listId için, daha önce oluşturduğunuz ToDo liste kimliğini girin ve Ardından Yürüt'e seçerek ToDo öğelerini sorgulayın. Bu eylem aşağıdaki ToDo öğesini döndürür:
[ { "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.903307+08:00", "completedDate": null } ]
PUT /api/simple-todo/lists/{listId}/items/{itemId} API'sini seçin ve ardından Deneyin'i seçin. listId için ToDo liste kimliğini girin. itemId için ToDo öğe kimliğini girin, aşağıdaki istek gövdesini girin ve ardından Yürüt'e seçerek ToDo öğesini güncelleştirin.
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "dueDate": "2023-07-11T13:59:24.903307+08:00", "state": "inprogress" }
Bu eylem aşağıdaki güncelleştirilmiş ToDo öğesini döndürür:
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "state": "inprogress", "dueDate": "2023-07-11T05:59:24.903307Z", "completedDate": null }
API DELETE /api/simple-todo/lists/{listId}/items/{itemId} öğesini seçin ve ardından Deneyin'i seçin. listId için ToDo liste kimliğini girin. itemId için ToDo öğe kimliğini girin ve Ardından Yürüt'e seçerek ToDo öğesini silin. Sunucu yanıt kodunun olduğunu
204
görmeniz gerekir.
6. Kaynakları temizleme
Kaynak grubundaki tüm kaynakları içeren Azure kaynak grubunu silebilirsiniz.
Yeni oluşturulan hizmet de dahil olmak üzere kaynak grubunun tamamını silmek için aşağıdaki adımları kullanın:
Azure portalında kaynak grubunuzu bulun.
Gezinti menüsünde Kaynak grupları'nı seçin. Ardından kaynak grubunuzun adını (örneğin, myresourcegroup) seçin.
Kaynak grubunuzun sayfasında Sil’i seçin. Silme işlemini onaylamak için metin kutusuna kaynak grubunuzun adını girin ( örneğin, myresourcegroup). Ardından Sil'i seçin.
Yeni oluşturulan hizmet de dahil olmak üzere kaynak grubunun tamamını silmek için aşağıdaki adımları kullanın:
Azure portalında kaynak grubunuzu bulun.
Gezinti menüsünde Kaynak grupları'nı seçin. Ardından kaynak grubunuzun adını (örneğin, myresourcegroup) seçin.
Kaynak grubunuzun sayfasında Sil’i seçin. Silme işlemini onaylamak için metin kutusuna kaynak grubunuzun adını girin ( örneğin, myresourcegroup). Ardından Sil'i seçin.
7. Sonraki adımlar
Daha fazla bilgi için aşağıdaki makaleleri inceleyin: