Azure Functions CLI + Node + Mac에서 extension 추가

이것도 자신의 메모. Azure Functions에서는 트리거 또는 extension을 추가하는 방법이 있습니다. 특히 C#이라면 가끔 기사를 볼 수 있다.

Azure Functions에 Extension을 추가하고 싶습니다. Node + Mac에서


  • Authoring a Custom Binding for Azure Functions

  • 그래, 그래, 나, Mac에서 Node 쓰고 있지만, 이런 경우 커스텀 확장을 추가하고 싶을 때 어떻게 될거야. 이것, 마음껏 nuget 종려. 예를 들면 이것.
  • Microsoft.Azure.WebJobs.Extensions.CosmosDB

  • 이것은, 지금은, 커맨드 라인으로 낙승으로 할 수 있는 것 같다. CLI로.

    Azure Functions CLI 업데이트



    Azure Functions의 CLI가 오래되었으면 안됩니다. 내 안된 버전은 이것.
    $ func --help
    
                      %%%%%%
                     %%%%%%
                @   %%%%%%    @
              @@   %%%%%%      @@
           @@@    %%%%%%%%%%%    @@@
         @@      %%%%%%%%%%        @@
           @@         %%%%       @@
             @@      %%%       @@
               @@    %%      @@
                    %%
                    %
    
    Azure Functions Core Tools (2.0.0)
    Function Runtime Version: 2.0.11280.0
    Usage: func [context] [context] <action> [-/--options]
    
    Contexts:
    azure      Commands to log in to Azure and manage resources
    function   Commands for creating and running functions locally
    host       Commands for running the Functions host locally
    settings   Commands for managing environment settings for the local Functions host
    templates  Commands for listing available function templates
    

    업데이트 해보자. 내가 사용하고 있는 것은 preview 의 것이기 때문에 @core 가 붙어 있다. 이것은 Azure Functions 2.0
    $ npm uninstall -g azure-functions-core-tools@core 
    $ npm install -g azure-functions-core-tools@core --unsafe-perm
    

    확실히 교체.
    $ func
    
                      %%%%%%
                     %%%%%%
                @   %%%%%%    @
              @@   %%%%%%      @@
           @@@    %%%%%%%%%%%    @@@
         @@      %%%%%%%%%%        @@
           @@         %%%%       @@
             @@      %%%       @@
               @@    %%      @@
                    %%
                    %
    
    Azure Functions Core Tools (2.0.0)
    Function Runtime Version: 2.0.11308.0
    Usage: func [context] [context] <action> [-/--options]
    
    Contexts:
    azure       Commands to log in to Azure and manage resources
    extensions  Commands for installing extensions
    function    Commands for creating and running functions locally
    host        Commands for running the Functions host locally
    settings    Commands for managing environment settings for the local Functions host
    templates   Commands for listing available function templates
    
    

    오, 새로운 부속 명령이 증가하고 있습니다.

    확장 설치


    func extensions install 명령 사용. 로그와 같이 FunctionApp의 디렉토리에 functions-extensions라는 디렉토리가 생겨 거기에 저장된다. 이들은 .NET Core 라이브러리
    $ func extensions install -p Microsoft.Azure.WebJobs.Extensions.CosmosDB -v 3.0.0-beta4
      Writing /var/folders/5b/rt6_lb397_3d92vp67g98pgr0000gn/T/tmp5igzx3.tmp
    info : Adding PackageReference for package 'Microsoft.Azure.WebJobs.Extensions.CosmosDB' into project '/Users/ushio/Codes/Azure/carreviewbackend/functions-extensions/extensions.csproj'.
    log  : Restoring packages for /Users/ushio/Codes/Azure/carreviewbackend/functions-extensions/extensions.csproj...
    info :   GET https://api.nuget.org/v3-flatcontainer/microsoft.azure.webjobs.script.extensionsmetadatagenerator/index.json
    info :   OK https://api.nuget.org/v3-flatcontainer/microsoft.azure.webjobs.script.extensionsmetadatagenerator/index.json 896ms
    info :   GET https://api.nuget.org/v3-flatcontainer/microsoft.azure.webjobs.script.extensionsmetadatagenerator/1.0.0-beta2/microsoft.azure.webjobs.script.extensionsmetadatagenerator.1.0.0-beta2.nupkg
    info :   OK https://api.nuget.org/v3-flatcontainer/microsoft.azure.webjobs.script.extensionsmetadatagenerator/1.0.0-beta2/microsoft.azure.webjobs.script.extensionsmetadatagenerator.1.0.0-beta2.nupkg 935ms
    log  : Installing Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator 1.0.0-beta2.
    info : Package 'Microsoft.Azure.WebJobs.Extensions.CosmosDB' is compatible with all the specified frameworks in project '/Users/ushio/Codes/Azure/carreviewbackend/functions-extensions/extensions.csproj'.
    info : PackageReference for package 'Microsoft.Azure.WebJobs.Extensions.CosmosDB' version '3.0.0-beta4' added to file '/Users/ushio/Codes/Azure/carreviewbackend/functions-extensions/extensions.csproj'.
    
    Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core
    Copyright (C) Microsoft Corporation. All rights reserved.
    
      extensions -> /Users/ushio/Codes/Azure/carreviewbackend/bin/extensions.dll
    
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    
    Time Elapsed 00:00:02.57
    

    오! 들어간 것 같다! 이제 Azure Functions 2.0에서도 Cosmos DB 바인딩을 사용할 수 있습니다!

    확장을 Azure에서 사용



    그래서, 로컬은 이것으로 그래도, Azure 어떻게 하는거야. 이것이 더 간단했습니다.
    func azure functionapp publish FUNCTION_APP_NAME 이것만으로 Azure에 업로드 해주는 것 같습니다.
    $ func azure functionapp publish carreviewver2
    Publish /Users/ushio/Codes/Azure/carreviewbackend contents to an Azure Function App. Locally deleted files are not removed from destination.
    Getting site publishing info...
    Creating archive for current directory...
    Uploading archive...
    Upload completed successfully.
    
    

    Azure에서 확인



    Azure Functions의 DEVELOPMENT TOOL > Console에서 확인하세요. 그래. 들어가! 이건 안돼! 아직 미리보기지만.

    좋은 웹페이지 즐겨찾기