Aracılığıyla paylaş


Azure Container Apps'e Go web uygulaması dağıtma

Bu hızlı başlangıçta Kapsayıcılı Go web uygulamasını Azure Container Apps'e dağıtmayı öğreneceksiniz.

Azure Container Apps , karmaşık bulut altyapısını veya karmaşık kapsayıcı düzenleyicilerini yönetmeden herhangi bir kapsayıcıda paketlenmiş uygulama kodunu yürütmenize olanak tanır. Ayrıca çalışma zamanı veya programlama modeliyle ilgili endişelenme gereksinimini ortadan kaldırır. Azure Container Apps'in yaygın kullanım alanları şunlardır: API uç noktalarını dağıtma, arka plan işleme uygulamalarını barındırma, olay temelli işlemeyi işleme ve mikro hizmetleri çalıştırma.

Docker görüntüsü oluşturma, bu görüntüyü Azure Container Registry'ye dağıtma ve Azure Container Apps'e Go web uygulaması dağıtma adımlarını izlemek için bu öğreticiyi izleyin.

Önkoşullar

  • Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Ayarlama

CLI'dan Azure'da oturum açmak için az login komutunu çalıştırın ve istemleri izleyerek kimlik doğrulama işlemini tamamlayın.

az login

CLI'nın en son sürümünü çalıştırdığınızdan emin olmak için az upgrade komutunu çalıştırın.

az upgrade

Ardından CLI için Azure Container Apps uzantısını yükleyin veya güncelleştirin.

Azure CLI'da komut çalıştırırken az containerapp eksik parametrelerle ilgili hatalar alırsanız, Azure Container Apps uzantısının en son sürümünü yüklediğinizden emin olun.

az extension add --name containerapp --upgrade

Not

Mayıs 2024'den itibaren Azure CLI uzantıları artık önizleme özelliklerini varsayılan olarak etkinleştirmez. Container Apps önizleme özelliklerine erişmek için ile --allow-preview trueContainer Apps uzantısını yükleyin.

az extension add --name containerapp --upgrade --allow-preview true

Geçerli uzantı veya modül yüklendikten sonra ve Microsoft.App ad alanlarını kaydedinMicrosoft.OperationalInsights.

Not

Azure Container Apps kaynakları Microsoft.Web ad alanından Microsoft.App ad alanına geçirildi. Daha fazla ayrıntı için Microsoft.Web'den Mart 2022'de Microsoft.App ad alanı geçişi bölümüne bakın.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Örnek uygulamayı indirme

Bu öğreticiyi izlemek için kapsayıcılı hale getirmek için örnek bir uygulama gerekir. msdocs-go-webapp-quickstart GitHub deposunda örnek bir Go web uygulaması sağlanır. Örnek uygulamayı yerel iş istasyonunuza indirin veya kopyalayın.

git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git

cd msdocs-go-webapp-quickstart

Azure Container Registry oluşturma

Azure Container Registry kapsayıcı görüntülerini oluşturmanıza, depolamanıza ve yönetmenize olanak tanır. Daha önce bahsedilen örnek depoda sağlanan örnek Go web uygulamasını içeren Docker görüntüsünü depolamak için bu görüntüyü kullanın.

Azure Container Registry oluşturmak için aşağıdaki komutları çalıştırın:

  1. az group create komutuyla bir Azure kaynak grubu oluşturun.

    
    
    az group create \
        --name <resourceGroupName> \
        --location eastus
    
  2. az acr create komutuyla bir Azure Container Registry oluşturun .

    az acr create \
        --resource-group <resourceGroupName> \
        --name <azureContainerRegistryName> \
        --sku basic
    
  3. az acr login komutuyla Azure kapsayıcı örneğinde oturum açın .

    az acr login --name <azureContainerRegistryName>  
    

ve <resourceGroupName> değerlerini uygun değerlerle değiştirin<azureContainerRegistryName>. Azure Container Registry adınızın genel olarak benzersiz olması gerekir.

Not

az acr login komutunu çalıştırdığınızda aşağıdakine benzer bir hata alırsanız docker daemon'un sisteminizde çalıştığından emin olun:

You may want to use 'az acr login -n <azureContainerRegistryName> --expose-token' to get an access token, which does not require Docker to be installed.
2024-09-12 17:25:25.127779 An error occurred: DOCKER_COMMAND_ERROR

Docker görüntüsünü derleme ve gönderme

