对于开发,我在Mac上使用本地Spring Cloud Dataflow服务器,但我们计划部署到Kubernetes集群进行集成测试和生产。 SCDF文档说您可以使用环境变量来配置各种事物,例如数据库配置。我希望我的注册应用能够使用这些env变量,但他们似乎无法看到它们。也就是说,我通过从终端窗口运行它来启动SCDF服务器,终端窗口可以看到一组环境变量。然后,我使用一些Spring Cloud流启动器应用程序和一个自定义Spring Boot应用程序配置流。我有自定义应用程序日志记录System.getenv(),它没有显示我需要的env变量。我在〜/ .bashrc文件中设置它们,我也从〜/ .bash_profile中获取。这适用于我的终端窗口和大多数其他需要环境的东西,但不是这里。我应该在哪里定义它们?
对于第一个答案中的要点和评论,它们听起来不错,但对我来说没有任何作用。我有一个SQS源通过以下方式获得它的连接:
return AmazonSQSAsyncClientBuilder.standard()
.withRegion(Regions.US_WEST_2.getName()))
.build();
当我部署到Minikube环境时,我编辑sqs应用程序的部署并在env部分中设置AWS凭据。然后它工作。对于本地部署,我现在尝试了:
stream deploy --name greg1 --properties "deployer.sqs.AWS_ACCESS_KEY_ID=<id>,deployer.sqs.AWS_SECRET_ACCESS_KEY=<secret>"
stream deploy --name greg1 --properties "deployer.sqs.aws_access_key_id=<id>,deployer.sqs.aws_secret_access_key=<secret>"
stream deploy --name greg1 --properties "app.sqs.AWS_ACCESS_KEY_ID=<id>,app.sqs.AWS_SECRET_ACCESS_KEY=<secret>"
stream deploy --name greg1 --properties "app.sqs.aws_access_key_id=<id>,app.sqs.aws_secret_access_key=<secret>"
全部失败并显示凭据错误时收到的错误消息,即&#34;此wsdl版本不存在指定的队列。&#34;我已经阅读了这些链接,并没有真正看到其他任何可以尝试的内容。我哪里错了?
答案 0 :(得分:2)
您可以使用应用程序属性或部署属性将环境变量传递给通过SCDF部署的应用程序。检查文档以获取每种类型的描述。
例如:
dataflow:> stream deploy --name ticktock --properties "deployer.time.local.javaOpts=-Xmx2048m -Dtest=foo"