Azure 'da özel kapsayıcı çalıştırma

Azure App Service, Windows'da IIS üzerinde çalışan ASP.NET veya Node.js gibi önceden tanımlı uygulama yığınları sunar. Ancak, önceden yapılandırılmış uygulama yığınları işletim sistemini kilitler ve düşük düzey erişimi engeller. özel Windows kapsayıcıları bu kısıtlamalara sahip değildir ve geliştiricilerin kapsayıcıları tamamen özelleştirmesini ve kapsayıcılı uygulamalara Windows işlevselliğine tam erişim vermesini sağlar.

bu hızlı başlangıçta, bir ASP.NET uygulamasının Visual Studio Azure Container Registry için Windows görüntüde nasıl dağıtılacağı gösterilmektedir. Uygulamayı Azure App Service bir özel kapsayıcıda çalıştırırsınız.

Önkoşullar

Bu öğreticiyi tamamlamak için:

ASP.NET web uygulaması oluşturma

aşağıdaki adımları izleyerek bir ASP.NET web uygulaması oluşturun:

  1. Visual Studio açın ve sonra yeni proje oluştur' u seçin.

  2. yeni proje oluştur' da, C# için ASP.NET Web uygulaması (.NET Framework) bulun ve seçin ve ardından ileri' yi seçin.

    Yeni proje oluşturma

  3. yeni projenizi yapılandır bölümünde, Project adı altında, uygulamayı myfirstazurewebapp olarak adlandırın. Framework altında .NET Framework 4,8 ' i seçin ve ardından oluştur' u seçin.

    Web uygulaması projenizi yapılandırma

  4. Azure’a herhangi bir türde ASP.NET web uygulaması dağıtabilirsiniz. Bu hızlı başlangıç için MVC şablonunu seçin.

  5. Kimlik doğrulaması altında hiçbiri' ni seçin. Gelişmiş' ın altında Docker desteği ' ni seçin ve https için Yapılandır seçimini kaldırın. Oluştur’u seçin.

    ASP.NET Web uygulaması oluşturma

  6. Dockerfile dosyası otomatik olarak açılmazsa Çözüm Gezgini’nden açın.

  7. Desteklenen bir üst görüntüyeihtiyacınız vardır. FROM satırını aşağıdaki kod ile değiştirerek üst görüntüyü değiştirin ve dosyayı kaydedin:

    FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
    
  8. web uygulamasını yerel olarak çalıştırmak için Visual Studio menüsünde hata ayıklama olmadan başlat ' ı seçin.

:::image type="content" source="./media/quickstart-custom-container/local-web-app.png?text=Run app locally" alt-text="Uygulamayı yerel olarak çalıştırma":::

Azure Container Registry'de yayımlama

  1. Çözüm Gezgini, myfirstazurewebapp projesine sağ tıklayın ve Yayımla' yı seçin.

  2. Hedef bölümünde Docker Container Registry öğesini seçin ve ardından İleri' ye tıklayın.

    Docker Container Registry seçin

  3. Belirli bir hedefte Azure Container Registry seçin ve ardından İleri' ye tıklayın.

    Projeye genel bakış sayfasından yayımlama

  4. Yayımla' da doğru aboneliğin seçildiğinden emin olun. Kapsayıcı kayıt defterlerinde + Yeni bir Azure Container Registry oluşturmak için düğmeyi seçin.

    Yeni Azure Container Registry oluştur

  5. Yeni oluştur' da, doğru aboneliğin seçildiğinden emin olun. Kaynak grubu altında, Yeni ' yi seçin ve ad için myresourcegroup yazın ve Tamam' ı tıklatın. SKU altında temel' yı seçin. Kayıt defteri konumu altında, kayıt defteri konumunu seçin ve ardından Oluştur' u seçin.

    Azure Container Registry ayrıntıları

  6. Yayımla' nın altında, Container Registry altında oluşturduğunuz kayıt defteri ' ni seçin ve ardından son' u seçin.

    Mevcut Azure Container Registry seçin

    Dağıtımın tamamlanmasını bekleyin. Yayımla sayfası şimdi depo adını gösterir. Depo adını daha sonra kopyalamak için Kopyala düğmesini seçin.

    Depo adını vurgulayan ekran görüntüsü.

