View a markdown version of this page

為 VPC 設定 Amazon Bedrock AgentCore 執行期和工具 - Amazon Bedrock AgentCore

為 VPC 設定 Amazon Bedrock AgentCore 執行期和工具

您可以設定 Amazon Bedrock AgentCore 執行期和內建工具 (程式碼解譯器和瀏覽器工具) 來連線至 Amazon Virtual Private Cloud (VPC) 中的資源。透過設定 VPC 連線,您可以安全地存取私有資源,例如 VPC 內的資料庫、內部 APIs 和服務。

Amazon Bedrock AgentCore 執行期和工具的 VPC 連線能力

為了讓 Amazon Bedrock AgentCore 執行期和內建工具安全地存取私有 VPC 中的資源,AgentCore 提供 VPC 連線功能。此功能可讓您的執行時間和工具:

  • 連線到私有資源,而不將其公開至網際網路

  • 在組織的網路邊界內維持安全通訊

  • 存取企業資料存放區和內部服務,同時保留安全性

當您為 Amazon Bedrock AgentCore 執行期和工具設定 VPC 連線時:

  • Amazon Bedrock 會使用服務連結角色在您的 VPC 中建立彈性網路介面 (ENIs) AWSServiceRoleForBedrockAgentCoreNetwork

  • 這些 ENIs可讓您的 Amazon Bedrock AgentCore 執行期和工具安全地與 VPC 中的資源通訊

  • 每個 ENI 都會從您指定的子網路指派一個私有 IP 地址

  • 連接到 ENIs的安全群組會控制您的執行時間和工具可以與哪些資源通訊

注意

ENIs是跨使用相同子網路和安全群組組態的代理程式共用的資源。當您刪除代理程式時,相關聯的 ENI 可能會在 VPC 中保留長達 8 小時,然後再自動移除。

注意

VPC 連線會影響來自 AgentCore 服務的傳入和傳出網路流量。當您在 AWS VPC 中託管應用程式時,您可以將 AgentCore VPC 端點新增至 VPC,以建立與 AgentCore 執行期和 AgentCore Gateway APIs私有連線。這可透過 VPC PrivateLink 傳入連線啟用安全 API 呼叫,無需網際網路周遊。

先決條件

設定 Amazon Bedrock AgentCore 執行期和 VPC 存取工具之前,請確定您有:

  • Amazon VPC,具有適合您執行時間和工具需求的子網路。例如,若要將子網路設定為具有網際網路存取,請參閱網際網路存取考量

  • 位於您所在區域支援可用區域的子網路。如需有關支援的可用區域的資訊,請參閱支援的可用區域

  • 在 VPC 中為執行時間和工具存取模式定義的適當安全群組。例如,若要設定安全群組以連線至 Amazon RDS,請參閱範例:連線至 Amazon RDS 資料庫

  • 建立和管理服務連結角色所需的 IAM 許可 (已包含在 AWS 受管政策 BedrockAgentCoreFullAccess 中)。如需必要許可的相關資訊,請參閱 IAM 許可

  • 如果您的 VPC 無法存取網際網路,則為必要的 VPC 端點。例如,若要設定 VPC 端點,請參閱 VPC 端點組態

  • 了解您的執行時間和工具網路需求 (資料庫、APIs、Web 資源)。如果您需要使用需要網際網路存取的瀏覽器工具,則 VPC 應該可以透過 NAT Gateway 進行網際網路存取。例如,請參閱安全群組考量

重要

AgentCore 會在您的帳戶中建立具有私有 IP 地址的網路界面。使用公有子網路不提供網際網路連線。若要啟用網際網路存取,請將其放在具有 NAT 閘道路由的私有子網路中。

支援的可用區域

AgentCore 在每個支援區域內的特定可用區域中支援 VPC 連線。為 Amazon Bedrock AgentCore 執行期和內建工具設定子網路時,請確定子網路位於您所在區域的支援可用區域中。

下表顯示每個區域的支援可用區域 IDs:

區域 區域代碼 支援的可用區域

美國東部 (維吉尼亞北部)

us-east-1

use1-az1 use1-az2 use1-az4

美國東部 (俄亥俄)

us-east-2

use2-az1 use2-az2 use2-az3

美國西部 (奧勒岡)

us-west-2

usw2-az1 usw2-az2 usw2-az3

