amazon-web-services - AWS 加载客户端凭证
问题描述
我正在尝试编写我的第一个 Scala lambda,但在尝试加载我的 Phoenix Db 查询凭据时遇到了问题。
我正在使用以下内容(已被其他开发人员使用)自动加载凭据。
libraryDependencies += "org.scalikejdbc" %% "scalikejdbc" % "3.4.0"
import software.amazon.awssdk.services.ec2.Ec2Client._
val client = Ec2Client.builder()
.region(Region.US_EAST_1)
.build()
val response = Try(client.describeInstances(request))
无论如何尝试引用客户端时,这会给我带来以下错误:
DEBUG software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain - Unable to load credentials from SystemPropertyCredentialsProvider(): Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
software.amazon.awssdk.core.exception.SdkClientException: Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97)
at software.amazon.awssdk.auth.credentials.internal.SystemSettingsCredentialsProvider.resolveCredentials(SystemSettingsCredentialsProvider.java:58)
at software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain.resolveCredentials(AwsCredentialsProviderChain.java:91)
at software.amazon.awssdk.auth.credentials.internal.LazyAwsCredentialsProvider.resolveCredentials(LazyAwsCredentialsProvider.java:52)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.resolveCredentials(DefaultCredentialsProvider.java:98)
at software.amazon.awssdk.awscore.client.handler.AwsClientHandlerUtils.createExecutionContext(AwsClientHandlerUtils.java:70)
at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.createExecutionContext(AwsSyncClientHandler.java:68)
at software.amazon.awssdk.core.client.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:68)
at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:44)
at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:55)
at software.amazon.awssdk.services.ec2.DefaultEc2Client.describeInstances(DefaultEc2Client.java:9557)
...
...
...
现在,奇怪的是我可以为 DynamoDb 加载并查询就好了。
val client: AmazonDynamoDB = AmazonDynamoDBClientBuilder.standard().build()
val dynamoDB = new DynamoDB(client) //this works just fine.
谁能建议我可能缺少什么来加载凭据?
谢谢
解决方案
这不是错误,它是来自 AWS 开发工具包的内部调试消息。它被记录在这里,如果你看上面几行,你会看到这个评论:
// Ignore any exceptions and move onto the next provider
不一定是最佳编码实践,但您不必担心。我建议禁用software.amazon.awssdk
.
现在,奇怪的是我可以为 DynamoDb 加载并查询就好了
这是因为 SDK 在您创建 EC2 客户端时找到了凭证提供程序,并重用它来创建 DynamoDB 客户端。
推荐阅读
- jquery - 使用jquery检查是否没有将鼠标悬停在元素上
- python - 如何保持python项目模块化?
- angular - 无法分配给“GetUserByIdModel”,因为它不是变量
- php - 如果新值在数组中,如何批量更新数据库?php
- python - Cython 容器不会释放内存吗?
- php - Fos User 命令在控制台中引发意外错误
- php - 从搜索表单中从 mysql 数据库中选择数据
- python - 如何查找列表/numpy数组中的元素数量和正弦图的plot_dtmf色调genrator_sum
- maven - maven 存储库校验和如何工作?
- php - 从 md5 更改为 password_hash