Aws lambda AWS Java-从lambda扮演角色以调用API网关

Aws lambda AWS Java-从lambda扮演角色以调用API网关,aws-lambda,aws-api-gateway,assume-role,Aws Lambda,Aws Api Gateway,Assume Role,我如何从lambda扮演角色,使用java SDK调用API网关我假设您指的是API网关生成的java SDK。客户端生成器有一个方法public void setIamCredentials(AWSCredentialsProvider iamCredentials)。您可以向该方法传递一个AWSStaticCredentialsProvider,其生成如下: AWSSecurityTokenService client = AWSSecurityTokenServiceClientBuild

我如何从lambda扮演角色,使用java SDK调用API网关我假设您指的是API网关生成的java SDK。客户端生成器有一个方法
public void setIamCredentials(AWSCredentialsProvider iamCredentials)
。您可以向该方法传递一个AWSStaticCredentialsProvider,其生成如下:

AWSSecurityTokenService client = AWSSecurityTokenServiceClientBuilder.standard().build();
AssumeRoleRequest request = new AssumeRoleRequest().withRoleArn(iamRole)
            .withRoleSessionName(yourRoleName);

AssumeRoleResult response = client.assumeRole(request);

return new AWSStaticCredentialsProvider(
            new BasicSessionCredentials(
                    response.getCredentials().getAccessKeyId(),
                    response.getCredentials().getSecretAccessKey(),
                    response.getCredentials().getSessionToken()));

请记住,您需要为允许角色访问API网关的角色设置IAM策略:

我没有使用生成的sdk。我没有访问aws帐户以生成API的权限。