1. Genel Bakış
Cloud Run, HTTP istekleriyle çağrılabilen durum bilgisiz container'lar çalıştırmanıza olanak tanıyan, tümüyle yönetilen bir sunucusuz platformdur. Cloud Run sunucusuzdur: Tüm altyapı yönetimini soyutladığı için en önemli işe, yani harika uygulamalar geliştirmeye odaklanabilirsiniz.
Knative'den derlenen bu platform sayesinde, container'larınızı Cloud Run ile tümüyle yönetilecek şekilde veya Cloud Run on GKE ile Google Kubernetes Engine kümenizde çalıştırmayı tercih edebilirsiniz.
Öğrenecekleriniz
Bu laboratuvarda şunları yapmayı öğreneceksiniz:
- Cloud Run uygulamasını dağıtma
Ön koşullar
- Bu laboratuvarda, Cloud Console ve Cloud Shell ortamlarına aşina olduğunuz varsayılır.
2. Kurulum ve Gereksinimler
Cloud projesi kurulumu
- Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.



- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman bunu güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğine (genellikle
PROJECT_IDolarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince geçerli kalır. - Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırma ücreti alınmaması için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projenin tamamını silebilirsiniz. Google Cloud'un yeni kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.
Ortam Kurulumu
Arama çubuğunun sağındaki simgeyi tıklayarak Cloud Shell'i etkinleştirin.

Cloud Shell'den Cloud Run API'yi etkinleştirin:
gcloud services enable run.googleapis.com
Yetkilendirmeniz istenirse devam etmek için "Yetkilendir"i tıklayın.

Bu işlem, şuna benzer bir başarılı mesajı oluşturur:
Operation "operations/acf.p2-327036483151-73d90d00-47ee-447a-b600-a6badf0eceae" finished successfully.
3. Uygulamayı hazırlama
Öncelikle, HTTP isteklerine yanıt veren basit bir Express tabanlı Node.js uygulaması hazırlayacaksınız.
Cloud Shell'de starter-nodejs adlı yeni bir dizin oluşturun ve bu dizine geçin:
mkdir starter-nodejs
cd starter-nodejs
Aşağıdaki komutları çalıştırarak bir package.json dosyası oluşturun:
cat > ./package.json << EOF
{
"name": "cloudrun-starter-app",
"version": "1.0.0",
"description": "Node.js Starter Application",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "",
"license": "Apache-2.0",
"dependencies": {
"express": "^4.18.2"
}
}
EOF
Yukarıdaki dosya, bir başlangıç komut dosyası komutu ve Express web uygulaması çerçevesine bağımlılık içeriyor.
Ardından, aynı dizinde aşağıdaki komutları çalıştırarak bir index.js dosyası oluşturun:
cat > ./index.js << EOF
const express = require('express');
const app = express();
app.get('/', (req, res) => {
console.log('Received a request.');
res.send("Hello Cloud Run!");
});
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log('Listening on port', port);
});
EOF
Bu kod, PORT ortam değişkeninin tanımladığı bağlantı noktasında dinleme yapan temel bir web sunucusu oluşturur. Uygulamanız tamamlandı ve kapsayıcıya alınmaya ve dağıtılmaya hazır.
4. Cloud Run uygulamasını dağıtma
Uygulamanızı dağıtmak için aşağıdaki komutu çalıştırın:
gcloud run deploy starter-app \
--source . \
--region us-central1 \
--allow-unauthenticated \
--max-instances=3
Artifact Registry deposu oluşturma işlemini onaylayın:
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [us-central1] will be created. Do you want to continue (Y/n)? y
Önceki komutun sonucunda aşağıdaki adımlar yürütülür:

Cloud Console'da bu adımların çıktısını inceleyin: Cloud Build, Cloud Storage, Artifact Registry ve Cloud Run.

5. Tebrikler!
Tebrikler! Cloud Run'a bir uygulama dağıttınız.
İşlediğimiz konular:
- Cloud Run'da başlangıç uygulaması dağıtma
Sıradaki adım:
Diğer Cymbal Eats codelab'lerini keşfedin:
- Eventarc ile Cloud Workflows'u tetikleme
- Cloud Storage'dan etkinlik işlemeyi tetikleme
- Cloud Run'dan özel Cloud SQL'e bağlanma
- Cloud Run'dan tam olarak yönetilen veritabanlarına bağlanma
- Identity-Aware Proxy (IAP) ile Sunucusuz Uygulamaları Güvenli Hale Getirme
- Cloud Scheduler ile Cloud Run İşlerini Tetikleme
- Cloud Run'a güvenli bir şekilde dağıtma
- Cloud Run Giriş Trafiğinin Güvenliğini Sağlama
Temizleme
Bu eğitimde kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini önlemek amacıyla kaynakları içeren projeyi silin veya projeyi koruyup tek tek kaynakları silin.
Projeyi silme
Faturalandırılmanın önüne geçmenin en kolay yolu, eğitim için oluşturduğunuz projeyi silmektir.