Windows kapsayıcı uygulaması oluşturma

  1. Azure Portal oturum açın.

  2. Azure portalının sol üst köşesinde bulunan Kaynak oluştur öğesini seçin.

  3. Popüler hizmetler altında Web uygulaması altında Oluştur ' u seçin.

  4. Web uygulaması oluştur bölümünde aboneliğinizi ve bir kaynak grubunu seçin. Gerekirse yeni bir kaynak grubu oluşturabilirsiniz.

  5. Win-Container-demo gibi bir uygulama adı sağlayın. işletim sistemi için yayımla ve Windows için docker kapsayıcısı ' nı seçin. Ileri ' yi seçin: devam etmek için Docker .

    Kapsayıcılar için Web App oluşturma

  6. Görüntü kaynağı Için Docker Hub ' ı seçin ve görüntü ve etiket için Azure Container Registry Yayımla' ya kopyaladığınız depo adını girin.

    Kapsayıcılar için Web App yapılandırma

    Web uygulamanız için Azure Container Registry gibi başka bir konumda veya başka özel bir depoda bulunan özel görüntünüz varsa bu adımda yapılandırabilirsiniz.

  7. Gözden geçir ' i ve oluştur ' u seçin ve ardından Azure 'un gerekli kaynakları oluşturmasını bekleyin.

Kapsayıcı uygulamasına göz atma

Azure işlemi tamamlandığında bir bildirim kutusu görüntülenir.

Dağıtım başarılı oldu

  1. Kaynağa git'e tıklayın.

  2. Bu kaynağa genel bakış bölümünde URL'nin yanındaki bağlantıyı izleyin.

Yeni bir tarayıcı sayfası aşağıdaki sayfada açılır:

Windows kapsayıcı uygulama başlatılıyor

Birkaç dakika bekleyin ve varsayılan ASP.NET giriş sayfasını görene kadar tekrar deneyin:

Windows kapsayıcı uygulaması çalışıyor

Tebrikler! Azure App Service'te ilk özel Windows kapsayıcınızı çalıştırıyorsunuz.

Kapsayıcı başlangıç günlüklerini inceleme

Windows kapsayıcısının yüklenmesi biraz zaman alabilir. İlerleme durumunu görmek için uygulamanızın adıyla değiştirerek aşağıdaki URL 'ye gidin <app_name> .

https://<app_name>.scm.azurewebsites.net/api/logstream

Akışı yapılan günlükler şuna benzer:

2018-07-27T12:03:11  Welcome, you are now connected to log-streaming service.
27/07/2018 12:04:10.978 INFO - Site: win-container-demo - Start container succeeded. Container: facbf6cb214de86e58557a6d073396f640bbe2fdec88f8368695c8d1331fc94b
27/07/2018 12:04:16.767 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.017 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.020 INFO - Site: win-container-demo - Container started successfully

Yerel olarak güncelleştirme ve yeniden dağıtma

  1. Visual Studio ' de, Çözüm Gezgini' de görünümler > ana > dizin. cshtml dosyasını açın.

  2. Üst kısımda <div class="jumbotron"> HTML etiketini bulun ve tüm öğeyi aşağıdaki kodla değiştirin:

    <div class="jumbotron">
        <h1>ASP.NET in Azure!</h1>
        <p class="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p>
    </div>
    
  3. Azure 'a yeniden dağıtmak için, Çözüm Gezgini ' de myfirstazurewebapp projesine sağ tıklayın ve Yayımla' yı seçin.

  4. Yayımlama sayfasında Yayımla’yı seçin ve yayımlama işleminin tamamlanmasını bekleyin.

  5. App Service’in Docker Hub’dan yeni görüntüyü çekmesini istemek için uygulamayı yeniden başlatın. Portalda uygulama sayfasına dönün, Evet ' e tıklayın > .

    Azure’da web uygulamasını yeniden başlatma

