成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開發(fā)云API連接器的最佳實(shí)踐

譯文
云計(jì)算
各家云服務(wù)提供商,例如亞馬遜Web Services、微軟Azure、谷歌Compute Engine等,及其OpenStack平臺、vCloud、OnApp等都越來越多地實(shí)現(xiàn)了通過APIs或web services的可編程服務(wù)。為了調(diào)用這些APIs和web services,我們必然需要開發(fā)出一個(gè)連接器(connector)。現(xiàn)如今,我們已經(jīng)積累了對幾乎所有的云平臺或服務(wù)進(jìn)行API連接器的開發(fā)經(jīng)驗(yàn)。本博文旨在分享我們的經(jīng)驗(yàn),并提供一些開發(fā)web service連接器用以連接到云服務(wù)或平臺所需要遵循的最佳實(shí)踐。

【51CTO.com快譯】

各家云服務(wù)提供商,例如亞馬遜Web Services、微軟Azure、谷歌Compute Engine等,及其OpenStack平臺、vCloud、OnApp等都越來越多地實(shí)現(xiàn)了通過APIs或web services的可編程服務(wù)。為了調(diào)用這些APIs和web services,我們必然需要開發(fā)出一個(gè)連接器(connector)。現(xiàn)如今,我們已經(jīng)積累了對幾乎所有的云平臺或服務(wù)進(jìn)行API連接器的開發(fā)經(jīng)驗(yàn)。本博文旨在分享我們的經(jīng)驗(yàn),并提供一些開發(fā)web service連接器用以連接到云服務(wù)或平臺所需要遵循的***實(shí)踐。

為什么需要API連接器

如下是要用到API連接器的幾個(gè)原因:

1.發(fā)現(xiàn)云資源
2.管理資源
3.自動(dòng)化操作
4.協(xié)調(diào)資源
5.與工具和產(chǎn)品集成
6.報(bào)告總結(jié)資源及其利用

開發(fā)API連接器的步驟

下面是針對云平臺/服務(wù)開發(fā)出高效和實(shí)用的連接器所需的步驟順序:

1.理解API特性
2.分析云平臺/服務(wù)所提供的API支持
3.識別API的各種操作
4.驗(yàn)證API的各個(gè)端點(diǎn)
5.驗(yàn)證API的授權(quán)
6.檢查配額
7.分析云資源的定價(jià)
8.設(shè)計(jì)考慮API連接器

API特性

API的特性包括API的類型、認(rèn)證機(jī)制和請求/響應(yīng)的類型。

API類型

通常情況下,APIs是通過REST(即,表述性狀態(tài)傳遞 Representational State Transfer)或SOAP(即,簡單對象訪問協(xié)議 Simple Object Access Protocol)發(fā)布的。其中,REST正在成為標(biāo)準(zhǔn),并取代舊的SOAP APIs。這一點(diǎn)可以通過文末表格中的數(shù)據(jù)予以充分證明。

API認(rèn)證

每個(gè)云平臺都使用不同類型的認(rèn)證機(jī)制來訪問APIs,因此理解這些認(rèn)證機(jī)制是非常重要的。一些典型的例子會(huì)包括如下部分:

·基本認(rèn)證
·基于令牌的認(rèn)證
·SSL認(rèn)證
·多因素認(rèn)證

基本認(rèn)證

基本認(rèn)證使用的是以base64編碼的用戶名和密碼的經(jīng)典組合,并在HTTP頭部的授權(quán)中提供。

例子: Authorization:Base64(username:password)

請求:

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

響應(yīng):

<?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>

基于令牌的認(rèn)證(X-Auth-Token,Oauth令牌)

基于令牌的認(rèn)證提供了使用包含用戶身份信息的臨時(shí)令牌來進(jìn)行認(rèn)證。當(dāng)臨時(shí)令牌到期的時(shí)候,它需要被資源進(jìn)行刷新。內(nèi)部認(rèn)證處理器基于頭部所提供的令牌信息進(jìn)行驗(yàn)證。

Request:
Headers: Content-type : application/json
Method: POST
API: https://api.myapplication.com/user/accessToken

內(nèi)容:

{
userName:'my username',
password:'my password',
token_type:'mac'
}

響應(yīng):

{
“access_token”: “okKXxMWOEhnM78Rie02ZjWjP7eQqpp6V”,
“mac_key”:”vV6xEfVgQZv4ABJ6VZDHlQfCaqKgFZuN”,
“mac_algorithm”:”hmac-sha-1”,
“token-type”:”mac”,
“expires_in”:3600,
“refresh_token”:”nZSiH3L5K4febMlELguILucrWpjRud56”
}

SSL認(rèn)證

安全套接字層是一種標(biāo)準(zhǔn)的安全技術(shù),它在服務(wù)器和客戶機(jī),典型場景是web服務(wù)器(網(wǎng)站)與瀏覽器之間建立了一個(gè)加密的連接。SSL認(rèn)證需要將SSL證書上載到訂閱它的平臺之上。而API的端點(diǎn)則需要通過SSL證書來進(jìn)行身份認(rèn)證。