Azure Container Registry oluşturduktan sonra örnek Go web uygulamasının Docker görüntüsünü derleyin ve gönderin.

Aşağıdaki komutları derleyin ve görüntüyü kayıt defterine gönderin:

  1. az acr show komutuyla oturum açma sunucusu bilgilerini alın.

    az acr show \
        --name <azureContainerRegistryName> \
        --resource-group <resourceGroupName> \
        --query loginServer \
        --output tsv  
    
  2. Docker görüntüsünü yerel olarak oluşturun.

    docker build -t <loginServer>/<imageName>:latest .
    
  3. Docker görüntüsünü Azure Container Registry'ye gönderin.

    docker push <loginServer>/<imageName>:latest
    
  4. Az acr repository list komutuyla görüntünün Azure Container Registry'ye başarıyla gönderildiğini doğrulayın.

    az acr repository list \
        --name <azureContainerRegistryName> \
        --output table
    

, loginServerve imageName değerlerini uygun değerlerle değiştirinazureContainerRegistryName. Görüntü adı, Azure Container Registry'ye gönderilen ve daha sonra Azure Container Apps'e dağıtmak için kullanılan Docker görüntüsüdür.

Artık Azure Container Registry'de bir görüntü elde ettiğinize göre, Azure Container App'i ve ortamını dağıtmaya hazırsınız demektir.

Azure Container Apps ortamı oluşturma

Azure Container Apps bir kapsayıcı düzenleyicinin karmaşıklığı yoktur, ancak yine de Azure Container Apps ortamlarının devreye gireceği güvenli sınırlar oluşturmak için bir yönteme ihtiyacı vardır. Aynı ortama dağıtılan Container Apps aynı sanal ağı paylaşır ve günlükleri aynı Log Analytics çalışma alanına yazar. Azure Container App'i dağıtabilmeniz için önce dağıtılacak bir ortama ihtiyacınız vardır.

Azure Container Apps'e dağıtma

Bu noktada bir Azure Container Registry oluşturdunuz, bir Docker görüntüsü oluşturup bu görüntüyü oraya gönderdiniz ve bir Azure Container Apps ortamı oluşturdunuz. Geriye kalan tek şey uygulamayı dağıtmaktır.

Go web uygulamasını Azure Container Apps'e dağıtmak için az containerapp create komutunu çalıştırın.

az containerapp create \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --environment <containerAppEnvName> \
    --image "<loginServer>/<imageName>:latest" \
    --registry-server "<loginServer>" \
    --registry-identity system \
    --target-port 8080 \
    --ingress external

parametresi, --registry-identity system kapsayıcı uygulamasında sistem tarafından atanan yönetilen kimliği yapılandırır. Kapsayıcı uygulaması, kapsayıcı kayıt defteriyle kimlik doğrulaması yapmak için kullanıcı adı/parola yerine daha az güvenli olan bu kimliği kullanır. Komut ayrıca kimlik için otomatik olarak bir AcrPull rolü ataması oluşturur ve kayıt defterinden görüntü çekme yetkisi alır. Kimlik doğrulaması ve yetkilendirme için yönetilen kimlikleri kullanmak için kayıt defterinin bir Azure Container Registry olması gerekir.

Web uygulaması URL'sini doğrulama

Web uygulamasının girişinin FQDN'sini (Tam Etki Alanı Adı) almak için az containerapp show komutunu çalıştırın.

APP_FQDN=$(az containerapp show \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --query properties.configuration.ingress.fqdn \
    --output tsv)

Ardından, curl komutunu FQDN'ye karşı çalıştırın ve çıkışın web sitesinin HTML'sini yansıtdığını onaylayın.

curl "https://$APP_FQDN"

Kaynakları temizleme

Örnek uygulamayla işiniz bittiğinde, uygulamanın tüm kaynaklarını Azure'dan kaldırabilirsiniz. Bunun yapılması, devam eden ücretlendirmeleri önler ve Azure aboneliğinizi dağınık tutar. Kaynak grubunu kaldırmak, kaynak grubundaki tüm kaynakları da kaldırır ve uygulamanız için tüm Azure kaynaklarını kaldırmanın en hızlı yoludur.

Kaynak grubunu ve kaynaklarını silmek için az group delete komutunu çalıştırın.

az group delete \
    --name <resourceGroupName> \
    --no-wait

Sonraki adımlar