Самый простой способ получить AWS Credential в проекте Android с использованием Java? - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь отправить сообщение в свою очередь SQS со своей учетной записью. На других настольных компьютерах легко выполнить SDK с помощью моего access_key и секретного access_key. В андроид-проекте сложно инициализировать среду. Например, я хотел бы реализовать следующие коды для создания функции 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 не работал ни один.

1 Ответ

0 голосов
/ 07 июня 2019

В чем ошибка? Из документов AWS: Прямой доступ к сервису AWS Вы можете вызывать объекты интерфейса сервиса AWS напрямую через сгенерированные клиенты SDK.

Вы можете использовать учетные данные клиента, предоставленные AWSMobileClient: вызов AWSMobileClient.getInstance () и передача его в сервис клиент. Это позволит использовать краткосрочные учетные данные AWS от Cognito. Идентичность.

Для работы с объектами интерфейса службы IAM ваших пользователей Amazon Cognito роль должна иметь соответствующие разрешения для вызова запрошенного услуги.

Например, если вы использовали Amazon Simple Queue Service (SQS) в своем проекте Android, сначала добавьте aws-android-sdk-sqs: 2.11. + В ваш app / build.gradle и установите зависимости, выполнив команду Gradle Sync.

Затем импортируйте AmazonSQS в проект Android Studio и создайте клиент

Кроме того, какую ошибку вы получили в конце?

...