多因素認(rèn)證

多因素認(rèn)證(Multi-factor authentication MFA)在用戶名和密碼之上增加了一層保護(hù)。支持MFA的APIs需要把用戶名和密碼作為***因素;而把從MFA設(shè)備上獲取的認(rèn)證代碼作為第二個(gè)因素。這些多因素為API的端點(diǎn)提供了更高的安全性。

API響應(yīng)類型

在提供輸入和使用輸出的時(shí)候,請求和響應(yīng)類型的API需要被進(jìn)行查看。API的請求和響應(yīng)都是XML或JSON類型的,因此連接器需要根據(jù)它的接口需求來轉(zhuǎn)換其相應(yīng)的響應(yīng)。

API的支持

可以通過以下選項(xiàng)來開發(fā)云平臺/服務(wù)的API連接器。

·使用你所選用的編程語言,例如:Python、Java、.Net、Ruby、GO、Node.JS等來直接調(diào)用REST和SOAP的API。
·一些云平臺/服務(wù)提供各種針對API的軟件開發(fā)工具包(SDKs),以方便開發(fā)人員使用由平臺/服務(wù)所提供的可編程的SDKs,例如特定的Python、Java、.Net、Ruby等
·使用第三方的庫,例如基于他們支持的LibCloud(Python)、Fog (Ruby)、jCloud (Java)、Libretto (JavaScript)、pkgcloud (Node.JS)或是gophercloud (GO)。

下表顯示了一些針對各大領(lǐng)先的云服務(wù)提供商和平臺的API支持。

注意:這些云服務(wù)API的細(xì)節(jié)可以在谷歌表格(Google Sheets)中找到。而且它鼓勵(lì)服務(wù)提供商和其他的讀者去更新他們自己的各種云API端點(diǎn),從而為開發(fā)人員的提供更為方便的參考。

API的各種操作

通過瀏覽API文檔以識別你想要調(diào)用的操作,這樣有助于你去了解本平臺所支持的各種API操作。在開始通過API進(jìn)行調(diào)用之前,你***是通過管理門戶網(wǎng)站或是儀表盤界面來執(zhí)行各種操作,以便你能夠了解它是如何工作的。要調(diào)用API,你首先要做的是認(rèn)證,然后在執(zhí)行各種創(chuàng)建選項(xiàng)之前,你可以嘗試一些基本的讀取操作。

驗(yàn)證API的各個(gè)端點(diǎn)

API端點(diǎn)與云平臺管理的URL并不相同。一個(gè)API端點(diǎn)通常包括主機(jī)、端口和路徑。如果是REST API的話,它會(huì)包括一個(gè)訪問的密鑰和一個(gè)私鑰。可以運(yùn)用諸如POSTMAN、RESTClient等工具來為平臺或服務(wù)驗(yàn)證API各個(gè)端點(diǎn)的可訪問性。而對于一個(gè)基于令牌的認(rèn)證,我們則需要生成令牌,并將該令牌提供給RESTClient。

API的授權(quán)

在對API進(jìn)行認(rèn)證之后,我們需要了解云平臺或服務(wù)中的給定用戶的授權(quán)問題。例如,通過使用AWS身份和訪問管理(Identity and Access Management IAM),我們可能在成功認(rèn)證之后,也只能執(zhí)行那些被IAM所授權(quán)給我們的操作。

配額

云平臺/服務(wù)對于可由用戶帳戶調(diào)用的資源實(shí)施配額管理。因此你***是事先了解一下配額限制的機(jī)制。例如,AWS對單個(gè)賬戶的彈性IP地址(elastic IP)的分配就限制為5個(gè)。但是,這是可以通過提出請求來進(jìn)行增加的。而OpenStack的管理員則可以在用戶使用的每個(gè)項(xiàng)目中定義資源的限制。

分析云資源的定價(jià)

檢查云服務(wù)提供商的資源定價(jià)是非常重要的。由于云服務(wù)提供商是按每月、每小時(shí)或每分鐘進(jìn)行收費(fèi)的,因此在消費(fèi)前了解定價(jià)是很重要的,否則我們在收到賬單時(shí)肯定會(huì)有所“驚喜”的。同樣重要的是要詳細(xì)了解服務(wù)提供商所能提供的免費(fèi)層級,這也會(huì)讓我們避免那些所謂的“驚喜”。

設(shè)計(jì)考慮API連接器的開發(fā)

