使用JClouds(最高版本1.6.x),可以使用以下习惯用法访问本机EC2提供程序API:

AWSEC2Client ec2Client = AWSEC2Client.class.cast(context.getProviderSpecificContext().getApi());


实际上,我是从文档页面复制的:http://jclouds.apache.org/guides/aws/

事实证明,在最新版本中,此方法已被删除。是否存在访问提供商特定功能(安全组,密钥对等)的替代方法/方式?

最佳答案

从ComputeServiceContext展开API

ComputeServiceContext context = ContextBuilder.newBuilder("aws-ec2")
    .credentials("accessKey", "secretAccessKey")
    .buildView(ComputeServiceContext.class);
ComputeService computeService = context.getComputeService();
AWSEC2Api ec2Api = context.unwrapApi(AWSEC2Api.class);


直接构建API

AWSEC2Api ec2Api = ContextBuilder.newBuilder("aws-ec2")
    .credentials("accessKey", "secretAccessKey")
    .buildApi(AWSEC2Api.class);

10-08 01:56