Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么将SpringCloud应用程序与AWS参数存储集成时不会从param存储返回任何属性?_Java_Amazon Web Services_Spring Boot_Spring Cloud_Spring Cloud Config - Fatal编程技术网

Java 为什么将SpringCloud应用程序与AWS参数存储集成时不会从param存储返回任何属性?

Java 为什么将SpringCloud应用程序与AWS参数存储集成时不会从param存储返回任何属性?,java,amazon-web-services,spring-boot,spring-cloud,spring-cloud-config,Java,Amazon Web Services,Spring Boot,Spring Cloud,Spring Cloud Config,意图:我正在开发一个POC,打算将AWS参数存储用作属性存储。这将在AWS SSM的参数存储中存储机密应用程序属性。我正在使用Java 8和spring boot/cloud版本2 资源:我从spring文档中获得 及 也是一篇综合性的文章。因此正在尝试利用 spring-cloud-starter-aws-parameter-store-config.jar 因此在构建文件中添加了必需的依赖项 预期输出: 实际产出: 这里是AWS控制台的快照我正试图从AWS参数存储访问下面显示的参数 下

意图:我正在开发一个POC,打算将AWS参数存储用作属性存储。这将在AWS SSM的参数存储中存储机密应用程序属性。我正在使用Java 8和spring boot/cloud版本2

资源:我从spring文档中获得 及

也是一篇综合性的文章。因此正在尝试利用

spring-cloud-starter-aws-parameter-store-config.jar

因此在构建文件中添加了必需的依赖项

预期输出:

实际产出

这里是AWS控制台的快照我正试图从AWS参数存储访问下面显示的参数

下面是我的spring属性文件:

application.yml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-aws-parameter-store-config</artifactId>
        </dependency>
    </dependencies>

bootstrap.yml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-aws-parameter-store-config</artifactId>
        </dependency>
    </dependencies>

POM.xml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-aws-parameter-store-config</artifactId>
        </dependency>
    </dependencies>

org.springframework.boot

我检查了你的应用程序,它没有像我预期的那样工作,因为我有~.aws/config文件,这导致了aws凭据的错误配置(原因是
DefaultAWSCredentialsProviderChain
,请阅读更多),所以我删除了它,并再次尝试,但失败的原因是spring在环境中找不到aws区域,因此,显然,只有在AWS参数存储中的弹簧负载属性出现之前,才会使用application.yml中指定的那些

我是如何做到的

我补充说:

        System.setProperty("aws.accessKeyId","My_Key");
        System.setProperty("aws.secretKey","Secret");
        System.setProperty("aws.region","us-east-1");//same region where all your params exist
SpringApplication.run(DemoApplication.class,args)之前然后它工作了

aws.region
更改为另一个未定义参数值的区域时,我得到的结果与您的结果完全相同(空值)。


确保您的计算机或EC2实例上没有任何aws配置会覆盖应用程序中提供的配置。

参数存储的屏幕是否与ap-south-1来自同一地区?@slimane Yes。。来自同一地区。。ap-south-1,事实上我在aws实例的开发环境中仅使用tht区域你说我在aws的开发环境中仅使用tht区域是什么意思instance@slimane我有特定于环境的aws帐户,即prod和dev的帐户不同。在特定于开发的帐户中,所有概念验证仅在ap-south-1地区完成。我可以使用CLI从运行此应用程序的同一台机器上检索,它默认为ap-south-1。可能region.auto=true属性将覆盖静态值,您可以验证它吗?是的,您是对的。。我对.aws/config文件有问题