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

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

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

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

注意

下列功能不適用於 AWS Cloud Map 主控台:

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

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

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

AWS 管理主控台
  1. 登入 AWS 管理主控台 並在 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': { '...': '...', }, }