簡體   English   中英

AWS API Gateway生成的SDK請求錯誤

[英]AWS API Gateway generated sdk request errors

我已經使用AWS API Gateway創建了一個API。 API中使用的所有方法都需要IAM身份驗證。

我嘗試在本地測試API,但遇到以下異常:

myapi.model.MyAPIException: 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.
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1632)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1304)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1058)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
    at com.amazonaws.client.ClientHandlerImpl.doInvoke(ClientHandlerImpl.java:204)
    at com.amazonaws.client.ClientHandlerImpl.invoke(ClientHandlerImpl.java:185)
    at com.amazonaws.client.ClientHandlerImpl.execute(ClientHandlerImpl.java:93)
    at com.amazonaws.opensdk.protect.client.SdkClientHandler.execute(SdkClientHandler.java:42)
    at myapi.MyAPIClient.myMethod(MyAPIClient.java:101)
    ...

為了建立請求,我使用了以下代碼:

public static void main(String[] args) {

    MyAPI client = MyAPI .builder()
                .apiKey(myApiKey)
                .iamCredentials(DefaultAWSCredentialsProviderChain.getInstance())
                .build();

    MyMethodRequest myMethodRequest = new MyMethodRequest().arg(methodArg);

    MyMethodResult result = client.myMethod(myMethodRequest);
}

DefaultAWSCredentialsProviderChain加載的憑證是我的憑證,該憑證具有對我所有AWS服務的管理員訪問權限,因此我不確定出什么問題。

任何幫助表示贊賞。

問題結束了,為API輸入了錯誤的apiKey 當我將其更改為由API Gateway生成的有效API密鑰時,一切正常。

另外,您必須確保API密鑰已鏈接到有效的使用計划,否則將無法使用

通常上課更像:

package ...;

public class ListingMusic implements 
RequestHandler<HashMap<String, Object>, String> {

    @Override
    public String handleRequest(HashMap<String, Object> input, Context context) {
        ...
    }

}

可能是您的lambda無法啟動

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM