1. Przegląd
Wdrożenie aplikacji internetowej po raz pierwszy może być trudne. Nawet po pierwszym wdrożeniu, jeśli proces jest zbyt pracochłonny, możesz unikać wdrażania nowych wersji aplikacji. Ciągłe wdrażanie umożliwia łatwe automatyczne wdrażanie zmian w aplikacji.
W tym module napiszesz aplikację internetową i skonfigurujesz Cloud Run, aby automatycznie wdrażać aplikację, gdy w kodzie źródłowym aplikacji zostaną wprowadzone zmiany. Następnie zmodyfikuj aplikację i wdroż ją ponownie.
Czego się nauczysz
- Pisanie aplikacji internetowej za pomocą edytora Cloud Shell
- Przechowywanie kodu aplikacji w GitHubie
- Automatyczne wdrażanie aplikacji w Cloud Run
- Dodawanie generatywnej AI do aplikacji za pomocą Genkit
- Zarządzanie promptami LLM za pomocą biblioteki dotprompt
2. Wymagania wstępne
- Jeśli nie masz jeszcze konta Google, musisz je utworzyć.
- Używaj konta osobistego zamiast konta służbowego lub szkolnego. Konta służbowe i szkolne mogą mieć ograniczenia, które uniemożliwiają włączenie interfejsów API potrzebnych w tym module.
- Jeśli nie masz jeszcze konta GitHub, musisz utworzyć konto GitHub
- .
- Jeśli masz już konto GitHub, użyj go. GitHub częściej blokuje nowe konto jako spam.
- Skonfiguruj uwierzytelnianie dwuskładnikowe na koncie GitHub, aby zmniejszyć ryzyko oznaczenia Twojego konta jako spam.
3. Konfigurowanie projektu
- Zaloguj się w konsoli Google Cloud.
- Włącz płatności w konsoli Google Cloud.
- Pod względem opłat za zasoby chmury ukończenie tego modułu powinno kosztować mniej niż 1 USD.
- Jeśli chcesz uniknąć dalszych opłat, wykonaj czynności opisane na końcu tego modułu, aby usunąć zasoby.
- Nowi użytkownicy mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
- Bierzesz udział w wydarzeniu Generatywna AI dla programistów? Możesz otrzymać środki w wysokości 1 USD.
- Utwórz nowy projekt lub użyj już istniejącego.
- Sprawdź, czy płatności są włączone w sekcji Moje projekty na stronie Płatności Cloud.
- Jeśli w kolumnie
Billing accountprzy nowym projekcie widniejeBilling is disabled:- Kliknij 3 kropki w kolumnie
Actions. - Kliknij Zmień płatności.
- Wybierz konto rozliczeniowe, którego chcesz używać.
- Kliknij 3 kropki w kolumnie
- Jeśli uczestniczysz w wydarzeniu Gen AI for Devs, konto prawdopodobnie będzie się nazywać Próbne konto rozliczeniowe Google Cloud Platform.
- Jeśli w kolumnie
4. Otwórz edytor Cloud Shell
- Otwórz edytor Cloud Shell.
- Jeśli terminal nie pojawi się u dołu ekranu, otwórz go:
- Kliknij menu
. - Kliknij Terminal.
- Kliknij Nowy terminal
.
- Kliknij menu
- W terminalu ustaw projekt za pomocą tego polecenia:
- Format:
gcloud config set project [PROJECT_ID] - Przykład:
gcloud config set project lab-project-id-example - Jeśli nie pamiętasz identyfikatora projektu:
- Aby wyświetlić listę wszystkich identyfikatorów projektów, użyj tego polecenia:
gcloud projects list | awk '/PROJECT_ID/{print $2}'

- Aby wyświetlić listę wszystkich identyfikatorów projektów, użyj tego polecenia:
- Format:
- Jeśli pojawi się pytanie o autoryzację, kliknij Autoryzuj, aby przejść dalej.

