ubuntu ec2实例中的aws SDK



我正在尝试构建一个服务,该服务采用包含姓名,id,联系信息等的webhook,并使用webhook在aws api网关中创建api密钥。它应该在ubuntu ec2实例中运行。我遇到的问题是,当程序接收到webhook并即将执行时,它会变得空闲,好像它正在等待更多的输入。我做了远程调试来解决这个问题。当代码在我的本地计算机上运行时,它按预期工作。

方法调用从Main类,其中代码不继续从:generator.createAPIKey(util.getIdFromPayload(payload), "created by the webhook");

生成器类中调用的方法:

public void createAPIKey(String name, String descritpion) {
setKeyValue();
CreateApiKeyRequest apiKeyRequest = CreateApiKeyRequest.builder()
.name(name)
.description(descritpion)
.enabled(true)
.value(keyValue)
.generateDistinctId(true)
.build();
response = apigateway.createApiKey(apiKeyRequest);
}

响应用于传递useageplan(它永远不会到达)

public void assingUsagePlan(UsagePlan usagePlan) {
CreateUsagePlanKeyRequest request = CreateUsagePlanKeyRequest.builder()
.usagePlanId(usagePlan.getPlanId())
.keyId(response.id())
.keyType("API_KEY")
.build();
apigateway.createUsagePlanKey(request);
}

我已经将。aws文件夹上传到包含配置和凭证文件的实例中。

pom.xml文件中的代码片段

<dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>${aws.java.sdk.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>appsync</artifactId>
<version>2.20.18</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.12.420</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>apigateway</artifactId>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-api-gateway</artifactId>
<version>1.12.405</version>
</dependency>

如果感兴趣的话,下面是获取id的方式:

public String getIdFromPayload(String payload){
JSONObject id = createJsonObj(payload);
return id.getString("id");
}

到目前为止,我已经尝试混淆凭证,因为这可能是一个问题,但到目前为止还没有运气。程序最终应该做的是使用webhook id,并生成一个api密钥,并看到它出现在使用aws sdk与webhook一起传递的useageplan下。

更新:EC2没有访问API网关所需的权限。这可以解决类似的问题

EC2实例没有访问API网关的权限。

最新更新