Yeniden Kapsayıcı uygulamasına göz atın. Web sayfasını yenilediğinizde, uygulama ilk olarak "Başlangıç" sayfasına geri dönmeli, birkaç dakika sonra ise güncellenmiş web sayfasını tekrar görüntülemelidir.

Azure’da güncelleştirilmiş web uygulaması

Sonraki adımlar

Ya da diğer kaynaklara göz atın:

Linux üzerinde App Service.NET, PHP, Node.js ve diğerleri gibi diller için destek ile Linux üzerinde önceden tanımlanmış uygulama yığınları sağlar. Ayrıca web uygulamanızı Azure’da zaten tanımlı olmayan bir uygulama yığınında çalıştırmak için özel bir Docker görüntüsü de kullanabilirsiniz. Bu hızlı başlangıçta, bir Azure Container Registry (ACR) App Service.

Önkoşullar

Kapsayıcı kayıt defteri oluşturma

Bu hızlı başlangıçta Azure Container Registry kayıt defteri olarak yeni bir uygulama 2. Diğer kayıt defterlerini kullanabilirsiniz ancak adımlar biraz farklılık gösterebilir.

Hızlı Başlangıç: Azure portal kullanarak özel kapsayıcı kayıt defteri oluşturma yönergelerini izleyerek bir kapsayıcı kayıt Azure portal.

Önemli

Azure kapsayıcı kayıt defterini oluşturmada Yönetici Kullanıcı seçeneğini Etkinleştir olarak ayarlasanız emin olun. Bunu, kayıt defteri sayfasının Erişim anahtarları bölümünden de Azure portal. Bu ayar, erişim App Service gereklidir. Yönetilen kimlik için bkz. ACR'den dağıtma öğreticisi.

Oturum açın

  1. Visual Studio Code'u başlatın.

  2. Etkinlik Çubuğunda Azure logosunuseçin, APP SERVICE gezginine gidin, azure'da oturum açın'ı seçin ve yönergeleri izleyin.

    Azure'da oturum açma

  3. Alttaki Durum Çubuğu'nda Azure hesabı e-posta adresinizi doğrulayın. APP SERVICE gezgininde aboneliğinizin görüntüleniyor olması gerekir.

  4. Etkinlik Çubuğunda Docker logosunu seçin. KAYıT DEFTERleri gezgininde, oluşturduğunuz kapsayıcı kayıt defterinin görüntülendiğinden emin olun.

    Azure genişletilmiş kayıt defterleri değerini gösteren ekran görüntüsü.

Önkoşulları denetleme

Docker'ın yüklü ve çalışıyor olduğunu doğrulayın. Aşağıdaki komut, çalışıyorsa Docker sürümünü görüntüler.

docker --version

Görüntü oluşturma ve oluşturma

  1. Bu Visual Studio Code boş bir klasör açın ve adlı bir dosya Dockerfile ekleyin. Dockerfile dosyasında, istediğiniz dil çerçevesine göre içeriği yapıştırın:
FROM mcr.microsoft.com/appsvc/dotnetcore:lts

ENV PORT 8080
EXPOSE 8080

ENV ASPNETCORE_URLS "http://*:${PORT}"

ENTRYPOINT ["dotnet", "/defaulthome/hostingstart/hostingstart.dll"]

