ืกืืืืช ืืจืืฆื ืฉื Java ืืื ืืืกื ืืช ืืชืืื ื ืฉืืืจืืืช ืืืชืงื ืช ืืงืื ืฉื ืฉืืจืืช ืืืื ืืจื ื ืืงืฉืจื ืืชืืืช ืฉืื ืืืืคืขืืช ืืฉืืจืืช.
ืืฆืืืจืื ืขื ืกืืืืช ืืื ืืจืืฆื ืฉื Java ืืกืืืืช ืืจืืจืช ืืืืื ื-App Engine ืืงืืืฅ app.yaml. ืืืืืื:
runtime: javaVERSION
โซVERSION ืืื ืืกืคืจ ืืืจืกื ืฉื JavaMAJOR. ืืืืืื, ืืื ืืืฉืชืืฉ ืืืจืกื ืืืืจืื ื ืฉื Java, โ Java 25, ืืฆืืื ืื 25.
ืืืืืข ืขื ืืจืกืืืช ื ืชืืืืช ืืืจืืช ืฉื Java ืืืจืกืช Ubuntu ืืชืืืืช ืืืจืกืช Java ืฉืืื, ืืคืฉืจ ืืขืืื ืืืื ืืืื ืื ืฉื ืืชืืืื ืืืื ืจืืฆื.
ืืคื ื ืฉืืชืืืืื
ืืืจืืืื ืืช ืืืจืกื ืืขืืื ืืช ืฉื Google Cloud CLI ืื ืืขืืื ืื ืืช ื-CLI ืฉื gcloud ืืืจืกื ืื ืืืืืช:
gcloud components updateืืื ืืคืจืืก ืืืืฆืขืืช Maven, ืฆืจืื ืืืืกืืฃ ืืช App Engine Maven Plugin ืืงืืืฅ
pom.xml:<plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>appengine-maven-plugin</artifactId> <version>2.8.7</version> </plugin>ืืคืฉืจืืืืช ื ืืกืคืืช ืืคืจืืกื ืื ืฉืืืืฉ ืืคืงืืื
gcloud app deployืื ืืคืืืืื App Engine Gradle.ืคืืขืืื ืืคื ืืืืจืืืช ืฉื ืืกืืจืช ืืืคืืืงืฆืื ืืื ืืืืืืจ ืืช ืืื ืืื ืฉื ืงืืืฅ ืืคืขืื
JAR.
ืชืืืืืช ืืืกืืจืช
ืืืืฆืขืืช ืกืืืืช ืืื ืืจืืฆื ืฉื App Engine Java, ืืคืฉืจ ืืคืจืืก ืงืืืฆื JAR ืฉื ืืชื ืื ืืืคืขืื. ืกืืืืืช ืืื ืืจืืฆื ืื ืืืืืืช ืืกืืจืช ืืืฆืืช ืชืืื ืืืื ืืจื ื, ืืืืืจ ืืชื ืื ืืืืืืื ืืฉืืืืฉ ืืกืคืจืืืช ืื ืืืกืืจืืช ืืืืกืกืืช-servlet. ืืฉืชืืฉืื ืืชืืืืืช Native ืื ืืืขืจืืืช ืจืฉืช ืืื ืกืคืจืืืช Netty.
ืืชื ืื ืืืืืืื ืืืกืืจืืช ืืืื, ืืืชื ืืืืื ืื ืื ืกืืช ืืช ืืืกืืจืช ืืืืขืืคืช ืขืืืื, ืืื Grails,โ Blade,โ Play!, โซVaadin ืื jHipster.
ืคืจืืกืช ืคืจืืืงืืื ืฉื ืงืื ืืงืืจ ื-Maven ืืกืืืืช ืืื ืืจืืฆื ืฉื Java
ืืชื ืืืืืื ืืคืจืืก ืืช ืคืจืืืงื Maven ืืงืื ืืงืืจ, ืืืื ืืช ืืืคืจืืก ืืืชื ืืืืฆืขืืช Buildpacks ืฉื Google Cloud.
ืืื ืืคืจืืก ืคืจืืืงื Maven ืืงืื ืืงืืจ, ืขืืืจืื ืืกืคืจืืื ืืจืื ืืขืืืื ื ืฉื ืืคืจืืืงื ืืืงืืืืื:
gcloud app deploy pom.xml
ืืืื ื ืืื ืืื ืืืคืจืืกื ืืืขืืจื ืืกืืจืืืื ื, ืืืคืฉืจ ืืจืืืช ืืช ืืืืื ืื ืืืคืืจืืื ืืงืืข Cloud Build history ืGoogle Cloud ืืกืืฃ.
ืฉืืืืฉ ืืงืืืฆื ืืคืขืื ืฉื GraalVM
ืกืืืืช ืืื ืืจืืฆื ืฉื Java ืืกืืืืช ืืจืืจืช ืืืืื ื-App Engine ืชืืืืช ืืงืืืฆื ืืคืขืื ืฉื ืชืืื ืืช ืืืื ืืช ืฉื GraalVM. ืืืจื ืฉืืืืจืื ืืช ืืคืืืงืฆืืืช Java ืืชืืื ื ืืงืืจืืช ืฉื GraalVM, ืืคืฉืจ ืืืฉืชืืฉ ืืืืืจื entrypoint ืืงืืืฅ app.yaml ืืื ืืืคื ืืช ืืงืืืฅ ืืืคืขืื.
ืืืืืื, ืืงืืืฅ ืืคืขืื ืขื ืฉื ืืงืืืฅ myexecutable ืืืื ืืืืืช ืงืืืฅ ืืชืฆืืจื app.yaml ืืื:
runtime: 25 # or another supported runtime version. entrypoint: ./myexecutable
Google Cloud ืืคืฉืจ ืืืฉืชืืฉ ืืกืคืจืืืช ืืงืื ืืื ืืงืืคื ืืคืืืงืฆืืืช ืืชืืื ืช Native ืฉื GraalVM. ืืืืข ื ืืกืฃ ืืืคืืข ืืืืืจ ืื ืืฉื ืงืืืคืืืฆืื ืฉื ืชืืื ืืช ืืงืืจืืืช.
ืืจืกืช Java
ืืจืกืช Java ืืขืืื ืืช ืืืืชืจ ืฉื ืชืืืช ืืื 25. ื-Java runtime ืืฉืชืืฉ ืืืจืกื ืืืฆืืื ืืืืจืื ื ืฉืคืืจืกืื ืฉื ืืืจืกื ืฉืืฆืืื ืช ืืงืืืฅ app.yaml. โซApp Engine ืืชืขืืื ืืืืืืืืช ืืืจืกืืืช ืืืฉืืช ืฉื ืชืืงืื ื ืืืืื, ืืื ืืื ืื ืืชืขืืื ืืืืืืืืช ืืืจืกื ืืฉื ืืช.
ืืืืืื, ืืืื ืืืืืช ืฉืืืคืืืงืฆืื ืฉืืื ืชืืคืขื ื-Java 21.0.4 ืืชืขืืืื ืืืืืืืืช ืืืจืกื Java 21.0.5 ืืืคืขืื ืืืืืจืช ืืืชืจ ืฉื ืืคืืืคืืจืื ืืื ืืืืช, ืืื ืืื ืื ืชืขืืืื ืืืืืืืืช ื-Java 22.
ืืืืืจ ืฉืืจืื ืฉื ืืคืืืงืฆืื ืงืืืืช ืืืกืืจ ืืื ืืฉืืจื ืืช ืืจืกืช Java.
ืกืืืืช Open JDK ืฉื ืืื ืืจืืฆื
โซApp Engine ืืจืืฅ ืืคืืืงืฆืืืช Java ืืืืืจ ืืืืืื ืขื ืืื gVisor ืืืคืฆืช Ubuntu Linux ืขืืื ืืช, ืื-openjdk-17-jdk ืื ืชืื ืขืืืจ Java 17 ืื ื-openjdk-21-jdk ืขืืืจ ืืื ืจืืฆื ืฉื Java 21.
ืืืืืจ ืืื ืืืื ืื ืฉื ืชืืืื ืืืื ืจืืฆื ืืคืืจืืืช ืืจืกืืืช Ubuntu ืื ืชืืืืช ืขืืืจ ืืจืกืช Java ืฉืืื.
โซApp Engine ืืชืืืง ืืช ืชืืื ืช ืืืกืืก ืืืขืืื ืืช ืืืืืช OpenJDK 17 ื-OpenJDK 21, ืืื ืฉืชืฆืืจืื ืืคืจืืก ืืืืฉ ืืช ืืืคืืืงืฆืื.
ืืืคืืืงืฆืื ืฉืคืจืกืชื ื ืืฆืืช ืืกืคืจืืื /workspace ืฉื ืกืืืืช ืืื ืืจืืฆื. ืืคืฉืจ ืืืฉืช ืืืื ืื ืืจื ืงืืฉืืจ ืกืืื ืืืชืืืช /srv.
ืืจืกืืืช ืฉื App Engine Java
ืื ืืืจืืืคืงืืื ืฉืคืืจืกืื ืืืชืืืืื ืืืจืกื 2.x.x ืืฉืชืืฉืื ืืื ืื ืื ืืคืจืกืื open source. ืคืจืืื ื ืืกืคืื ืืืื ืื ืืืืืจ GitHub.
ืชืืืืืช
ืืืืข ื ืืกืฃ ืขื ืืฆืืจื ืขื ืืืกื ืชืืืช ืื ืืืื ืฉืืื ืืืื ืืืืืจ Specifying dependencies.
ืืคืขืืช ืืืคืืืงืฆืื
ืืืกืืจืืช ืืื Spring Boot, โ Micronaut ื-Ktor, ื ืืฆืจืช ืืืจืืจืช ืืืื JAR ืืคืขืื. ืื ืงืืืฅ ื-build ืฉื Maven ืื Gradle ืืืฆืจ ืงืืืฅ Uber JAR ืฉื ืืชื ืืืคืขืื,
ืกืืืืช ืืื ืืจืืฆื ืืคืขืืื ืืช ืืืคืืืงืฆืื ืขื ืืื ืืจืฆืช ืืคืืืงืฆืืืช Uber JAR.
ืืืืืคืื, App Engine ืืฉืชืืฉ ืืชืืื ืฉื ืืฉืื ืืืืคืฆืืื ืื entrypoint ืืงืืืฅ app.yaml. ืืืืืื:
runtime: java25 # or another supported runtime entrypoint: java -Xmx64m -jar YOUR-ARTIFACT.jar
ืืืฉืจ ืงืืืฅ ื-JAR ืฉื ืืืคืืืงืฆืื YOUR-ARTIFACT.jar ืืืืืื ืืืื:
- ืืืืืช ืืชืืงืืืช ืืฉืืจืฉ ืขื ืงืืืฅ
app.yaml. - ืืืืืื ืจืฉืืื ืฉื
Main-Classืืงืืืฅ ืืืื-ื ืชืื ืืMETA-INF/MANIFEST.MF. - ืืืคืฆืืื ืื, ืืืื ืจืฉืืื ืฉื
Class-Pathืขื ืจืฉืืื ืฉื ื ืชืืืื ืืืกืืื ืืงืืืฆื JAR ืืืจืื ืฉืชืืืืื ืื. ืืงืืฆืื ืืืื ืืืขืื ืืืืคื ืืืืืืื ืขื ืืืคืืืงืฆืื.
ืืื ืฉืืืคืืืงืฆืื ืชืงืื ืืงืฉืืช HTTP, ื ืงืืืช ืืื ืืกื ืฆืจืืื ืืืคืขืื ืฉืจืช ืืื ืืจื ื ืฉืืงืฉืื ืืืฆืืื ืฉืฆืืื ื ืืืฉืชื ื ืืกืืืื PORT. ืืขืจื ืฉื PORT ืืฉืชื ื ืืกืืืื ืืืืืจ ืืืืคื ืืื ืื ืขื ืืื ืกืืืืช ืืืืฉื ืฉื App Engine. ืื ืืคืฉืจ ืืืืืืจ ืืช ืืขืจื ืืื ืืงืืข env_variables ืืงืืืฅ app.yaml.
ืืขืืจืช ื ืงืืืช ืื ืืกื ืืืชืืืช ืืืฉืืช, ืืคืฉืจ ืืืฆืืจ ืืืืื ืฉื ืืืคืืืงืฆืื ืืงืืืฅ JAR ืืง ืฉืืืื ืจืง ืืช ืงืื ืืืคืืืงืฆืื ืืชืืืช ืืฉืืจื. ืืฉืคืืจืกืื ืืช ืืืคืืืงืฆืื, ืืชืืกืฃ App Engine ืืขืื ืจืง ืืช ืืงืืฆืื ืฉืืฉืชื ื, ืืื ืืช ืื ืืืืืช ื-JAR.
ืืฉืื ืืืฉืชืืฉ ืืืฉืชื ื ืืกืืืื PORT
ืื ืืืคืืขืืช ืืืืจืืช ืืืื ืืฆืืื 8080 ื-NGINX ืืงืืืฆื ืืืืื ืฉื ืืืคืืืงืฆืื, ืฉืจืช ืืืื ืืจื ื ืฉื ืืืคืืืงืฆืื ืืืืื ืืืฆืืื 8080 ืฉืืืืืจืช ืืืจืืจืช ืืืื. ืื ื ืื ืข ื-App Engine ืืืฉืชืืฉ ืืฉืืืช NGINX ืฉืื ืืื ืืืืืก ืชืืืืืช HTTP. ืืืืืฅ ืืืืืืจ ืืช ืฉืจืช ืืืื ืืจื ื ืื ืฉืืืื ืืืงืฉืืช HTTP ืืืฆืืื ืฉืฆืืื ื ืืืฉืชื ื ืืกืืืื PORT, ืืืจื ืืื 8081. ืืืืืื:
ืชืืืืืช ืืืจืกืืืช ืงืืืืืช ืฉื Java
ืืื ืืจืืืช ืืช ืืืืืืื ืืื Java 8 ืืืื ืืืจืกื ืืขืืื ืืช ืืืืชืจ ืฉื Java ืฉื ืชืืืช, ืืคืฉืจ ืืขืืื ืืืืืจ ืืขืืจ ื-Java 8 ืืืื ืืจืืฆื ืืขืืื ื ืฉื Java.
ืืฉืชื ื ืกืืืื
ืืฉืชื ื ืืกืืืื ืืืืื ืืืืืจืื ืขื ืืื ืืื ืืจืืฆื:
| ืืฉืชื ื ืืกืืืื | ืชืืืืจ |
|---|---|
GAE_APPLICATION
|
ืืืืื ืฉื ืืคืืืงืฆืืืช App Engine. ืืืืื ืืื ืืชืืื ืืงืืืืืช region code~, ืืื e~ ืืืคืืืงืฆืืืช ืฉื ืคืจืกืืช ืืืืจืืคื. |
GAE_DEPLOYMENT_ID |
ืืืืื ืฉื ืืคืจืืกื ืื ืืืืืช. |
GAE_ENV |
ืกืืืืช App Engine. ืืืืืจ ืืขืจื standard. |
GAE_INSTANCE |
ืืืืื ืฉื ืืืืคืข ืฉืื ืืฉืืจืืช ืฉืืื ืคืืขื ืืจืืข. |
GAE_MEMORY_MB |
ื ืคื ืืืืืจืื ืฉืืืื ืืชืืืื ืฉื ืืืคืืืงืฆืื, ื-MB. |
GAE_RUNTIME |
ืกืืืืช ืืื ืืจืืฆื ืฉืฆืืื ื ืืงืืืฅ app.yaml. |
GAE_SERVICE |
ืฉื ืืฉืืจืืช ืฉืฆืืื ืืงืืืฅ app.yaml. ืื ืื ืืฆืืื ืฉื ืฉืืจืืช, ืืจืืจืช ืืืืื ืืื default. |
GAE_VERSION |
ืชืืืืช ืืืจืกื ืื ืืืืืช ืฉื ืืฉืืจืืช. |
GOOGLE_CLOUD_PROJECT |
ืืืื ืืคืจืืืงื ื- Google Cloud ืฉืืฉืืื ืืืคืืืงืฆืื. |
PORT |
ืืืฆืืื ืฉืืงืืืช ืืงืฉืืช HTTP. |
โซNODE_ENV (ืืืื ืจืง ืืกืืืืช ืืื ืืจืืฆื ืฉื Node.js) |
ืืืืืจืื ืืช ืืขืจื production ืืฉืคืืจืกืื ืืช ืืฉืืจืืช. |
ืืคืฉืจ ืืืืืืจ ืืฉืชื ื ืกืืืื ื ืืกืคืื ืืงืืืฅ app.yaml, ืืื ืื ืืคืฉืจ ืืืื ืืช ืืขืจืืื ืฉืืืขืื, ืืืขื NODE_ENV.
ืคืจืืืืงืื HTTPS ืืฉืจืชื proxy ืืืขืืจื
โซApp Engine ืืกืืื ืืืืืจื HTTPS ืืืืื ืืขืืืกืื ืืืขืืืจ ืืงืฉืืช ืืืคืืืงืฆืื. ืืืคืืืงืฆืืืช ืืกืืืืืช ืฆืจืื ืืงืืืข ืืช ืืชืืืช ื-IP ืืืคืจืืืืงืื ืฉื ืืืงืฉื ืืืงืืจืืช. ืืชืืืช ื-IP ืฉื ืืืฉืชืืฉ ืืืื ื ืืืืชืจืช ืืจืืืื X-Forwarded-For. ืืืคืืืงืฆืืืช ืฉืืืจืฉืืช ืืช ืืืืืข ืืื, ืฆืจืื ืืืืืืจ ืืช ืืกืืจืช ืืืื ืืจื ื ืื ืฉืชืืชื ืืืื ื-proxy.
ืืืฉื ืืืขืจืืช ืืงืืฆืื
ืกืืืืช ืืื ืืจืืฆื ืืืืืช ืกืคืจืืื /tmp ืขื ืืจืฉืืช ืืชืืื, ืืืื ืฉืืจ ืืกืคืจืืืช ืืฉ ืืจืฉืืช ืงืจืืื ืืืื. ืืชืืื ืื /tmp ืชืืคืกืช ืืืืจืื ืืขืจืืช.
ืฉืจืช ืืื-ื ืชืื ืื
ืื ืืืคืข ืฉื ืืืคืืืงืฆืื ืืืื ืืืฉืชืืฉ ืืฉืจืช ืืืื-ื ืชืื ืื ืฉื App Engine ืืื ืืืฆืข ืฉืืืืชืืช ืืืื ืืืืคืข ืืืคืจืืืงื.
ืืคืฉืจ ืืืฉืช ืืฉืจืช ืืืื-ื ืชืื ืื ืืจื ื ืงืืืืช ืืงืฆื ืืืืืช:
http://metadatahttp://metadata.google.internal
ืืงืฉืืช ืฉื ืฉืืืืช ืืฉืจืช ืืืื-ื ืชืื ืื ืฆืจืืืืช ืืืืื ืืช ืืืชืจืช ืืืงืฉื Metadata-Flavor: Google. ืืืืชืจืช ืืื ืืฆืืื ืช ืฉืืืงืฉื ื ืฉืืื ืืืืจื ืืืืืจ ืขืจืืื ืฉื ืืื-ื ืชืื ืื.
ืืืืื ืืืื ืืคืืจืืืช ื ืงืืืืช ืืงืฆื ืฉืืืืื ืืคืฉืจ ืืฉืืื ืืงืฉืืช HTTP ืืืื-ื ืชืื ืื ืกืคืฆืืคืืื:
| ื ืงืืืช ืงืฆื ืฉื ืืื-ื ืชืื ืื | ืชืืืืจ |
|---|---|
/computeMetadata/v1/project/numeric-project-id |
ืืกืคืจ ืืคืจืืืงื ืฉืืืงืฆื ืืคืจืืืงื ืฉืืื. |
/computeMetadata/v1/project/project-id |
ืืืื ืืคืจืืืงื ืฉืืืงืฆื ืืคืจืืืงื ืฉืืื. |
/computeMetadata/v1/instance/region |
ืืืืืจ ืฉืื ืืืืคืข ืคืืขื. |
/computeMetadata/v1/instance/service-accounts/default/aliases |
|
/computeMetadata/v1/instance/service-accounts/default/email |
ืืชืืืช ืืืืืืื ืืืฉืืื ืืฉืืจืืช ืฉืืืืืจ ืืืจืืจืช ืืืื ืืืืงืฆื ืืคืจืืืงื. |
/computeMetadata/v1/instance/service-accounts/default/ |
ืืฆืืื ืืช ืื ืืฉืืื ืืช ืืฉืืจืืช ืฉืืืืืจืื ืืืจืืจืช ืืืื ืืคืจืืืงื. |
/computeMetadata/v1/instance/service-accounts/default/scopes |
ืจืฉืืื ืฉื ืื ืืืืงืคืื ืื ืชืืืื ืืืฉืืื ืืช ืฉืืจืืช ืฉืืืืืจืื ืืืจืืจืช ืืืื. |
/computeMetadata/v1/instance/service-accounts/default/token |
ืืืืืจื ืืช ืืกืืืื ืืืืืืช ืฉืืคืฉืจ ืืืฉืชืืฉ ืื ืืื ืืืืช ืืช ืืืคืืืงืฆืื ืฉืืื ื-Google Cloud APIs ืืืจืื. |
ืืืืืื, ืืื ืืืืืจ ืืช ืืืื ืืคืจืืืงื, ืฉืืืืื ืืงืฉื ืื http://metadata.google.internal/computeMetadata/v1/project/project-id.