將資源註冊為 AWS Cloud Map 服務執行個體 - AWS Cloud Map

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

將資源註冊為 AWS Cloud Map 服務執行個體

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

注意

下列功能無法在 AWS Cloud Map 主控台上使用:

  • 當您使用主控台註冊服務執行個體時,您無法建立別名記錄,將流量路由到 Elastic Load Balancing (ELB) 負載平衡器。註冊執行個體時,您必須包含 AWS_ALIAS_DNS_NAME 屬性。如需詳細資訊,請參閱 AWS Cloud Map API 參考中的 RegisterInstance

  • 如果您使用包含自訂運作狀態檢查的服務註冊執行個體,您無法為自訂運作狀態檢查指定初始狀態。自訂運作狀態檢查的初始運作狀態預設是 Healthy (良好)。如果您希望初始運作狀態是 Unhealthy (不良),請以程式設計的方式註冊執行個體並包含 AWS_INIT_HEALTH_STATUS 屬性。如需詳細資訊,請參閱 AWS Cloud Map API 參考中的 RegisterInstance

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

AWS Management Console
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/cloudmap/ 開啟 AWS Cloud Map 主控台。

  2. 在導覽窗格中,選擇 Namespaces (命名空間)

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

  4. 命名空間:Namespace-name 頁面上,選擇您要使用的服務。

  5. 服務:服務名稱頁面上,選擇註冊服務執行個體

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

    注意

    您只能在 HTTP 命名空間中選擇 EC2 執行個體

  7. 針對服務執行個體 ID,提供與服務執行個體相關聯的識別符。

    注意

    如果您想要更新現有的執行個體,請提供與要更新之執行個體相關聯的識別符。然後,使用後續步驟來更新值並重新註冊執行個體。

  8. 根據您選擇的執行個體類型,執行下列步驟。

    重要

    當您指定自訂屬性時,無法在金鑰中使用AWS_字首 (不區分大小寫)。

    執行個體類型 步驟

    IP 地址

    1. 標準屬性下,對於 IPv4 地址,如果有,請提供 IPv4 地址,您的應用程式可以存取與此服務執行個體相關聯的資源。

    2. 針對 IPv6 地址,請提供 IPv6 IP 地址,如果有的話,您的應用程式可以存取與此服務執行個體相關聯的資源。

    3. 針對連接埠,指定您的應用程式必須包含的任何連接埠,以存取與此服務執行個體相關聯的資源。當服務包含 SRV 記錄或 Amazon Route 53 運作狀態檢查時,需要連接埠

    4. (選用) 在自訂屬性下,指定您要與資源建立關聯的任何鍵/值對。

    EC2 執行個體
    1. 針對 EC2 執行個體 ID,選取您要註冊為 AWS Cloud Map 服務執行個體的 Amazon EC2 執行個體 ID。

    2. (選用) 在自訂屬性下,指定您要與資源建立關聯的任何鍵/值對。

    為另一個資源識別資訊
    1. 標準屬性下,如果服務組態包含 CNAME DNS 記錄,您會看到 CNAME 欄位。針對 CNAME,指定您希望 Route 53 傳回的網域名稱,以回應 DNS 查詢 (例如 example.com)。

    2. 自訂屬性下,為非 IP 地址或 Amazon EC2 執行個體 ID 的資源指定任何識別資訊,做為索引鍵/值對。例如,您可以指定名為 的金鑰function,並提供 Lambda 函數的名稱做為值,以註冊 Lambda 函數。您也可以指定名為 的金鑰,name並提供可用於程式設計執行個體探索的名稱。

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

AWS CLI
  • 當您提交RegisterInstance請求時:

    • 對於您在 指定的服務中定義的每個 DNS 記錄ServiceId,會在與對應命名空間相關聯的託管區域中建立或更新記錄。

    • 如果服務包含 HealthCheckConfig,會根據運作狀態檢查組態中的設定建立運作狀態檢查。

    • 任何運作狀態檢查都會與每個新的或更新的記錄相關聯。

    使用 register-instance命令註冊服務執行個體 (使用您自己的值取代紅色值)。

    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在這裡找到安裝、設定和使用 的指示。

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

    import boto3 client = boto3.client('servicediscovery')
  3. 當您提交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': { '...': '...', }, }