我正在尝试使用Spring-Cloud-Function来编写kotlin AWS Lambda。当我尝试同时在AWS和Sam上将其作为AWS Lambda运行时,无法解析我用@Value注入并位于 resources / application.yaml 中的任何属性。< / p>
根据documentation,我可以包含以下依赖项以将公开的功能作为独立的Web应用程序运行:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-function-web</artifactId>
<version>${spring-cloud-function.version}</version>
</dependency>
这对于在使用sam之前在本地运行非常有用,并且对于调试非常有用。从那以后,我用它来验证作为独立应用程序运行时是否从application.yaml中拾取了属性。因此,我的文件结构和代码没有错。
application.yaml :
aws:
region: us-east-1
bucket:
directory : "myFiles"
使用属性的示例类:
@Configuration
class AwsConfig(
@Value("\${aws.region}")
private val region: String
) {
@Bean
fun s3Client(): AmazonS3 = AmazonS3Client.builder()
.withClientConfiguration(awsConfig())
.withRegion(region)
.build()
private fun awsConfig(): ClientConfiguration = ClientConfiguration()
}
项目结构:
.
├── pom.xml
├── serverless.yaml
└── src
└── main
├── kotlin
└── resources
└── application.yaml
这是Spring-Cloud-Function的已知缺点吗?还是还有其他问题?