本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立應用程式元件的 AWS Cloud Map 服務
建立命名空間之後,您可以建立服務,以代表服務於特定用途的應用程式的不同元件。例如,您可以為應用程式中的資源建立處理付款的服務。
注意
您無法建立多個可供 DNS 查詢存取的服務,其名稱只會因大小寫而有所不同 (例如範例和範例)。嘗試這樣做將導致這些服務具有相同的 DNS 名稱。如果您使用的命名空間只能由 API 呼叫存取,則可以建立名稱的服務,名稱只會因大小寫而有所不同。
請依照下列步驟使用 AWS Management Console、 AWS CLI和 SDK (適用於 Python) 來建立服務。
- AWS Management Console
-
請登入 AWS Management Console 並開啟 AWS Cloud Map 主控台,網址為 https://console.aws.amazon.com/cloudmap/
。 -
在導覽窗格中,選擇 Namespaces (命名空間)。
-
在 Namespaces (命名空間) 頁面,選擇您要新增服務的命名空間。
-
在「命名空間:命名空間
名稱」頁面上,選擇「建立服
務」。 -
在「服務名稱」中,輸入說明您在使用此服務時註冊之執行個體的名稱。此值用於在 API 呼叫或 DNS 查詢中探索 AWS Cloud Map 服務執行個體。
注意
如果您想 AWS Cloud Map 要在註冊執行個體時建立 SRV 記錄,而且您使用的系統需要特定 SRV 格式 (例如 HAProxy
),請為 [服務名稱] 指定下列項目: -
以下劃線 (_) 開頭的名稱,例如 _exam pleservice。
-
名稱結尾為
。
_ 協議,例如。 _tcp。
當您註冊執行個體時,會 AWS Cloud Map 建立 SRV 記錄,並透過串連服務名稱和命名空間名稱來指派名稱,例如:
_exampleservice._tcp.example.com
-
-
(選擇性) 在服務說明中,輸入服務的說明。您在此處輸入的說明會顯示在「服務」頁面和每個服務的詳細資料頁面上。
-
如果命名空間支援 DNS 查詢,您可以在服務探索組態下設定服務層級的可搜尋性。選擇允許 API 呼叫和 DNS 查詢,或者只允許 API 呼叫以探索此服務中的執行個體。
注意
如果您選擇 API 呼叫, AWS Cloud Map 則在註冊執行個體時不會建立 SRV 記錄。
如果您選擇 API 和 DNS,請依照下列步驟設定 DNS 記錄。您可以新增或移除 DNS 記錄。
-
對於路由政策,請為註冊執行個體時 AWS Cloud Map 建立的 DNS 記錄選取 Amazon Route 53 路由政策。您可以在加權路由和多值答案路由之間進行選擇。如需詳細資訊,請參閱 路由政策。
注意
註冊執行個體時,無法使用主控台設定 AWS Cloud Map 為建立 Route 53 別名記錄。如果 AWS Cloud Map 要在以程式設計方式註冊執行個體時,為 Elastic Load Balancing 器建立別名記錄,請為路由政策選擇加權路由。
-
在 [記錄類型] 中,選擇決定 Route 53 回應 DNS 查詢所傳回的 DNS 記錄類型 AWS Cloud Map。如需詳細資訊,請參閱 記錄類型。
-
對於 TTL,請指定數值來定義服務層次的存留時間 (TTL) 值 (以秒為單位)。TTL 的值會決定 DNS 解析器快取此記錄資訊的時間長度,然後解析程式將另一個 DNS 查詢轉送至 Amazon Route 53 以取得更新的設定。
-
-
在健全狀況檢查組態下,針對 Health 狀態檢查選項,選擇適用於服務執行個體的健全狀況檢查類型。您可以選擇不設定任何運作狀態檢查,也可以選擇 Route 53 健康狀態檢查或執行個體的外部健康狀態檢查。如需詳細資訊,請參閱 AWS Cloud Map 服務健康狀態檢查組。
注意
Route 53 健康狀態檢查只能針對公用 DNS 命名空間中的服務進行設定。
如果您選擇路線 53 號公路健康檢查,請提供以下資訊。
-
針對失敗臨界值,請提供介於 1 到 10 之間的數字,以定義服務執行個體必須通過或失敗的連續 Route 53 健全狀況檢查次數,才會變更其健全狀態。
-
在 Health 狀態檢查通訊協定中,選取 Route 53 將用來檢查服務執行個體健全狀況的方法。
-
如果您選擇 HTTP 或 HTTPS 運作 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 開發人員指南。
-
-
(選擇性) 在「標籤」下,選擇「新增標籤」,然後指定要標記命名空間的索引鍵和值。您可以指定要新增至命名空間的一或多個標籤。標籤可讓您對 AWS 資源進行分類,以便更輕鬆地管理它們。如需詳細資訊,請參閱 標記您的 AWS Cloud Map 資源。
-
選擇 Create service (建立服務)。
- AWS CLI
-
-
使用
create-service
指令建立服務。用您自己的值替換紅色
值。aws servicediscovery create-service \ --name
service-name
\ --namespace-idns-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
在這裡找到安裝、設定和使用說明。 -
導入
Boto3
並用servicediscovery
作您的服務。import boto3 client = boto3.client('servicediscovery')
-
使用建立服務
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 服務執行個體。