Bu codelab hakkında
1. Başlamadan önce
App Engine uygulamaları kolayca oluşturulabilir, sürdürülebilir ve trafik ile veri depolama ihtiyaçlarınız değiştikçe ölçeklendirilebilir. App Engine ile bakımı yapılacak sunucu yoktur. Uygulamanızı yüklemeniz yeterlidir.
App Engine uygulamaları, gelen trafiğe göre otomatik olarak ölçeklendirilir. Yük dengeleme, mikro hizmetler, yetkilendirme, SQL ve CNAME veritabanları, bellek önbelleğe alma, trafiği bölme, günlük kaydı, arama, sürüm oluşturma, kullanıma sunma ve geri alma işlemleri ve güvenlik taraması yerel olarak desteklenir ve son derece özelleştirilebilirdir.
App Engine standart ortamı ve App Engine esnek ortamı; Java, Python, PHP, NodeJS ve Go gibi bir dizi programlama dilini destekler. Bu iki ortam, geliştiricilere uygulamalarının davranışı konusunda maksimum esneklik sağlar. Her ortamın belirli güçlü yönleri vardır. App Engine ortamı seçme hakkında daha fazla bilgi edinin.
Spring Boot uygulamasını App Engine standart ortamına dağıtmayı öğreneceksiniz. Hiç kimse kullanmadığında standart ortam sıfır örneğe ölçeklendirilir ve otomatik olarak ölçeklenir!
Ön koşullar
- Java programlama dili ve araçları hakkında bilgi sahibi olma
- Vim, Emacs ve nano gibi standart Linux metin düzenleyicileri hakkında bilgi
Ne yaparsınız?
- App Engine'de Spring Boot Java uygulaması oluşturma
Gerekenler
- Bir Google Cloud projesi
- Google Chrome gibi bir tarayıcı
2. Kurulum ve gereksinimler
Bağımsız tempolu ortam kurulumu
- Cloud Console'da oturum açın ve yeni bir proje oluşturun ya da mevcut bir projeyi yeniden kullanın. (Henüz bir Gmail veya G Suite hesabınız yoksa hesap oluşturmanız gerekir.)
Proje kimliğini tüm Google Cloud projeleri genelinde benzersiz bir ad olarak hatırlayın (yukarıdaki ad zaten alınmıştı ve maalesef sizin için çalışmaz). Bu, daha sonra bu codelab'de PROJECT_ID
olarak adlandırılacaktır.
- Ardından, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.
Bu codelab'i gözden geçirmeniz için size birkaç dolar tutarından daha fazla ödeme yapmanız gerekmez, ancak daha fazla kaynak kullanmaya karar verirseniz veya çalışır durumda bırakırsanız daha fazla harcama yapabilirsiniz.
Yeni Google Cloud kullanıcıları 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.
Cloud Shell
Google Cloud'da çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız.
Cloud Shell'i etkinleştirme
- Cloud Console'dan Cloud Shell'i Etkinleştir'i tıklayın
.
Cloud Shell'i daha önce hiç başlatmadıysanız ne olduğunu açıklayan bir ara ekran (ekranın alt kısmında) gösterilir. Bu durumda Devam'ı tıklayın (bu seçeneği bir daha görmezsiniz). Tek seferlik ekran şu şekilde görünür:
Cloud Shell'in temel hazırlığı ve bağlantısı yalnızca birkaç dakika içinde tamamlanacak.
Bu sanal makine, ihtiyacınız olan tüm geliştirme araçları yüklüdür. 5 GB kalıcı bir ana dizin sunar ve Google Cloud'da çalışarak ağ performansını ve kimlik doğrulama işlemini önemli ölçüde iyileştirir. Bu codelab'deki çalışmalarınızın büyük bir kısmının tamamı bir tarayıcı veya Chromebook ile yapılabilir.
Cloud Shell'e bağlandıktan sonra kimliğinizin zaten doğrulanmış olduğunu ve projenin proje kimliğinize ayarlanmış olduğunu görmeniz gerekir.
- Kimliğinizin doğrulanmasını sağlamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud auth list
Komut çıkışı
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Komut çıkışı
[core] project = <PROJECT_ID>
Ayarlanmamışsa şu komutla ayarlayabilirsiniz:
gcloud config set project <PROJECT_ID>
Komut çıkışı
Updated property [core/project].
3. Yeni bir Spring Boot web uygulaması oluşturun
Cloud Shell açıldıktan sonra, Spring Initializr ile yeni bir Spring Boot uygulaması oluşturmak için komut satırını kullanabilirsiniz.
$ curl https://start.spring.io/starter.tgz \ -d bootVersion=2.1.8.RELEASE \ -d dependencies=web \ -d baseDir=gae-standard-example | tar -xzvf - $ cd gae-standard-example
4. Maven pom.xml dosyasını güncelleyin
Bir Java sunucu uygulamasını dağıtmanın iki yolu vardır: Maven App Engine Plugin veya Gradle App Engine Plugin ya da war
paket dizini dağıtılabilir. Uygulamayı dağıtmak için Maven App Engine Plugin'i kullanacaksınız.
Maven App Engine Eklentisini Ekle
Dağıtım işlemini basitleştiren bir Google Cloud eklentisi eklemek için pom.xml
uygulamasını güncelleyin. Dosyayı düzenlemek için Vim, nano veya Emacs'i kullanabilirsiniz.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
...
<build>
<plugins>
...
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.1.0</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
5. App Engine tanımlayıcısı ekle
- Uygulamayı App Engine standart ortamına dağıtmak için yeni bir
src/main/appengine/app.yaml
açıklayıcı dosyası oluşturmanız gerekir.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
src/main/appengine/app.yaml
dosyasını düzenleyin ve aşağıdaki içeriği ekleyin:
src/main/appengine/app.yaml
runtime: java11
instance_class: F4
6. Kumanda ekle
DemoApplication.java
içinde "hello world!"
değerini döndüren yeni bir kumanda ekleyin.
src/main/java/com/example/demo/DemoApplication.java
package com.example.demo;
...
// Add imports
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/")
public String hello() {
return "hello world!";
}
}
7. Uygulamayı yerel olarak çalıştır
- Spring Boot uygulamasını Spring Boot eklentisiyle başlatabilirsiniz:
$ ./mvnw -DskipTests spring-boot:run
- Uygulama başladıktan sonra Cloud Shell araç çubuğunda Web Önizlemesi
'yi tıklayın ve 8080 bağlantı noktasında önizle'ı seçin.
Tarayıcınızdaki bir sekme açılır ve başlattığınız sunucuya bağlanır.
8. Uygulamayı App Engine'e dağıtma
- App Engine uygulamalarını çalıştırabilmek için öncelikle projeyi başlatın. Ayrıca, projeyi ABD'nin orta bölgesinde çalışacak şekilde başlatın.
$ gcloud app create --region us-central You are creating an app for project [...]. WARNING: Creating an App Engine application for a project is irreversible and the region cannot be changed. More information about regions is at https://cloud.google.com/appengine/docs/locations
- Ardından,
mvn appengine:deploy
'yi çalıştırarak uygulamanızı App Engine standart ortamına dağıtın.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- Uygulama dağıtıldıktan sonra, web tarayıcınızda http://<project-id>.appspot.com sayfasını açarak veya Cloud Shell'de aşağıdaki komutu kullanarak uygulamayı ziyaret edebilirsiniz:
$ gcloud app browse ... [It may print out the URL for your app]