--- tags: notes --- # Azure Functions 網路管理 下圖來自 [Azure Functions networking options](https://docs.microsoft.com/en-us/azure/azure-functions/functions-networking-options) 展示不同方案中可以做的網路設定。  ## 限制可以直接存取 Function App 的 IP 在 **Networking** -> **Access Restriction** 設定 IP 及其子網路存取 Function App 的規則。每條規則的 Priority 的值越小,會越先被採納。  ## 使用 VNet 與 NAT Gateway 限制 outbound request 的 IP Azure Functions 的 App Service Plan 和 Premium Plan 允許開發者使用 VNet 來配置對外 IP,如此一來就方便我們去設定第三方服務的 Allow IP List。 首先登入 Azure 並創建一個測試用的 Resource Group。 ``` > az login > az group create --name Jack-Test --location japaneast ``` 新增一個 Storage Account。 ``` > az storage account create --name jack1 --location japaneast --resource-group Jack-Test --sku Standard_LRS ``` 接著參考 [az functionapp plan](https://docs.microsoft.com/en-us/cli/azure/functionapp/plan?view=azure-cli-latest) 新增一個最便宜的 App Service (D1) 方案、用 Windows 系統、命名為 Plan1。 ``` > az functionapp plan create --resource-group Jack-Test --name Plan1 --min-instances 1 --sku D1 ``` 創建一個 Function App 並套用剛剛新增的 Plan1。 ``` > az functionapp create --resource-group Jack-Test --runtime dotnet --functions-version 4 --name jack-linux --storage-account jack1 --plan Plan1 ``` 在 Azure Portal 新增一個 VNet。  啟用 jack-linux 的 VNet Integration,將剛剛創建的 VNet 啟用。  接著新增一個 Public IP Address。  新增一個 NAT Gateway,將剛剛的 Function App 所用到的 Subnet 加進去。  將 Function 推送到 Azure 上。 ``` > func azure functionapp publish jack-nat-function ``` 最後在 **Configuration** 設定環境變數 `WEBSITE_VNET_ROUTE_ALL` 的值為 `1`,如此一來 Function App 的 outbound request 就會固定使用剛剛創建的 Public IP Address。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up