Я довольно новичок в AWS, и я хотел бы использовать службу в своем Android приложении. К сожалению, у этой службы, AWS AppConfig, еще нет мобильного SDK, поэтому я пытался отправить запрос GET на GetConfiguration API с помощью okhttp.
Чтобы подписать запрос , я использую AWS4Signer из AWS Android SDK. Я предоставляю учетные данные с реализацией AWSCredentials .
com.amazonaws.Request requestAws = new DefaultRequest(amazonWebServiceRequest, serviceName);
URI uri = URI.create("https://appconfig.us-west-2.amazonaws.com/applications/[applicationID]/environments/[environmentID]/configurations/[configurationID]?client_id=ClientId");
requestAws.setEndpoint(uri);
requestAws.setHttpMethod(HttpMethodName.GET);
AWS4Signer signer = new AWS4Signer();
signer.setServiceName(serviceName);
signer.setRegionName(Regions.US_WEST_2.getName());
signer.sign(requestAws, credentials);
// get relevant authorization headers from requestAws and insert them in the okhttp request as headers
Когда я отправляю запрос в GetConfiguration, происходит сбой при
The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
Я попытался отправить запрос к GetDeploymentStrategy , и это было успешно, так что я не думаю, что это мои учетные данные или как я прикрепляю их к запросу.
Я думаю, что проблема в том, как я присоединяю параметры запроса, так как API, которые не требуют дополнительных параметров запроса, успешно (GetDeploymentStrategy и GetApplication), в то время как GetConfiguration, которая требует client_id
, не работает.
Мой вопрос: есть ли примеры того, как обрабатывать параметры запроса с подписывающим лицом и запросом?
Большое спасибо.