•如果你只為單個(gè)平臺開發(fā)一個(gè)連接器的話,使用該平臺所提供的SDKs乃是理想選擇。
•如果平臺并不提供所需語言的SDK,你可以用到諸如APIMatic、AWS API Gateway等工具,它們能夠?yàn)锳PI端點(diǎn)生成各種SDKs。在連接器的開發(fā)過程中,使用SDKs將會(huì)減少許多開發(fā)的工作量。
•如果你想開發(fā)跨多個(gè)云的連接器,你可以考慮使用第三方的SDKs,這將有助于加速你的開發(fā)速度。然而,如果你希望連接器是動(dòng)態(tài)的,而且它能夠隨著平臺或服務(wù)進(jìn)行迭代的話,***是使用平臺或服務(wù)所提供的SDK,因?yàn)榈谌絊DK對一些新版本的支持可能會(huì)需要一段滯后的時(shí)間。
•你需要理解由一些提供商和平臺所設(shè)置的API流量限制(即單個(gè)用戶在一段時(shí)間內(nèi)對API端點(diǎn)所產(chǎn)生的API請求的數(shù)量),因?yàn)樗鼘⑹俏覀兡軌蛘{(diào)用單個(gè)端點(diǎn)的一個(gè)給定閥值。
•對于一些異步的APIs(那些并非及時(shí)響應(yīng)的API),請使用PUSH來提供響應(yīng)或用POLL來接收。“Push”模式用到一個(gè)回調(diào)類型的端點(diǎn),當(dāng)它在可用時(shí)會(huì)發(fā)送一個(gè)響應(yīng)。而在“POLL”模式里,請求反復(fù)調(diào)用一個(gè)API來檢查其狀態(tài)的更新情況。當(dāng)你需要輪詢或重試API請求時(shí),我們建議使用一個(gè)指數(shù)型的回退算法(backoff algorithm)來計(jì)算API調(diào)用之間的休眠間隔(sleep interval)。而指數(shù)型回退算法背后的思想就是在各個(gè)連續(xù)錯(cuò)誤響應(yīng)的重試之間,使用遞增的等待時(shí)間。
•一些云服務(wù)提供商/平臺會(huì)為每個(gè)服務(wù)的調(diào)用發(fā)布不同的端點(diǎn)。因此我們建議你維護(hù)一個(gè)包含多個(gè)API端點(diǎn)的服務(wù)目錄,以確保你在使用過程中能調(diào)用到那些正確的服務(wù)。
•有時(shí)各個(gè)端點(diǎn)會(huì)根據(jù)云平臺或服務(wù)的子賬戶的不同而有所區(qū)別。因此你需要確保在調(diào)用之前,各個(gè)端點(diǎn)能夠根據(jù)不同的需求被“串聯(lián)”起來。

希望上述***實(shí)踐能對你有所幫助,能讓你愉快的開發(fā)出API連接器。

【原標(biāo)題】Best Practices for Developing API Connectors for Clouds (作者: Sabapathy Arumugam)
原文鏈接:https://dzone.com/articles/best-practices-for-developing-connectors-to-cloud

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:關(guān)崇 來源: 云計(jì)算
相關(guān)推薦

2012-12-13 09:47:50

2016-12-27 08:49:55

API設(shè)計(jì)策略

2013-06-13 09:21:31

RESTful APIRESTfulAPI

2024-01-05 00:33:23

2016-01-06 11:00:18

2013-12-17 14:07:37

2011-12-25 20:50:05

云計(jì)算Hadoop

2017-03-13 14:09:19

RESTful API實(shí)踐

2023-11-07 07:08:57

2016-01-29 10:26:47

云端云遷移

2013-09-18 08:27:52

混合云混合云災(zāi)難恢復(fù)

2013-09-22 09:43:57

混合云災(zāi)難恢復(fù)

2018-12-04 09:00:00

API安全性令牌

2013-06-06 09:33:24

云配置云服務(wù)配置云配置實(shí)踐

2023-03-10 15:18:55

光纖

2014-04-18 10:58:44

AndroidAPI實(shí)踐

2010-10-28 09:05:42

SilverlightXAML

2013-06-18 09:17:16

云部署IT云安全

2023-04-14 12:23:15

2013-06-18 09:24:36

云部署實(shí)踐云計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: www.亚洲精品 | 国产免费一级片 | 一区二区三区在线播放视频 | 91精品导航 | 99亚洲精品| 欧美网站一区 | 羞羞的视频在线观看 | 精品国产乱码久久久久久1区2区 | 日韩在线免费 | 国产一区二区在线观看视频 | 激情小说综合网 | 在线观看免费av网站 | 国产精品视频999 | 日日摸天天添天天添破 | 亚洲一区二区在线播放 | 日本精品视频一区二区 | 久久高清 | 久久亚洲国产精品日日av夜夜 | 成人高清在线视频 | 一级黄色日本片 | 在线视频日韩精品 | 欧美日韩亚洲成人 | 中文字幕第一页在线 | 婷婷成人在线 | 国产精品免费一区二区三区四区 | 成人激情视频免费在线观看 | 综合一区二区三区 | 国产成人精品一区二区 | 欧美影院久久 | 色综合99 | 九九国产在线观看 | av天天干 | 国产精品观看 | 亚洲精品一区中文字幕乱码 | 一区二区三区在线免费观看 | 国产精品美女久久久久久不卡 | 免费成人高清在线视频 | 国产一区二区三区久久 | 国产精品美女久久久久久久网站 | 久久日韩精品一区二区三区 | 成人精品在线视频 |