- Powinien wyświetlić się ten komunikat:
Jeśli widzisz symbolUpdated property [core/project].
WARNINGi pojawia się pytanieDo you want to continue (Y/N)?, prawdopodobnie identyfikator projektu został wpisany nieprawidłowo. NaciśnijN, a potemEnteri spróbuj ponownie uruchomić poleceniegcloud config set project.
5. Włącz interfejsy API
W terminalu włącz interfejsy API:
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com
Wykonanie tego polecenia może potrwać kilka minut, ale powinno ostatecznie wyświetlić komunikat o sukcesie podobny do tego:
Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.
6. Skonfiguruj Git
- Ustaw globalny adres e-mail użytkownika Git:
git config --global user.email "you@example.com" - Ustaw globalną nazwę użytkownika Git:
git config --global user.name "Your Name" - Ustaw domyślną gałąź globalną Git na
main:git config --global init.defaultBranch main
7. Napisz kod
Aby napisać aplikację w Node.js:
- Przejdź do katalogu domowego:
cd ~ - Utwórz katalog
codelab-genai:mkdir codelab-genai - Przejdź do katalogu
codelab-genai:cd codelab-genai - Utwórz plik
index.js:touch index.js - Utwórz plik
package.json:npm init es6 -y - Dodaj
expressjako zależnośćnpm install express - Dodawanie pliku
.gitignore, aby zapobiec zatwierdzaniunode_modulesecho node_modules/ >> .gitignore - Otwórz plik
index.jsw edytorze Cloud Shell: U góry ekranu powinien pojawić się pusty plik. W tym miejscu możesz edytować plikcloudshell edit index.jsindex.js.
- Skopiuj ten kod i wklej go do otwartego pliku
index.js: Po kilku sekundach edytor Cloud Shell automatycznie zapisze Twój kod. Ten kod odpowiada na żądania HTTP pozdrowieniem „Hello world!”.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}`); });
Początkowy kod aplikacji jest gotowy i możesz go zapisać w systemie kontroli wersji.
8. Tworzenie repozytorium
- Wróć do terminala Cloud Shell u dołu ekranu.
- Upewnij się, że nadal jesteś w odpowiednim katalogu:
cd ~/codelab-genai - Zainicjuj repozytorium Git
git init -b main - Logowanie się w GitHub CLI
Naciśnijgh auth loginEnter, aby zaakceptować opcje domyślne, i postępuj zgodnie z instrukcjami w narzędziu interfejsu wiersza poleceń GitHub, w tym:- Na które konto chcesz się zalogować?
GitHub.com - Jaki jest preferowany protokół operacji Git na tym hoście?
HTTPS - Uwierzytelnić Git za pomocą danych logowania do GitHuba?
Y(Pomiń, jeśli się nie pojawi). - Jak chcesz uwierzytelnić interfejs wiersza poleceń GitHub?
Login with a web browser - Skopiuj kod jednorazowy
- Otwórz stronę https://github.com/login/device.
- Wklej kod jednorazowy
- Kliknij Autoryzuj GitHub.
- Dokończ logowanie
- Na które konto chcesz się zalogować?
- Sprawdź, czy jesteś zalogowany:
Jeśli logowanie się powiodło, powinna się wyświetlić Twoja nazwa użytkownika GitHuba.gh api user -q ".login" - Tworzenie zmiennej
GITHUB_USERNAMEGITHUB_USERNAME=$(gh api user -q ".login") - Sprawdź, czy zmienna środowiskowa została utworzona:
Jeśli zmienna została utworzona, powinna wyświetlić Twoją nazwę użytkownika GitHuba.echo ${GITHUB_USERNAME} - Utwórz puste repozytorium GitHub o nazwie
codelab-genai: Jeśli pojawi się błąd:gh repo create codelab-genai --private Masz już repozytorium o nazwieGraphQL: Name already exists on this account (createRepository)
codelab-genai. Aby kontynuować ten samouczek, masz 2 możliwości:- Usuń istniejące repozytorium GitHub
- Utwórz repozytorium o innej nazwie i pamiętaj, aby zmienić ją w kolejnych poleceniach.
- Dodaj repozytorium
codelab-genaijako zdalne repozytoriumorigin:git remote add origin https://github.com/${GITHUB_USERNAME}/codelab-genai
9. Udostępnianie kodu
- Sprawdź, czy jesteś w odpowiednim katalogu:
cd ~/codelab-genai - Dodaj wszystkie pliki z bieżącego katalogu do tego zatwierdzenia:
git add . - Utwórz pierwszy commit:
git commit -m "add http server" - Wypchnij zatwierdzenie do gałęzi
mainrepozytoriumorigin:git push -u origin main
Możesz uruchomić to polecenie i otworzyć wynikowy adres URL, aby wyświetlić kod aplikacji na GitHubie:
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. Konfigurowanie automatycznych wdrożeń
- Pozostaw otwartą kartę edytora Cloud Shell. Wrócimy do tej karty później.
- Na nowej karcie otwórz stronę Cloud Run.
- Wybierz odpowiedni projekt Google Cloud w konsoli
. - Kliknij POŁĄCZ REPOZYTORIUM.
- Kliknij SKONFIGURUJ Z CLOUD BUILD.
- Jako dostawcę repozytorium wybierz GitHub
- .
- Jeśli nie jesteś zalogowany(-a) na konto GitHub w przeglądarce, zaloguj się za pomocą swoich danych logowania.
- Kliknij Uwierzytelnij, a następnie Dalej.
- Po zalogowaniu się na stronie Cloud Run zobaczysz komunikat Aplikacja na GitHubie nie jest zainstalowana w żadnym Twoim repozytorium.
- Kliknij przycisk ZAINSTALUJ GOOGLE CLOUD BUILD.
- Na stronie Konfiguracja instalacji wybierz Tylko wybrane repozytoria i wskaż repozytorium codelab-genai utworzone za pomocą interfejsu CLI.
- Kliknij Zainstaluj.
- Uwaga: jeśli masz dużo repozytoriów GitHub, wczytanie listy może potrwać kilka minut.
- Wybierz
your-user-name/codelab-genaijako repozytorium- .
- Jeśli repozytorium nie jest widoczne, kliknij link Zarządzaj połączonymi repozytoriami.
- W polu Gałąź pozostaw wartość
^main$. - Kliknij Go, Node.js, Python, Java, .NET Core, Ruby lub PHP za pomocą pakietów kompilacji Google Cloud
- .
- Pozostaw pozostałe pola (
Build context directory,EntrypointiFunction target) bez zmian.
- Pozostaw pozostałe pola (
- Kliknij Zapisz.
- Jako dostawcę repozytorium wybierz GitHub
- Przewiń w dół do sekcji Uwierzytelnianie.
- Kliknij Zezwalaj na nieuwierzytelnione wywołania.
- Kliknij UTWÓRZ.
Gdy kompilacja się zakończy (co potrwa kilka minut), uruchom to polecenie i otwórz wynikowy adres URL, aby wyświetlić działającą aplikację:
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. Zmień kod
Powrót do edytora Cloud Shell
Jeśli edytor Cloud Shell jest nadal otwarty, możesz pominąć te kroki.
- Otwórz edytor Cloud Shell.
- Jeśli terminal nie pojawi się u dołu ekranu, otwórz go:
- Kliknij menu
. - Kliknij Terminal.
- Kliknij Nowy terminal
.
- Kliknij menu
- W terminalu ustaw projekt za pomocą tego polecenia:
- Format:
gcloud config set project [PROJECT_ID] - Przykład:
gcloud config set project lab-project-id-example - Jeśli nie pamiętasz identyfikatora projektu:
- Aby wyświetlić listę wszystkich identyfikatorów projektów, użyj tego polecenia:
gcloud projects list | awk '/PROJECT_ID/{print $2}'

- Aby wyświetlić listę wszystkich identyfikatorów projektów, użyj tego polecenia:
- Format:
- Jeśli pojawi się pytanie o autoryzację, kliknij Autoryzuj, aby przejść dalej.

- Powinien wyświetlić się ten komunikat:
Jeśli widzisz symbolUpdated property [core/project].
WARNINGi pojawia się pytanieDo you want to continue (Y/N)?, prawdopodobnie identyfikator projektu został wpisany nieprawidłowo. NaciśnijN, a potemEnteri spróbuj ponownie uruchomić poleceniegcloud config set project.
Dodawanie Genkit i Vertex AI do aplikacji
- Wróć do terminala Cloud Shell u dołu ekranu.
- Upewnij się, że nadal jesteś w odpowiednim katalogu:
cd ~/codelab-genai - Zainstaluj pakiet SDK Genkit Node.js:
npm install @genkit-ai/ai - Zainstaluj pakiet Node.js Genkit SDK dla Vertex AI:
npm install @genkit-ai/vertexai - Ponowne otwieranie pliku
index.jsw edytorze Cloud Shellcloudshell edit ~/codelab-genai/index.js - Zastąp kod w pliku
index.jstym kodem: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}`); });
- Upewnij się, że w Cloud Shell nadal jesteś w odpowiednim katalogu:
cd ~/codelab-genai - Uruchom te polecenia, aby zatwierdzić nową wersję aplikacji w lokalnym repozytorium Git:
git add . git commit -m "add latest changes" - Wypchnij zmiany do GitHuba:
git push - Po zakończeniu kompilacji uruchom to polecenie i otwórz wdrożoną aplikację:
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"
Zanim zobaczysz zmiany, może minąć kilka minut, zanim kompilacja się zakończy.
Historię wszystkich wersji znajdziesz tutaj: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
12. (Opcjonalnie) Używanie plików .prompt z Genkit
- Wróć do terminala Cloud Shell u dołu ekranu.
- Upewnij się, że nadal jesteś w odpowiednim katalogu:
cd ~/codelab-genai - Utwórz
promptsfolder do przechowywania promptów:mkdir prompts - Aby utworzyć pierwszy prompt, utwórz plik
animal-facts.prompt:touch prompts/animal-facts.prompt - Otwórz plik
animal-facts.promptw edytorze Cloud Shell:cloudshell edit ~/codelab-genai/prompts/animal-facts.prompt - Edytuj plik
animal-facts.prompti wklej do niego ten kod:--- 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. - Otwórz plik
index.jsw edytorze Cloud Shell:cloudshell edit ~/codelab-genai/index.js - Zastąp kod w pliku
index.jstym kodem: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}`); });
- Upewnij się, że w Cloud Shell nadal jesteś w odpowiednim katalogu:
cd ~/codelab-genai - Uruchom te polecenia, aby zatwierdzić nową wersję aplikacji w lokalnym repozytorium Git:
git add . git commit -m "add latest changes" - Wypchnij zmiany do GitHuba:
git push - Po zakończeniu kompilacji uruchom to polecenie i otwórz wdrożoną aplikację:
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"
Zanim zobaczysz zmiany, może minąć kilka minut, zanim kompilacja się zakończy.
Historię wszystkich wersji znajdziesz tutaj: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
13. (Opcjonalnie) Używanie promptów systemowych
Zakładamy, że w poprzednim kroku dodano już pliki .prompt.
- Wróć do terminala Cloud Shell u dołu ekranu.
- Upewnij się, że nadal jesteś w odpowiednim katalogu:
cd ~/codelab-genai - Otwórz plik
animal-facts.promptw edytorze Cloud Shell:cloudshell edit ~/codelab-genai/prompts/animal-facts.prompt - Edytuj plik
animal-facts.prompti wklej do niego ten kod:--- 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}}
- Upewnij się, że w Cloud Shell nadal jesteś w odpowiednim katalogu:
cd ~/codelab-genai - Uruchom te polecenia, aby zatwierdzić nową wersję aplikacji w lokalnym repozytorium Git:
git add . git commit -m "add latest changes" - Wypchnij zmiany do GitHuba:
git push - Po zakończeniu kompilacji uruchom to polecenie i otwórz wdrożoną aplikację:
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"
Zanim zobaczysz zmiany, może minąć kilka minut, zanim kompilacja się zakończy.
Historię wszystkich wersji znajdziesz tutaj: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
14. Gratulacje
W tym module napiszesz aplikację internetową i skonfigurujesz Cloud Run, aby automatycznie wdrażać aplikację, gdy w jej kodzie źródłowym zostaną wprowadzone zmiany. Następnie zmodyfikowano aplikację i ponownie ją wdrożono.
Jeśli to laboratorium Ci się spodobało, możesz spróbować ponownie w innym języku programowania lub frameworku:
Oto kilka opcji, które pozwolą Ci kontynuować naukę:
- Dokumentacja Genkit: Pierwsze kroki
- Codelab dotyczący dodawania funkcji obserwacji do aplikacji w Node.js: Praktyczne techniki obserwacji aplikacji generatywnej AI w JavaScript
- Ćwiczenia z programowania dotyczące dodawania frontendu do aplikacji za pomocą Next.js: Automatyczne wdrażanie generatywnej aplikacji internetowej AI Next.js z kontroli wersji w Cloud Run
- Codelab pokazujący, jak używać wywoływania funkcji: Jak używać wywoływania funkcji Gemini z Cloud Run
- Codelab dotyczący wykorzystania AI do przetwarzania treści wideo: How to use Cloud Run Jobs Video Intelligence API to process a Video scene-by-scene (Jak używać interfejsu Cloud Run Jobs Video Intelligence API do przetwarzania wideo scena po scenie)