我們宣布
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon EC2 中使用彈性 IP 地址
這個 Node.js 程式碼範例會說明:
如何擷取彈性 IP 地址的說明。
如何配置並發佈彈性 IP 地址。
如何將彈性 IP 地址與 Amazon EC2 執行個體建立關聯。
使用案例
彈性 IP 地址是針對動態雲端運算設計的靜態 IP 地址。彈性 IP 地址與您的 AWS 帳戶相關聯。這是一個可從網際網路存取的公有 IP 地址。如果您的執行個體沒有公有 IP 地址,則可將彈性 IP 地址與執行個體建立關聯,進而啟用與網際網路通訊的功能。
在此範例中,您可以使用一系列 Node.js 模組來執行數個涉及彈性 IP 地址的 Amazon EC2 作業。Node.js 模組使用開發套件 JavaScript 來管理彈性 IP 地址,方法是使用 Amazon EC2 用戶端類別的下列方法:
如需 Amazon EC2 中彈性 IP 地址的詳細資訊,請參閱 Amazon EC2 使用者指南中的彈性 IP 地址或 Amazon EC2 使用者指南中的彈性 IP 地址。
先決條件任務
若要設定和執行此範例,請先完成這些任務:
安裝 Node.js。如需安裝 Node.js 的詳細資訊,請參閱 Node.js 網站
。 透過使用者登入資料建立共用組態檔。如需提供共用登入資料檔案的詳細資訊,請參閱 從共用登入資料檔案中在 Node.js 中載入登入資料。
創建一個 Amazon EC2 實例。如需建立 Amazon EC2 執行個體的詳細資訊,請參閱 Amazon EC2 使用者指南中的 Amazon EC2 執行個體或 Amazon EC2 使用者指南中的 Amazon EC2 執行個體。
描述彈性 IP 地址
以檔名 ec2_describeaddresses.js
建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。要訪問 Amazon EC2,請創建一個AWS.EC2
服務對象。建立要以參數形式傳遞的 JSON 物件,篩選您的 VPC 中所傳回的地址。若要擷取所有彈性 IP 地址的描述,可省略參數 JSON 的篩選條件。然後調describeAddresses
用 Amazon EC2 服務對象的方法。
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });
// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });
var params = {
Filters: [{ Name: "domain", Values: ["vpc"] }],
};
// Retrieve Elastic IP address descriptions
ec2.describeAddresses(params, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", JSON.stringify(data.Addresses));
}
});
若要執行範例,請在命令列中輸入以下內容。
node ec2_describeaddresses.js
您可以在這裡
配置彈性 IP 地址並將其與 Amazon EC2 執行個體建立關聯
以檔名 ec2_allocateaddress.js
建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。要訪問 Amazon EC2,請創建一個AWS.EC2
服務對象。針對用於配置彈性 IP 地址的參數建立 JSON 物件,其在這種情況下會指定 Domain
為 VPC。調allocateAddress
用 Amazon EC2 服務對象的方法。
如果呼叫成功,傳給回呼函數的 data
參數便會包含 AllocationId
屬性,可識別配置的彈性 IP 地址。
為用於將彈性 IP 地址與 Amazon EC2 執行個體建立關聯的參數建立 JSON 物件,包括AllocationId
來自新分配的地址和 Amazon EC2 執行個體InstanceId
的地址。然後調associateAddresses
用 Amazon EC2 服務對象的方法。
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });
// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });
var paramsAllocateAddress = {
Domain: "vpc",
};
// Allocate the Elastic IP address
ec2.allocateAddress(paramsAllocateAddress, function (err, data) {
if (err) {
console.log("Address Not Allocated", err);
} else {
console.log("Address allocated:", data.AllocationId);
var paramsAssociateAddress = {
AllocationId: data.AllocationId,
InstanceId: "INSTANCE_ID",
};
// Associate the new Elastic IP address with an EC2 instance
ec2.associateAddress(paramsAssociateAddress, function (err, data) {
if (err) {
console.log("Address Not Associated", err);
} else {
console.log("Address associated:", data.AssociationId);
}
});
}
});
若要執行範例,請在命令列中輸入以下內容。
node ec2_allocateaddress.js
您可以在這裡
釋放彈性 IP 地址
以檔名 ec2_releaseaddress.js
建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。要訪問 Amazon EC2,請創建一個AWS.EC2
服務對象。為發佈彈性 IP 地址所用的參數建立 JSON 物件,其在這種情況下將 AllocationId
指定為彈性 IP 地址。釋放彈性 IP 地址也會將其與任何 Amazon EC2 執行個體斷開關聯。調releaseAddress
用 Amazon EC2 服務對象的方法。
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });
// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });
var paramsReleaseAddress = {
AllocationId: "ALLOCATION_ID",
};
// Disassociate the Elastic IP address from EC2 instance
ec2.releaseAddress(paramsReleaseAddress, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Address released");
}
});
若要執行範例,請在命令列中輸入以下內容。
node ec2_releaseaddress.js
您可以在這裡