使用需要驗證的 Docker 登錄檔進行訓練 - Amazon SageMaker AI

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

使用需要驗證的 Docker 登錄檔進行訓練

如果您的 Docker 登錄檔需要身分驗證,您必須建立 AWS Lambda 提供存取憑證給 SageMaker AI 的 函數。然後,建立訓練工作,並在 create_training_job API 內提供此 Lambda 函式的 ARN。最後,您可以選擇建立介面 VPC 端點,讓您的 VPC 可以與 Lambda 函式通訊,而不必透過網際網路傳送流量。以下指南說明如何建立 Lambda 函式、為其指派正確角色,以及建立介面 VPC 端點。

建立 Lambda 函式

建立 AWS Lambda 函數,將存取憑證傳遞至 SageMaker AI,並傳回回應。下列程式碼範例建立 Lambda 函式處理常式,如下所示。

def handler(event, context): response = { "Credentials": {"Username": "username", "Password": "password"} } return response

設定私有 Docker 登錄檔的驗證類型,會決定 Lambda 函式傳回的回應內容,如下所示。

  • 如果您的私有 Docker 登錄檔使用基本驗證,Lambda 函式會傳回所需的使用者名稱和密碼,以便向登錄檔進行驗證。

  • 如果您的私有 Docker 登錄檔使用持有者權杖驗證,則使用者名稱和密碼將發送至您的授權服務器,然後回傳持有者權杖。然後,此權杖將用於驗證您的私有 Docker 登錄檔。

注意

如果同一帳戶中多個登錄檔有多個 Lambda 函式,而且訓練工作的執行角色相同,那麼針對登錄檔之一的訓練工作,將可以存取其他登錄檔的 Lambda 函式。

授予 Lambda 函式正確的角色許可

您在 create_training_job API 中使用的 IAMrole 必須具有呼叫 AWS Lambda 函數的許可。下列程式碼範例示範如何延伸 IAM 角色的許可政策以呼叫 myLambdaFunction

{ "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*myLambdaFunction*" ] }

如需如何編輯角色許可的詳細資訊,請參閱身分和存取管理使用者指南AWS 內的修改角色許可政策 (主控台)

注意

具有已連接 AmazonSageMakerFullAccess 受管政策的 IAM 角色,有權呼叫名稱為「SageMaker AI」的任何 Lambda 函數。

為 Lambda 建立介面 VPC 端點

如果您建立一個介面端點,Amazon VPC 就可以與 Lambda 函式通訊,而不必透過網際網路傳送流量。如需詳細資訊,請參閱 AWS Lambda 開發人員指南中的設定 Lambda 的介面 VPC 端點

建立介面端點之後,SageMaker 訓練會透過您的 VPC 將請求傳送至 lambda.region.amazonaws.com 來呼叫您的 Lambda 函式。如果您在建立介面端點時選取啟用 DNS 名稱Amazon Route 53 會將呼叫路由至 Lambda 介面端點。如果您使用不同的 DNS 提供者,則必須將 lambda.region.amazonaws.com 對應至 Lambda 介面端點。