두 개의 Docker 컨테이너가 있습니다.AWS-ECS - 컨테이너 간 통신 - 알 수없는 호스트 오류
- TestWeb는 (노출 : 80)
- TestAPI을 (노출 : 80)
Testweb 용기 TestApi 용기 부른다. 호스트는 8080 포트에서 TestWeb 컨테이너와 통신 할 수 있습니다. 호스트는 8081을 사용하여 TestApi와 통신 할 수 있습니다.
내 개발 상자 (Windows 10)에서 TestApi를 호출 할 수 있지만 AWS (ECS) 코드를 배포 할 때 얻을 수 있습니다. "알 수없는 호스트"예외입니다. 두 컨테이너 다 잘 작동하고 개별적으로 호출 할 수 있습니다. 내가 내부적으로 컨테이너 2의 방법에 HttpClient를을 사용하여 나머지 호출을하는 방법을 호출 할 때, 그것은 오류를 제공합니다
An error occurred while sending the request. ---> System.Net.Http.CurlException: Couldn't resolve host name.
코드 :
using (var client = new HttpClient())
{
try
{
string url = "http://testapi/api/Tenant/?i=" + id;
var response = client.GetAsync(url).Result;
if (response.IsSuccessStatusCode)
{
var responseContent = response.Content;
string responseString = responseContent.ReadAsStringAsync().Result;
return responseString;
}
return response.StatusCode.ToString();
}
catch (HttpRequestException httpRequestException)
{
return httpRequestException.Message;
}
}
다음 내가하려고 한 일이 있습니다 :
두 개의 컨테이너 (TestWeb, TestAPI)는 AWS ECS의 동일한 태스크 정의에 있습니다. 컨테이너를 검사 할 때 각 컨테이너의 IP 주소를 얻습니다. 컨테이너 1의 컨테이너 2에 IP 주소로 ping 할 수 있습니다. 그러나 컨테이너 2 이름을 사용하여 ping을 수행 할 수 없습니다. 그것은 나에게 "알 수없는 호스트"오류를 제공합니다.