HTTP 트리거와 푸른 기능에서 클라이언트 IP를 검색하는 경우, 다음과 같은 코드를 사용할 수 있습니다
run.csx : 자세한 내용은
#r "System.Web"
using System.Web;
using System.Net;
public static HttpResponseMessage Run(HttpRequestMessage req, TraceWriter log)
{
var address = ((HttpContextWrapper)req.Properties["MS_HttpContext"]).Request.UserHostAddress;
log.Info($"Your client IP: {address}");
return req.CreateResponse(HttpStatusCode.OK, $"Your client IP: {address}");
}
, 당신은 할 수 이 issue을 참조하십시오.
때문에 사용자가 다시 나는 구름 타이머 트리거를 실행 큐 저장소에서 모든 IPADDRESS을 복용하여 클라이언트 IPADDRESS 차단을 해제 할 수 있습니다 시도하고 다음 날의 수를 넘어 API를 호출하는 경우 나, 하루 동안 클라이언트 IPADDRESS을 차단할 수있다.
특정 IP에 대한 액세스 로그를 저장하기 위해 테이블 저장소를 사용하는 것이 좋습니다. PartitionKey
열을 날짜로 설정하고 RowKey
을 ClientIP
또는 ClientIP + ApiName
으로 설정하고 다른 열 (Timestamp, TotalRequests 등)을 추가 할 수도 있습니다. 또한 스토리지 테이블을 설계하는 데 Azure Storage Table Design Guide을 참조 할 수 있습니다.
하늘색 기능의 경우 특정 IP에 대한 요청 로그를 읽는 데 Storage table bindings 및 Table Storage SDK을 사용하고 특정 IP에 대한 총 요청 수를 업데이트 할 수 있습니다. 또한, 여기에 비슷한 블로그가 있습니다. here을 참조하십시오.
UPDATE :
다음과 같이 당신은 "모니터링> 진단 로그"에서 파일 시스템 또는 BLOB 저장소에 저장되는 로그를 구성 할 수 있습니다 :


응용 프로그램 로깅 (파일 시스템)의 경우 kudu :
을 통해 로그를 찾을 수 있습니다 응용 프로그램 로그에 대한

(BLOB), 당신은 당신의 로그를 검색 할 Storage Explorer을 활용할 수 있습니다.
자신의 IP (동적 IP 주소로 인해 매우 안전하지 않음)를 기반으로 사용자를 차단하려면이 IP 주소의 마지막 "오버플로"액세스를 저장하고 마지막 액세스가 과거 24 시간인지 확인하십시오 ... 저장을 위해 DocumentDB, CosmosDB 또는 RedisCache를 사용할 수 있습니다. 어쩌면 Azure Storage도 있지만 이전 저장소와 함께 갈 것입니다. – sebastian87