

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

# 將資源註冊為 AWS Cloud Map 服務執行個體
<a name="registering-instances"></a>

您可以將應用程式的資源註冊為 AWS Cloud Map 服務中的執行個體。例如，假設您已建立`users`針對管理使用者資料的所有應用程式資源呼叫 的服務。然後，您可以註冊用於將使用者資料儲存為此服務中執行個體的 DynamoDB 資料表。

**注意**  
下列功能不適用於 AWS Cloud Map 主控台：  
當您使用主控台註冊服務執行個體時，您無法建立將流量路由到 Elastic Load Balancing (ELB) 負載平衡器的別名記錄。註冊執行個體時，您必須包含 `AWS_ALIAS_DNS_NAME` 屬性。如需詳細資訊，請參閱《 *AWS Cloud Map API 參考*》中的 [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)。
如果您使用包含自訂運作狀態檢查的服務註冊執行個體，您無法為自訂運作狀態檢查指定初始狀態。自訂運作狀態檢查的初始運作狀態預設是 **Healthy (良好)**。如果您希望初始運作狀態是 **Unhealthy (不良)**，請以程式設計的方式註冊執行個體並包含 `AWS_INIT_HEALTH_STATUS` 屬性。如需詳細資訊，請參閱 *AWS Cloud Map API 參考*中的 [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)。

若要在服務中註冊執行個體，請遵循下列步驟。

------
#### [ AWS 管理主控台 ]

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

1. 在導覽窗格中，選擇 **Namespaces (命名空間)**。

1. 在 **Namespaces (命名空間)** 頁面中，選擇包含您要用做為註冊服務執行個體範本之服務的命名空間。

1. 在**命名空間：{{命名空間名稱}}**頁面上，選擇您要使用的服務。

1. 在**服務：{{服務名稱}}**頁面上，選擇**註冊服務執行個體**。

1. 在**註冊服務執行個體**頁面上，選擇**執行個體類型**。根據命名空間執行個體探索組態，您可以選擇為沒有 IP 地址的資源指定 IP 地址、Amazon EC2 執行個體 ID 或其他識別資訊。
**注意**  
您只能在 HTTP 命名空間中選擇 **EC2 執行個體**。

1. 針對**服務執行個體 ID**，提供與服務執行個體相關聯的識別符。
**注意**  
如果您想要更新現有的執行個體，請提供與您要更新之執行個體相關聯的識別符。然後，使用後續步驟來更新值並重新註冊執行個體。

1. 根據您選擇的**執行個體類型**，執行下列步驟。
**重要**  
當您指定自訂屬性時，無法在金鑰中使用`AWS_`字首 （不區分大小寫）。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/cloud-map/latest/dg/registering-instances.html)

1. 選擇 **Register service instance (註冊服務執行個體)**。

------
#### [ AWS CLI ]
+ 

  當您提交`RegisterInstance`請求時：
  + 對於您在 指定的服務中定義的每個 DNS 記錄`ServiceId`，記錄會在與對應命名空間相關聯的託管區域中建立或更新。
  + 如果服務包含 `HealthCheckConfig`，則會根據運作狀態檢查組態中的設定建立運作狀態檢查。
  + 任何運作狀態檢查都會與每個新的或更新的記錄相關聯。

  使用 `[register-instance](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/register-instance.html)`命令註冊服務執行個體 （使用您自己的值取代{{紅色}}值）。

  ```
  aws servicediscovery register-instance \
      --service-id {{srv-xxxxxxxxx}} \
      --instance-id {{myservice-xx}} \
      --attributes={{AWS_INSTANCE_IPV4=172.2.1.3,AWS_INSTANCE_PORT=808}}
  ```

------
#### [ AWS SDK for Python (Boto3) ]

1. 如果您尚未`Boto3`安裝 ，您可以`Boto3`[在這裡](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation)找到安裝、設定和使用 的指示。

1. 匯入`Boto3`並使用 `servicediscovery`做為您的服務。

   ```
   import boto3
   client = boto3.client('servicediscovery')
   ```

1. 

   當您提交`RegisterInstance`請求時：
   + 對於您在 指定的服務中定義的每個 DNS 記錄`ServiceId`，記錄會在與對應命名空間相關聯的託管區域中建立或更新。
   + 如果服務包含 `HealthCheckConfig`，則會根據運作狀態檢查組態中的設定建立運作狀態檢查。
   + 任何運作狀態檢查都會與每個新的或更新的記錄相關聯。

   向 註冊服務執行個體 `register_instance()`（使用您自己的值取代{{紅色}}值）。

   ```
   response = client.register_instance(
       Attributes={
           'AWS_INSTANCE_IPV4': '172.2.1.3',
           'AWS_INSTANCE_PORT': '808',
       },
       InstanceId='{{myservice-xx}}',
       ServiceId='{{srv-xxxxxxxxx}}',
   )
   # If you want to see the response
   print(response)
   ```

   回應輸出範例

   ```
   {
       'OperationId': '4yejorelbukcjzpnr6tlmrghsjwpngf4-k95yg2u7',
       'ResponseMetadata': {
           '...': '...',
       },
   }
   ```

------