当前位置: 首页 > 面试题库 >

AWS Java SDK-无法通过区域提供者链找到区域

仲孙疏珂
2023-03-14
问题内容

我经历了题为“以编程方式将AWS区域设置为1”的问题,但它没有提供我需要的所有答案。

Q1:我得到一个SDKClientException-Unable to find a region via the region provider chain。我究竟做错了什么?还是我错过了错别字。

public class CreateS3Bucket {

public static void main(String[] args) throws IOException {

    BasicAWSCredentials creds = new BasicAWSCredentials("aws-access-key", "aws-secret-key");
    AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(creds)).build();

    Region region = Region.getRegion(Regions.US_EAST_1);
    s3Client.setRegion(region);

    try {
        String bucketName = "testBucket" + UUID.randomUUID();
        s3Client.createBucket(bucketName);
        System.out.println("Bucket Created Successfully.");

    } catch(AmazonServiceException awse) {

        System.out.println("This means that your request made it AWS S3 but got rejected");
        System.out.println("Error Message:" +awse.getMessage());
        System.out.println("Error Message:" +awse.getErrorCode());
        System.out.println("Error Message:" +awse.getErrorType());
        System.out.println("Error Message:" +awse.getRequestId());

    } catch (AmazonClientException ace) {

        System.out.println("The Amazon Client encountered an Error with network Connectivity");
        System.out.println("Error Message:" + ace.getMessage());
    }


}

}

问题2:如果要从中构建Lambda函数,需要进行哪些代码更改?我知道如何创建lambda函数及其所需的角色。只是需要知道我编写的代码是否需要更改。我应该如何实现LambdaFuctionHandler类,如下所示:

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

 public class LambdaFunctionHandler implements RequestHandler<String, String> {

@Override
public String handleRequest(String input, Context context) {
    context.getLogger().log("Input: " + input);


    return null;
}

}

问题答案:

关于Q1,请尝试使用以下语法构建客户端:

AmazonS3 amazonS3 = AmazonS3Client.builder()
    .withRegion("us-east-1")
    .withCredentials(new AWSStaticCredentialsProvider(creds))
    .build();


 类似资料:
  • 我已经完成了题为“以编程方式设置AWS区域1”的问题,但它并没有提供我所需要的全部答案。 Q1:我得到一个找到一个region。我做错了什么?还是我漏掉了一个错别字。 } Q2:如果我想用它构建一个Lambda函数,需要做哪些代码更改?我知道如何创建lambda函数和它所需要的角色。只需要知道我编写的代码是否需要更改。我应该如何实现LambdaFuctionHandler类,如下所示:

  • 我有以下方法返回AmazonS3上传文件。在本地环境中,我必须连接到不同区域的s3 bucket,但在其他环境中,s3 bucket和应用程序代码是相同的aws区域。 当我从本地运行时,我得到了以下异常,我错过了什么? 原因:com.amazonaws.sdkclientexception:无法通过区域提供程序链找到区域。必须在生成器或安装环境中提供显式区域才能提供区域。在com.amazonaw

  • 有人知道为什么第一个查询会导致抛出此错误,而第二个查询会起作用吗? ORA-01882:未找到时区区域01882。00000-“未找到时区区域%s” > 导致错误:在时区选择系统标记(SELECT t.TIME_ZONE从SOME_TABLEt WHERE t.TIME_ZONE='美国/丹佛'和ROWNUM=1)从Dual 正确工作:选择时区的系统标记(选择美国/丹佛从SOME_TABLEt哪里

  • 比特币是区块链中最着名的实现。很多开发和方向都是基于区块链使比特币发生的前提。我们可以学习并扩展它如何传播到如此多的不同领域。 区块链技术修复了互联网未设计的三个东西,这三个东西是: 价值 信任 可靠性 价值 使用区块链,实际上可以在数字资产上创造价值。该价值可以由拥有它的人控制。它可以在没有中间集中代理的情况下通过互联网传输独特的资产。 信任 区块链可以安全地分配特定数字资产的所有权,并能够跟踪

  • 我有一个像这样的boto客户 我使用这个客户端检测文本从图像和部署的代码在AWS区域,其中Rekognsion api不可用,但提供区域名称,它在客户端可用。在执行/测试lambda函数时,它给 为什么选择我在客户“us-east-1”中提供的ap-south-1 客户端=boto3.client('rekognture',region_name="us-East-1") 但当我在本地运行代码时,

  • 我尝试这样设置用户: 并通过以下方式激活: 然而,我不断得到以下异常: 奇怪的是,如果我用默认用户配置它,那么一切都运行得很好: 为什么使用特定用户名的配置不能在上面工作? 我还知道,我们可以在像这样SO或这样SO这样的代码中配置凭据。 以下是关于版本的内容: 下面是配置文件: