Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, PostgreSQL veritabanında CRUD işlemleri gerçekleştiren yerel bir Django web uygulaması oluşturmak için GitHub Copilot ile etkileşim kurma konusunda size yol gösterir. Ardından, web uygulamasını ve veritabanını Azure App Service ve Azure PostgreSQL Esnek Sunucusu'na (çeşitli destekleyici Azure hizmetleriyle birlikte) dağıtmak üzere Azure için GitHub Copilot ile etkileşim kurma konusunda size yol gösterir.
Oluşturduğunuz belirli uygulama, liste ayrıntısı stili mimarisine sahip CRUD işlemlerini içeren önemsiz bir kişi yönetimi uygulamasıdır.
Uyarı
Uygulama oluşturmak için Büyük Dil Modeli (LLM) kullanmak tutarsız sonuçlar verebilir. Sonuçlarınız LLM modeline, yönergelerinize ve daha fazlasına bağlıdır. Bu kılavuzun odak noktası, nasıl daha iyi sonuçlar alabileceğinizi anlamanıza yardımcı olmaktır. Ancak bu örnekten her geçtiğinde önemli ölçüde farklı sonuçlar elde edersiniz ...
Önkoşullar
Azure hesabı ve Azure aboneliğine erişim. Bunların nasıl ayarlanacağı hakkında ayrıntılı bilgi için Bkz. Azure hesaplarının fiyatlandırma sayfası.
GitHub hesabı ve GitHub Copilot aboneliği. Bunların nasıl ayarlanacağı hakkında ayrıntılı bilgi için bkz. GitHub'da hesap oluşturma ve GitHub Copilot için Hızlı Başlangıç.
Visual Studio Code. İndirme ve yükleme hakkında ayrıntılı bilgi için bkz. Visual Studio Code'u ayarlama.
GitHub Copilot uzantısı ve GitHub Copilot Sohbet uzantısı. Bu uzantıları yükleme yönergeleri için bkz. VS Code'da GitHub Copilot'ı ayarlama ve VS Code'da GitHub Copilot Sohbeti'ni kullanmaya başlama.
Önemli
GitHub Copilot, GitHub tarafından yönetilen ayrı bir aboneliktir. GitHub Copilot abonelikleri ve Destek ile ilgili sorular için bkz. GitHub Copilot planını kullanmaya başlama.
Visual Studio Code'a Python uzantısı. Uzantıyı yükleme yönergeleri için bkz. Python'ı ve Python uzantısını yükleme.
pgAdmin de dahil olmak üzere PostgreSQL (PostgreSQL Windows yükleyicisinden edinilebilir)
Git Bash ( Windows için Git yükleyicisinden kullanılabilir)
Visual Studio Code için PostgreSQL (Önizleme) uzantısı. Uzantıyı yükleme ve kullanma yönergeleri için bkz . Hızlı Başlangıç: Visual Studio Code için PostgreSQL uzantısıyla veritabanını bağlama ve sorgulama önizlemesi.
Azure CLI. Azure CLI'yı yükleme yönergeleri için bkz. Azure CLI'yi yükleme.
Azure Geliştirici CLI'sı (
azd). yüklemeazdyönergeleri için bkz. Azure Geliştirici CLI'sını yükleme veya güncelleştirme.
Sohbet oturumunu hazırlama
Visual Studio Code'da, başlık çubuğundaki Sohbeti Aç/Kapat düğmesini kullanın veya Sohbet Penceresi'ni açmak için Ctrl+Alt+i'yi seçin. Yeni sohbet oturumu oluşturmak için Yeni Sohbet simgesini kullanın.
Sohbet alanında modu seçin
Agent. Bu yazı sırasında enClaude Sonnet 4iyi sonuçları verir. Kod oluşturma için kullanılabilen en iyi modeli kullanın.
Yapılandırmanızı doğrulama
SONUÇLARınızı iyileştirmek için CLI araçlarınızın ve Visual Studio Code'unuzun güncelleştirildiğinden, düzgün yapılandırıldığından ve düzgün çalıştığından emin olun.
Yeni bir sohbette aşağıdaki istemi girin:
I want to create a new Django website that stores data in PostgreSQL. Then, I'll want to deploy that new website to Azure. Do I have everything installed on my local computer that you will need to perform these tasks?GitHub Copilot, araçlara ve bu araçların en güncel sürümlerine sahip olduğunuzdan emin olmak için bir dizi komut satırı denetimi çalıştırma izni ister.
Terminalinizde Azure CLI'yı komutuyla
az --upgradegüncelleştirin.Terminalinizde komutuyla Azure CLI için hizmet bağlayıcısı parolasız uzantısını yükleyin
az extension add --name serviceconnector-passwordless --upgradeVisual Studio Code'da varsayılan terminali Git Bash olarak ayarlayın. Dosya > Tercihleri > Ayarları'na gidin, ardından "Arama ayarları" bölümüne "Varsayılan Profil: Windows" yazın ve "Git Bash" öğesini seçin. Bu ayarın etkili olması için Visual Studio Code'un yeniden başlatılması gerekebilir.
Uyarı
Git Bash kullanmak kesinlikle gerekli değildir, ancak bu yazının yazılması sırasında en iyi sonuçları verir.
Visual Studio Code'da, Visual Studio Code için PostgreSQL (Önizleme) uzantısını
contactskullanın ve veritabanına gidin.Visual Studio Code'da Azure uzantısını kullanın ve Azure hesabınızda ve aboneliğinizde oturum açtığınızdan emin olun. Birincil yan çubukta Azure uzantısını açtığınızda, mevcut aboneliklerinizi ve kaynaklarınızı görüntüleyebilmeniz gerekir.
Yeni uygulama dosyalarınız için yeni bir klasör oluşturun ve çalışma alanınız olarak Visual Studio Code'da açın.
Yerel veritabanını ayarlama
GitHub Copilot, geliştiricilerin genellikle gerçekleştirdiği neredeyse tüm uygulama geliştirme görevlerini gerçekleştirebilir ancak bazı görevleri daha küçük adımlarda gerçekleştirirseniz en iyi sonuçları elde edersiniz. Sonuçları geliştirmek için veritabanını oluşturun ve GitHub Copilot ile çalışmadan önce kimlik doğrulaması ve yetkilendirmeyi ayarlayın.
Yeni bir sohbet oluşturun ve aşağıdaki istemi kullanın:
On my PostgreSQL server localhost, please create a new database named 'contacts'. Then create a new user <db-username> with password `<password>` and give that user full rights (create tables and other db objects, CRUD data) to the new contacts database. Please do the work, and only prompt me when you are unable to do it yourself.ve
<db-username>değerini sırasıyla istediğiniz veritabanı kullanıcı adı ve parolasıyla değiştirin<password>.Windows makinelerinde önerilen güvenlik en iyi uygulaması, veritabanı kullanıcı adını ve parolasını yerel bir dosyada depolamaktır:
%APPDATA%\postgresql\pgpass.confBu genellikle sabit sürücünüzde aşağıdaki konumu çözer:
c:\Users\<username>\AppSettings\Roaming\postgresql\pgpass.confyerine Windows kullanıcı adınızı girin
<username>.Dosya aşağıdaki biçimi kullanmalıdır:
localhost:5432:<database-name>:<database-user>:<password>Bu, yerel bilgisayarınızda bir PostgreSQL örneğiyle çalıştığınızı ve varsayılan bağlantı noktasında (5432) barındırıldığını varsayar.
değerini
<database-name>ve yerine önceki adımda kullandığınız kimlik bilgilerini yazıncontacts<db-username>.<password>Dosya hakkında
pgpass.confdaha fazla bilgi için PostgreSQL'in belgelerine bakın.Dosyanın yolunu
pgpass.confPATH ortam değişkeninize ekleyin.Çalıştığından emin olmak için bağlantıyı test edin. Psql CLI'yi kullanarak aşağıdaki komutla test edin:
psql -h localhost -U <db-username> -d contactsdeğerini dosyadaki veritabanı kullanıcı adı kesimiyle
<db-username>değiştirinpgpass.conf.pgpass.confdoğru ayarlanmadıysa parolanızı yazmanız için bir istem görürsünüz.
GitHub Copilot kullanarak uygulama oluşturma
İlk olarak, uygulamayı yerel bilgisayarınızda derleme ve test etme yönergelerini ve yönergeleri sağlarsınız.
Visual Studio Code'da, Başlık çubuğundaki Sohbeti Aç/Kapat düğmesini kullanarak Sohbet Penceresi'ni açın. Yeni sohbet oturumu oluşturmak için Yeni Sohbet simgesini kullanın.
Sohbet alanında modu seçin
Agent. Bu yazı sırasında enClaude Sonnet 4iyi sonuçları verir. Kod oluşturma için kullanılabilen en iyi modeli kullanın.Uygulama oluşturmayı başlatmak için aşağıdaki istemi kullanın:
I want you to create a simple Contact Manager application using Django and PostgreSQL. This should be a CRUD application, so create web pages that display a list of contacts, view details, add a new contact, edit or delete a contact. Each Contact is comprised of a contact's Name, Address, and Phone number. Since this is a Python / Django project please make sure to work inside of a virtual environment (venv). I've already created a PostgreSQL database at `localhost` named `contacts`. There are no tables yet. For local development in PostgreSQL, I'm using a `pgpass.conf` file and I have tested that it works. Prefer Git Bash in the terminal. Beyond that, if there's anything I need to do, please include instructions. But I want you to do as much as you can on your own.İstem aşağıdaki özelliklere sahiptir:
- Oluşturmak istediğiniz uygulama türü. Bu durumda, bir kişi yönetimi uygulaması.
- Kullanılacak teknolojiler. Bu durumda, Django ve PostgreSQL.
- Oluşturmak istediğiniz site mimarisi. Bu durumda, tüm kişiyi listeleyen ve belirli bir kişinin detayına gitmenizi sağlayan bir sayfa içeren CRUD stilindeki bir uygulama.
- Sorun etki alanı hakkında daha fazla ayrıntı. Bu durumda, kişinin adı, adresi ve telefon numarası dahil olmak üzere uygulamanın yönetmesini istediğiniz veri alanlarını sağlarsınız.
- Veritabanıyla ilgili özel yönergeler. Bu durumda GitHub Copilot'a önceden oluşturduğunuz belirli bir veritabanını kullanmasını, veritabanının durumunu ve nasıl etkileşim kurabileceğinizi bildirirsiniz
- Ortamla ilgili belirli yönergeler. Bu durumda, Git Bash'i kullanması için yönerge alırsınız. Ayrıca, çalışmanın en iyi yöntem olan Python ortamında (venv) gerçekleştirilmesini istediğinizi de söylersiniz. GitHub Copilot bu seçenekleri kendi başına belirleyebilir, ancak açıkça belirterek sürecin sorunsuz bir şekilde ilerlemesini sağlar.
- Mümkün olduğunca çok işi kendi başına gerçekleştirmesini istediğinize ilişkin açık beklentiler. Aksi takdirde, GitHub Copilot almanız için yönergeler sağlayabilir.
- Yönergeler /bağlam için açık beklentiler. Başka eylemler gerçekleştirmeniz gerekiyorsa, yönergeler ve yönergeler sağlayarak size yardımcı olması için ihtiyacınız olan beklentiyi ayarlarsınız.
Önemli
GitHub Copilot yeni bir sanal ortam oluşturmak için terminali kullandığında
venv, Visual Studio Code bunu algılar ve kullanmak isteyip istemediğinizi soran bir iletişim kutusu görüntüler. Bu iletişim kutusunu yoksayın. Yok oluyor. GitHub Copilot'ın terminali yalnızca bu işlem için kullanmasına izin verin.GitHub Copilot, aşağıdakiler için yerleşik terminali ve Visual Studio Code ortamını kullanır:
- Python sanal ortamı oluşturma
- Kitaplıkları ve diğer bağımlılıkları yükleme
- Kod dosyaları oluşturma
- Veritabanı tabloları oluşturma
- Daha fazla yönerge için benioku dosyaları oluşturma
- Test verileri oluşturma
- Yerel web sunucusunu başlatma
- Web sitesini test edin (Simple Browser veya curl kullanarak)
LLM'lerin kod oluşturma şekli nedeniyle, kullandığı komutlar ve bunların ürettiği komutlar her seferinde farklıdır.
Azure için GitHub Copilot ile Azure'a dağıtma
GitHub Copilot siteyi yerel olarak oluşturduktan sonra GitHub Copilot'dan dağıtıma hazırlık olarak sitede değişiklik yapmasını ve ardından dağıtımı gerçekleştirmesini isteyen bir istem yazacaksınız. Azure için GitHub Copilot uzantısı, bicep dosyaları oluşturup cli kullanarak azd bu dosyaları çalıştırarak bu isteği işler.
Aşağıdaki istemi kullanın... Not Defteri'ne kopyalayıp köşeli ayraç <resource-group-name> içindeki herhangi bir değeri değiştirebilir ve <region-name> ardından kopyalayıp GitHub Copilot sohbetine yapıştırabilirsiniz:
Please help me deploy this Django app to Azure.
First, create and use a Resource Group named "<resource-group-name>" in the "<region-name>" region.
Second, create an Azure App Service for the Django app in the new "<resource-group-name>" in the "<region-name>" region.
Third, create a new Azure Database for PostgreSQL flexible server named "<server-name>" in a resource group named "<resource-group-name>" in my subscription "<subscription-id>". Use my current account ("<account-id>") as the Microsoft Entra administrator. For the PostgreSQL "Administrator login", use "<azure-database-username>" and password "<azure-database-password>". Use a "development" class database configuration in the "<region-name>" region. Create a new database named "contact_manager_db" and migrate all tables and data from the local version of "contact_manager_db". The local database uses the username "<local-database-username>" and password "<local-database-password>". Add my IP address as a firewall rule, allow public access to this resource through the internet using a public IP address, and allow public access from any Azure service within Azure to this server.
Fourth, use Service Connector (and any other services you need to make this configuration work successfully) to connect the web app to the database. You may need to modify the application code to accommodate Service Connector. Also, please ensure a secure connection between the Azure App Service web site and the Azure PostgreSQL Flexible Server.
Please choose the least expensive options.
If you are prompted for an environment, use the name "contacts-env". Configure my firewall to allow my IP address. Beyond that, if there's anything
I need to do, please include instructions. But I want you to do as much as you can on your own.
Before you start:
- Do you have any questions that need to be clarified?
- Please create a plan for deployment in the form of a TODO list, and then update the TODO list as you progress. Do not start until I have a chance to review your plan and tell you to proceed.
İstem aşağıdaki özelliklere sahiptir:
- Kullanmak istediğiniz belirli hizmetler. Bu durumda, Azure App Service, Azure PostgreSQL Esnek Sunucusu, Hizmet Bağlayıcısı'nı kullanmak istediğinizi söylersiniz. Ayrıca çalıştığından emin olmak için "yapmanız gereken her şeyi yapın" yönergesini de verirsiniz.
- Belirli hizmet seçenekleri. Bu durumda, her hizmet için mümkün olan en düşük maliyetli seçeneği kullanmak istediğinizi belirtirsiniz.
- Olası sonraki adımlarla ilgili ipucu. Bu durumda, Hizmet Bağlayıcısı'nı kullanmak için bazı kod değişikliklerinin gerekli olduğunu önerirsiniz.
- Kararları önceden tahmin edin. Bu durumda, için ortam adı gibi ihtiyaç duyduğu ayarlara
azdyanıt verirsiniz. - Kendi başına en fazla işi yapmak istediğinize ilişkin açık beklentiler. Aksi takdirde, almanız gereken yönergeler sağlanabilir.
- Yönergeler /bağlam için açık beklentiler. Harekete geçmenizi istediğinde yardıma ve rehberliğe ihtiyacınız olduğu beklentisini ayarlayın.
- Herhangi bir açıklama gerekip gerekmediğini sorar. Bu genellikle uç durumlar veya belirsiz yönergeler gibi olası sorunları ortaya çıkar.
- TODO listesi içeren bir plan istemektedir. Azure için GitHub Copilot'un ödevi anladığına ve istediğiniz gibi gerçekleştirmeyi planladığına güven verir.
GitHub Copilot, aşağıdakiler için yerleşik terminali ve Visual Studio Code ortamını kullanır:
- Hizmet Bağlayıcısı'na uyum sağlamak için kod dosyalarını güncelleştirme
- Bicep dosyaları oluştur
- CLI'yi
azdçalıştırma - Dağıtımı test edin
- Gerekirse günlükleri veya diğer çıktıları kullanarak dağıtımı hata ayıklayın.
GitHub Copilot ile etkileşim kurma
GitHub Copilot, birçok görevi gerçekleştirmeden önce girişinizi gerektirir. Giriş için duraklama, hataları önlemek veya oluşturulan çıkışı tercihlerinize göre özelleştirmek için GitHub Copilot'ı doğru kursa yönlendirme fırsatınızdır.
Çalışırken, düğmeyi kullanarak Continue size sorduğu soruların çoğunu izleyebilir ve kabul edebilirsiniz.
Önemli
Beklenmeyen sonuçlar alırsanız yeni bir sohbet oturumu kullanarak yeniden başlatın.
Bazen giriş sağlamanız gerekir. Giriş girmeniz istendiğinde birkaç farklı an vardır:
- Kullanıcı kimlik bilgileri - Terminaldeki geçerli işlem bir kullanıcı adı veya parola gerektiriyorsa, sizden bu bilgi istenir.
- Karar anı - Bazen GitHub Copilot size listede çeşitli seçenekler sunar ve hangisini tercih ettiğinizi sorar.
- Komut Paleti - GitHub Copilot bazen bir uzantının özelliklerini kullanır ve seçenekler Komut Paleti'nde görüntülenir. Doğru seçimleri yaptıktan sonra GitHub Copilot devam eder.
-
Etkileşimli oturum açma - Azure CLI ve
azdCLI kimlik doğrulaması yapmanıza ihtiyaç duyar ve çeşitli kimlik doğrulama mekanizmalarından birini başlatır.
Test etme ve değişiklik isteme
GitHub Copilot tamamlandığında, sitenin tamamlanmış ve işlevsel olduğunu kabul ediyor olabilir. Ancak testinizde sorunlar veya beklenmeyen /istenmeyen uygulama özellikleri bulunabilir.
Sorunu mümkün olduğunca çok ayrıntıyla açıklayan istemleri kullanın. Örneğin, uygulama çalışmıyorsa, tam hata iletisi ve beklenen sonuç da dahil olmak üzere mümkün olduğunca çok bilgi sağlayın.
Akışı kesme
Bazen, GitHub Copilot'ın aynı görevleri tekrar tekrar gerçekleştirmeye çalışan bir döngüde takıldığını veya hiçbir zaman döndürülmeyen bir işlemde takıldığını fark edebilirsiniz. Örneğin, web sitesiyle ilgili sorunları tanılarken GitHub Copilot aşağıdaki gibi bir komut çalıştırmak isteyebilir:
az webapp log tail
GitHub Copilot takıldığında GitHub Copilot'ı birkaç yoldan biriyle kesebilirsiniz:
- Ctrl+C
- Sohbette duraklat düğmesini kullanma
- Sohbet oturumunu sonlandırın ve yeni bir sohbet başlatın
Önemli
Sohbet oturumunu sonlandırmak, oturum sırasında oluşturulan ve istenebilir veya istenmeyebilir tüm bağlamı yok eder.
Az önce ne olduğuyla ilgili bağlam sağlamak ve olası bir çözüme doğru itmek için GitHub Copilot'ı kesintiye uğratdıktan hemen sonra aşağıdaki gibi bir istem ekleyebilirsiniz:
You were just getting the logs from Azure App Service but it did not return
so you got stuck. Try to interrupt after a minute once you get what you need
from the logs.