我有一个使用 java8 部署在 appengine 上的应用程序。
最近,当我尝试部署时,我在运行时收到此错误:
Uncaught exception from servlet
java.lang.NoSuchMethodError: com.google.api.client.http.HttpTransport.isMtls()Z
at com.google.api.services.storage.Storage$Builder.chooseEndpoint(Storage.java:11151)
at com.google.api.services.storage.Storage$Builder.<init>(Storage.java:11184)
at com.google.cloud.storage.spi.DefaultStorageRpc.<init>(DefaultStorageRpc.java:105)
at com.google.cloud.storage.StorageOptions$DefaultStorageRpcFactory.create(StorageOptions.java:49)
at com.google.cloud.storage.StorageOptions$DefaultStorageRpcFactory.create(StorageOptions.java:43)
at com.google.cloud.ServiceOptions.getRpc(ServiceOptions.java:482)
at com.google.cloud.storage.StorageImpl.<init>(StorageImpl.java:93)
at com.google.cloud.storage.StorageOptions$DefaultStorageFactory.create(StorageOptions.java:39)
at com.google.cloud.storage.StorageOptions$DefaultStorageFactory.create(StorageOptions.java:33)
at com.google.cloud.ServiceOptions.getService(ServiceOptions.java:469)
Run Code Online (Sandbox Code Playgroud)
这是我的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<version>1.1-SNAPSHOT</version>
<groupId>my.com.myapp</groupId>
<artifactId>myapp</artifactId>
<repositories>
<repository>
<id>local-maven-repo</id>
<url>file:///${project.basedir}/local-maven-repo</url>
</repository>
</repositories>
<!-- [START set_versions] -->
<properties>
<appengine.sdk.version>1.9.46</appengine.sdk.version>
<google-api-client.version>1.21.0</google-api-client.version>
<objectify.version>5.1.5</objectify.version>
<guava.version>18.0</guava.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<prerequisites>
<maven>3.1.0</maven>
</prerequisites>
<dependencies>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>${appengine.sdk.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<type>jar</type>
<version>2.5</version>
<scope>provided</scope> …Run Code Online (Sandbox Code Playgroud) java google-app-engine google-api-java-client google-cloud-storage
我正在GKE上运行部署,
使用quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.12.0图像作为nginx-ingress-controller
我正在尝试增加proxy_send_timeout并proxy_read_timeout关注此链接
这是我的入口配置:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
namespace: production
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "360s"
nginx.ingress.kubernetes.io/proxy-send-timeout: "360s"
nginx.ingress.kubernetes.io/proxy-read-timeout: "360s"
nginx.ingress.kubernetes.io/proxy-body-size: 100m
nginx.ingress.kubernetes.io/client-body-buffer-size: 100m
spec:
rules:
- host: app.my.com
http:
paths:
- backend:
serviceName: front-app
servicePort: 80
- host: api.my.com
http:
paths:
- backend:
serviceName: backend-app
servicePort: 80
- host: api.old.com
http:
paths:
- backend:
serviceName: backend-app
servicePort: 80
tls:
- hosts:
- app.my.com
- api.my.com
secretName: tls-secret-my-com
- hosts:
- …Run Code Online (Sandbox Code Playgroud) 假设我myTable在 BQ 有这张表:
[
{"name": "executionId", "type": "STRING"},
{"name":"metadata", "type":"record","fields":[
{"name":"fileName", "type":"STRING"},
{"name":"fileType", "type":"STRING"},
{"name":"errors", "type":"STRING"}
]}
]
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试在我的代码中获取表架构。这是我使用这个例子尝试的:
import com.google.cloud.examples.bigquery.snippets.*;
public class MyClass {
public static void main(String[] args) throws Exception {
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
BigQuerySnippets bigQuerySnippets = new BigQuerySnippets(bigquery);
Table table = bigQuerySnippets.getTable("MY_DATASET", "myTable");
Run Code Online (Sandbox Code Playgroud)
现在我该如何继续?table有这方面的方法吗?
我在 GKE 上运行我的 Elixir 应用
这是我的部署配置:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: myapp
namespace: production
spec:
replicas: 1
revisionHistoryLimit: 1
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: myapp
tier: backend
spec:
securityContext:
runAsUser: 0
runAsNonRoot: false
containers:
- name: myapp
image: myimage
resources:
limits:
cpu: 3000m
memory: 2000Mi
requests:
cpu: 2500m
memory: 1000Mi
ports:
- containerPort: 80
args:
- foreground
Run Code Online (Sandbox Code Playgroud)
这些是我最后的日志:
erl_child_setup closed
Crash dump is being written to: erl_crash.dump...done
Shutting down..
Node is not running!
Run Code Online (Sandbox Code Playgroud)
然后我的应用程序被冻结,我在尝试请求应用程序时收到 502, …
我有一个用angular4编写的应用,正在生产环境和沙箱上运行,
我创建一个映像,然后在kubernetes上进行部署
我有一些与沙箱和生产环境不同的环境变量,目前我建立了两个不同的映像,一个用于沙箱,另一个用于生产:
下的环境src/envirnments:
环境产品
export const environment = {
production: true,
server_url: 'https://api.example.com/app/',
};
Run Code Online (Sandbox Code Playgroud)
environment.sandbox.ts
export const environment = {
production: false,
server_url: 'https://api-sandbox.example.com/app/',
};
Run Code Online (Sandbox Code Playgroud)
建筑形象:
生产:ng build --prod
沙箱:
ng build--prod --env=sandbox
现在,我该如何使用外部环境变量呢?像这样的东西applicatoion.getEnvirnment('server_url'),我不需要为每个环境创建图像吗?
这是我的deployment.yaml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: angular-web-app
namespace: production
spec:
replicas: 1
revisionHistoryLimit: 1
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: angular-web-app
spec:
containers:
- name: angular-web-app
image: us.gcr.io/my-com/angular-web-app:06.01.2018
ports:
- containerPort: 80
env:
- …Run Code Online (Sandbox Code Playgroud)