本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將資源註冊為 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
-
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/cloudmap/
開啟 AWS Cloud Map 主控台。 -
在導覽窗格中,選擇 Namespaces (命名空間)。
-
在 Namespaces (命名空間) 頁面中,選擇包含您要用做為註冊服務執行個體範本之服務的命名空間。
-
在命名空間:
Namespace-name
頁面上,選擇您要使用的服務。 -
在服務:
服務名稱
頁面上,選擇註冊服務執行個體。 -
在註冊服務執行個體頁面上,選擇執行個體類型。根據命名空間執行個體探索組態,您可以選擇為沒有 IP 地址的資源指定 IP 地址、Amazon EC2 執行個體 ID 或其他識別資訊。
注意
您只能在 HTTP 命名空間中選擇 EC2 執行個體。
-
針對服務執行個體 ID,提供與服務執行個體相關聯的識別符。
注意
如果您想要更新現有的執行個體,請提供與要更新之執行個體相關聯的識別符。然後,使用後續步驟來更新值並重新註冊執行個體。
-
根據您選擇的執行個體類型,執行下列步驟。
重要
當您指定自訂屬性時,無法在金鑰中使用
AWS_
字首 (不區分大小寫)。執行個體類型 步驟 IP 地址
-
在標準屬性下,對於 IPv4 地址,如果有,請提供 IPv4 地址,您的應用程式可以存取與此服務執行個體相關聯的資源。
-
針對 IPv6 地址,請提供 IPv6 IP 地址,如果有的話,您的應用程式可以存取與此服務執行個體相關聯的資源。
-
針對連接埠,指定您的應用程式必須包含的任何連接埠,以存取與此服務執行個體相關聯的資源。當服務包含 SRV 記錄或 Amazon Route 53 運作狀態檢查時,需要連接埠。
-
(選用) 在自訂屬性下,指定您要與資源建立關聯的任何鍵/值對。
EC2 執行個體 -
針對 EC2 執行個體 ID,選取您要註冊為 AWS Cloud Map 服務執行個體的 Amazon EC2 執行個體 ID。
-
(選用) 在自訂屬性下,指定您要與資源建立關聯的任何鍵/值對。
為另一個資源識別資訊 -
在標準屬性下,如果服務組態包含 CNAME DNS 記錄,您會看到 CNAME 欄位。針對 CNAME,指定您希望 Route 53 傳回的網域名稱,以回應 DNS 查詢 (例如
example.com
)。 -
在自訂屬性下,為非 IP 地址或 Amazon EC2 執行個體 ID 的資源指定任何識別資訊,做為索引鍵/值對。例如,您可以指定名為 的金鑰
function
,並提供 Lambda 函數的名稱做為值,以註冊 Lambda 函數。您也可以指定名為 的金鑰,name
並提供可用於程式設計執行個體探索的名稱。
-
-
選擇 Register service instance (註冊服務執行個體)。
- AWS CLI
-
-
當您提交
RegisterInstance
請求時:-
對於您在 指定的服務中定義的每個 DNS 記錄
ServiceId
,會在與對應命名空間相關聯的託管區域中建立或更新記錄。 -
如果服務包含
HealthCheckConfig
,會根據運作狀態檢查組態中的設定建立運作狀態檢查。 -
任何運作狀態檢查都會與每個新的或更新的記錄相關聯。
使用
register-instance
命令註冊服務執行個體 (使用您自己的值取代紅色
值)。aws servicediscovery register-instance \ --service-id
srv-xxxxxxxxx
\ --instance-idmyservice-xx
\ --attributes=AWS_INSTANCE_IPV4=172.2.1.3,AWS_INSTANCE_PORT=808
-
-
- AWS SDK for Python (Boto3)
-
-
如果您尚未
Boto3
安裝 ,您可以Boto3
在這裡找到安裝、設定和使用 的指示。 -
匯入
Boto3
並使用servicediscovery
做為您的服務。import boto3 client = boto3.client('servicediscovery')
-
當您提交
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': { '...': '...', }, }
-
-