建立應用程式元件的 AWS Cloud Map 服務 - AWS Cloud Map

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

建立應用程式元件的 AWS Cloud Map 服務

建立命名空間之後,您可以建立服務,以代表服務於特定用途的應用程式的不同元件。例如,您可以為應用程式中的資源建立處理付款的服務。

注意

您無法建立多個可供 DNS 查詢存取的服務,其名稱只會因大小寫而有所不同 (例如範例和範例)。嘗試這樣做將導致這些服務具有相同的 DNS 名稱。如果您使用的命名空間只能由 API 呼叫存取,則可以建立名稱的服務,名稱只會因大小寫而有所不同。

請依照下列步驟使用 AWS Management Console、 AWS CLI和 SDK (適用於 Python) 來建立服務。

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

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

  3. Namespaces (命名空間) 頁面,選擇您要新增服務的命名空間。

  4. 在「命名空間:命名空間名稱」頁面上,選擇「建立服務」。

  5. 在「服務名稱」中,輸入說明您在使用此服務時註冊之執行個體的名稱。此值用於在 API 呼叫或 DNS 查詢中探索 AWS Cloud Map 服務執行個體。

    注意

    如果您想 AWS Cloud Map 要在註冊執行個體時建立 SRV 記錄,而且您使用的系統需要特定 SRV 格式 (例如 HAProxy),請為 [服務名稱] 指定下列項目:

    • 以下劃線 (_) 開頭的名稱,例如 _exam pleservice。

    • 名稱結尾為_ 協議,例如。 _tcp

    當您註冊執行個體時,會 AWS Cloud Map 建立 SRV 記錄,並透過串連服務名稱和命名空間名稱來指派名稱,例如:

    _exampleservice._tcp.example.com

  6. (選擇性) 在服務說明中,輸入服務的說明。您在此處輸入的說明會顯示在「服務」頁面和每個服務的詳細資料頁面上。

  7. 如果命名空間支援 DNS 查詢,您可以在服務探索組態下設定服務層級的可搜尋性。選擇允許 API 呼叫和 DNS 查詢,或者只允許 API 呼叫以探索此服務中的執行個體。

    注意

    如果您選擇 API 呼叫, AWS Cloud Map 則在註冊執行個體時不會建立 SRV 記錄。

    如果您選擇 API 和 DNS,請依照下列步驟設定 DNS 記錄。您可以新增或移除 DNS 記錄。

    1. 對於路由政策,請為註冊執行個體時 AWS Cloud Map 建立的 DNS 記錄選取 Amazon Route 53 路由政策。您可以在加權路由和多值答案路由之間進行選擇。如需詳細資訊,請參閱 路由政策

      注意

      註冊執行個體時,無法使用主控台設定 AWS Cloud Map 為建立 Route 53 別名記錄。如果 AWS Cloud Map 要在以程式設計方式註冊執行個體時,為 Elastic Load Balancing 器建立別名記錄,請為路由政策選擇加權路由

    2. 在 [記錄類型] 中,選擇決定 Route 53 回應 DNS 查詢所傳回的 DNS 記錄類型 AWS Cloud Map。如需詳細資訊,請參閱 記錄類型

    3. 對於 TTL,請指定數值來定義服務層次的存留時間 (TTL) 值 (以秒為單位)。TTL 的值會決定 DNS 解析器快取此記錄資訊的時間長度,然後解析程式將另一個 DNS 查詢轉送至 Amazon Route 53 以取得更新的設定。

  8. 健全狀況檢查組態下,針對 Health 狀態檢查選項,選擇適用於服務執行個體的健全狀況檢查類型。您可以選擇不設定任何運作狀態檢查,也可以選擇 Route 53 健康狀態檢查或執行個體的外部健康狀態檢查。如需詳細資訊,請參閱 AWS Cloud Map 服務健康狀態檢查組

    注意

    Route 53 健康狀態檢查只能針對公用 DNS 命名空間中的服務進行設定。

    如果您選擇路線 53 號公路健康檢查,請提供以下資訊。

    1. 針對失敗臨界值,請提供介於 1 到 10 之間的數字,以定義服務執行個體必須通過或失敗的連續 Route 53 健全狀況檢查次數,才會變更其健全狀態。

    2. Health 狀態檢查通訊協定中,選取 Route 53 將用來檢查服務執行個體健全狀況的方法。

    3. 如果您選擇 HTTPHTTPS 運作 Health 態檢查通訊協定,對於運作狀態檢查路徑,請提供您希望 Amazon Route 53 在執行運作狀態檢查時要求的路徑。路徑可以是任何值,例如檔案/docs/route53-health-check.html。當資源正常時,傳回的值是 2xx 或 3xx 格式的 HTTP 狀態碼。您也可以包含查詢字串參數,例如 /welcome.html?language=jp&login=y。 AWS Cloud Map 主控台會自動新增前導斜線 (/) 字元。

    如需有關 Route 53 運作狀態檢查的詳細資訊,請參閱 Amazon Route 53 如何判斷運作狀態檢查是否 Health 狀態檢查在 Amazon Route 53 開發人員指南

  9. (選擇性) 在「標」下,選擇「新增標籤」,然後指定要標記命名空間的索引鍵和值。您可以指定要新增至命名空間的一或多個標籤。標籤可讓您對 AWS 資源進行分類,以便更輕鬆地管理它們。如需詳細資訊,請參閱 標記您的 AWS Cloud Map 資源

  10. 選擇 Create service (建立服務)