亞太地區 (馬來西亞)

ap-southeast-5

apse5-az1 apse5-az2 apse5-az3

亞太區域 (孟買)

ap-south-1

aps1-az1 aps1-az2 aps1-az3

亞太區域 (首爾)

ap-northeast-2

apne2-az1 apne2-az2 apne2-az3

亞太區域 (新加坡)

ap-southeast-1

apse1-az1 apse1-az2 apse1-az3

亞太地區 (悉尼)

ap-southeast-2

apse2-az1 apse2-az2 apse2-az3

亞太區域 (泰國)

ap-southeast-7

apse7-az1 apse7-az2 apse7-az3

亞太區域 (東京)

ap-northeast-1

apne1-az1 apne1-az2 apne1-az4

加拿大 (中部)

ca-central-1

cac1-az1 cac1-az2 cac1-az4

歐洲 (法蘭克福)

eu-central-1

euc1-az1 euc1-az2 euc1-az3

歐洲 (愛爾蘭)

eu-west-1

euw1-az1 euw1-az2 euw1-az3

歐洲 (倫敦)

eu-west-2

euw2-az1 euw2-az2 euw2-az3

歐洲 (米蘭)

eu-south-1

eus1-az1 eus1-az2 eus1-az3

Europe (Paris)

eu-west-3

euw3-az1 euw3-az2 euw3-az3

歐洲 (西班牙)

eu-south-2

eus2-az1 eus2-az2 eus2-az3

Europe (Stockholm)

eu-north-1

eun1-az1 eun1-az2 eun1-az3

南美洲 (聖保羅)

sa-east-1

sae1-az1 sae1-az2 sae1-az3

AWS GovCloud (美國西部)

us-gov-west-1

usgw1-az1 usgw1-az2 usgw1-az3

重要

子網路必須位於上述支援的可用區域中。如果您在不支援的可用區域中指定子網路,組態會在資源建立期間失敗。

若要識別子網路的可用區域 ID,您可以使用下列 CLI 命令:

aws ec2 describe-subnets --subnet-ids subnet-12345678 --query 'Subnets[0].AvailabilityZoneId'

IAM 許可

AgentCore 使用服務連結角色AWSServiceRoleForBedrockAgentCoreNetwork來建立和管理 VPC 中的網路介面。當您第一次將 Amazon Bedrock AgentCore 執行期或 AgentCore 內建工具設定為使用 VPC 連線時,會自動建立此角色。

如果您需要手動建立此角色,IAM 實體需要下列許可:

{ "Action": "iam:CreateServiceLinkedRole", "Effect": "Allow", "Resource": "arn:aws:iam::*:role/aws-service-role/network.bedrock-agentcore.amazonaws.com/AWSServiceRoleForBedrockAgentCoreNetwork", "Condition": { "StringLike": { "iam:AWSServiceName": "network.bedrock-agentcore.amazonaws.com" } } }

此許可已包含在 AWS 受管政策 BedrockAgentCoreFullAccess 中。

最佳實務

為了使用 VPC 連線的 Amazon Bedrock AgentCore 執行期和內建工具獲得最佳效能和安全性:

  • 高可用性

    • 在不同的可用區域中設定至少兩個私有子網路。如需支援的可用區域清單,請參閱支援的可用區域

    • 使用多可用區支援部署相依資源 (例如資料庫或快取),以避免單點故障。

  • 網路效能

    • 將 Amazon Bedrock AgentCore 執行期或內建工具子網路放置在與其連線的資源相同的可用區域中。這可降低跨可用區域延遲和資料傳輸成本。

    • 盡可能將 VPC 端點用於 AWS 服務。端點提供更低的延遲、更高的可靠性,並避免受支援服務的 NAT 閘道費用。

  • 安全性

    • 在建立安全群組規則時套用最低權限原則。

    • 啟用 VPC 流程日誌以進行稽核和監控。定期檢閱日誌以識別非預期的流量模式。

  • 網際網路存取

    • 若要從 VPC 內的 Amazon Bedrock AgentCore 執行期或內建工具提供網際網路存取,請在公有子網路中設定 NAT 閘道。更新私有子網路的路由表,將傳出流量 (0.0.0.0/0) 傳送至 NAT 閘道。

    • 我們建議將 VPC 端點用於 AWS 服務,而不是網際網路路由,以提高安全性並降低成本。

