Amazon Web Services,Microsoft Azure,Google Compute Engine等云服务提供商以及OpenStack,vCloud,OnApp等平台经过API或Web服务正变得日益可编程。若要使用这些API / Web服务,我们需要开发一个连接器。我们有开发当今几乎所有云平台或服务的API连接器的经验。本博客旨在分享我们的经验,并提供开发云服务或平台Web服务连接器所需的一些最佳练习。
API连接器是必需的,原因如下:
以下是云平台/服务开发高效和有效连接器的一系列步骤
API特性包括API类型,认证机制和请求/响应类型。
通常,API通过REST(Representational State Transfer)或SOAP(简单对象访问协议)展现。REST正在成为标准,取代了一些旧的SOAP API。根据表1中的数据,这一点非常明显。
每个云平台都使用不同类型的认证机制来访问API,了解这些认证机制很重要。典型的例子是:
基本身份验证使用在base64中编码的用户名和密码的经典组合,这是在授权HTTP开头中提供的。
示例: 授权:Base64(用户名:密码)
请求:
Headers: Content-type: application/xml
Authorization: Basic dG9ib3RyYXM6cTE=
Method: GET
API: http://api.xyzcloud.com:4465/paci/v1.0/ve
IPaddress | host - api.xyzcloud.com
PortNo – 4465
Path – paci/v1.0/ve
响应:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ve-list>
<ve-info subscription-id='100001' name='web' state='created' description='Web Server'/>
</ve-list>
基于令牌的认证提供基于用户认证的临时令牌。资源到期时需要刷新临时令牌。内部认证处理程序根据标题中提供的标记进行认证。
请求:
Headers: Content-type : application/json
Method: POST
API: https://api.myapplication.com/user/accessToken
框架:
{
userName:'my username',
password:'my password',
token_type:'mac'
}
响应:
{
“access_token”: “okKXxMWOEhnM78Rie02ZjWjP7eQqpp6V”,
“mac_key”:”vV6xEfVgQZv4ABJ6VZDHlQfCaqKgFZuN”,
“mac_algorithm”:”hmac-sha-1”,
“token-type”:”mac”,
“expires_in”:3600,
“refresh_token”:”nZSiH3L5K4febMlELguILucrWpjRud56”
}
安全套接字层是一种标准的安全技术,用于在服务器和客户端之间建立加密链接 - 通常是网络服务器(网站)和浏览器。SSL认证需要在订阅下将SSL证书上传到平台。API端点需要通过SSL证书进行认证。
多重身份验证(MFA)在用户名和密码之上加了一层额外的保护。MFA支持的API需要第一因素的用户名和密码以及来自MFA设备的验证码作为第二因素。这些多重因素为API端点提供了更高的安全性。
API的请求和响应类型需要考虑输入和输出的消耗。API请求和响应可以是XML或JSON。连接器需要根据接口要求转换响应
云平台/服务的API连接器可以通过以下选项进行开发
下表显示了一些领先的云服务提供商和平台的API支持。
注意: Google表格中提供了这些 Cloud Service API的详细信息。鼓励服务提供商和其他读者更新其云端的API端点,以便作为开发人员的简单参考。
通过API文档了解您的平台支持的API操作,并确定您想要使用的操作。最好通过管理门户或面板来执行操作,以便在开始使用API之前了解它的工作原理。您需要做的第一件事是使用API进行身份验证,然后您可以在执行创建选项之前尝试基本的读取操作。
API端点与云平台管理网址不同。API端点通常包括主机,端口和路径。如果它是一个REST API,那么它包括一个访问密钥和一个普通密钥。可以通过使用POSTMAN,RESTClient等工具验证平台或服务的API端点进行访问。对于基于标记的身份验证,我们需要生成令牌并在RESTClient中提供令牌。
在API验证之后,我们需要知道云平台或服务中给定用户的授权。例如,使用AWS Identity and Access Management(IAM)时,我们可能已经成功通过身份验证,但是我们只能执行我们在IAM中授权的操作。
云平台/服务可通过用户的帐户使用的资源增加限额。最好先了解配额限制。例如,AWS将帐户弹性IP的分配限制为5。但是,这可以通过提出请求来增加。OpenStack管理员可以定义用户使用的每个项目中资源的限制。
云服务提供商检查资源定价是非常重要的。云服务提供商会每月,每小时或每分钟收取资源。消费前了解定价非常重要,否则我们的账单会有意外情况。详细地了解服务提供商提供的免费服务也是非常重要的,这样我们才没有任何意外。
希望这可以帮助你们。愉快地开发API连接器...