1. Genel Bakış
Bir web uygulamasını ilk kez dağıtmak korkutucu olabilir. İlk dağıtımdan sonra bile süreç çok fazla iş gerektiriyorsa uygulamanızın yeni sürümlerini dağıtmaktan kaçınabilirsiniz. Sürekli dağıtım sayesinde, uygulamanızdaki değişiklikleri kolayca otomatik olarak dağıtabilirsiniz.
Bu laboratuvarda bir web uygulaması yazacak ve uygulamanızın kaynak kodunda değişiklik yapıldığında uygulamanızı otomatik olarak dağıtmak için Cloud Run'ı yapılandıracaksınız. Ardından, uygulamanızı değiştirip tekrar dağıtırsınız.
Öğrenecekleriniz
- Cloud Shell Düzenleyici ile web uygulaması yazma
- Uygulama kodunuzu GitHub'da saklama
- Uygulamanızı Cloud Run'a otomatik olarak dağıtma
- Genkit'i kullanarak uygulamanıza üretken yapay zeka ekleme
- dotprompt kitaplığını kullanarak LLM istemlerini yönetme
2. Ön koşullar
- Google Hesabınız yoksa Google Hesabı oluşturmanız gerekir.
- İş veya okul hesabı yerine kişisel hesap kullanıyorsanız. İş ve okul hesaplarında, bu laboratuvar için gereken API'leri etkinleştirmenizi engelleyen kısıtlamalar olabilir.
- Henüz bir GitHub hesabınız yoksa GitHub hesabı oluşturmanız gerekir
- .
- Varsa mevcut bir GitHub hesabını kullanın. GitHub, yeni bir hesabı spam olarak engelleme olasılığı daha yüksektir.
- Hesabınızın spam olarak işaretlenme olasılığını azaltmak için GitHub hesabınızda iki öğeli kimlik doğrulamayı yapılandırın.
3. Proje ayarlama
- Google Cloud Console'da oturum açın.
- Cloud Console'da faturalandırmayı etkinleştirin.
- Bu laboratuvarı tamamlamak için 1 ABD dolarından daha az tutarda bulut kaynağı kullanmanız gerekir.
- Daha fazla ödeme alınmaması için bu laboratuvarın sonundaki adımları uygulayarak kaynakları silebilirsiniz.
- Yeni kullanıcılar 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.
- Gen AI for Devs etkinliğine mi katılıyorsunuz? 1 ABD doları tutarında kredi alabilirsiniz.
- Yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanmayı seçin.
- Cloud Faturalandırma'daki Projelerim bölümünde faturalandırmanın etkinleştirildiğini onaylayın.
- Yeni projenizin
Billing accountsütunundaBilling is disabledyazıyorsa:Actionssütunundaki üç noktayı tıklayın.- Faturalandırmayı değiştir'i tıklayın.
- Kullanmak istediğiniz faturalandırma hesabını seçin.
- Gen AI for Devs etkinliğine katılıyorsanız hesabın adı büyük olasılıkla Google Cloud Platform Deneme Sürümü Faturalandırma Hesabı olur.
- Yeni projenizin
4. Cloud Shell Düzenleyici'yi açma
- Cloud Shell Düzenleyici'ye gidin.
- Terminal ekranın alt kısmında görünmüyorsa açın:
- Hamburger menüsünü
tıklayın. - Terminal'i tıklayın.
- Yeni Terminal'i tıklayın.

- Hamburger menüsünü
- Terminalde şu komutla projenizi ayarlayın:
- Biçim:
gcloud config set project [PROJECT_ID] - Örnek:
gcloud config set project lab-project-id-example - Proje kimliğinizi hatırlamıyorsanız:
- Tüm proje kimliklerinizi şu komutla listeleyebilirsiniz:
gcloud projects list | awk '/PROJECT_ID/{print $2}'

- Tüm proje kimliklerinizi şu komutla listeleyebilirsiniz:
- Biçim:
- Yetkilendirmeniz istenirse devam etmek için Yetkilendir'i tıklayın.