AWS CLI
  • 使用create-service指令建立服務。用您自己的值替換紅色值。

    aws servicediscovery create-service \ --name service-name \ --namespace-id ns-xxxxxxxxxxx \ --dns-config "NamespaceId=ns-xxxxxxxxxxx,RoutingPolicy=MULTIVALUE,DnsRecords=[{Type=A,TTL=60}]"

    輸出:

    { "Service": { "Id": "srv-xxxxxxxxxxx", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-xxxxxxxxxxx", "Name": "service-name", "NamespaceId": "ns-xxxxxxxxxxx", "DnsConfig": { "NamespaceId": "ns-xxxxxxxxxxx", "RoutingPolicy": "MULTIVALUE", "DnsRecords": [ { "Type": "A", "TTL": 60 } ] }, "CreateDate": 1587081768.334, "CreatorRequestId": "567c1193-6b00-4308-bd57-ad38a8822d25" } }
AWS SDK for Python (Boto3)

如果您尚未安Boto3裝,您可以Boto3在這裡找到安裝、設定和使用說明。

  1. 導入Boto3並用servicediscovery作您的服務。

    import boto3 client = boto3.client('servicediscovery')
  2. 使用建立服務create_service()。用您自己的值替換紅色值。如需詳細資訊,請參閱建立服務。

    response = client.create_service( DnsConfig={ 'DnsRecords': [ { 'TTL': 60, 'Type': 'A', }, ], 'NamespaceId': 'ns-xxxxxxxxxxx', 'RoutingPolicy': 'MULTIVALUE', }, Name='service-name', NamespaceId='ns-xxxxxxxxxxx', )

    範例回應輸出

    { 'Service': { 'Arn': 'arn:aws:servicediscovery:us-west-2:123456789012:service/srv-xxxxxxxxxxx', 'CreateDate': 1587081768.334, 'DnsConfig': { 'DnsRecords': [ { 'TTL': 60, 'Type': 'A', }, ], 'NamespaceId': 'ns-xxxxxxxxxxx', 'RoutingPolicy': 'MULTIVALUE', }, 'Id': 'srv-xxxxxxxxxxx', 'Name': 'service-name', 'NamespaceId': 'ns-xxxxxxxxxxx', }, 'ResponseMetadata': { '...': '...', }, }

後續步驟

建立服務之後,您可以將應用程式資源註冊為服務執行個體,其中包含應用程式如何尋找資源的相關資訊。如需註冊 AWS Cloud Map 服務執行個體的詳細資訊,請參閱將資源註冊為 AWS Cloud Map 服務執行個體