itsource

Azure 함수 - 함수는 정적 클래스 안에 작성해야 합니다.

mycopycode 2023. 4. 22. 09:28
반응형

Azure 함수 - 함수는 정적 클래스 안에 작성해야 합니다.

Azure 기능을 시험해 보기 시작했습니다.Visual Studio 2017 Preview 버전 15.3을 사용하고 있습니다.작성한 Azure Functions 프로젝트를 오른쪽 클릭하여 [Add]> [ New Item ]를 선택하면...> Azure Function, Visual Studio에서 생성되는 기본 템플릿은public static class와 함께public static async Taskmethod(함수)를 지정합니다.

클래스는 정적으로 해야 합니까(비정적으로 변경했는데 작동하는 것 같습니다).그것이 Azure 기능에 대한 베스트 프랙티스입니까?이 경우 비정적 클래스를 사용하여 Azure 함수 메서드를 유지하면 어떤 문제가 발생할 수 있습니까?

항상 그렇듯이.함수 클래스를 정적으로 유지하는 다른 답변 중 비정적 클래스가 도움이 될 수 있는 다른 사례를 제시하고자 합니다.다음 항목을 참조하십시오.함수 의존성 주입.함수 내에서 DI를 사용하는 경우 파라미터가 있는 인스턴스 컨스트럭터를 가질 수 없기 때문에 스태틱클래스에서는 쉽게 실행할 수 없습니다.그래서 다음과 같은 글을 쓸 수 없습니다.

public class HttpTrigger
{
    private readonly IMyService _service;
    private readonly HttpClient _client;

    public HttpTrigger(IMyService service, IHttpClientFactory httpClientFactory)
    {
        _service = service;
        _client = httpClientFactory.CreateClient();
    }

    [FunctionName("GetPosts")]
    public async Task<IActionResult> Get(
        [HttpTrigger(AuthorizationLevel.Function, "get", Route = "posts")] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
        var res = await _client.GetAsync("https://microsoft.com");
        await _service.AddResponse(res);

        return new OkResult();
    }
}

함수가 서버리스 방식으로 호출되기 때문에 스태틱메서드는 여기서 올바른 의미론을 가지고 있습니다.즉, 함수가 호출될 때마다 프로세스가 종료될 수 있기 때문에 함수 호출 사이에 인스턴스 메서드의 상태를 축적해서는 안 됩니다.

즉, 의존성 주입에 대해 조사 중입니다.

클래스는 정적으로 해야 합니까(비정적으로 변경했는데 작동하는 것 같습니다).그것이 Azure 기능에 대한 베스트 프랙티스입니까?

정적 클래스는 정적 멤버만 포함할 수 있으며 인스턴스화할 수 없습니다.클래스를 non-static으로 변경하면 non-static 멤버를 추가하고 이 클래스의 인스턴스를 만들 수 있습니다.

이 클래스에 비정적 멤버를 추가하거나 인스턴스를 만들어야 하는지 확인하십시오.소프트웨어에서 제공하는 기능의 일부에 대해 모든 클래스가 책임을 져야 한다는 단일 책임 원칙 때문에 새로운 클래스를 만들고 비정적 멤버를 배치하는 것이 좋습니다.

이 경우 비정적 클래스를 사용하여 Azure 함수 메서드를 유지하면 어떤 문제가 발생할 수 있습니까?

non-static 클래스를 사용하는 이유는 non-static 멤버를 만들고 싶기 때문일 것입니다.그렇게 하면 수업이 복잡해지고 유지하기가 어려워집니다.

마지막 대답은 수업을 비정적으로 변경할 수 있다는 것입니다.수업을 단순하게 하기 위해, 나는 네가 수업을 정적으로 하는 것을 추천한다.

언급URL : https://stackoverflow.com/questions/45168659/azure-functions-should-functions-be-written-inside-static-classes

반응형