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 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.
- Go installed: Sürüm 1.18 veya üzeri
- Docker Desktop
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 true
Container 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:
az group create komutuyla bir Azure kaynak grubu oluşturun.
az group create \ --name <resourceGroupName> \ --location eastus
az acr create komutuyla bir Azure Container Registry oluşturun .
az acr create \ --resource-group <resourceGroupName> \ --name <azureContainerRegistryName> \ --sku basic
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:
az acr show komutuyla oturum açma sunucusu bilgilerini alın.
az acr show \ --name <azureContainerRegistryName> \ --resource-group <resourceGroupName> \ --query loginServer \ --output tsv
Docker görüntüsünü yerel olarak oluşturun.
docker build -t <loginServer>/<imageName>:latest .
Docker görüntüsünü Azure Container Registry'ye gönderin.
docker push <loginServer>/<imageName>:latest
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
, loginServer
ve 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 ortamı oluşturmak için az containerapp env create komutunu çalıştırın.
az containerapp env create \ --name <containerAppEnvName> \ --resource-group <resourceGroupName> \ --location "East US"
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