如何使用 Jclouds 1.7 访问本机提供程序 API

Posted

技术标签:

【中文标题】如何使用 Jclouds 1.7 访问本机提供程序 API【英文标题】:How access native provider API with Jclouds 1.7 【发布时间】:2014-05-27 11:11:54 【问题描述】:

使用 JClouds,最高版本 1.6.x 可以通过使用以下惯用语来访问本机 EC2 提供程序 API:

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

其实我是从文档页面复制过来的:http://jclouds.apache.org/guides/aws/

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

【问题讨论】:

【参考方案1】:

从 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);

【讨论】:

以上是关于如何使用 Jclouds 1.7 访问本机提供程序 API的主要内容,如果未能解决你的问题,请参考以下文章

通过 jclouds 使用 AWS (S3) - 如何承担角色

如何使用 Apache jclouds 访问 HP Helion

如何在 jclouds 中启用 s3 路径样式访问

创建 JClouds SwiftApi 时出错:无法实例化提供程序 org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata

使用 jclouds API 创建 aws-ec2 实例

如何通过 Clojure 使用 JClouds 和 Rackspace 启用 CDN?