在哪里为本地 Spring Cloud Dataflow 设置环境变量?
Where to set env variables for local Spring Cloud Dataflow?
为了开发,我在 Mac 上使用本地 Spring Cloud Dataflow 服务器,尽管我们计划部署到 Kubernetes 集群以进行集成测试和生产。 SCDF 文档说你可以使用环境变量来配置各种东西,比如数据库配置。我希望我注册的应用程序使用这些环境变量,但它们似乎看不到它们。也就是说,我通过 运行 从终端 window 的 jar 启动 SCDF 服务器,它可以看到一组环境变量。然后,我使用一些 Spring 云流启动应用程序和一个自定义 Spring 引导应用程序配置流。我有自定义应用程序日志记录 System.getenv() 并且它没有显示我需要的环境变量。我将它们设置在我的 ~/.bashrc 文件中,该文件也是从 ~/.bash_profile 获取的。这适用于我的终端 windows 和大多数其他需要环境的东西,但不适用于这里。我应该在哪里定义它们?
对于第一个回答和评论中的观点,听起来不错,但对我来说没有任何作用。我有一个 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>"
当凭据错误时,所有都失败并显示错误消息,即 "The specified queue does not exist for this wsdl version." 我已经阅读了链接,并没有真正看到任何其他尝试。我哪里错了?
您可以使用应用程序属性或部署属性将环境变量传递给通过 SCDF 部署的应用程序。检查文档以获取每种类型的描述。
例如:
dataflow:> stream deploy --name ticktock --properties "deployer.time.local.javaOpts=-Xmx2048m -Dtest=foo"
为了开发,我在 Mac 上使用本地 Spring Cloud Dataflow 服务器,尽管我们计划部署到 Kubernetes 集群以进行集成测试和生产。 SCDF 文档说你可以使用环境变量来配置各种东西,比如数据库配置。我希望我注册的应用程序使用这些环境变量,但它们似乎看不到它们。也就是说,我通过 运行 从终端 window 的 jar 启动 SCDF 服务器,它可以看到一组环境变量。然后,我使用一些 Spring 云流启动应用程序和一个自定义 Spring 引导应用程序配置流。我有自定义应用程序日志记录 System.getenv() 并且它没有显示我需要的环境变量。我将它们设置在我的 ~/.bashrc 文件中,该文件也是从 ~/.bash_profile 获取的。这适用于我的终端 windows 和大多数其他需要环境的东西,但不适用于这里。我应该在哪里定义它们?
对于第一个回答和评论中的观点,听起来不错,但对我来说没有任何作用。我有一个 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>"
当凭据错误时,所有都失败并显示错误消息,即 "The specified queue does not exist for this wsdl version." 我已经阅读了链接,并没有真正看到任何其他尝试。我哪里错了?
您可以使用应用程序属性或部署属性将环境变量传递给通过 SCDF 部署的应用程序。检查文档以获取每种类型的描述。
例如:
dataflow:> stream deploy --name ticktock --properties "deployer.time.local.javaOpts=-Xmx2048m -Dtest=foo"