Spring Boot uygulamasını App Engine standart ortamına dağıtma

Spring Boot uygulamasını App Engine standart ortamına dağıtma

Bu codelab hakkında

subjectSon güncelleme Nis 22, 2020
account_circleBir Google çalışanı tarafından yazılmıştır

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

2. Kurulum ve gereksinimler

Bağımsız tempolu ortam kurulumu

  1. 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.

  1. 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

  1. 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.

  1. 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

  1. 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
  1. 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

  1. Spring Boot uygulamasını Spring Boot eklentisiyle başlatabilirsiniz:
$ ./mvnw -DskipTests spring-boot:run
  1. 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&#39;e dağıtma

  1. 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
  1. 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
  1. 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]

9. Tebrikler

İlk App Engine web uygulamanızı yazmayı öğrendiniz.

Daha fazla bilgi