設定執行時間和工具的 VPC 存取

您可以使用 AWS 管理主控台、 AWS CLI 或 SDK 來設定 Amazon Bedrock AgentCore 執行期和內建工具的 VPC 存取。 AWS SDKs

執行時期組態

範例
AWS Management Console
  1. 在 https://# 開啟 AgentCore 主控台。 https://console.aws.amazon.com/bedrock-agentcore/home

  2. 導覽至 AgentCore 區段

  3. 選取或建立 Amazon Bedrock AgentCore 執行期組態

  4. 選擇您的 ECR 映像

  5. 在網路組態區段下,選擇 VPC

  6. 從下拉式清單中選取您的 VPC

  7. 為您的應用程式需求選取適當的子網路

  8. 選取要套用至 ENIs的一或多個安全群組

  9. 儲存您的組態

AWS CLI
  1. aws bedrock-agentcore-control create-agent-runtime \ --agent-runtime-name "MyAgentRuntime" \ --network-configuration '{ "networkMode": "VPC", "networkModeConfig": { "subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"], "securityGroups": ["sg-0123456789abcdef0"] } }'
AWS SDK (Python)
  1. import boto3 client = boto3.client('bedrock-agentcore') response = client.create_runtime( runtimeName='MyAgentRuntime', networkConfiguration={ 'networkMode': 'VPC', 'networkModeConfig': { 'subnets': ['subnet-0123456789abcdef0', 'subnet-0123456789abcdef1'], 'securityGroups': ['sg-0123456789abcdef0'] } }, lifecycleConfiguration={ 'idleRuntimeSessionTimeout': 300, # 5 min, configurable 'maxLifetime': 1800 # 30 minutes, configurable }, )

程式碼解譯器組態

範例
AWS Management Console
  1. 在 https://# 開啟 AgentCore 主控台。 https://console.aws.amazon.com/bedrock-agentcore/home

  2. 導覽至 AgentCore → 內建工具 → 程式碼解譯器

  3. 選取建立程式碼解譯器或修改現有組態

  4. 提供工具名稱 (選用)

  5. 設定具有必要許可的執行角色

  6. 在網路組態下,選擇 VPC

  7. 從下拉式清單中選取您的 VPC

  8. 選擇適當的子網路 (使用 NAT 閘道跨多個 AZs 的建議私有子網路)

  9. 選取 ENI 存取控制的安全群組

  10. 設定具有必要許可的執行角色

  11. 儲存您的組態

AWS CLI
  1. aws bedrock-agentcore-control create-code-interpreter \ --region <Region> \ --name "my-code-interpreter" \ --description "My Code Interpreter with VPC mode for data analysis" \ --execution-role-arn "arn:aws:iam::123456789012:role/my-execution-role" \ --network-configuration '{ "networkMode": "VPC", "networkModeConfig": { "subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"], "securityGroups": ["sg-0123456789abcdef0"] } }'
AWS SDK (Python)
  1. import boto3 # Initialize the boto3 client cp_client = boto3.client( 'bedrock-agentcore-control', region_name="<Region>", endpoint_url="https://bedrock-agentcore-control.<Region>.amazonaws.com" ) # Create a Code Interpreter response = cp_client.create_code_interpreter( name="myTestVpcCodeInterpreter", description="Test code sandbox for development", executionRoleArn="arn:aws:iam::123456789012:role/my-execution-role", networkConfiguration={ 'networkMode': 'VPC', 'networkModeConfig': { 'subnets': ['subnet-0123456789abcdef0', 'subnet-0123456789abcdef1'], 'securityGroups': ['sg-0123456789abcdef0'] } } ) # Print the Code Interpreter ID code_interpreter_id = response["codeInterpreterId"] print(f"Code Interpreter ID: {code_interpreter_id}")

瀏覽器工具組態

範例
AWS Management Console
  1. 在 https://# 開啟 AgentCore 主控台。 https://console.aws.amazon.com/bedrock-agentcore/home

  2. 在導覽窗格中,選擇內建工具

  3. 選擇建立瀏覽器工具

  4. 提供工具名稱 (選用) 和描述 (選用)

  5. 設定執行角色許可

  6. 在網路組態區段下,選擇 VPC 模式

  7. 選取您的 VPC 和子網路

  8. 針對 Web 存取需求設定安全群組

  9. 設定執行角色許可

  10. 儲存您的組態

AWS CLI
  1. aws bedrock-agentcore-control create-browser \ --region <Region> \ --name "my-browser" \ --description "My browser for web interaction" \ --network-configuration '{ "networkMode": "VPC", "networkModeConfig": { "subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"], "securityGroups": ["sg-0123456789abcdef0"] } }' \ --recording '{ "enabled": true, "s3Location": { "bucket": "my-bucket-name", "prefix": "sessionreplay" } }' \ --execution-role-arn "arn:aws:iam::123456789012:role/my-execution-role"
AWS SDK (Python)
  1. import boto3 # Initialize the boto3 client cp_client = boto3.client( 'bedrock-agentcore-control', region_name="<Region>", endpoint_url="https://bedrock-agentcore-control.<Region>.amazonaws.com" ) # Create a Browser response = cp_client.create_browser( name="myTestVpcBrowser", description="Test browser with VPC mode for development", networkConfiguration={ 'networkMode': 'VPC', 'networkModeConfig': { 'subnets': ['subnet-0123456789abcdef0', 'subnet-0123456789abcdef1'], 'securityGroups': ['sg-0123456789abcdef0'] } }, executionRoleArn="arn:aws:iam::123456789012:role/Sessionreplay", recording={ "enabled": True, "s3Location": { "bucket": "session-record-123456789012", "prefix": "replay-data" } } )

安全群組考量

安全群組在連接到 VPC 時充當 Amazon Bedrock AgentCore 執行期或內建工具的虛擬防火牆。它們控制執行個體層級的傳入和傳出流量。若要設定執行時間的安全群組:

  • 傳出規則 – 定義傳出規則,以允許 Amazon Bedrock AgentCore 執行期連線到所需的 VPC 資源。

  • 傳入規則 – 確保目標資源的安全群組允許來自與 Amazon Bedrock AgentCore 執行期相關聯的安全群組的傳入連線。

  • 最低權限 – 只允許最低必要流量,以套用最低權限原則。

範例:連線至 Amazon RDS 資料庫

當您的 Amazon Bedrock AgentCore 執行期連線到 Amazon RDS 資料庫時,請設定安全群組,如下所示:

Amazon Bedrock AgentCore 執行期安全群組

  • 傳出 – 允許 TCP 流量流向連接埠 3306 (MySQL) 上 RDS 資料庫的安全群組。

  • 傳入 – 非必要。執行時間只會啟動傳出連線。

Amazon RDS 資料庫安全群組

  • 傳入 – 允許連接埠 3306 上來自 Amazon Bedrock AgentCore 執行期安全群組的 TCP 流量。

  • 傳出 – 非必要。由於安全群組具有狀態,因此會自動允許傳回流量。

範例:連線至 Amazon EFS 或 Amazon S3 檔案

當您在代理程式執行期設定bring-your-own檔案系統 (Amazon EFS 或 Amazon S3 檔案存取點) 時,AgentCore 執行期會透過 NFS 掛載檔案系統。這需要代理程式執行期 ENIs和檔案系統掛載目標之間連接埠 2049 上的 TCP 連線。

AgentCore 會自動處理 TLS 加密和 IAM 身分驗證。amazon-efs-utils 掛載協助程式已預先安裝在 microVM 執行時間中 – 您不需要在容器映像中設定或安裝任何掛載軟體。

安全群組組態

設定您的安全群組,以允許代理程式執行期和檔案系統掛載目標之間的 NFS 流量。

客服人員執行期安全群組 – 傳出規則:

Type 通訊協定 連接埠範圍 目標 說明

NFS

TCP

2049

sg-mounttarget

允許 NFS 檔案系統掛載目標

檔案系統掛載目標安全群組 – 傳入規則:

Type 通訊協定 連接埠範圍 來源 說明

NFS

TCP

2049

sg-agentruntime

允許來自 AgentCore 執行期的 NFS

sg-mounttarget 取代為 EFS 或 S3 檔案掛載目標的安全群組 ID,並將 sg-agentruntime 取代為代理程式執行時間所使用的安全群組 ID。

AWS CLI – 將傳出規則新增至代理程式執行時間安全群組:

aws ec2 authorize-security-group-egress \ --group-id sg-0123456789abcdef0 \ --protocol tcp \ --port 2049 \ --source-group sg-0987654321fedcba0

AWS CLI – 新增傳入規則以掛載目標安全群組:

aws ec2 authorize-security-group-ingress \ --group-id sg-0987654321fedcba0 \ --protocol tcp \ --port 2049 \ --source-group sg-0123456789abcdef0
注意

如果您針對代理程式執行期和檔案系統掛載目標使用單一安全群組,請新增自我參考規則,允許來自相同安全群組的連接埠 2049 上的傳入 TCP。

VPC 端點組態

在 VPC 中執行 Amazon Bedrock AgentCore 執行期時,強烈建議您設定下列 VPC 端點。如果您的 VPC 沒有網際網路存取,且強烈建議即使您的 VPC 具有 NAT 閘道,仍需要這些端點,以避免 NAT 閘道資料處理費用。

必要的 VPC 端點

  • Amazon ECR 要求

    • Docker 端點: com.amazonaws.region.ecr.dkr

    • ECR API 端點: com.amazonaws.region.ecr.api

  • Amazon S3 要求

    • ECR docker layer 儲存的閘道端點: com.amazonaws.region.s3

      重要

      對於容器代理程式,AgentCore 會定期從 ECR 重新整理您的容器映像,該 ECR 會將映像層存放在 Amazon S3 中。如果沒有 S3 Gateway VPC 端點,此流量會透過 NAT 閘道路由並產生資料處理費用。S3 Gateway VPC 端點是免費的,可免除這些費用。強烈建議為所有 VPC 模式容器代理程式新增此端點,即使您的 VPC 透過 NAT 存取網際網路。

      容器代理程式的最低 S3 儲存貯體許可

      S3 閘道端點使用 IAM 政策文件來限制對服務的存取。若要遵循最低權限原則,請將 S3 閘道端點政策範圍限定為 Amazon ECR 用來存放映像層的 Amazon S3 儲存貯體。下列政策會限制存取您區域的 ECR layer 儲存貯體:

      { "Statement": [ { "Sid": "AllowECRLayerAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::prod-region-starport-layer-bucket/*"] } ] }

      區域取代為您的 AWS 區域識別符 (例如,us-east-2美國東部 (俄亥俄))。

      直接程式碼部署代理程式的最低 S3 儲存貯體許可

      對於使用直接程式碼部署 (zip 型) 部署的代理程式,AgentCore 會將您的程式碼成品存放在內部服務擁有的 S3 儲存貯體中。將 S3 閘道端點政策範圍限定為您區域的程式碼成品儲存貯體:

      { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::acr-code-*-region-an", "arn:aws:s3:::acr-code-*-region-an/*" ], "Condition": { "StringEquals": { "aws:PrincipalServiceName": "bedrock-agentcore.amazonaws.com" } } } ] }

      區域取代為您的 AWS 區域識別符 (例如 us-west-2)。

      注意

      AgentCore 程式碼成品儲存貯體會在帳戶區域命名空間一般用途儲存貯體中建立。只有 AWS 可以擁有服務使用的實際儲存貯體名稱。aws:PrincipalServiceName 條件可確保只有 AgentCore 服務主體可以透過此端點政策存取儲存貯體。

      注意

      如果您也使用持久性檔案系統,請將工作階段儲存貯體 (acr-storage-*-region-an) 新增至此政策。請參閱所需許可的網路需求。

  • CloudWatch 需求

    • 日誌端點: com.amazonaws.region.logs

注意

如果區域不同,請務必將區域取代為特定區域。

注意

如果您使用的是檔案系統組態 ,請確定您的 VPC 符合聯網需求

網際網路存取考量事項

當您將 Amazon Bedrock AgentCore 執行期或內建工具連線至 Virtual Private Cloud (VPC) 時,預設不會存取網際網路。根據預設,這些資源只能與相同 VPC 內的資源通訊。如果您的執行時間或工具需要同時存取 VPC 資源和網際網路,您必須相應地設定 VPC。

網際網路存取架構

若要啟用 VPC 連接 Amazon Bedrock AgentCore 執行期或內建工具的網際網路存取,請使用下列元件設定您的 VPC:

  • 私有子網路 – 將 Amazon Bedrock AgentCore 執行期或工具的網路界面放置在私有子網路中。

  • 具有 NAT 閘道的公有子網路 – 在一或多個公有子網路中部署 NAT 閘道,以提供私有資源的傳出網際網路存取。

  • 網際網路閘道 (IGW) – 將網際網路閘道連接至 VPC,以啟用 NAT 閘道與網際網路之間的通訊。

路由組態

更新您的子網路路由表,如下所示:

  • 私有子網路路由表 – 新增指向 NAT 閘道的預設路由 (0.0.0.0/0)。這可讓來自執行時間或工具的傳出流量連線到網際網路。

  • 公有子網路路由表 – 新增指向網際網路閘道的預設路由 (0.0.0.0/0)。這可讓 NAT 閘道與網際網路通訊。

重要

將 Amazon Bedrock AgentCore 執行期和內建工具連接到公有子網路不提供網際網路存取。一律使用具有 NAT 閘道的私有子網路進行網際網路連線。

監控和疑難排解

若要監控和疑難排解 VPC 連線的 Amazon Bedrock AgentCore 執行時間和工具:

CloudWatch Logs

為您的 Amazon Bedrock AgentCore 執行期啟用 CloudWatch Logs,以識別任何連線問題:

  • 檢查與 VPC 連線相關的錯誤訊息

  • 尋找連線至 VPC 資源時的逾時錯誤

  • 監控初始化時間 (VPC 連線可能會增加工作階段啟動時間)

常見問題與解決方案

  • 連線逾時

    • 驗證安全群組規則是否正確

    • 確保路由表已正確設定

    • 檢查目標資源是否正在執行並接受連線

  • DNS 解析失敗

    • 確保已在 VPC 中啟用 DNS 解析

    • 確認您的 DHCP 選項已正確設定

  • 缺少 ENIs

    • 檢查 IAM 許可,以確保服務連結角色具有適當的許可

    • 尋找可能已達到的任何服務配額

程式碼解譯器問題

  • 程式碼解譯器在嘗試呼叫公有端點 時呼叫呼叫逾時

    • 確認 VPC 已設定 NAT 閘道以進行網際網路存取

  • 呼叫具有私有 VPC 端點的程式碼解譯器時,會擲出「AccessDenied」錯誤

    • 確保在建立程式碼解譯器期間傳遞的執行角色具有設定 VPC 端點之 AWS 服務的正確許可

  • 呼叫具有某些私有 VPC 端點的程式碼解譯器時,顯示「找不到登入資料」錯誤

    • 建立程式碼解譯器時,請檢查是否已提供執行角色

瀏覽器工具問題

  • Live-View/Connection Stream 無法載入網頁,且連線逾時失敗

    • 檢查瀏覽器是否使用具有 NAT Gateway 的私有子網路建立

測試 VPC 連線能力

若要驗證 AgentCore 執行期和工具是否具有適當的 VPC 連線,您可以測試與私有資源的連線,並確認網路介面是否已在指定的子網路中正確建立。

若要驗證 AgentCore 工具是否具有網際網路存取權,您可以使用 VPC 組態設定 Code Interpreter,並使用 Invoke API 搭配 executeCommand 嘗試使用 curl命令連線至公有 API 或網站,並檢查回應。如果連線逾時,請檢閱您的 VPC 組態,特別是您的路由表和 NAT 閘道設定。

# Using awscurl awscurl -X POST \ "https://bedrock-agentcore.<Region>.amazonaws.com/code-interpreters/<code_interpreter_id>/tools/invoke" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "x-amzn-code-interpreter-session-id: your-session-id" \ --service bedrock-agentcore \ --region <Region> \ -d '{ "name": "executeCommand", "arguments": { "command": "curl amazon.com" } }'

檔案系統連線問題

當檔案系統掛載失敗時,InvokeAgentRuntimeAPI 會傳回 HTTP 狀態 424 (失敗相依性)。使用下列各節來診斷根本原因。

檔案系統掛載逾時

徵狀:具有檔案系統組態的代理程式調用會在長時間延遲後失敗。錯誤表示掛載操作逾時。

常見原因和解決方案:

1。缺少安全群組規則

驗證代理程式執行時間安全群組上的傳出規則:

aws ec2 describe-security-groups \ --group-ids sg-0123456789abcdef0 \ --query 'SecurityGroups[0].IpPermissionsEgress[?ToPort==`2049`]'

驗證掛載目標安全群組上的傳入規則:

aws ec2 describe-security-groups \ --group-ids sg-0987654321fedcba0 \ --query 'SecurityGroups[0].IpPermissions[?ToPort==`2049`]'

如果任一查詢傳回空白結果,請新增缺少的規則,如範例:連線至 Amazon EFS 或 Amazon S3 檔案所示。

2. 在客服人員的可用區域中沒有掛載目標

代理程式執行時間可能會放置在不存在掛載目標的可用區域中。驗證重疊:

# Get agent runtime subnet AZs aws ec2 describe-subnets \ --subnet-ids subnet-0123456789abcdef0 subnet-0123456789abcdef1 \ --query 'Subnets[*].[SubnetId, AvailabilityZoneId]' --output table # Get EFS mount target AZs aws efs describe-mount-targets \ --file-system-id fs-0123456789abcdef0 \ --query 'MountTargets[*].[AvailabilityZoneId, LifeCycleState]' --output table

解決方案:在您的代理程式執行期子網路所在的每個可用區域中建立掛載目標,或將代理程式執行期子網路限制為存在掛載目標的可用區域。

3. 路由表缺少本機路由

確認與代理程式執行期子網路相關聯的路由表包含本機 VPC 路由:

aws ec2 describe-route-tables \ --filters "Name=association.subnet-id,Values=subnet-0123456789abcdef0" \ --query 'RouteTables[0].Routes[?DestinationCidrBlock]'

檔案系統掛載失敗,並顯示 "ResourceNotFound"

症狀:代理程式調用立即失敗 (沒有逾時),並出現參考檔案系統主機名稱的 ResourceNotFound 錯誤。

常見原因和解決方案:

1。DNS 解析失敗 – VPC 無法解析檔案系統掛載目標主機名稱。

驗證 VPC 上的 DNS 設定:

aws ec2 describe-vpc-attribute \ --vpc-id vpc-0123456789abcdef0 \ --attribute enableDnsSupport aws ec2 describe-vpc-attribute \ --vpc-id vpc-0123456789abcdef0 \ --attribute enableDnsHostnames

兩者都必須傳回 true。如果沒有,請啟用它們:

aws ec2 modify-vpc-attribute --vpc-id vpc-0123456789abcdef0 --enable-dns-support aws ec2 modify-vpc-attribute --vpc-id vpc-0123456789abcdef0 --enable-dns-hostnames

2. 掛載目標未處於可用狀態 – 掛載目標可能仍在建立或可能已刪除。

# For EFS aws efs describe-mount-targets --file-system-id fs-0123456789abcdef0 # For S3 Files aws s3files list-mount-targets --file-system-id fs-0123456789abcdef0

確定掛載目標LifeCycleStateavailable。如果掛載目標遺失,請在適當的子網路中重新建立。

3. 檔案系統或存取點已刪除 – 代理程式執行時間組態中參考的資源不再存在。使用有效的 ARNs 驗證和更新代理程式執行時間。

注意

在極少數情況下,S3 檔案掛載可能會因為 DNS 解析計時而失敗,並出現暫時性ResourceNotFound錯誤。重試調用通常會解決此問題。如果錯誤仍然存在,請確認掛載目標處於 Available 狀態。

可用區域不相符 (間歇性故障)

徵狀:檔案系統掛載間歇性成功 – 有些調用可運作,而其他調用則會因逾時而失敗。

發生這種情況的原因:您的代理程式執行期在多個可用區域中具有子網路,但掛載目標只有其中一些。當代理程式放置在沒有掛載目標的 AZ 中時,掛載會逾時。

解決方案:在代理程式執行期子網路所在的所有可用區域中建立掛載目標 (建議),或移除不在掛載目標的可用區域中的代理程式執行期子網路。

# List all EFS mount target AZs aws efs describe-mount-targets \ --file-system-id fs-0123456789abcdef0 \ --query 'MountTargets[*].AvailabilityZoneId' --output text # Create a mount target in a missing AZ aws efs create-mount-target \ --file-system-id fs-0123456789abcdef0 \ --subnet-id subnet-in-missing-az \ --security-groups sg-0987654321fedcba0
注意

對於 S3 檔案,請使用 aws s3files create-mount-target搭配相同的參數。