

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

# 搭配圖形筆記本使用 Amazon Neptune
<a name="graph-notebooks"></a>

若要使用 Neptune 圖形，您可以使用 Neptune 圖形筆記本或使用 an CloudFormation [template](get-started-cfn-create.md) 建立新的 Neptune 資料庫。

無論您是第一次使用圖形，並且想要學習和實驗，或是有經驗且想要精簡查詢，Neptune [工作台](#graph-notebooks-workbench)都能提供互動式開發環境 (IDE)，讓您在建置圖形應用程式時提高生產力。Workbench 提供易於使用的界面，可讓您與 Neptune 資料庫互動、撰寫查詢，以及視覺化您的資料。

透過使用 CloudFormation 範本設定 Neptune 資料庫，以及使用 Workbench 開發您的圖形應用程式，您可以快速有效地開始使用 Neptune，而不需要額外的工具。這可讓您專注於建置應用程式，而不是設定基礎基礎設施。

**注意**  
 Neptune 筆記本透過 Amazon SageMaker AI 管理，目前不適用於亞太區域 （馬來西亞） (ap-southeast-5) 區域。不過，您仍然可以透過其他非受管選項部署 Neptune 筆記本。如需手動部署筆記本[手動設定 Neptune 筆記本](#graph-notebook-manual-setup)，請參閱 。

Neptune 在 GitHub 上的開放原始碼 [Neptune 圖形筆記本](https://github.com/aws/graph-notebook)專案中，以及在 Neptune 工作台中提供 [Jupyter](https://jupyter-notebook.readthedocs.io/en/stable/) 和 [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/index.html) 筆記本。這些筆記本會在互動式編碼環境中提供範例應用程式教學課程和程式碼片段，您可以在此了解圖形技術和 Neptune。您可以使用它們搭配不同的查詢語言、不同的資料集，甚至是後端的不同資料庫，來逐步完成設定、填入和查詢圖形。

您可以透過數種不同的方式託管這些筆記本：
+  [Neptune 工作台](#graph-notebooks-workbench)可讓您在全受管環境中執行 Jupyter 筆記本，託管於 Amazon SageMaker AI，並自動為您載入最新版本的 Neptune [圖形筆記本專案](https://github.com/aws/graph-notebook)。建立新的 Neptune 資料庫時，可以在 [Neptune 主控台](https://console.aws.amazon.com/neptune)中輕鬆設定工作台。
**注意**  
 建立 Neptune 筆記本執行個體時，會提供兩種網路存取選項：透過 Amazon SageMaker AI 直接存取 （預設） 和透過 VPC 存取。在任一選項中，筆記本都需要存取網際網路，才能擷取安裝 Neptune 工作台的套件相依性。缺乏網際網路存取會導致建立 Neptune 筆記本執行個體失敗。
+ 您也可以在[本機安裝 Jupyter](#graph-notebooks-local)。這可讓您從筆記型電腦執行筆記本，而此筆記型電腦已連線至 Neptune 或其中一個開放原始碼圖形資料庫的本機執行個體。在後一種情況下，您可以在花一分錢之前盡可能多嘗試圖形技術。然後，當您準備就緒時，就可以順利移至 Neptune 提供的受管生產環境。

## 使用 Neptune 工作台託管 Neptune 筆記本
<a name="graph-notebooks-workbench"></a>

Neptune 提供 `T3` 和 `T4g` 執行個體類型，可讓您以每小時不到 $0.10 開始使用這些執行個體類型。您需要透過 Amazon SageMaker AI 與 Neptune 帳單分開支付工作台資源的費用。請參閱 [Neptune 定價頁面](https://aws.amazon.com/neptune/pricing/)。在 Neptune 工作台上建立的 Jupyter 和 JupyterLab 筆記本都使用 Amazon Linux 2 和 JupyterLab 4 環境。如需 JupyterLab 筆記本支援的詳細資訊，請參閱 [Amazon SageMaker AI 文件](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-jl.html)。

您可以透過兩種方式 AWS 管理主控台 之一，使用 Neptune 工作台建立 Jupyter 或 JupyterLab 筆記本：
+ 建立新的 Neptune 資料庫叢集時，請使用**筆記本組態**功能表。若要執行此操作，請遵循 [使用 啟動 Neptune 資料庫叢集 AWS 管理主控台](manage-console-launch-console.md) 中概述的步驟。
+ 在建立了資料庫叢集之後，請使用左側導覽窗格中的**筆記本**功能表。若要執行此操作，請按以下步驟進行。

**使用**筆記本**功能表建立 Jupyter 或 JupyterLab 筆記本**

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home)：// 開啟 Amazon Neptune 主控台。

1. 在左側的導覽窗格中，選擇 **Notebooks (筆記本)**。

1. 選擇**建立筆記本**。

1. 選擇**資料庫**做為 Neptune 服務。

1. 在**叢集**清單中，選擇您的 Neptune 資料庫叢集。如果還沒有資料庫叢集，請選擇 **Create cluster (建立叢集)** 以建立叢集。

1. 選取**筆記本執行個體類型**。

1. 為您的筆記本提供名稱，並選擇性提供描述。

1. 除非您已為筆記本建立 AWS Identity and Access Management (IAM) 角色，否則請選擇**建立 IAM 角色**，然後輸入 IAM 角色名稱。
**注意**  
如果您選擇重複使用先前筆記本建立的 IAM 角色，角色政策必須包含存取您正在使用的 Neptune 資料庫叢集的正確許可。您可以透過檢查 `neptune-db:*` 動作下資源 ARN 中的元件是否符合該叢集來驗證此情況。當您嘗試執行筆記本魔術命令時，未正確設定的許可會導致連線錯誤。

1. 選擇**建立筆記本**。建立程序可能需要 5 到 10 分鐘，一切才能準備就緒。

1. 在建立您的筆記本之後，請選取它，然後選擇**開啟 Jupyter** 或**開啟 JupyterLab**。

主控台可以為您的筆記本建立 AWS Identity and Access Management (IAM) 角色，您也可以自行建立。此角色的政策應包括下列各項：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowS3GetObjectS3ListBucket",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::aws-neptune-notebook",
        "arn:aws:s3:::aws-neptune-notebook/*",
        "arn:aws:s3:::aws-neptune-notebook-{{us-east-1}}",
        "arn:aws:s3:::aws-neptune-notebook-{{us-east-1}}/*"
      ]
    },
    {
      "Sid": "AllowAccessNeptuneDB",
      "Effect": "Allow",
      "Action": "neptune-db:*",
      "Resource": [
        "arn:aws:neptune-db:{{us-east-1}}:{{111122223333}}:{{cluster-resource-id}}/*"
      ]
    }
  ]
}
```

------

請注意，上述政策中的第二個聲明會列出一或多個 Neptune [叢集資源 ID](iam-data-resources.md)。

此外，角色也應該建立下列信任關係：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

同樣，準備好一切可能需要 5 到 10 分鐘。

您可以將新筆記本設定為使用 Neptune ML，如 [為 Neptune ML 手動設定 Neptune 筆記本](ml-manual-setup-notebooks.md) 中所述。

### 使用 Python 將一般 SageMaker AI 筆記本連線至 Neptune
<a name="graph-notebooks-workbench-python"></a>

如果您已安裝 Neptune 魔法，將筆記本連線至 Neptune 非常簡單，但即使您未使用 Neptune 筆記本，也可以使用 Python 將 SageMaker AI 筆記本連線至 Neptune。

**在 SageMaker AI 筆記本儲存格中連線至 Neptune 的步驟**

1. 安裝 Gremlin Python 用戶端：

   ```
   !pip install gremlinpython
   ```

   Neptune 筆記本會為您安裝 Gremlin Python 用戶端，因此只有在您使用純 SageMaker AI 筆記本時才需要此步驟。

1. 撰寫如下的程式碼來連線並發出 Gemlin 查詢：

   ```
   from gremlin_python import statics
   from gremlin_python.structure.graph import Graph
   from gremlin_python.process.graph_traversal import __
   from gremlin_python.process.strategies import *
   from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
   from gremlin_python.driver.aiohttp.transport import AiohttpTransport
   from gremlin_python.process.traversal import *
   import os
   
   port = 8182
   server = '{{(your server endpoint)}}'
   
   endpoint = f'wss://{server}:{port}/gremlin'
   
   graph=Graph()
   
   connection = DriverRemoteConnection(endpoint,'g',
                    transport_factory=lambda:AiohttpTransport(call_from_event_loop=True))
   
   g = graph.traversal().withRemote(connection)
   
   results = (g.V().hasLabel('airport')
                   .sample(10)
                   .order()
                   .by('code')
                   .local(__.values('code','city').fold())
                   .toList())
   
   # Print the results in a tabular form with a row index
   for i,c in enumerate(results,1):
       print("%3d %4s %s" % (i,c[0],c[1]))
   
   connection.close()
   ```

**注意**  
如果您碰巧使用的 Gremlin Python 用戶端版本早於 3.5.0，則此行：  

```
connection = DriverRemoteConnection(endpoint,'g',
                 transport_factory=lambda:AiohttpTransport(call_from_event_loop=True))
```
只會是：  

```
connection = DriverRemoteConnection(endpoint,'g')
```

## 透過 將圖形筆記本啟動為 Amazon Neptune Workbench CloudFormation
<a name="graph-notebooks-cloudformation"></a>

您可以使用 部署 Amazon Neptune 工作台筆記本 CloudFormation。 CloudFormation 範本會將 Neptune 工作台筆記本部署為資源，並包含基本「入門」筆記本。工作台可讓您使用 Amazon SageMaker 託管的 Jupyter 筆記本來使用 Amazon Neptune 資料庫叢集。 Amazon SageMaker 工作台資源會透過 Amazon SageMaker 另行計費，與 Neptune 計費分開。

 CloudFormation 範本和詳細說明，包括 IAM 角色需求和許可，可在[圖形筆記本 GitHub 儲存庫](https://github.com/aws/graph-notebook/tree/main/additional-databases/sagemaker/neptune-notebook-cloudformation)中找到。

## 在 Neptune 筆記本上啟用 CloudWatch 日誌
<a name="graph-notebooks-cw-logs"></a>

根據預設，現在會針對 Neptune 筆記本啟用 CloudWatch 日誌。如果您有不是產生 CloudWatch 日誌的舊版筆記本，請遵循下列步驟手動啟用它們：

1. 登入 AWS 管理主控台 並開啟 [SageMaker AI 主控台](https://console.aws.amazon.com/sagemaker/home)。

1. 在左側的導覽窗格中，選擇**筆記本**，然後選擇**筆記本執行個體**。尋找您要為其啟用日誌的 Neptune 筆記本名稱。

1. 選取該筆記本執行個體的名稱，以前往詳細資訊頁面。

1. 如果筆記本執行個體正在執行，請選取筆記本詳細資料頁面右上方的**停止**按鈕。

1. 在**許可和加密**下，**IAM 角色 ARN** 有一個欄位。選取此欄位中的連結，即可前往此筆記本執行個體搭配執行的 IAM 角色。

1. 建立下列政策：

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogDelivery",
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:DeleteLogDelivery",
           "logs:Describe*",
           "logs:GetLogDelivery",
           "logs:GetLogEvents",
           "logs:ListLogDeliveries",
           "logs:PutLogEvents",
           "logs:PutResourcePolicy",
           "logs:UpdateLogDelivery"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

1. 儲存此新政策並將其附加至步驟 4 中找到的 IAM 角色。

1. 按一下 SageMaker AI 筆記本執行個體詳細資訊頁面右上角的**開始**。

1. 當日誌開始流動時，您應該會在詳細資料頁面的**筆記本執行個體設定**區段左下方附近，於標示為**生命週期組態**的欄位下方看到**檢視日誌**連結。

如果筆記本無法啟動，SageMaker AI 主控台的筆記本詳細資訊頁面中會有來自 的訊息，指出筆記本執行個體需要超過 5 分鐘才能啟動。可在下列名稱下找到與此問題相關的 CloudWatch 日誌：

```
{{(your-notebook-name)}}/LifecycleConfigOnStart
```

## 在您的本機電腦上設定圖形筆記本
<a name="graph-notebooks-local"></a>

圖形筆記本專案具有在本機電腦上設定 Neptune 筆記本的指示：
+ [先決條件](https://github.com/aws/graph-notebook/#prerequisites)
+ [Jupyter 和 JupyterLab 安裝](https://github.com/aws/graph-notebook/#installation)
+ [連線至圖形資料庫](https://github.com/aws/graph-notebook/#connecting-to-a-graph-database)。

您可以將本機筆記本連線到 Neptune 資料庫叢集，或連線至開放原始碼圖形資料庫的本機或遠端執行個體。

### 使用 Neptune 筆記本搭配 Neptune 叢集
<a name="graph-notebooks-local-with-neptune"></a>

如果您要連線到後端的 Neptune 叢集，建議您在 Amazon SageMaker AI 中執行筆記本。從 SageMaker AI 連線至 Neptune 比從本機安裝筆記本更為方便，它可讓您更輕鬆地使用 [Neptune ML](machine-learning.md)。

如需如何在 SageMaker AI 中設定筆記本的指示，請參閱[使用 Amazon SageMaker 啟動圖形筆記本](https://github.com/aws/graph-notebook/blob/main/additional-databases/sagemaker/README.md)。

如需設定 Neptune 本身的相關指示，請參閱 [設定 Amazon Neptune](neptune-setup.md)。

您也可以將 Neptune 筆記本的本機安裝連線到 Neptune 資料庫叢集。這種情況可能會稍微複雜一些，因為 Amazon Neptune 資料庫叢集只能在 Amazon Virtual Private Cloud (VPC) 中建立，而此 VPC 是專為與外界隔離而設計的。有多種方法可從外部連線到 VPC。其中一種為使用負載平衡器。另一種為使用 VPC 互連 (請參閱 [Amazon Virtual Private Cloud 互連指南](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html))。

不過，對於大多數人來說，最方便的方法是連線以在 VPC 內設定 Amazon EC2 代理伺服器，然後使用 [SSH 隧道](https://www.ssh.com/ssh/tunneling/) (也稱為連接埠轉發) 連線至其中。您可以在[圖形筆記本](https://github.com/aws/graph-notebook/) GitHub 專案的 `additional-databases/neptune` 資料夾中，於[將圖形筆記本本機連線到 Amazon Neptune](https://github.com/aws/graph-notebook/tree/main/additional-databases/neptune) 找到有關如何設定的指示。

### 使用 Neptune 筆記本搭配開放原始碼圖形資料庫
<a name="graph-notebooks-open-source_databases"></a>

若要免費開始使用圖形技術，您也可以使用 Neptune 筆記型電腦搭配後端的各種開放原始碼資料庫。範例為 TinkerPop [Gremlin 伺服器](https://tinkerpop.apache.org/docs/current/reference/#gremlin-server)和 [Blazegraph](https://blazegraph.com/) 資料庫。

若要使用 Gremlin Server 做為後端資料庫，請遵循下列步驟：
+ [將圖形筆記本連線到 Gremlin 伺服器](https://github.com/aws/graph-notebook/blob/main/additional-databases/gremlin-server/README.md#connecting-graph-notebook-to-a-gremlin-server) GitHub 資料夾。
+ [圖形筆記本 Gremlin 組態](https://github.com/aws/graph-notebook/#gremlin-server) GitHub 資料夾。

若要使用 [Blazegraph](https://github.com/blazegraph/database) 的本機執行個體做為後端資料庫，請遵循下列步驟：
+ 檢閱 [Blazegraph 快速入門說明](https://github.com/blazegraph/database/wiki/Quick_Start)，以了解執行 Blazegraph 執行個體所需的基本設定和組態。
+ 存取[圖形筆記本 Blazegraph 組態](https://github.com/aws/graph-notebook/#blazegraph) GitHub 資料夾，其中包含設定本機 Blazegraph 執行個體的必要檔案和指示。
+ 在 GitHub 儲存庫中，導覽至「blazegraph」目錄，並遵循提供的指示來設定本機 Blazegraph 執行個體。這包括下載 Blazegraph 軟體、設定必要檔案，以及啟動 Blazegraph 伺服器的步驟。

本機 Blazegraph 執行個體一旦執行，您就可以將其與應用程式整合為以圖形為基礎的資料和查詢的後端資料庫。請參閱圖形筆記本儲存庫中提供的文件和範例程式碼，了解如何將您的應用程式連線至 Blazegraph 執行個體。

## 將 Neptune 筆記本遷移至 JupyterLab 4.x
<a name="migrating-neptune-notebooks-jupyterlab"></a>

本節概述將 Neptune 筆記本遷移至 JupyterLab 4.x 和更新版本的 Amazon Linux 環境的各種方法。如需 JupyterLab 版本控制的詳細資訊，請參閱 [Amazon SageMaker AI JupyterLab 版本控制](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-jl.html)。

### 遷移方法
<a name="migration-approaches"></a>

#### 全新安裝
<a name="fresh-installation"></a>

如果您不需要保留現有的工作區檔案或組態，您可以：

1. 建立執行 JupyterLab 4.x 的新筆記本執行個體 (notebook-al2-v3)

1. 驗證新設定是否如預期般運作

1. 停止和刪除舊的筆記本執行個體

#### 檔案傳輸遷移
<a name="file-transfer-migration"></a>

此方法使用本機系統或 Amazon S3 做為中繼儲存。

**最適合**  

+ [ 透過 Amazon SageMaker AI 網路組態直接存取網際網路](https://docs.aws.amazon.com//sagemaker/latest/dg/appendix-notebook-and-internet-access.html#appendix-notebook-and-internet-access-default)。
+ 要遷移的中等資料量
+ 要保留的特定檔案，而不是整個工作區組態。

##### 方法 1：使用 JupyterLab UI
<a name="method-jupyterlab-ui"></a>

**最適合**  

+ 少量檔案
+ 選擇性檔案遷移
+ 偏好簡單的drag-and-drop操作

**步驟**  


1. 從來源 JupyterLab 執行個體下載檔案：
   + 在 JupyterLab 中導覽並選取要遷移至新執行個體的檔案
   + 按一下滑鼠右鍵並選取**下載**

1. 上傳至新的 JupyterLab 執行個體：
   + 使用 JupyterLab 中的上傳按鈕，然後選取您要複製到新執行個體的所有檔案
   + （或） 直接拖放檔案

##### 方法 2：使用 Amazon S3
<a name="method-s3"></a>

**最適合**  

+ 大量檔案
+ 保留您的資料夾結構
+ 大量遷移

**先決條件**  
確保與筆記本相關聯的角色具有上傳和存取 Amazon S3 儲存貯體的適當許可：

```
{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject", "s3:ListBucket"],
"Resource": ["arn:aws:s3:::your-bucket-name/*", "arn:aws:s3:::your-bucket-name"]
}
```

**注意**  
 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/index.html) 應該預先安裝在 SageMaker AI 筆記本上。

**步驟**  


1. 在 JupyterLab 中開啟終端機，或在字`!`首為 的筆記本儲存格中輸入終端機命令。

1. 使用 Amazon S3 cp 或 Amazon S3 同步 CLI 命令，將檔案從舊的 JupyterLab 執行個體複製到 S3： [Amazon S3 ](https://docs.aws.amazon.com//cli/latest/reference/s3/cp.html) [Amazon S3 ](https://docs.aws.amazon.com//cli/latest/reference/s3/sync.html) 

   ```
   # using AWS s3 cp
   aws s3 cp /home/ec2-user/SageMaker/your-folder s3://your-bucket/backup/ --recursive
   
   # (OR) using AWS s3 sync
   aws s3 sync /home/ec2-user/SageMaker/your-folder s3://your-bucket/backup/
   ```

1. 將檔案從 S3 複製到新的 JupyterLab 執行個體：

   ```
   # using AWS s3 cp
   aws s3 cp s3://your-bucket/backup/ /home/ec2-user/SageMaker/your-folder --recursive
   
   # (OR) using AWS s3 sync
   aws s3 sync s3://your-bucket/backup/ /home/ec2-user/SageMaker/your-folder
   ```

**注意**  
使用 `sync` 來維護資料夾結構和增量更新，並使用 `cp`進行一次性傳輸。

#### Amazon EFS 遷移
<a name="amazon-efs-migration"></a>

**最適合**  

+ [ 僅限 VPC](https://docs.aws.amazon.com//sagemaker/latest/dg/appendix-notebook-and-internet-access.html#appendix-notebook-and-internet-access-default-vpc) 的網路組態
+ 大型資料磁碟區

**步驟**  
遵循[掛載 EFS 檔案系統至 Amazon SageMaker AI 筆記本](https://aws.amazon.com/blogs//machine-learning/mount-an-efs-file-system-to-an-amazon-sagemaker-notebook-with-lifecycle-configurations/)部落格，將 Amazon EFS 檔案系統與筆記本執行個體搭配使用。

此外，還有一些專門適用於將 Neptune 筆記本遷移到新環境的步驟：

1. 在[主控台 中建立 Neptune 筆記本期間](https://docs.aws.amazon.com//neptune/latest/userguide/graph-notebooks.html#graph-notebooks-workbench)，選取**在生命週期組態下建立新的**生命週期組態

1. 在範本生命週期組態中，在 install.sh 指令碼後面附加您的 Amazon EFS 掛載命令 (`sudo mount -t nfs ...`)

這可確保您的 Amazon EFS 檔案系統在每次筆記本執行個體啟動或重新啟動時自動掛載。如需疑難排解掛載問題，請參閱 [Amazon EFS 疑難排解文件](https://docs.aws.amazon.com/efs/latest/ug/troubleshooting.html)。

**優點**  

+ 跨執行個體無縫存取檔案
+ 無需中介傳輸的直接檔案存取
+ 有效處理大型資料集

#### Amazon EBS 磁碟區遷移
<a name="ebs-volume-migration"></a>

**最適合需要保留的時間**  

+ 完整的工作區組態
+ 隱藏的檔案
+ 系統設定
+ 保留完整的工作區組態、隱藏的檔案和系統設定

遵循 [AWS Amazon EBS 磁碟區的 SageMaker AI 遷移指南](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-upgrade.html)，從與筆記本執行個體相關聯的 Amazon EBS 磁碟區傳輸檔案。

此外，還有幾個步驟特別適用於將 Neptune 筆記本遷移到新環境。

## Neptune 特定的先決條件
<a name="graph-notebooks-migrating-to-JL3-prereqs"></a>

在來源 Neptune 筆記本的 IAM 角色中，新增下列所有許可：

```
{
  "Effect": "Allow",
  "Action": [
    "s3:GetObject",
    "s3:ListBucket",
    "s3:CreateBucket",
    "s3:PutObject"
  ],
  "Resource": [
    "arn:aws:s3:::{{(your ebs backup bucket name)}}",
    "arn:aws:s3:::{{(your ebs backup bucket name)}}/*"
  ]
},
{
  "Effect": "Allow",
  "Action": [
    "sagemaker:ListTags"
  ],
  "Resource": [
    "*"
  ]
}
```

請務必針對將用於備份的 S3 儲存貯體指定正確的 ARN。

## Neptune 特定的生命週期組態
<a name="graph-notebooks-migrating-to-JL3-lifecycle"></a>

如部落格文章所述，建立第二個生命週期組態指令碼來還原備份 (從 `on-create.sh`) 時，生命週期名稱必須遵循 `aws-neptune-*` 格式，例如 `aws-neptune-sync-from-s3`。這會確保在 Neptune 主控台中建立筆記本期間可以選取 LCC。

## 從快照到新執行個體的 Neptune 特定同步
<a name="graph-notebooks-migrating-to-JL3-synchronizing"></a>

在部落格文章中所述從快照同步至新執行個體的步驟中，以下是 Neptune 特定的變更：
+ 在步驟 4 上，選擇 **notebook-al2-v3**。
+ 在步驟 5 上，重複使用來源 Neptune 筆記本中的 IAM 角色。
+ 在步驟 7 與 8 之間：
  + 在**筆記本執行個體設定**中，設定使用 `aws-neptune-*` 格式的名稱。
  + 開啟**網路**設定摺疊式功能表，然後選取與來源筆記本中相同的 VPC、子網路和安全群組。

## 在建立了新筆記本之後的 Neptune 特定步驟
<a name="graph-notebooks-migrating-to-JL3-afterwards"></a>

1. 為筆記本選取**開啟 Jupyter** 按鈕。一旦 `SYNC_COMPLETE` 檔案顯示在主目錄中，就會繼續執行下一個步驟。

1. 前往 SageMaker AI 主控台中的筆記本執行個體頁面。

1. 停止筆記本。

1. 選擇 **Edit** (編輯)。

1. 在筆記本執行個體設定中，選取來源 Neptune 筆記本的原始生命週期，以編輯**生命週期組態**欄位。請注意，這不是 EBS 備份生命週期。

1. 選擇**更新筆記本設定**。

1. 重新啟動筆記本。

透過部落格文章中概述的步驟此處所述的修改，您的圖形筆記本現在應該遷移到使用 Amazon Linux 2 和 JupyterLab 4 環境的新 Neptune 筆記本執行個體。它們會在 的 Neptune 頁面上顯示以供存取和管理 AWS 管理主控台，您現在可以選擇**開啟 Jupyter **或**開啟 JupyterLab**，從您離開的位置繼續工作。

## 在 Amazon SageMaker AI 執行個體中建立 Neptune 筆記本
<a name="create-notebook-next"></a>

****

1. 開啟位在 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 的 Amazon SageMaker AI 主控台。

1. 在導覽窗格中，展開**筆記本**，然後選擇**筆記本執行個體**。

1. 選擇**建立筆記本執行個體**。

1. 在**筆記本執行個體設定**中，在**筆記本執行個體名稱**下，為筆記本命名字首為 `aws-neptune-`（例如，`aws-neptune-my-test-notebook`)。

1. 在**平台識別符**下，選取 **Amazon Linux 2、JupyterLab 4**。

1. 選取**其他組態**。

1. 在**生命週期組態**下，選擇**建立新的生命週期組態**。

1. 在**組態**中，在**名稱**下輸入步驟 4 中的筆記本執行個體名稱。

1. 在**指令碼**的**開始筆記本**下，將現有指令碼取代為以下內容：

   ```
   #!/bin/bash
   
   sudo -u ec2-user -i <<'EOF'
   
   echo "export GRAPH_NOTEBOOK_AUTH_MODE=IAM" >> ~/.bashrc
   echo "export GRAPH_NOTEBOOK_SSL=True" >> ~/.bashrc
   echo "export GRAPH_NOTEBOOK_SERVICE={{neptune-db for Neptune, or neptune-graph for Neptune Analytics}}" >> ~/.bashrc
   echo "export GRAPH_NOTEBOOK_HOST={{(Neptune Analytics graph endpoint, public or private)}}" >> ~/.bashrc
   echo "export GRAPH_NOTEBOOK_PORT=8182" >> ~/.bashrc
   echo "export NEPTUNE_LOAD_FROM_S3_ROLE_ARN=" >> ~/.bashrc
   echo "export AWS_REGION={{(AWS region)}}" >> ~/.bashrc
   
   aws s3 cp s3://aws-neptune-notebook-{{(AWS region)}}/graph_notebook.tar.gz /tmp/graph_notebook.tar.gz
   rm -rf /tmp/graph_notebook
   tar -zxvf /tmp/graph_notebook.tar.gz -C /tmp
   /tmp/graph_notebook/install_jl4x.sh
   
   EOF
   ```

1. 選擇 **Create configuration (建立組態)**。

1. 在**許可和加密**中，在 **IAM 角色**下，選取您在上面建立的角色。

1. 在**網路**中，如果您使用私有圖形端點：

   1. 在 **VPC** 下，選取 Neptune Analytics 圖形所在的 VPC。

   1. 在**子網路**下，選取與 Neptune Analytics 圖形相關聯的子網路。

   1. 在**安全群組 (Security Group)** 下，選取與 Neptune Analytics 圖形相關聯的所有安全群組。

1. 選擇**建立筆記本執行個體**。

1. 5 或 10 分鐘後，當您的新筆記本達到`Ready`狀態時，請選取它。選擇**開啟 Jupyter** 或**開啟 JupyterLab**。

## 手動設定 Neptune 筆記本
<a name="graph-notebook-manual-setup"></a>

 您也可以使用圖形筆記本和圖形探索器可用的 AWS 開放原始碼套件來設定 Neptune 筆記本環境。雖然有多種方式可以使用開放原始碼套件設定筆記本，但建議的方法如下：
+  在本機機器和 Amazon EC2 SSH 通道上設定[圖形筆記本](https://github.com/aws/graph-notebook)，將本機機器連接到與 Amazon EC2 執行個體相同 VPC 上的 Neptune 叢集。
+  在 VPC 內的 Amazon EC2 執行個體上設定[圖形總管](https://github.com/aws/graph-explorer)。

 如需設定開放原始碼[圖形筆記本](https://github.com/aws/graph-notebook)和[圖形探索程式](https://github.com/aws/graph-explorer)套件的詳細說明，請參閱下列官方 AWS 文件和 GitHub 儲存庫：
+  [https://docs.aws.amazon.com//neptune/latest/userguide/graph-notebooks.html#graph-notebooks-local](https://docs.aws.amazon.com//neptune/latest/userguide/graph-notebooks.html#graph-notebooks-local) 
+  [https://docs.aws.amazon.com//neptune/latest/userguide/get-started-connect-ec2-same-vpc.html](https://docs.aws.amazon.com//neptune/latest/userguide/get-started-connect-ec2-same-vpc.html) 
+  [https://github.com/aws/graph-notebook/tree/main/additional-databases/neptune](https://github.com/aws/graph-notebook/tree/main/additional-databases/neptune) 
+  [https://github.com/aws/graph-explorer/blob/main/additionaldocs/getting-started/README.md#amazon-ec2-setup](https://github.com/aws/graph-explorer/blob/main/additionaldocs/getting-started/README.md#amazon-ec2-setup) 

**安全組態**  
 設定您的環境時，請確定已相應設定下列安全組態：
+  **Neptune 叢集安全群組** - 允許連接埠 8182 上來自 Amazon EC2 執行個體安全群組的傳入 TCP 流量。
+  **Amazon EC2 執行個體安全群組** - 設定傳入 HTTPS 規則以啟用 Graph Explorer 存取。

 我們建議您針對 Neptune 叢集和 Amazon EC2 執行個體使用單一安全群組。這可簡化組態並減少潛在的連線問題。不過，請記得新增自我參考規則，以允許群組內資源之間的通訊。