

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Lambda 函數、Amazon VPC 和無伺服器架構產生靜態傳出 IP 地址
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture"></a>

*Thomas Scott，Amazon Web Services*

## 摘要
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-summary"></a>

此模式說明如何使用無伺服器架構，在 Amazon Web Services (AWS) 雲端中產生靜態傳出 IP 地址。如果組織想要使用安全檔案傳輸通訊協定 (SFTP) 將檔案傳送至不同的商業實體，則可以從此方法中受益。這表示商業實體必須能夠存取允許檔案通過其防火牆的 IP 地址。 

模式的方法可協助您建立使用[彈性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)做為傳出 IP 地址的 AWS Lambda 函數。透過遵循此模式中的步驟，您可以建立 Lambda 函數和虛擬私有雲端 (VPC)，透過具有靜態 IP 地址的網際網路閘道路由傳出流量。若要使用靜態 IP 地址，請將 Lambda 函數連接至 VPC 及其子網路。 

## 先決條件和限制
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-prereqs"></a>

**先決條件**
+ 作用中的 AWS 帳戶 
+ 建立和部署 Lambda 函數，以及建立 VPC 及其子網路的 AWS Identity and Access Management (IAM) 許可。如需詳細資訊，請參閱 AWS Lambda 文件中的[執行角色和使用者許可](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-permissions)。
+ 如果您打算使用基礎設施做為程式碼 (IaC) 來實作此模式的方法，則需要整合的開發環境 (IDE)，例如 AWS Cloud9。如需詳細資訊，請參閱 [ AWS Cloud9 文件中的什麼是 AWS Cloud9？](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html)。 AWS Cloud9 

## Architecture
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-architecture"></a>

下圖顯示此模式的無伺服器架構。

![\[AWS 雲端 VPC architecture with two availability zones, public and private subnets, NAT gateways, and a Lambda function.\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/eb1d0b05-df33-45ae-b27e-36090055b300/images/c15cc6da-ce4e-4ea0-9feb-de1c845d3ce8.png)


該圖顯示以下工作流程：

1. 傳出流量會在 `NAT gateway 1`中離開`Public subnet 1`。

1. 傳出流量會在 `NAT gateway 2`中離開`Public subnet 2`。

1. Lambda 函數可以在 `Private subnet 1`或 中執行`Private subnet 2`。

1. `Private subnet 1` 和 將流量`Private subnet 2`路由到公有子網路中的 NAT 閘道。

1. NAT 閘道會從公有子網路將傳出流量傳送至網際網路閘道。

1. 傳出資料會從網際網路閘道傳輸到外部伺服器。



**技術堆疊  **
+ Lambda
+ Amazon Virtual Private Cloud (Amazon VPC)

 

**自動化和擴展**

您可以在不同的可用區域中使用兩個公有和兩個私有子網路，以確保高可用性 (HA)。即使一個可用區域無法使用，模式的解決方案仍會繼續運作。

## 工具
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-tools"></a>
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) – AWS Lambda 是一種運算服務，支援執行程式碼，無需佈建或管理伺服器。Lambda 只有在需要時才會執行程式碼，可自動從每天數項請求擴展成每秒數千項請求。只需為使用的運算時間支付費用，一旦未執行程式碼，就會停止計費。
+ [Amazon VPC](https://docs.aws.amazon.com/vpc/) – Amazon Virtual Private Cloud (Amazon VPC) 會佈建 AWS 雲端的邏輯隔離區段，您可以在已定義的虛擬網路中啟動 AWS 資源。這個虛擬網路與您在資料中心中操作的傳統網路非常相似，且具備使用 AWS 可擴展基礎設施的優勢。

## 史詩
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-epics"></a>

### 建立新 VPC
<a name="create-a-new-vpc"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立新 VPC | 登入 AWS 管理主控台，開啟 Amazon VPC 主控台，然後建立名為 `Lambda VPC` 且`10.0.0.0/25`** **具有 IPv4 CIDR 範圍的 VPC。如需建立 VPC 的詳細資訊，請參閱 [Amazon VPC 文件](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html#getting-started-create-vpc)中的 Amazon VPC 入門。  | AWS 管理員 | 

### 建立兩個公有子網路
<a name="create-two-public-subnets"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立第一個公有子網路。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 
| 建立第二個公有子網路。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 

### 建立兩個私有子網路
<a name="create-two-private-subnets"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立第一個私有子網路。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 
| 建立第二個私有子網路。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 

### 為您的 NAT 閘道建立兩個彈性 IP 地址
<a name="create-two-elastic-ip-addresses-for-your-nat-gateways"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
|  建立第一個彈性 IP 地址。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html)此彈性 IP 地址用於您的第一個 NAT 閘道。  | AWS 管理員 | 
| 建立第二個彈性 IP 地址。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html)此彈性 IP 地址用於您的第二個 NAT 閘道。 | AWS 管理員 | 

### 建立網際網路閘道
<a name="create-an-internet-gateway"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立網際網路閘道 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 
| 將網際網路閘道連接至 VPC。 | 選取您剛建立的網際網路閘道，然後選擇 **Actions, Attach to VPC (動作、連接到 VPC)**。 | AWS 管理員 | 

### 建立兩個 NAT 閘道
<a name="create-two-nat-gateways"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立第一個 NAT 閘道。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 
| 建立第二個 NAT 閘道。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 

### 為您的公有和私有子網路建立路由表
<a name="create-route-tables-for-your-public-and-private-subnets"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立公有-1 子網路的路由表。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 
| 建立公有-二子網路的路由表。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 
| 建立私有子網路的路由表。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 
| 建立私有-兩個子網路的路由表。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 

### 建立 Lambda 函數，將其新增至 VPC，然後測試解決方案
<a name="create-the-lambda-function-add-it-to-the-vpc-and-test-the-solution"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立新 Lambda 函數。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 
| 將 Lambda 函數新增至 VPC。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 
| 編寫程式碼以呼叫外部服務。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 管理員 | 

## 相關資源
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-resources"></a>
+ [設定 Lambda 函式以存取 VPC 中的資源](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html)