使用 建立 Braket 筆記本執行個體 AWS CloudFormation - Amazon Braket

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

使用 建立 Braket 筆記本執行個體 AWS CloudFormation

提示

了解量子運算的基礎 AWS!註冊 Amazon Braket 數位學習計劃,在完成一系列的學習課程和數位評估後獲得自己的數位徽章。

您可以使用 AWS CloudFormation 來管理 Amazon Braket 筆記本執行個體。Braket 筆記本執行個體是以 Amazon SageMaker AI 為基礎。使用 CloudFormation,您可以使用描述預期組態的範本檔案來佈建筆記本執行個體。範本檔案是以 JSON 或 YAML 格式撰寫。您可以以有序且可重複的方式建立、更新和刪除執行個體。當您在 中管理多個 Braket 筆記本執行個體時,您可能會發現這一點很有用 AWS 帳戶。

為 Braket 筆記本建立 CloudFormation 範本後,您可以使用 AWS CloudFormation 來部署資源。如需詳細資訊,請參閱《 AWS CloudFormation 使用者指南》中的在 AWS CloudFormation 主控台上建立堆疊

若要使用 CloudFormation 建立 Braket 筆記本執行個體,請執行這三個步驟:

  1. 建立 SageMaker AI 生命週期組態指令碼。

  2. 建立由 SageMaker AI 擔任的 AWS Identity and Access Management (IAM) 角色。

  3. 使用 字首建立 SageMaker AI 筆記本執行個體 amazon-braket-

您可以為您建立的所有 Braket 筆記本重複使用生命週期組態。您也可以為您指派相同執行許可的 Braket 筆記本重複使用 IAM 角色。

步驟 1:建立 SageMaker AI 生命週期組態指令碼

使用下列範本建立 SageMaker AI 生命週期組態指令碼。指令碼會自訂 Braket 的 SageMaker AI 筆記本執行個體。如需生命週期 CloudFormation 資源的組態選項,請參閱《 AWS CloudFormation 使用者指南》中的 AWS::SageMaker::NotebookInstanceLifecycleConfig

BraketNotebookInstanceLifecycleConfig: Type: "AWS::SageMaker::NotebookInstanceLifecycleConfig" Properties: NotebookInstanceLifecycleConfigName: BraketLifecycleConfig-${AWS::StackName} OnStart: - Content: Fn::Base64: | #!/usr/bin/env bash sudo -u ec2-user -i ≪EOS curl -o braket-notebook-lcc.zip https://d3ded4lzb1lnme.cloudfront.net/notebook/braket-notebook-lcc.zip unzip braket-notebook-lcc.zip ./install.sh EOS exit 0

步驟 2:建立 Amazon SageMaker AI 擔任的 IAM 角色

當您使用 Braket 筆記本執行個體時,SageMaker AI 會代表您執行操作。例如,假設您使用支援的裝置上的電路執行 Braket 筆記本。在筆記本執行個體中,SageMaker AI 會為您在 Braket 上執行 操作。筆記本執行角色會定義允許 SageMaker AI 代表您執行的確切操作。如需詳細資訊,請參閱《Amazon SageMaker AI 開發人員指南》中的 SageMaker AI 角色Amazon SageMaker

使用下列範例建立具有所需許可的 Braket 筆記本執行角色。您可以根據您的需求修改政策。

注意

請確定角色具有在字首為 的 Amazon S3 儲存貯體上 s3:ListBuckets3:GetObject操作的許可braketnotebookcdk-"。生命週期組態指令碼需要這些許可才能複製 Braket 筆記本安裝指令碼。

ExecutionRole: Type: "AWS::IAM::Role" Properties: RoleName: !Sub AmazonBraketNotebookRole-${AWS::StackName} AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: - "sagemaker.amazonaws.com" Action: - "sts:AssumeRole" Path: "/service-role/" ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonBraketFullAccess Policies: - PolicyName: "AmazonBraketNotebookPolicy" PolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Action: - s3:GetObject - s3:PutObject - s3:ListBucket Resource: - arn:aws:s3:::amazon-braket-* - arn:aws:s3:::braketnotebookcdk-* - Effect: "Allow" Action: - "logs:CreateLogStream" - "logs:PutLogEvents" - "logs:CreateLogGroup" - "logs:DescribeLogStreams" Resource: - !Sub "arn:aws:logs:*:${AWS::AccountId}:log-group:/aws/sagemaker/*" - Effect: "Allow" Action: - braket:* Resource: "*"

步驟 3:建立字首為 的 SageMaker AI 筆記本執行個體 amazon-braket-

使用 SageMaker AI 生命週期指令碼和步驟 1 和步驟 2 中建立的 IAM 角色來建立 SageMaker AI 筆記本執行個體。筆記本執行個體是針對 Braket 自訂的,可以透過 Amazon Braket 主控台存取。如需此 CloudFormation 資源組態選項的詳細資訊,請參閱《 AWS CloudFormation 使用者指南》中的 AWS::SageMaker::NotebookInstance

BraketNotebook: Type: AWS::SageMaker::NotebookInstance Properties: InstanceType: ml.t3.medium NotebookInstanceName: !Sub amazon-braket-notebook-${AWS::StackName} RoleArn: !GetAtt ExecutionRole.Arn VolumeSizeInGB: 30 LifecycleConfigName: !GetAtt BraketNotebookInstanceLifecycleConfig.NotebookInstanceLifecycleConfigName