我在这里需要一些帮助...
我正在使用 Spring Cloud Function,我想使用适用于 AWS 的适配器在 AWS Lambda 上部署我的函数。
我的应用程序类如下所示:
package example;
@SpringBootApplication
public class SpringCloudFunctionApiGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudFunctionApiGatewayApplication.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
函数 1 如下所示:
package example;
@Component
public class StoreFunction implements Consumer<Message<DemoEntity>>{
@Override
public void accept(Message<DemoEntity> t) {
System.out.println("Stored entity " + ((DemoEntity)t.getPayload()).getName());
return;
}
}
Run Code Online (Sandbox Code Playgroud)
最后,我的函数处理程序如下所示:
package example;
public class TestFunctionHandler extends SpringBootApiGatewayRequestHandler {
}
Run Code Online (Sandbox Code Playgroud)
此设置完美运行。部署到 Lambda 时,我在 AWS 控制台中提供example.TestFunctionHandler作为处理程序,Spring Cloud 自动识别example.QueryFunction是上下文中的唯一函数。
日志输出如下所示:
START RequestId: 3bd996e7-ef5e-11e8-9829-1f50e2b93b6c Version: $LATEST …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Kubernetes (Minikube) 上部署一个“Hello world”Spring Boot 应用程序。该应用程序非常简单,只有一种方法,映射到 GET 资源上。我什至没有指定端口。
我现在尝试在 Minikube 上部署该应用程序,并使用服务使其可用:
kind: Service
apiVersion: v1
metadata:
name: server
spec:
selector:
app: server
ports:
- protocol: TCP
port: 8080
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: server
spec:
selector:
matchLabels:
app: server
replicas: 3
template:
metadata:
labels:
app: server
spec:
containers:
- name: server
image: kubernetes-server:latest
imagePullPolicy: Never
ports:
- name: http
containerPort: 8080
Run Code Online (Sandbox Code Playgroud)
如果我使用此配置启动部署(即先启动服务,然后启动部署),Pod 在启动过程中会失败。在日志中,我可以找到以下消息:
***************************
APPLICATION FAILED TO START
***************************
Description:
Binding to target
org.springframework.boot.autoconfigure.web.ServerProperties@42f93a98 failed: …Run Code Online (Sandbox Code Playgroud) 我有以下三个应用程序:
项目1举行
项目二
项目3
项目1的类如下所示:
public interface IDemoEntity {
String getName();
void setName(String name);
}
@Component
public class StoreFunction implements Consumer<Message<IDemoEntity>> {
@Override
public void accept(Message<IDemoEntity> t) {
System.out.println("Stored entity " + t.getPayload().getName());
return;
}
}
Run Code Online (Sandbox Code Playgroud)
对于项目2,IDemoEntity的实现如下所示:
@DynamoDBTable(tableName = "DemoEntity")
public class DynamoDemoEntity implements IDemoEntity {
private String name;
@Override
@DynamoDBHashKey
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name = name;
} …Run Code Online (Sandbox Code Playgroud)