- Şu mesajı görmeniz gerekir:
Updated property [core/project].
WARNINGsimgesini görüyorsanız veDo you want to continue (Y/N)?soruluyorsa proje kimliğini yanlış girmiş olabilirsiniz.Ntuşuna,Entertuşuna basın vegcloud config set projectkomutunu tekrar çalıştırmayı deneyin.
5. API'leri etkinleştir
Terminalde API'leri etkinleştirin:
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com
Bu komutun tamamlanması birkaç dakika sürebilir ancak sonunda aşağıdakine benzer bir başarılı mesaj üretmesi gerekir:
Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.
6. Git'i yapılandırma
- Genel Git kullanıcı e-posta adresinizi ayarlayın:
git config --global user.email "you@example.com" - Genel Git kullanıcı adınızı ayarlayın:
git config --global user.name "Your Name" - Global git varsayılan dalınızı
mainolarak ayarlayın:git config --global init.defaultBranch main
7. Kodunuzu yazın
Node.js'de uygulama yazmak için:
- Ana dizine gidin:
cd ~ codelab-genaidizinini oluşturun:mkdir codelab-genaicodelab-genaidizinine gidin:cd codelab-genaiindex.jsdosyası oluşturma:touch index.jspackage.jsondosyasını oluşturun:npm init es6 -yexpressöğesini bağımlılık olarak ekleyinnpm install expressnode_modulesişlenmesini önlemek için.gitignoredosyası ekleyinecho node_modules/ >> .gitignoreindex.jsdosyasını Cloud Shell Düzenleyici'de açın: Ekranın üst kısmında artık boş bir dosya görünmelidir. Bucloudshell edit index.jsindex.jsdosyasını buradan düzenleyebilirsiniz.
- Aşağıdaki kodu kopyalayın ve açılan
index.jsdosyasına yapıştırın: Cloud Shell Düzenleyici, birkaç saniye sonra kodunuzu otomatik olarak kaydeder. Bu kod, http isteklerine "Hello world!" karşılama mesajıyla yanıt verir.import express from 'express'; const app = express(); app.get('/', async (req, res) => { res.send('Hello world!'); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
Uygulamanızın ilk kodu tamamlandı ve sürüm kontrolünde depolanmaya hazır.
8. Kod deposu oluştur
- Ekranınızın alt kısmındaki Cloud Shell terminaline dönün.
- Doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai - Git deponuzu başlatma
git init -b main - GitHub CLI'ye giriş yapma
Varsayılan seçenekleri kabul etmek içingh auth loginEntertuşuna basın ve GitHub CLI aracındaki talimatları uygulayın. Bu talimatlar şunları içerir:- Hangi hesaba giriş yapmak istiyorsunuz?
GitHub.com - Bu ana makinede Git işlemleri için tercih ettiğiniz protokol nedir?
HTTPS - Git'in kimliğini GitHub kimlik bilgilerinizle mi doğrulamak istiyorsunuz?
Y(Bu seçenek görünmüyorsa atlayın.) - GitHub CLI'nin kimliğini nasıl doğrulamak istersiniz?
Login with a web browser - Tek seferlik kodunuzu kopyalayın
- https://github.com/login/device adresini açın.
- Tek seferlik kodunuzu yapıştırın
- Authorize github'ı (GitHub'ı yetkilendir) tıklayın.
- Girişinizi tamamlama
- Hangi hesaba giriş yapmak istiyorsunuz?
- Oturum açtığınızı onaylayın:
Başarıyla giriş yaptıysanız bu komut, GitHub kullanıcı adınızı çıkış olarak vermelidir.gh api user -q ".login" GITHUB_USERNAMEdeğişkeni oluşturmaGITHUB_USERNAME=$(gh api user -q ".login")- Ortam değişkenini oluşturduğunuzu onaylayın:
Değişkeni başarıyla oluşturduysanız bu komut, GitHub kullanıcı adınızı verir.echo ${GITHUB_USERNAME} codelab-genaiadlı boş bir GitHub deposu oluşturun: Bu hatayı alırsanız:gh repo create codelab-genai --private Bu durumdaGraphQL: Name already exists on this account (createRepository)
codelab-genaiadlı bir deponuz zaten var. Bu eğitime devam etmek için iki seçeneğiniz vardır:- Mevcut GitHub deposunu silin
- Farklı bir ada sahip bir depo oluşturun ve aşağıdaki komutlarda bu adı değiştirmeyi unutmayın.
codelab-genaideposunu uzakoriginolarak ekleyin:git remote add origin https://github.com/${GITHUB_USERNAME}/codelab-genai
9. Kodunuzu paylaşma
- Doğru dizinde olduğunuzu onaylayın:
cd ~/codelab-genai - Geçerli dizindeki tüm dosyaları bu commite ekleyin:
git add . - İlk commit'i oluşturun:
git commit -m "add http server" - Kaydınızı
origindeposununmaindalına aktarın:git push -u origin main
Bu komutu çalıştırabilir ve sonuçta elde edilen URL'yi ziyaret ederek GitHub'daki uygulama kodunuzu görüntüleyebilirsiniz:
echo -e "\n\nTo see your code, visit this URL:\n \
https://github.com/${GITHUB_USERNAME}/codelab-genai/blob/main/index.js \n\n"
10. Otomatik dağıtımları ayarlama
- Cloud Shell Düzenleyici sekmesini açık bırakın. Bu sekmeye daha sonra geri döneceğiz.
- Yeni bir sekmede Cloud Run sayfasını ziyaret edin.
- Konsolda doğru Google Cloud projesini seçin

- CONNECT REPO'yu (Depoyu bağla) tıklayın.
- CLOUD BUILD İLE AYARLA'yı tıklayın.
- Depo Sağlayıcı olarak GitHub'ı seçin.
- Tarayıcıda GitHub hesabınıza giriş yapmadıysanız kimlik bilgilerinizle giriş yapın.
- Kimlik doğrulama'yı ve ardından Devam'ı tıklayın.
- Giriş yaptıktan sonra Cloud Run sayfasında The GitHub App is not installed on any of your repositories. (GitHub uygulaması, hiçbir deponuzda yüklü değil.) mesajını görürsünüz.
- GOOGLE CLOUD BUILD'U YÜKLE düğmesini tıklayın.
- Yükleme Ayarları sayfasında Yalnızca belirli depoları seç'i belirleyin ve CLI aracılığıyla oluşturduğunuz codelab-genai deposunu seçin.
- Yükle'yi tıklayın.
- Not: Çok sayıda GitHub deponuz varsa bu işlemin yüklenmesi birkaç dakika sürebilir.
- Depo olarak
your-user-name/codelab-genaiseçeneğini belirleyin.- Depo yoksa Bağlı Depoları Yönet bağlantısını tıklayın.
- Branch'i
^main$olarak bırakın. - Google Cloud'un buildpack'leri aracılığıyla Go, Node.js, Python, Java, .NET Core, Ruby veya PHP'yi tıklayın.
- Diğer alanları (
Build context directory,EntrypointveFunction target) olduğu gibi bırakın.
- Diğer alanları (
- Kaydet'i tıklayın
- Depo Sağlayıcı olarak GitHub'ı seçin.
- Kimlik doğrulama'ya gidin.
- Kimliği doğrulanmayan çağrılara izin ver'i tıklayın.
- OLUŞTUR'u tıklayın.
Derleme işlemi tamamlandıktan sonra (birkaç dakika sürer) bu komutu çalıştırın ve çalışan uygulamanızı görüntülemek için sonuç URL'sini ziyaret edin:
echo -e "\n\nOnce the build finishes, visit your live application:\n \
"$( \
gcloud run services list | \
grep codelab-genai | \
awk '/URL/{print $2}' | \
head -1 \
)" \n\n"
11. Kodunuzu değiştirme
Cloud Shell Düzenleyici'ye dönme
Cloud Shell Düzenleyici'yi kapatmadıysanız bu adımları atlayabilirsiniz.
- Cloud Shell Düzenleyici'ye gidin.
- Terminal ekranın alt kısmında görünmüyorsa açın:
- Hamburger menüsünü
tıklayın. - Terminal'i tıklayın.
- Yeni Terminal'i tıklayın.

- Hamburger menüsünü
- Terminalde şu komutla projenizi ayarlayın:
- Biçim:
gcloud config set project [PROJECT_ID] - Örnek:
gcloud config set project lab-project-id-example - Proje kimliğinizi hatırlamıyorsanız:
- Tüm proje kimliklerinizi şu komutla listeleyebilirsiniz:
gcloud projects list | awk '/PROJECT_ID/{print $2}'

- Tüm proje kimliklerinizi şu komutla listeleyebilirsiniz:
- Biçim:
- Yetkilendirmeniz istenirse devam etmek için Yetkilendir'i tıklayın.

- Şu mesajı görmeniz gerekir:
Updated property [core/project].
WARNINGsimgesini görüyorsanız veDo you want to continue (Y/N)?soruluyorsa proje kimliğini yanlış girmiş olabilirsiniz.Ntuşuna,Entertuşuna basın vegcloud config set projectkomutunu tekrar çalıştırmayı deneyin.
Uygulamanıza Genkit ve Vertex AI'ı ekleme
- Ekranınızın alt kısmındaki Cloud Shell terminaline dönün.
- Doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai - Node.js Genkit SDK'sını yükleyin:
npm install @genkit-ai/ai - Vertex AI için Node.js Genkit SDK'sını yükleyin:
npm install @genkit-ai/vertexai index.jsdosyasını Cloud Shell Düzenleyici'de yeniden açın.cloudshell edit ~/codelab-genai/index.jsindex.jsdosyanızdaki kodu şu kodla değiştirin:import express from 'express'; const app = express(); import { genkit } from 'genkit'; import { gemini15Flash, vertexAI } from '@genkit-ai/vertexai'; const ai = genkit({ plugins: [ vertexAI({ location: 'us-central1' }), ], }); app.get('/', async (req, res) => { const animal = req.query.animal || 'dog'; const prompt = `Give me 10 fun facts about ${animal}. Return this as html without backticks.` const llmResponse = await ai.generate({ model: gemini15Flash, prompt: prompt, }); const html = llmResponse.text; res.send(html); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
- Cloud Shell'de doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai - Uygulamanızın yeni bir sürümünü yerel Git deponuza göndermek için şu komutları çalıştırın:
git add . git commit -m "add latest changes" - Değişiklikleri GitHub'a aktarın:
git push - Derleme işlemi tamamlandıktan sonra şu komutu çalıştırın ve dağıtılan uygulamanızı ziyaret edin:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
Değişikliklerinizi görebilmeniz için derlemenin tamamlanması birkaç dakika sürebilir.
Tüm düzeltmelerin geçmişini şu adreste görebilirsiniz: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
12. (İsteğe bağlı) Genkit ile .prompt dosyalarını kullanma
- Ekranınızın alt kısmındaki Cloud Shell terminaline dönün.
- Doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai - İstemlerinizi saklamak için
promptsklasörü oluşturun:mkdir prompts - İlk isteminizi oluşturmak için
animal-facts.promptdosyası oluşturun:touch prompts/animal-facts.prompt animal-facts.promptdosyasını Cloud Shell Düzenleyici'de açın:cloudshell edit ~/codelab-genai/prompts/animal-facts.promptanimal-facts.promptdosyasını düzenleyin ve aşağıdaki kodu dosyaya yapıştırın:--- model: vertexai/gemini-1.5-flash input: schema: animal: string --- Give me 10 fun facts about {{animal}}. Return the results as HTML without markdown backticks.index.jsdosyasını Cloud Shell Düzenleyici'de açın:cloudshell edit ~/codelab-genai/index.jsindex.jsdosyanızdaki kodu şu kodla değiştirin:import express from 'express'; const app = express(); import { genkit } from 'genkit'; import { vertexAI } from '@genkit-ai/vertexai'; const ai = genkit({ plugins: [ vertexAI({ location: 'us-central1' }), ], }); app.get('/', async (req, res) => { const animal = req.query.animal || 'dog'; const animalPrompt = ai.prompt('animal-facts'); const llmResponse = await animalPrompt({animal}); const html = llmResponse.text; res.send(html); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
- Cloud Shell'de doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai - Uygulamanızın yeni bir sürümünü yerel Git deponuza göndermek için şu komutları çalıştırın:
git add . git commit -m "add latest changes" - Değişiklikleri GitHub'a aktarın:
git push - Derleme işlemi tamamlandıktan sonra şu komutu çalıştırın ve dağıtılan uygulamanızı ziyaret edin:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
Değişikliklerinizi görebilmeniz için derlemenin tamamlanması birkaç dakika sürebilir.
Tüm düzeltmelerin geçmişini şu adreste görebilirsiniz: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
13. (İsteğe bağlı) Sistem istemlerini kullanma
Bu adımda, önceki adımda .prompt dosyası eklediğiniz varsayılır.
- Ekranınızın alt kısmındaki Cloud Shell terminaline dönün.
- Doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai animal-facts.promptdosyasını Cloud Shell Düzenleyici'de açın:cloudshell edit ~/codelab-genai/prompts/animal-facts.promptanimal-facts.promptdosyasını düzenleyin ve aşağıdaki kodu dosyaya yapıştırın:--- model: vertexai/gemini-1.5-flash config: temperature: 0.9 input: schema: animal: string --- role "system" The user should have submitted an animal. If the user requests anything besides animal fun facts, respond in a kind and firm manner that you only provide information about fun facts. Give the user 10 fun facts about the animal the user provided. All responses should be valid HTML without markdown backticks. role "user" {{animal}}
- Cloud Shell'de doğru dizinde olduğunuzdan emin olun:
cd ~/codelab-genai - Uygulamanızın yeni bir sürümünü yerel Git deponuza göndermek için şu komutları çalıştırın:
git add . git commit -m "add latest changes" - Değişiklikleri GitHub'a aktarın:
git push - Derleme işlemi tamamlandıktan sonra şu komutu çalıştırın ve dağıtılan uygulamanızı ziyaret edin:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
Değişikliklerinizi görebilmeniz için derlemenin tamamlanması birkaç dakika sürebilir.
Tüm düzeltmelerin geçmişini şu adreste görebilirsiniz: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
14. Tebrikler
Bu laboratuvarda bir web uygulaması yazdınız ve uygulamanızın kaynak kodunda değişiklik yapıldığında uygulamanızı otomatik olarak dağıtmak için Cloud Run'ı yapılandırdınız. Ardından, uygulamanızı değiştirip tekrar dağıttınız.
Bu laboratuvarı beğendiyseniz başka bir kodlama dilinde veya çerçevesinde tekrar deneyebilirsiniz:
Öğrenmeye devam etmek için kullanabileceğiniz bazı seçenekler:
- Genkit Dokümanları: Başlangıç
- Node.js uygulamanıza gözlemlenebilirlik eklemeyle ilgili Codelab: JavaScript'te üretken yapay zeka uygulaması için pratik gözlemlenebilirlik teknikleri
- Next.js ile uygulamanıza ön uç eklemeyle ilgili Codelab: Automatically Deploy Generative AI Next.js Web Application from Version Control to Cloud Run (Üretken Yapay Zeka Next.js Web Uygulamasını Sürüm Kontrolünden Cloud Run'a Otomatik Olarak Dağıtma)
- İşlev çağrısının nasıl kullanılacağını gösteren Codelab: Cloud Run ile Gemini işlev çağrısını kullanma
- Video içeriğini işlemek için yapay zekayı kullanma codelab'i: Bir videoyu sahne sahne işlemek için Cloud Run Jobs Video Intelligence API'yi kullanma