本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用需要為訓練進行驗證的 Docker 登錄檔
如果您的 Docker 登錄需要驗證,您必須建立提供存取認證的 AWS Lambda
函數。 SageMaker然後,建立訓練任務,並在 create_training_job
建立 Lambda 函數
建立傳遞存取認證 SageMaker 並傳回回應的 AWS Lambda 函數。下列程式碼範例能建立 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" 的任何 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.co
m 對應至 Lambda 介面端點。