gpt4 book ai didi

java - 使用 Java 在 Android 项目中获取 AWS 凭证的最简单方法?

转载 作者:行者123 更新时间:2023-12-02 04:45:01 27 4
gpt4 key购买 nike

我正在尝试使用我自己的帐户将消息发送到我的 SQS 队列。使用我提供的 access_key 和 secret access_key 在其他桌面 sdk 中执行很容易。在 Android 项目中,初始化环境是很困难的。例如,我想实现以下代码来创建函数SendSQS:

public void addItemSQS() {
AmazonSQSAsyncClient sqs = new AmazonSQSAsyncClient(AWSMobileClient.getInstance());
sqs.setRegion(Region.getRegion("XX-XXXX-X"));
SendMessageRequest req = new SendMessageRequest("https://sqs.XX-XXXX-X.amazonaws.com/XXXXXXXXXXXX/MyQueue", "hello world");
sqs.sendMessageAsync(req, new AsyncHandler<SendMessageRequest, SendMessageResult>() {
@Override
public void onSuccess(SendMessageRequest request, SendMessageResult sendMessageResult) {
Log.i(LOG_TAG, "SQS result: " + sendMessageResult.getMessageId());
}

@Override
public void onError(Exception e) {
Log.e(LOG_TAG, "SQS error: ", e);
}
});
}

问题是我不知道如何正确设置 AWSMobileClient.getInstance() 以授予对我的 SQS 队列的访问权限。我尝试过 AmazonSQSAsyncClient(AWSCredentials awsCredentials) 方法,但在初始化 AWSCredentials 时遇到了困难。 com.amazonaws.auth.BasicAWSCredentials 都不起作用。

最佳答案

有什么错误吗?来自 AWS 文档:直接访问 AWS 服务您可以通过生成的SDK客户端直接调用AWS服务接口(interface)对象。

You can use the client credentials provided by the AWSMobileClient by calling AWSMobileClient.getInstance() and passing it to the service client. This will leverage short term AWS credentials from Cognito Identity.

To work with service interface objects, your Amazon Cognito users’ IAM role must have the appropriate permissions to call the requested services.

例如,如果您在 Android 项目中使用 Amazon Simple Queue Service (SQS),您首先需要将 aws-android-sdk-sqs:2.11.+ 添加到您的 app/build.gradle 并通过运行以下命令来安装依赖项: Gradle 同步。

接下来,在您的 Android Studio 项目中导入 AmazonSQS 并创建客户端

另外,你最后遇到了什么错误?

关于java - 使用 Java 在 Android 项目中获取 AWS 凭证的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56490891/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com