1. Genel Bakış
Cloud Run, HTTP istekleriyle çağrılabilen durum bilgisiz container'ları çalıştırmanızı sağlayan, tümüyle yönetilen, sunucusuz bir platformdur. Cloud Run sunucusuzdur: Tüm altyapı yönetimini soyutladığı için en önemli işe, yani harika uygulamalar geliştirmeye odaklanabilirsiniz.
Knative üzerinde derlenen bu platform, container'larınızı Cloud Run ile tümüyle yönetilecek şekilde veya Google Kubernetes Engine kümenizde Cloud Run on GKE ile çalıştırmayı seçebilmenizi sağlar.
Öğrenecekleriniz
Bu laboratuvarda aşağıdakileri nasıl yapacağınızı öğreneceksiniz:
- Cloud Run uygulamasını dağıtma
Ön koşullar
- Bu laboratuvarda, Cloud Console ve Cloud Shell ortamlarıyla ilgili bilgi sahibi olmanız gerekir.
2. Kurulum ve Gereksinimler
Cloud projesi kurulumu
- Google Cloud Console'da oturum açıp 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. İstediğiniz zaman güncelleyebilirsiniz.
- Proje Kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de proje kimliğini (genellikle
PROJECT_ID
olarak tanımlanır) referans almanız gerekir. Oluşturulan kimliği beğenmezseniz rastgele bir kimlik daha oluşturabilirsiniz. Alternatif olarak, kendi ölçümünüzü deneyip mevcut olup olmadığına bakabilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır. - Bilginiz için bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Sonraki adımda, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırma yapılmaması için kaynakları kapatmak isterseniz oluşturduğunuz kaynakları silebilir veya projenin tamamını silebilirsiniz. Yeni Google Cloud kullanıcıları, 300 ABD doları değerindeki ücretsiz denemeden 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
Yetki vermeniz istenirse "Yetkilendir"i tıklayın seçeneğini tıklayın.
Bu işlem, aşağıdakine benzer başarılı bir mesaj üretir:
Operation "operations/acf.p2-327036483151-73d90d00-47ee-447a-b600-a6badf0eceae" finished successfully.
3. Başvuruyu Hazırla
İlk olarak HTTP isteklerine yanıt veren, ekspres tabanlı basit bir Node.js uygulaması hazırlayacaksınız.
Cloud Shell'de starter-nodejs
adında yeni bir dizin oluşturun ve bu dizinde değişiklik yapın:
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, komut dosyası başlat komutu ve Express web uygulaması çerçevesine bağımlılığı içerir.
Daha sonra, 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şkeni tarafından tanımlanan bağlantı noktasında dinleme yapan temel bir web sunucusu oluşturur. Uygulamanız tamamlandı. Container mimarisine alınıp 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şturmayı 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ülecektir:
Cloud Console'da bu adımların çıkışını keşfedin: Cloud Build, Cloud Storage, Artifact Registry ve Cloud Run.
5. Tebrikler!
Tebrikler! Cloud Run'a az önce 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 İşlemeyi Tetikleme
- Cloud Run'dan Private CloudSQL'e bağlanma
- Cloud Run'dan Tümüyle Yönetilen Veritabanlarına Bağlanma
- Identity Aware Proxy (IAP) ile Güvenli Sunucusuz Uygulama
- Cloud Scheduler ile Cloud Run İşlerini Tetikleme
- Cloud Run'a Güvenli Şekilde Dağıtma
- Cloud Run Giriş Trafiğinin Güvenliğini Sağlama
Temizleme
Bu eğiticide kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız kaynakları içeren projeyi silin veya projeyi tutup tek tek kaynakları silin.
Projeyi silme
Faturalandırmayı ortadan kaldırmanın en kolay yolu, eğitim için oluşturduğunuz projeyi silmektir.