Bu Dockerfile dosyasında üst görüntü, veri depolamanın yerleşik .NET kapsayıcılarından App Service. Bunun kaynak dosyalarını GenerateDockerFiles/dotnetcore altında Azure-App-Service/ImageBuilder GitHubdeposunda bulabilirsiniz. Dockerfile dosyası basit bir .NET uygulamasını içine /defaulthome/hostingstart kopyalar. Dockerfile dosyanız yalnızca bu uygulamayı başlatır.

  1. Komut Paleti'netıklayın ve Docker Images: Build Image yazın. Komutu çalıştırmak için Enter yazın.

  2. Görüntü etiketi kutusunda, istediğiniz etiketi şu biçimde belirtin: , burada, oluşturduğunuz kapsayıcı <acr-name>.azurecr.io/<image-name>/<tag> <acr-name> kayıt defterinin adıdır. Enter tuşuna basın.

  3. Görüntü, bina tamam olduğunda IMAGES gezgininin üst kısmında Yenile'ye tıklayın ve görüntünün başarıyla eklendiğinden emin olun.

    Etiketli yerleşik görüntüyü gösteren ekran görüntüsü.

Kapsayıcı kayıt defterine dağıtma

  1. Etkinlik Çubuğunda Docker simgesine tıklayın. IMAGES gezgininde, az önce ekleyebilirsiniz.

  2. Görüntüyü genişletin, istediğiniz etikete sağ tıklayın ve Anındat'a tıklayın.

  3. Görüntü etiketinin ile başladığından emin olun ve <acr-name>.azurecr.io Enter tuşuna basın.

  4. Görüntüyü Visual Studio Code kapsayıcı kayıt defterinize itişini tamamlayan kayıt defterleri gezgininin üst kısmında Yenile'ye tıklayın ve görüntünün başarıyla itilmiş olduğunu doğrulayın.

    Azure kapsayıcı kayıt defterine dağıtılan görüntüyü gösteren ekran görüntüsü.

App Service’e dağıtma

  1. KAYıT DEFTERleri gezgininde, görüntüyü genişletin, etiketine sağ tıklayın ve Görüntüyü Azure App Service.
  2. Bir abonelik, genel olarak benzersiz bir uygulama adı, bir kaynak grubu ve bir uygulama planı seçmek için istemleri App Service izleyin. Fiyatlandırma katmanı ve size yakın bir bölge için B1 Temel'i seçin.

Dağıtımdan sonra, uygulamanıza üzerinden http://<app-name>.azurewebsites.net kullanılabilir.

Kaynak Grubu, Azure'daki tüm uygulama kaynaklarının adlandırılmış bir koleksiyonudur. Örneğin, Kaynak Grubu bir web sitesine, veritabanına ve Azure İşlevi'ne başvuru içerebilir.

App Service Planı, web sitenizi barındırmak için kullanılacak fiziksel kaynakları tanımlar. Bu hızlı başlangıçta Linux altyapısında temel barındırma planı kullanılır; bu da sitenin diğer web sitelerinin yanı sıra bir Linux makinede barındıracak olduğu anlamına gelir. Temel plan ile başlarsanız, ölçeğini Azure portal kullanarak makinede çalışan tek site sizinki olacak şekilde ölçeklendirebilirsiniz. Fiyatlandırma için bkz. App Service fiyatlandırması.

Web sitesine göz atma

Çıkış panelinde dağıtım işlemlerinin durumu gösterilir. İşlem tamamlandığında, açılır bildirimde Siteyi Aç'a tıklayın ve siteyi tarayıcınızda açın.

Sonraki adımlar

Tebrikler, bu hızlı başlangıçyı başarıyla tamamladınız.

Uygulama App Service her başlatıldığında kapsayıcı kayıt defterinden çeker. Görüntülerinizi yeniden oluşturmanız gerekirse kapsayıcı kayıt defterinize itmeniz gerekir ve uygulama yeniden başlatıldığında güncelleştirilmiş görüntüyü çeker. Uygulamanıza güncelleştirilmiş görüntüyü hemen çekmesi için yeniden başlatın.

Diğer Azure uzantıları: