使用 jclouds API 创建 aws-ec2 实例

Posted

技术标签:

【中文标题】使用 jclouds API 创建 aws-ec2 实例【英文标题】:Creating an aws-ec2 instance using jclouds API 【发布时间】:2014-05-29 10:01:45 【问题描述】:

我正在尝试使用 jclouds 创建一个 aws-ec2 实例。在执行代码时,我得到了下面的异常

“java.util.NoSuchElementException:键 [aws-ec2] 不在提供程序或 API 列表中:”。

我该如何解决这个异常?

【问题讨论】:

这为我解决了这个问题:***.com/a/33639683/470341 【参考方案1】:

您需要确保您的类路径中有 aws-ec2-X.X.X.jar。要获取 jar 文件,您可以使用 Maven pom.xml 并执行 mvn dependency:copy-dependencies -DoutputDirectory="./lib"

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <properties>
    <jclouds.version>1.7.1</jclouds.version>
  </properties>
  <name>Cloud Portability with Multi-Cloud Toolkits Workshop</name>
  <description>https://github.com/rackerlabs/multi-cloud-workshop/</description>
  <groupId>multi.cloud.workshop</groupId>
  <artifactId>multi-cloud-workshop</artifactId>
  <version>1.0</version>
  <dependencies>
    <!-- jclouds Dependencies -->
    <dependency>
      <groupId>org.apache.jclouds.driver</groupId>
      <artifactId>jclouds-slf4j</artifactId>
      <version>$jclouds.version</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.driver</groupId>
      <artifactId>jclouds-sshj</artifactId>
      <version>$jclouds.version</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.0.13</version>
    </dependency>
    <!-- Cloud Provider Dependencies -->
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>aws-ec2</artifactId>
      <version>$jclouds.version</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>hpcloud-compute</artifactId>
      <version>$jclouds.version</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.provider</groupId>
      <artifactId>rackspace-cloudservers-us</artifactId>
      <version>$jclouds.version</version>
    </dependency>
  </dependencies>
</project>

【讨论】:

以上是关于使用 jclouds API 创建 aws-ec2 实例的主要内容,如果未能解决你的问题,请参考以下文章

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

jclouds 支持较新的 vCloud API

Apache jclouds api 是不是支持 Miscrosoft Azure SAS

如何使用 Apache ***lyn 和 Chef 安装 Jenkins

在 Spring MVC 应用程序中使用 jclouds 创建 BlobContext 时出错

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