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 öğreticide, Azure App Service'te mySQL veritabanına (MySQL için Azure Veritabanı Esnek Sunucusu kullanılarak) bağlanan güvenli bir PHP uygulamasının nasıl oluşturulacağı gösterilmektedir. Ayrıca uygulamanızda önbelleğe alma kodunu etkinleştirmek için bir Redis için Azure Cache dağıtacaksınız. Azure Uygulama Hizmeti, Windows veya Linux'ta kolayca uygulamaları dağıtabilecek yüksek oranda ölçeklenebilir, kendi kendine yama yapan bir web barındırma hizmetidir. İşiniz bittiğinde, Linux'ta Azure Uygulaması Hizmeti üzerinde çalışan bir Laravel uygulamasına sahip olursunuz.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Azure hesabınız yoksa ücretsiz olarak bir hesap oluşturabilirsiniz.
- GitHub hesabı. Ücretsiz olarak da bir tane alabilirsiniz.
- Laravel geliştirme ile PHP bilgisi.
- (İsteğe bağlı) GitHub Copilot'ı denemek için bir GitHub Copilot hesabı gerekir. 30 günlük ücretsiz deneme sürümü mevcuttur.
1 - Örneği çalıştırma
İlk olarak, başlangıç noktası olarak örnek bir veri temelli uygulama ayarlarsınız. Kolaylık sağlaması için örnek depo, bir geliştirme kapsayıcısı yapılandırmasını içerir. Geliştirme kapsayıcısı veritabanı, önbellek ve örnek uygulamanın ihtiyaç duyduğu tüm ortam değişkenleri dahil olmak üzere bir uygulama geliştirmek için ihtiyacınız olan her şeye sahiptir. Geliştirme kapsayıcısı bir GitHub kod alanında çalıştırılabilir; bu da örneği web tarayıcısı olan herhangi bir bilgisayarda çalıştırabileceğiniz anlamına gelir.
1. Adım: Yeni bir tarayıcı penceresinde:
- GitHub hesabınıza giriş yapın.
- Şuraya gidin: https://github.com/Azure-Samples/laravel-tasks/fork
- 'Çatal oluştur' seçin.
2. Adım: GitHub fork'unda:
-
Kodu seçin >ana üzerinde kod alanı oluşturun.
Kod alanının ayarlanması birkaç dakika sürer. Ayrıca, sağlanan .env dosyası zaten Laravel'in yerel olarak çalışması gereken bir sahte
APP_KEY
değişken içeriyor.
3. Adım: Codespace terminalinde:
-
composer install
'i çalıştırın. -
php artisan migrate
ile veritabanı geçişlerini çalıştırın. - Uyugulamayı
php artisan serve
ile çalıştırın. - Bildirimi
Your application running on port 80 is available.
gördüğünüzde Tarayıcıda Aç'ı seçin. Örnek uygulamayı yeni bir tarayıcı sekmesinde görmeniz gerekir. Uygulamayı durdurmak için yazınCtrl
+C
.
Sorun mu yaşıyorsunuz? Sorun Giderme bölümüne bakın.
2 - App Service, veritabanı ve önbellek oluşturma
Bu adımda Azure kaynaklarını oluşturursunuz. Bu öğreticide kullanılan adımlar App Service, MySQL için Azure Veritabanı ve Redis için Azure Cache gibi varsayılan olarak güvenli bir kaynak kümesi oluşturur. Oluşturma işlemi için şunları belirtirsiniz:
- Web uygulamasının Adı. Uygulamanızın DNS adının bir parçası olarak kullanılır.
- Uygulamanın dünyada fiziksel olarak çalıştırılacağı Bölge. Ayrıca uygulamanızın DNS adının bir parçası olarak da kullanılır.
- Uygulamanın Çalışma Zamanı yığını . Burası, uygulamanız için kullanılacak PHP sürümünü seçtiğiniz yerdir.
- Uygulama için Barındırma planı . Bu, uygulamanız için özellik kümesini ve ölçeklendirme kapasitesini içeren fiyatlandırma katmanıdır.
- Uygulamanın Kaynak Grubu . Kaynak grubu, uygulama için gereken tüm Azure kaynaklarını gruplandırmanıza (mantıksal bir kapsayıcıda) olanak tanır.
Azure portalında oturum açın ve Azure Uygulaması Hizmeti kaynaklarınızı oluşturmak için bu adımları izleyin.
1. Adım: Azure portalında:
- Üstteki arama çubuğuna app service yazın.
- Hizmetler başlığı altında App Service etiketli öğeyi seçin.
- Web Uygulaması Oluştur'u> seçin. Doğrudan oluşturma sihirbazına da gidebilirsiniz.
2. Adım:Web Uygulaması Oluştur sayfasında formu aşağıdaki gibi doldurun.
- Ad: msdocs-laravel-mysql-XYZ. Sizin için msdocs-laravel-mysql-XYZ_group adlı bir kaynak grubu oluşturulur.
- Çalışma zamanı yığını: PHP 8.4.
- İşletim sistemi: Linux.
- Bölge: Size yakın herhangi bir Azure bölgesi.
- Linux Planı: Yeni oluşturun ve msdocs-laravel-mysql-XYZ adını kullanın.
- Fiyatlandırma planı: Temel. Hazır olduğunuzda ölçeği farklı bir fiyatlandırma katmanına artırabilirsiniz.
3. Adım:
- Veritabanı sekmesini seçin.
- Veritabanı Oluştur'u seçin.
- Altyapı'daMySQL - Esnek Sunucu'ya tıklayın.
- Redis için Azure Cache oluştur'u seçin.
- Ad alanına (Önbellek'in altında), önbellek için bir ad girin.
- SKU'daTemel'i seçin.
4. Adım:
- Dağıtım sekmesini seçin.
- Sürekli dağıtımı etkinleştirin.
- Kuruluş'ta GitHub diğer adınızı seçin.
- Depo'da laravel-tasks öğesini seçin.
- Branch'da main'i seçin.
- Temel kimlik doğrulamasının devre dışı olduğundan emin olun.
- Gözden geçir ve oluştur’u seçin.
- Doğrulama tamamlandıktan sonra Oluştur'u seçin.
5. Adım: Dağıtımın tamamlanması birkaç dakika sürer. Dağıtım tamamlandıktan sonra Kaynağa git düğmesini seçin. Doğrudan App Service uygulamasına yönlendirilirsiniz, ancak aşağıdaki kaynaklar oluşturulur:
- Kaynak grubu: Oluşturulan tüm kaynaklar için kapsayıcı.
- App Service planı: App Service için işlem kaynaklarını tanımlar. Temel katmanda bir Linux planı oluşturulur.
- App Service: Uygulamanızı temsil eder ve App Service planında çalışır.
- Sanal ağ: App Service uygulamasıyla tümleştirilmiş ve arka uç ağ trafiğini yalıtıyor.
- Özel uç noktalar: Veritabanı sunucusu ve sanal ağdaki Redis önbelleği için erişim uç noktaları.
- Ağ arabirimleri: Özel uç noktaların her biri için bir tane olan özel IP adreslerini temsil eder.
- MySQL için Azure Veritabanı Esnek Sunucusu: Yalnızca özel uç noktasının arkasından erişilebilir. Sunucuda sizin için bir veritabanı ve kullanıcı oluşturulur.
- Redis için Azure Cache: Yalnızca özel uç noktasının arkasından erişilebilir.
- Özel DNS bölgeleri: Sanal ağda veritabanı sunucusunun ve Redis önbelleğinin DNS çözümlemesini etkinleştirin.
3 - Bağlantı sırlarının güvenliğini sağlama
Oluşturma sihirbazı sizin için zaten uygulama ayarları olarak bağlantı değişkenlerini oluşturdu. Ancak en iyi güvenlik uygulaması, gizli bilgileri tamamen App Service'in dışında tutmaktır. Gizli bilgilerinizi bir anahtar kasasına taşıyacak ve Hizmet Bağlayıcıları yardımıyla uygulama ayarınızı Key Vault başvuruları olarak değiştireceksiniz.
1. Adım: Mevcut bağlantı dizesi alma
- App Service sayfasının sol menüsünde Ayarlar > Ortam değişkenleri'ni seçin.
- Bağlantı dizeleri seçin.
- AZURE_MYSQL_CONNECTIONSTRING'ı seçin.
- Uygulama ayarı ekle/düzenle bölümünde, Değer alanında, daha sonra kullanmak üzere kullanıcı adını ve parolayı kopyalayın. Bağlantı dizesi, özel uç noktaların arkasında güvenliği sağlanan MySQL veritabanına bağlanmanızı sağlar. Ancak gizli bilgiler doğrudan App Service uygulamasına kaydedilir ve bu en uygun olanı değildir. Bunu değiştireceksin.
2. Adım: Sırların güvenli yönetimi için anahtar kasası oluşturma
- Üstteki arama çubuğuna "key vault" yazın, ardından Pazaryeri>Anahtar Kasası'nı seçin.
- Kaynak Grubu'ndamsdocs-laravel-mysql-XYZ_group öğesini seçin.
- Anahtar kasası adı alanına yalnızca harf ve sayılardan oluşan bir ad yazın.
- "Bölge'yi, kaynak grubuyla aynı konuma ayarlayın."
3. Adım: Özel Uç Nokta ile Anahtarlık Kasasını Güvenli Hale Getirin
- Ağ Ayarları sekmesini seçin.
- Genel erişimi etkinleştir'in seçimini kaldırın.
- Özel uç nokta oluştur'u seçin.
- Kaynak Grubu'ndamsdocs-laravel-mysql-XYZ_group öğesini seçin.
- İletişim kutusundaki Konum'da App Service uygulamanızla aynı konumu seçin.
- Ad alanına msdocs-laravel-mysql-XYZVaultEndpoint yazın.
- Sanal ağ'damsdocs-laravel-mysql-XYZ_group grubunda sanal ağı seçin.
- Alt ağ'da kullanılabilir uyumlu alt ağı seçin. Web Uygulaması sihirbazı bunu sizin için oluşturmuştur.
- Tamam'ı seçin.
- Gözden Geçir + oluştur’u ve sonra da Oluştur’u seçin. Anahtar kasası dağıtımının tamamlanmasını bekleyin. "Dağıtımınız tamamlandı" ifadesini görmeniz gerekir.
4. Adım: MySQL bağlayıcısı oluşturma
- Üst arama çubuğuna msdocs-laravel-mysql yazın, ardından msdocs-laravel-mysql-XYZ adlı App Service kaynağını seçin.
- App Service sayfasındaki sol menüde Ayarlar > Hizmet Bağlayıcısı'nı seçin.
- Oluştur'i seçin.
- Hizmet türüiçin MySQL esnek sunucusu için DB'yi seçin.
- MySQL esnek sunucusu için sunucunuzu seçin (örneğin, msdocs-laravel-mysql-235-server).
- MySQL veritabanı için veritabanınızı seçin (örneğin, msdocs-laravel-mysql-235-database).
5. Adım: MySQL bağlayıcısı için kimlik doğrulamasını yapılandırma
- Kimlik Doğrulaması sekmesini seçin.
- Bağlantı dizesi'ni seçin.
- Parola'da, daha önce kopyaladığınız parolayı yapıştırın.
- Key Vault'ta Gizli Anahtarı Depola'yı Seçin.
- Key Vault Bağlantısı altında, Yeni oluştur'u seçin. Düzenle iletişim kutusunun üzerinde Bağlantı oluştur iletişim kutusu açılır.
6. Adım: Key Vault bağlantısını kurma
- Key Vault bağlantısı için bağlantı oluştur iletişim kutusunda, Key Vault'ta daha önce oluşturduğunuz anahtar kasasını seçin.
- Gözden geçir + Oluştur’u seçin.
- Doğrulama tamamlandığında Oluştur'u seçin.
6. Adım: MySQL bağlayıcısı ayarlarını son haline getir
- MySQL bağlayıcısı iletişim kutusuna geri döndüniz. Kimlik Doğrulaması sekmesinde anahtar kasası bağlayıcısının oluşturulmasını bekleyin. Tamamlandığında, Key Vault Bağlantısı açılır menüsünden otomatik olarak seçilir.
- Gözden geçir + Oluştur’u seçin.
- Oluştur'i seçin. Güncelleştirme başarılı bildirimi görünene kadar bekleyin.
7. Adım: Redis bağlayıcısını Key Vault gizli dizilerini kullanacak şekilde yapılandırma
- Hizmet Bağlayıcıları sayfasında, Redis için Cache bağlayıcısının yanındaki onay kutusunu ve ardından Düzenle'yi seçin.
- Kimlik Doğrulaması sekmesini seçin.
- Key Vault'ta Gizli Anahtarı Depola'yı Seçin.
- Key Vault Bağlantısı'nın altında, oluşturduğunuz anahtar kasasını seçin.
- İleri: Ağ'ı seçin.
- Hedef hizmete erişimi etkinleştirmek için Güvenlik duvarı kurallarını yapılandır'ı seçin. Uygulama oluşturma sihirbazı sql veritabanının güvenliğini özel bir uç noktayla zaten sağladı.
- Kaydet'i seçin. Güncelleştirme başarılı bildirimi görünene kadar bekleyin.
8. Adım: Key Vault tümleştirmesini doğrulama
- Sol menüden Ayarlar > Ortam değişkenleri'ni yeniden seçin.
-
AZURE_MYSQL_PASSWORD yanında Değeri göster'i seçin. Değeri
@Microsoft.KeyVault(...)
olmalıdır, bu bir anahtar kasası referansı olduğu anlamına gelir çünkü gizli bilgi artık anahtar kasasında yönetilmektedir. - Redis bağlantı dizesini doğrulamak için Değeri Göster seçeneğini AZURE_REDIS_CONNECTIONSTRING'in yanında seçin.
Özetlemek gerekirse, bağlantı sırlarınızın güvenliğini koruma işlemi şunları içerir:
- App Service uygulamasının ortam değişkenlerinden bağlantı gizli bilgilerini alma.
- Anahtar kasası oluşturma.
- Sistem tarafından atanan yönetilen kimlikle Key Vault bağlantısı oluşturma.
- Anahtar kasasında gizli bilgileri depolamak için hizmet bağlayıcılarını güncelleme.
Sorun mu yaşıyorsunuz? Sorun Giderme bölümüne bakın.
4 - Laravel değişkenlerini yapılandırma
1. Adım: Uygulama ayarı olarak oluşturun CACHE_DRIVER
.
- Uygulama ayarları sekmesinde Ekle'yi seçin.
- Ad alanına CACHE_DRIVER ifadesini girin.
- Değer alanına redis girin.
- Uygula'yı, sonra yeniden Uygula'yı ve ardından Onayla'yı seçin.
2. Adım:1. Adımda aynı adımları kullanarak aşağıdaki uygulama ayarlarını oluşturun:
- MYSQL_ATTR_SSL_CA: Değer olarak /home/site/wwwroot/ssl/DigiCertGlobalRootCA.crt.pem kullanın. Bu uygulama ayarı, MySQL sunucusuna erişmek için ihtiyacınız olan TLS/SSL sertifikasının yolunu gösterir. Kolaylık sağlamak için örnek depoya dahildir.
- LOG_CHANNEL: Değer olarak stderr kullanın. Bu ayar, Laravel'e günlükleri stderr'a yönlendirmesini söyler ve böylece günlükler, App Service günlüklerine erişilebilir hale gelir.
- APP_DEBUG: Değer olarak true kullanın. Hata ayıklama modu sayfalarını etkinleştiren bir Laravel hata ayıklama değişkenidir .
- APP_KEY: base64:Dsz40HWwbCqnq0oxMsjq7fItmKIeBfCBGORfspaI1Kw= değerini kullanın. Bu bir Laravel şifreleme değişkenidir.
Önemli
Değer APP_KEY
burada kolaylık sağlamak için kullanılır. Üretim senaryoları için dağıtımınızda özel olarak oluşturulmalı ve komut satırında php artisan key:generate --show
kullanılarak yapılmalıdır.
İdeal olan, APP_KEY
uygulama ayarının da çok adımlı bir işlem olan anahtar kasası referansı olarak yapılandırılmasıdır. Daha fazla bilgi için bkz. APP_KEY uygulama ayarını Key Vault başvurusu olarak nasıl değiştirebilirim?
5 - Örnek kodu dağıtma
Bu adımda GitHub Actions'ı kullanarak GitHub dağıtımını yapılandıracaksınız. App Service'e dağıtmanın birçok yolundan yalnızca biridir, aynı zamanda dağıtım sürecinizde sürekli tümleştirmeye sahip olmanın harika bir yoludur. Varsayılan olarak, GitHub deponuza yapılan her git push
derleme ve dağıtma eylemini başlatır.
1. Adım: Örnek çatalınızın GitHub kod alanında git pull origin main
çalıştırmak için geri dönün.
Bu, yeni yüklenen iş akışı dosyasını kod alanınıza çeker.
2. Adım (Seçenek 1: GitHub Copilot ile):
- Sohbet görünümünü ve ardından + öğesini seçerek yeni bir sohbet oturumu başlatın.
- "@workspace Uygulama veritabanına ve redis'e nasıl bağlanır? " Copilot, ayarların yapılandırma/database.php'de nasıl yapılandırıldığı hakkında size bazı açıklamalar verebilir.
- "@workspace Üretim modunda uygulamam, MySQL esnek sunucusuna bağlanmak için Azure Service Bağlayıcısı'nı kullanan bir App Service web uygulamasında çalışıyor. Kullanmam gereken ortam değişkeni adları nelerdir?" Copilot, aşağıdaki 2. Seçenek: GitHub Copilot olmadan adımlarına benzer bir kod önerisi verebilir ve hatta yapılandırma/database.php dosyasında değişiklik yapmanızı bile söyleyebilir.
- Gezginde config/database.php açın ve kod önerisini ekleyin.
- "@workspace'a şunu sorun: 'App Service uygulamam, Django istemci türünü kullanarak Redis için Bir Önbelleğe bağlanmak amacıyla Azure Hizmet Bağlayıcıyı da kullanıyor." Kullanmam gereken ortam değişkeni adları nelerdir?*" Copilot size Seçenek 2'dekine benzer bir kod önerisi verebilir : aşağıdaki GitHub Copilot adımları olmadan ve hatta yapılandırma/database.php dosyasında değişiklik yapmanızı bile söyleyebilir. İstenirse daha doğru yanıtlar almak için Azure için GitHub Copilot'ta oturum açın.
- Kod önerisini ekleyin. GitHub Copilot her seferinde aynı yanıtı vermez ve her zaman doğru değildir. Yanıtta ince ayar yapmak için daha fazla soru sormanız gerekebilir. İpuçları için bkz . Kod alanımda GitHub Copilot ile ne yapabilirim?.
2. Adım (Seçenek 2: GitHub Copilot olmadan):
-
Explorer'da config/database.php açın.
mysql
bölümünü bulun ve aşağıdaki değişiklikleri yapın: -
DB_HOST
değeriniAZURE_MYSQL_HOST
ile değiştirin (satır 49). -
DB_DATABASE
değerini (satır 51)AZURE_MYSQL_DBNAME
ile değiştirin. -
DB_USERNAME
yerineAZURE_MYSQL_USERNAME
(satır 52) değiştirin. -
DB_PASSWORD
değeriniAZURE_MYSQL_PASSWORD
ile değiştirin (satır 53). -
DB_PORT
(satır 50) ifadesiniAZURE_MYSQL_PORT
ile değiştirin. - Redis
cache
bölümüne kaydırın ve aşağıdaki değişiklikleri yapın: -
REDIS_HOST
öğesini (satır 142)AZURE_REDIS_HOST
ile değiştirin. -
REDIS_PASSWORD
değeriniAZURE_REDIS_PASSWORD
ile değiştirin (satır 144). -
REDIS_PORT
değeriniAZURE_REDIS_PORT
ile değiştirin (satır 145). - (c0 /> öğesini (satır 146)
REDIS_CACHE_DB
ile değiştirin. - Aynı bölümde,
'scheme' => 'tls',
ile bir satır ekleyin. Bu yapılandırma, Laravel'e Redis'e bağlanmak için şifreleme kullanmasını söyler.
3. Adım:
- Kaynak Denetimi uzantısını seçin.
- Metin kutusuna
Configure Azure database and cache connections
gibi bir gönderme mesajı yazın. Alternatif olarak,öğesini seçip GitHub Copilot'un sizin için bir işleme iletisi oluşturmasına izin verin.
- İşle'yi seçin, ardından Evet ile onaylayın.
- Değişiklikleri eşitle 1 seçin, ardından Tamam ile onaylayın.
4. Adım: Azure portalında Dağıtım Merkezi sayfasına geri dönün:
- Günlükler sekmesini seçin, ardından yeni dağıtım çalıştırmasını görmek için Yenile'yi seçin.
- Dağıtım çalıştırmasının log öğesinde, en son zaman damgasını içeren Derleme/Dağıtma Logları girdisini seçin.
5. Adım: GitHub deponuza yönlendirilirsiniz ve GitHub eyleminin çalıştığını görürsünüz. İş akışı dosyası derleme ve dağıtma olarak iki ayrı aşama tanımlar. GitHub çalıştırmasının Başarılı durumunu gösterdiğini görene kadar bekleyin. Yaklaşık 10 dakika sürer.
Sorun mu yaşıyorsunuz? Sorun Giderme bölümüne bakın.
6 - Veritabanı şeması oluşturma
Oluşturma sihirbazı, MySQL veritabanı sunucusunu özel bir uç noktanın arkasına yerleştirir, bu nedenle yalnızca sanal ağdan erişilebilir. App Service uygulaması zaten sanal ağ ile tümleşik olduğundan veritabanı geçişlerini veritabanınızla çalıştırmanın en kolay yolu doğrudan App Service kapsayıcısının içindendir.
1. Adım: App Service sayfasına geri dönün, soldaki menüden
- Geliştirme Araçları
- Git'i seçin.
2. Adım: SSH terminalinde:
-
cd /home/site/wwwroot
'i çalıştırın. Dağıtılan tüm dosyalarınız aşağıdadır. -
php artisan migrate --force
'i çalıştırın. Başarılı olursa, App Service MySQL veritabanına başarıyla bağlanıyor.
İpucu
SSH oturumunda, /home
klasöründeki dosyalarda yapılan yalnızca değişiklikler uygulama yeniden başlatmalarının ötesinde kalıcı olabilir. dışındaki /home
değişiklikler kalıcı olmaz.
7 - Site kökünü değiştirme
Laravel uygulama yaşam döngüsü bunun yerine /public dizininde başlar. App Service için varsayılan PHP kapsayıcısı, uygulamanın kök dizininde başlayan Nginx'i kullanır. Site kökünü değiştirmek için PHP kapsayıcısında (/etc/nginx/sites-available/default) Nginx yapılandırma dosyasını değiştirmeniz gerekir. Kolaylık sağlamak için örnek depo varsayılan adlı özel bir yapılandırma dosyası içerir. Daha önce belirtildiği gibi, bu dosyayı SSH kabuğunu kullanarak yenisiyle değiştirmek istemezsiniz çünkü değişiklik /home
dışında kalacak ve bir uygulama yeniden başlatıldığında kaybolacaktır.
1. Adım:
- Soldaki menüden Yapılandırma'yı seçin.
- Genel ayarlar sekmesini seçin.
2. Adım: Genel ayarlar sekmesinde:
- Başlangıç Komutu kutusuna şu komutu girin: cp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reload.
- Kaydet'i ve ardından Devam'ı seçin. komutu PHP kapsayıcısındaki Nginx yapılandırma dosyasının yerini alır ve Nginx'i yeniden başlatır. Bu yapılandırma, kapsayıcı her başlatıldığında aynı değişikliğin yapılmasını sağlar.
8 - Uygulamaya göz atın
1. Adım: App Service sayfasında:
- Sol menüden Genel Bakış'ı seçin.
- Uygulamanızın Varsayılan etki alanını seçin.
2. Adım: Listeye birkaç görev ekleyin. Tebrikler, Azure Uygulaması Hizmeti'nde güvenli bir veri temelli PHP uygulaması çalıştırıyorsunuz.
İpucu
Örnek uygulama, önbellek kenara koyma modelini uygular. Veri değişiklikleri yaptıktan sonra sayfayı yeniden yüklerken, verileri veritabanı yerine önbellekten yüklediğinden web sayfasındaki Yanıt süresi çok daha hızlı bir zaman gösterir.
9 - Tanılama günlüklerini gerçek zamanlı olarak iletme
Azure Uygulaması Hizmeti, uygulamanızla ilgili sorunları tanılamanıza yardımcı olmak için konsola kaydedilen tüm iletileri yakalar. Örnek uygulama, özelliğin gösterimi için uç noktalarının her birine konsol günlük iletileri çıkarır. Varsayılan olarak, Laravel'in kayıt tutma işlevi (örneğin, Log::info()
) yerel bir dosyaya çıkış yapar. Daha önce belirtilen LOG_CHANNEL
uygulama ayarınız, günlük girişlerine App Service günlük akışından erişim sağlar.
1. Adım: App Service sayfasında:
- Sol menüden App Service günlükleri'ni seçin.
- Uygulama günlüğü altında Dosya Sistemi'ni seçin.
2. Adım: Soldaki menüden Günlük akışı'nı seçin. Uygulamanızın platform günlükleri de dahil olmak üzere, kapsayıcının içindeki günlüklerini görürsünüz.
Kaynakları temizleme
İşiniz bittiğinde, kaynak grubunu silerek Azure aboneliğinizdeki tüm kaynakları silebilirsiniz.
1. Adım: Azure portalının üst kısmındaki arama çubuğunda:
- Kaynak grubu adını girin.
- Kaynak grubunu seçin.
2. Adım: Kaynak grubu sayfasında Kaynak grubunu sil'i seçin.
3. Adım:
- Silme işleminizi onaylamak için kaynak grubu adını girin.
- Sil'i seçin.
2. Azure kaynakları oluşturma ve örnek uygulama dağıtma
Bu adımda Azure kaynaklarını oluşturur ve Linux üzerinde App Service için örnek bir uygulama dağıtırsınız. Bu öğreticide kullanılan adımlar, App Service ve MySQL için Azure Veritabanı içeren varsayılan olarak güvenli bir kaynak kümesi oluşturur.
GitHub kod alanı zaten Azure Geliştirici CLI'sine (AZD) sahiptir.
ile
php artisan key:generate --show
bir Laravel şifreleme anahtarı oluşturun:php artisan key:generate --show
komutunu çalıştırıp
azd auth login
istemi izleyerek Azure'da oturum açın:azd auth login
Gerekli Azure kaynaklarını oluşturun ve
azd up
komutunu çalıştırarak uygulama kodunu dağıtın. İstemi izleyerek Azure kaynakları için istenen aboneliği ve konumu seçin.azd up
İstendiğinde aşağıdaki yanıtları verin:
Soru Cevap Yeni bir ortam adı girin Benzersiz bir ad yazın. AZD şablonu, Azure'da ( <app-name>-<hash>.azurewebsites.net
) web uygulamanızın DNS adının bir parçası olarak bu adı kullanır. Alfasayısal karakterlere ve kısa çizgilere izin verilir.Kullanılacak Azure Aboneliğini seçin Aboneliğinizi seçin. Kullanılacak Bir Azure konumu seçin Bir konum seçin. 'appKey' altyapısı güvenli parametresi için bir değer girin Burada php artisan key:generate --show
çıktısını kullanın. AZD şablonu, uygulamanızda kullanabileceğiniz bir Key Vault gizli anahtarı oluşturur.'databasePassword' altyapısı güvenli parametresi için bir değer girin MySQL için veritabanı parolası. En az 8 karakter uzunluğunda olmalı ve büyük harfler, küçük harfler, sayılar ve özel karakterler içermelidir. Komutun
azd up
tamamlanması yaklaşık 15 dakika sürer (Redis önbelleği en çok zaman alır). Ayrıca uygulama kodunuzu derleyip dağıtır, ancak kodunuzu daha sonra App Service ile çalışacak şekilde değiştirirsiniz. Komutu çalışırken, Azure'daki dağıtıma bir bağlantı da dahil olmak üzere sağlama ve dağıtım işlemiyle ilgili iletiler sağlar. Tamamlandığında, komut dağıtım uygulamasının bağlantısını da görüntüler.Bu AZD şablonu, aşağıdaki Azure kaynaklarıyla varsayılan olarak güvenli bir mimari oluşturan dosyaları (azure.yaml ve infra dizini) içerir:
- Kaynak grubu: Oluşturulan tüm kaynaklar için kapsayıcı.
- App Service planı: App Service için işlem kaynaklarını tanımlar. B1 katmanında bir Linux planı oluşturulur.
- App Service: Uygulamanızı temsil eder ve App Service planında çalışır.
- Sanal ağ: App Service uygulamasıyla tümleştirilmiş ve arka uç ağ trafiğini yalıtıyor.
- MySQL için Azure Veritabanı Esnek Sunucu: Yalnızca DNS bölgesi tümleştirmesi aracılığıyla sanal ağdan erişilebilir. Sunucuda sizin için bir veritabanı oluşturulur.
- Redis için Azure Cache: Yalnızca sanal ağ içinden erişilebilir.
- Özel uç noktalar: Sanal ağdaki anahtar kasası ve Redis önbelleği için erişim uç noktaları.
- Özel DNS bölgeleri: Sanal ağda anahtar kasasının, veritabanı sunucusunun ve Redis önbelleğinin DNS çözümlemesini etkinleştirin.
- Log Analytics çalışma alanı: Uygulamanızın günlüklerini göndermesi için hedef kapsayıcı görevi görür ve burada günlükleri de sorgulayabilirsiniz.
- Anahtar kasası: AZD ile yeniden dağıttığınızda veritabanı parolanızın aynı kalmasını sağlamak için kullanılır.
Sorun mu yaşıyorsunuz? Sorun Giderme bölümüne bakın.
3. Uygulama kodunda Azure bağlantı dizelerini kullanma
Kullandığınız AZD şablonu, sizin için zaten uygulama ayarları olarak bağlantı değişkenlerini oluşturmuş ve size kolaylık sağlamak için bunları terminale çıkış olarak göndermektedir. Uygulama ayarları, bağlantı gizli dizilerini kod deponuzun dışında tutmanın bir yoludur.
AZD çıkışında
AZURE_MYSQL_
veAZURE_REDIS_
ile başlayan uygulama ayarlarını bulun. Yalnızca ayar adları görüntülenir. AZD çıkışında şu şekilde görünürler:App Service app has the following app settings: - AZURE_KEYVAULT_RESOURCEENDPOINT - AZURE_KEYVAULT_SCOPE - AZURE_MYSQL_DBNAME - AZURE_MYSQL_FLAG - AZURE_MYSQL_HOST - AZURE_MYSQL_PASSWORD - AZURE_MYSQL_PORT - AZURE_MYSQL_USERNAME - AZURE_REDIS_DATABASE - AZURE_REDIS_HOST - AZURE_REDIS_PASSWORD - AZURE_REDIS_PORT - AZURE_REDIS_SSL
ile
AZURE_MYSQL_
başlayan ayarlar MySQL veritabanı için bağlantı değişkenleridir ve ileAZURE_REDIS_
başlayan ayarlar Redis önbelleği içindir. Bunları daha sonra kodunuzda kullanmanız gerekir. Size kolaylık sağlamak için AZD şablonu, Azure portalında uygulamanın uygulama ayarları sayfasına doğrudan bağlantıyı gösterir.Dosya yöneticisinden config/database.php dosyasını açın. Bu, veritabanı ve Redis önbellek bağlantılarının yapılandırma dosyasıdır.
Bağlantıyı tanımlayan
mysql
bölümü bulun (satır 46-64) veDB_HOST
,DB_PORT
,DB_DATABASE
,DB_USERNAME
veDB_PASSWORD
yerine AZD çıkışındakiAZURE_MYSQL_
uygulama ayarlarını yazın. Bağlantınızmysql
aşağıdaki kod gibi görünmelidir.'mysql' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('AZURE_MYSQL_HOST', '127.0.0.1'), 'port' => env('AZURE_MYSQL_PORT', '3306'), 'database' => env('AZURE_MYSQL_DBNAME', 'forge'), 'username' => env('AZURE_MYSQL_USERNAME', 'forge'), 'password' => env('AZURE_MYSQL_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ],
Laravel'de veritabanı yapılandırması hakkında daha fazla bilgi için Laravel belgelerine bakın.
Redis önbellek bağlantısını tanımlayan bölümü bulun (satır 140-147) ve , ,
REDIS_HOST
veREDIS_PASSWORD
yerineREDIS_PORT
REDIS_CACHE_DB
AZD çıkışındakiAzure_REDIS_
uygulama ayarlarını yazın. Ayrıca, bağlantıya ekleyin'scheme' => 'tls',
. Önbellek bağlantınız aşağıdaki kod gibi görünmelidir:'cache' => [ 'scheme' => 'tls', 'url' => env('REDIS_URL'), 'host' => env('AZURE_REDIS_HOST', '127.0.0.1'), 'username' => env('REDIS_USERNAME'), 'password' => env('AZURE_REDIS_PASSWORD'), 'port' => env('AZURE_REDIS_PORT', '6379'), 'database' => env('AZURE_REDIS_DATABASE', '1'), ],
Laravel'de Redis önbelleği yapılandırması hakkında daha fazla bilgi için Laravel belgelerine bakın.
Uyarı
Değişikliklerinizin henüz yayınlanmadığını unutmayın. Bunları sonraki adımın sonunda dağıtacaksınız.
4. Web uygulamasında Laravel ayarlarını yapılandırma
Gezginden infra/resources.bicep dosyasını açın. Bu, oluşturulan Azure kaynaklarını tanımlayan Bicep dosyasıdır.
Uygulama ayarlarını tanımlayan bölümü bulun (satır 510-514) ve açıklamalarını kaldırın. Bu uygulama ayarları şunlardır:
Ayarlar Açıklama CACHE_DRIVER
Laravel'e önbelleği olarak Redis'i kullanmasını söyler ( Laravel belgelerine bakın). MYSQL_ATTR_SSL_CA
Azure'da MySQL'e tls bağlantısı açmak için gereklidir. Sertifika dosyası kolaylık sağlamak için örnek depoya eklenir. Bu değişken, yapılandırma/database.php mysql bağlantısı tarafından kullanılır LOG_CHANNEL
Laravel'e günlükleri stderr
içine yönlendirmesini söyler ve bu, App Service günlüklerine erişimi mümkün kılar (bkz. Laravel belgeleri).APP_DEBUG
Laravel'de hata ayıklama modu sayfalarını etkinleştirin ( Laravel belgelerine bakın). APP_KEY
Laravel şifreleme değişkeni. AZD şablonu zaten bir Key Vault sırrı (satır 212-217) oluşturmuştur, bu nedenle Key Vault referansı ile erişebilirsiniz. infra/resources.bicep dosyasında App Service uygulaması için kaynak tanımını bulun ve 315. satırı açıklamayı kaldırın:
appCommandLine: 'cp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reload'
Laravel uygulama yaşam döngüsü, uygulama kökü yerine /public dizininde başlar. App Service için varsayılan PHP kapsayıcısı, uygulama kökünde başlayan Nginx'i kullanır. Site kökünü değiştirmek için PHP kapsayıcısında (/etc/nginx/sites-available/default) Nginx yapılandırma dosyasını değiştirmeniz gerekir. Size kolaylık olması için örnek depo, Nginx'e /public dizinine bakmasını söyleyen varsayılan adlı bir değiştirme yapılandırma dosyası içerir. Uygulama her başlatıldığında,
appCommandLine
içindeki bu özel komut çalışır ve Linux kapsayıcısı temiz bir durumdan her yeniden yüklendiğinde dosya değişimini uygular.Kod alanı terminaline geri dönün ve
azd up
komutunu tekrar çalıştırın.azd up
İpucu
azd up
, azd package
, azd provision
, ve azd deploy
birlikte çalıştırılır, ve hem altyapı hem de uygulama değişiklikleri yaptığınız için anlam ifade eder. Yalnızca altyapı değişiklikleri yapmak için komutunu çalıştırın azd provision
. Değişiklikleri uygulama koduna dağıtmak için komutunu çalıştırın azd deploy
.
Sorun mu yaşıyorsunuz? Sorun Giderme bölümüne bakın.
5. Veritabanı şeması oluşturma
MySQL veritabanı sanal ağ tarafından korunduğunda, Laravel veritabanı geçişlerini çalıştırmanın en kolay yolu App Service'te Linux kapsayıcısı ile bir SSH oturumudur.
AZD çıkışında SSH oturumunun URL'sini bulun ve tarayıcıda URL'ye gidin. Çıktıda şöyle görünür:
Open SSH session to App Service container at: <URL>
SSH oturumunda ,home/site/wwwroot dizininden veritabanı geçişlerini çalıştırın:
cd /home/site/wwwroot php artisan migrate --force
Başarılı olursa App Service veritabanına başarıyla bağlanıyor.
Uyarı
Yalnızca /home
içindeki dosyalarda yapılan değişiklikler uygulama yeniden başlatmalarının ötesinde kalıcılık gösterebilir.
Sorun mu yaşıyorsunuz? Sorun Giderme bölümüne bakın.
6. Uygulamaya göz atın
AZD çıkışında uygulamanızın URL'sini bulun ve tarayıcıda bu URL'ye gidin. URL, AZD çıkışında şöyle görünür:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL>
Listeye birkaç görev ekleyin.
Tebrikler, Azure Uygulaması Hizmeti'nde MySQL için Azure Veritabanı güvenli bağlantısı olan bir web uygulaması çalıştırıyorsunuz.
Sorun mu yaşıyorsunuz? Sorun Giderme bölümüne bakın.
7. Tanılama günlüklerini akışla aktarma
Azure Uygulaması Hizmeti, uygulamanızla ilgili sorunları tanılamanıza yardımcı olmak için konsola kaydedilen tüm iletileri yakalar. Kolaylık olması için AZD şablonu yerel dosya sisteminde günlüğe kaydın etkinleştirildiğini ve günlüklerin Log Analytics çalışma alanına gönderildiğini zaten sağlıyor.
Örnek uygulama, özelliğin gösterimi için uç noktalarının her birine konsol günlük iletileri çıkarır. Varsayılan olarak, Laravel'in kayıt tutma işlevi (örneğin, Log::info()
) yerel bir dosyaya çıkış yapar. Daha önce belirtilen LOG_CHANNEL
uygulama ayarınız, günlük girişlerine App Service günlük akışından erişim sağlar.
Route::get('/', function () {
Log::info("Get /");
$startTime = microtime(true);
// Simple cache-aside logic
if (Cache::has('tasks')) {
$data = Cache::get('tasks');
} else {
$data = Task::orderBy('created_at', 'asc')->get();
Cache::add('tasks', $data);
}
return view('tasks', ['tasks' => $data, 'elapsed' => microtime(true) - $startTime]);
});
AZD çıkışında App Service günlüklerini izlemek için bağlantıyı bulun ve tarayıcıda bu bağlantıya gidin. Bağlantı, AZD çıkışında şöyle görünür:
Stream App Service logs at: <URL>
Sorun mu yaşıyorsunuz? Sorun Giderme bölümüne bakın.
8. Kaynakları temizleme
Geçerli dağıtım ortamındaki tüm Azure kaynaklarını silmek için komutunu çalıştırın azd down
ve istemleri izleyin.
azd down
Sorun giderme
Veritabanı geçişleri sırasında hatayı alıyorum php_network_getaddresses: getaddrinfo for mysqldb failed: No address associated with hostname...
MySQL bağlantı değişkenlerinin düzgün yapılandırılmadığını gösterir. Uygulama ayarlarının AZURE_MYSQL_
3'te düzgün yapılandırıldığını doğrulayın . Uygulama kodunda Azure bağlantı dizelerini kullanın.
Tarayıcıda boş bir sayfa alıyorum.
App Service'in PHP başlangıç dosyalarını /public içinde bulamadığını gösterir. 4. adımdaki adımları izleyin . Web uygulamasında Laravel ayarlarını yapılandırın.
Tarayıcıda şunu söyleyen bir hata ayıklama sayfası alıyorum: Unsupported cipher or incorrect key length.
Ayarın APP_KEY
geçersiz bir anahtara ayarlandığını gösterir.
azd up
çalıştırdığınızda, appKey
'yi php artisan key:generate --show
çıkışına ayarladığınızdan emin olun.
Tarayıcıda şunu söyleyen bir hata ayıklama sayfası alıyorum: Uncaught Error: Class "Illuminate\..." not found.
Bu hata ve benzer hatalar, öncesinde composer install
çalışmadığınız azd up
veya /vendor dizinindeki paketlerin eski olduğunu gösterir.
composer install
ve azd deploy
tekrar çalıştırın.
Tarayıcıda şunu söyleyen bir hata ayıklama sayfası alıyorum: php_network_getaddresses: getaddrinfo for redishost failed: Name or service not known.
Redis bağlantı değişkenlerinin düzgün yapılandırılmadığını gösterir. Uygulama ayarlarının AZURE_REDIS_
3'te düzgün yapılandırıldığını doğrulayın . Uygulama kodunda Azure bağlantı dizelerini kullanın.
Tarayıcıda şunu söyleyen bir hata ayıklama sayfası alıyorum: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'XXXX-XXXXXXXXX-mysql-database.tasks' doesn't exist
Bu, veritabanı geçişlerini çalıştırmadığınız veya veritabanı geçişlerinin başarılı olmadığı anlamına gelir. 5. adımdaki adımları izleyin . Veritabanı şeması oluşturma.
Sık sorulan sorular
- Bu kurulumun maliyeti ne kadardır?
- Diğer araçlarla sanal ağın arkasında güvenli hale getirilmiş olan MySQL veritabanına nasıl bağlanırım?
- APP_KEY uygulama ayarını Key Vault başvurusu olarak nasıl değiştirebilirim?
- Yerel uygulama geliştirme GitHub Actions ile nasıl çalışır?
- GitHub Actions dağıtımı neden bu kadar yavaş?
- Kullanıcı tarafından atanan kimlik oluşturma iznim yok
- Kod alanımda GitHub Copilot ile ne yapabilirim?
- Bu kurulumun maliyeti ne kadardır?
- Diğer araçlarla sanal ağın arkasında güvenli hale getirilmiş olan MySQL veritabanına nasıl bağlanırım?
- Yerel uygulama geliştirme GitHub Actions ile nasıl çalışır?
- GitHub Actions dağıtımı neden bu kadar yavaş?
- Kullanıcı tarafından atanan kimlik oluşturma iznim yok
- Kod alanımda GitHub Copilot ile ne yapabilirim?
Bu kurulumun maliyeti ne kadardır?
Oluşturulan kaynakların fiyatlandırması aşağıdaki gibidir:
- App Service planı, Temel katmanda oluşturulur ve ölçeği artırılabilir veya azaltılabilir. Bkz. App Service fiyatlandırması.
- MySQL esnek sunucusu B1ms katmanında oluşturulur ve ölçeği artırılabilir veya azaltılabilir. Ücretsiz Azure hesabıyla B1ms katmanı, aylık sınırlara kadar 12 ay boyunca ücretsizdir. Bkz. MySQL için Azure Veritabanı fiyatlandırma.
- Redis için Azure Cache temel katmanda en düşük önbellek boyutuyla oluşturulur. Bu katmanla ilişkili küçük bir maliyet vardır. Daha yüksek kullanılabilirlik, kümeleme ve diğer özellikler için ölçeğini daha yüksek performans katmanlarına artırabilirsiniz. Bkz. Redis için Azure Cache fiyatlandırma.
- Eşleme gibi ek işlevler yapılandırmadığınız sürece sanal ağ ücret ödemez. Bkz. Azure Sanal Ağ fiyatlandırması.
- Özel DNS bölgesi küçük bir ücrete tabi. Bkz. Azure DNS fiyatlandırması.
Diğer araçlarla sanal ağın arkasında güvenliği sağlanan MySQL veritabanına nasıl bağlanırım?
- Komut satırı aracından temel erişim için uygulamanın SSH terminalinden çalıştırabilirsiniz
mysql
. - MySQL Workbench gibi bir masaüstü aracından bağlanmak için makinenizin sanal ağ içinde olması gerekir. Örneğin, alt ağlardan birine bağlı bir Azure VM veya Azure sanal ağıyla siteden siteye VPN bağlantısı olan bir şirket içi ağda bulunan bir makine olabilir.
- Ayrıca Azure Cloud Shell'i sanal ağ ile tümleştirebilirsiniz.
APP_KEY uygulama ayarını Key Vault referansı olarak nasıl değiştirebilirim?
4 - Laravel değişkenlerini yapılandırma'daki portal adımlarından, GitHub kod alanında aşağıdaki Azure CLI komutlarını çalıştırarak Key Vault başvurusuna geçiş APP_KEY
yapabilirsiniz:
# Change the following variables to match your environment
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
KEY_VAULT_NAME=<key-vault-name>
APP_SERVICE_NAME=<app-name>
SECRET_NAME=laravelAppKey
# Set the subscription ID
az account set --subscription $SUBSCRIPTION_ID
# Assign 'Key Vault Secrets Officer' role to your user at the scope of the key vault
az role assignment create \
--assignee $(az ad signed-in-user show --query id -o tsv) \
--role $(az role definition list --name "Key Vault Secrets Officer" --query "[].id" -o tsv) \
--scope $(az keyvault show --name $KEY_VAULT_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
# Add the secret to the key vault
az keyvault secret set \
--vault-name $KEY_VAULT_NAME \
--name $SECRET_NAME \
--value $(php artisan key:generate --show)
# Add Key Vault reference to the App Service configuration
az webapp config appsettings set \
--resource-group $RESOURCE_GROUP \
--name $APP_SERVICE_NAME \
--settings "APP_KEY=@Microsoft.KeyVault(SecretUri=https://$KEY_VAULT_NAME.vault.azure.net/secrets/$SECRET_NAME)"
Aynı işlemi portalda da yapabilirsiniz. Daha fazla bilgi için bkz:
Yerel uygulama geliştirme GitHub Actions ile nasıl çalışır?
App Service'ten otomatik olarak oluşturulan iş akışı dosyasını örnek olarak alın; her git push
birinde yeni bir derleme ve dağıtım çalıştırması başlar. GitHub deposunun yerel bir kopyasından, istenen güncelleştirmelerin GitHub'a göndermesini sağlarsınız. Örneğin:
git add .
git commit -m "<some-message>"
git push origin main
GitHub Actions dağıtımı neden bu kadar yavaş?
App Service'ten otomatik olarak oluşturulan iş akışı dosyası, önce derleme ardından dağıtım olmak üzere iki görevli bir çalıştırmayı tanımlar. Her iş kendi temiz ortamında çalıştığı için, iş akışı dosyası deploy
işinin build
işindeki dosyalara erişimini sağlar.
- İşin sonunda
build
dosyaları artefaktlar olarak yükleyin. - İşin başlangıcında
deploy
artifaktları indirin.
İki aşamalı işlem sırasında geçen sürenin çoğu, öğeleri karşıya yüklemek ve indirmek için harcanır. İsterseniz, iki işi tek bir işte birleştirerek iş akışı dosyasını basitleştirebilir ve bu sayede karşıya yükleme ve indirme adımları gereksinimi ortadan kalkar.
Kullanıcı tarafından atanan kimlik oluşturma iznim yok
"Bkz: Dağıtım Merkezi'nden GitHub Actions dağıtımını ayarlama."
Kod alanımda GitHub Copilot ile ne yapabilirim?
Kod alanını oluştururken GitHub Copilot sohbet görünümünün zaten sizin için orada olduğunu fark edebilirsiniz. Kolaylık sağlamak için kapsayıcı tanımına GitHub Copilot sohbet uzantısını dahil ediyoruz (bkz . .devcontainer/devcontainer.json). Ancak, bir GitHub Copilot hesabına ihtiyacınız vardır (30 günlük ücretsiz deneme sürümü kullanılabilir).
GitHub Copilot ile konuşurken size birkaç ipucu:
- Tek bir sohbet oturumunda, sorular ve yanıtlar birbirleri üzerinde derlenebilir ve sorularınızı ayarlayarak, elde ettiğiniz yanıta ince ayar yapabilirsiniz.
- Varsayılan olarak, GitHub Copilot'un deponuzdaki hiçbir dosyaya erişimi yoktur. Dosya hakkında soru sormak için önce düzenleyicide dosyayı açın.
- GitHub Copilot'ın yanıtlarını hazırlarken depodaki tüm dosyalara erişmesine izin vermek için sorunuza ile
@workspace
başlayın. Daha fazla bilgi için bkz. Use the @workspace agent. - Sohbet oturumunda, GitHub Copilot değişiklikleri önerebilir ve (ile
@workspace
) değişikliklerin yapılacağı yeri bile önerebilir, ancak değişiklikleri sizin için yapmasına izin verilmez. Önerilen değişiklikleri eklemek ve test etmek size bağlı.
Sonraki adımlar
Özel bir etki alanı ve sertifikayla uygulamanızın güvenliğini sağlamayı öğrenmek için sonraki öğreticiye ilerleyin.
Alternatif olarak, diğer kaynaklara da göz atın: