2018年10月4日,星期四

3 ways to create and 调试 双色球推荐一注功能 –CLI,VS Code和Visual Studio

最近我’我一直在思考使用双色球推荐一注函数的不同方法,以及每种方法的优缺点。我想更好地了解双色球推荐一注 Functions核心工具(也称为CLI),以及在本地开发功能并将其发布到双色球推荐一注中所扮演的角色。一世’d最近看到一个Microsoft家伙在他的演示中使用了此功能,我想知道我是否缺少双色球推荐一注 Functions的一个重要方面(我一直试图保持这一地位)。在Visual Studio Code /完整Visual Studio /带有核心工具的命令行方法之间,’s a lot of overlap –那么什么时候最好?

我在SharePoint Conference 2019上谈论这一点!
如果您想了解更多有关此的信息,我将在SPC 2019上就该主题举行会议。会议将于5月21-23日在拉斯维加斯举行-请参阅 //sharepointna.com 更多细节。并在使用时使用代码“ OBRIEN”! ;)
Things you should be aware of when developing with 双色球推荐一注功能:

  双色球推荐一注功能 v2:
Microsoft最近发布了双色球推荐一注 Functions v2,该版本在绑定,运行时行为和性能方面存在一些差异。但是,如果你’如果是Office 365 / SharePoint人员,请注意,此时(2018年10月),如果要使用CSOM或PnP,则需要使用v1进行C#功能。这是因为我们不’还没有这些软件包的.NET Core版本–和v2在.NET Core上运行。那么你’如果您尝试使用v2来构建函数,则将获得错误。希望我们赢了’虽然不必等太久– see //twitter.com/vesajuvonen/status/1045668458971766784

  The 双色球推荐一注功能 Core Tools/CLI:
尽管我在这里讨论了用于开发/发布功能的3个选项,但实际上Core Tools是所有这些功能的前提条件。无论您选择使用Visual Studio Code还是使用完整的Visual Studio编写代码,在任何情况下,核心工具都会处理* 调试ging *。我注意到安装过程中“option 1” section below..

OK,回到开发选项。首先让’明确每个过程的外观。

Option 1 - with 双色球推荐一注功能 Core Tools/CLI

命令行方法可能很有趣,因为它可以’跨平台相同,尽管公平地说’目前仅可在macOS和Linux上使用的双色球推荐一注 Functions版本2。但是您得到的是以下功能:

  • 创建你的功能
  • 在本地运行
  • 部署到双色球推荐一注中的功能应用程序 

要求前:

处理:

We’在这种情况下,将在JavaScript中创建一个简单的HTTP函数。如您所料,我们在命令行运行命令来创建新功能并使用它们。

    1. 为您创建的功能创建一个文件夹’ll创建,然后在此处打开命令提示符。
    2. 类型 函数初始化 用双色球推荐一注功能所需的文件来初始化文件夹:

      SNAGHTML89c0d7c
    3. 要创建函数,请键入 功能 开始这个过程。在V1函数中,您可以’ll need to provide:
      1. 语言
      2. 触发
               
        SNAGHTML875154a
    4. Provide a 名称 for your 功能tion:       
            
      SNAGHTML8763197
      1. 现在,在VS Code中打开function文件夹(您确实了解“code .”命令打开当前目录,对吗?):

        SNAGHTML8637786
        1. <VS Code opens>
          1. If you have the VS Code extension for 双色球推荐一注功能 installed, you’ll see this:

            SNAGHTML8652b31

            这基本上是在问你’d喜欢切换到VS Code的处事方式。现在,我们’请关闭此消息以使用命令行/核心工具的经验。

            1. 现在,您可以根据需要向函数中添加代码。
            2. 现在输入 功能运行<Your 功能tion 名称> 在本地运行功能–第一次这样做,您’将会看到我们需要确定的消息:

              SNAGHTML549c85
            3. 对于这样的HTTP函数,我们应该使用--content标志在POST主体中传递一些内容。为了与生成器添加的默认代码匹配,让’传递了一些JSON,包括‘name’ 在 tribute:

              SNAGHTML5facdb
            4. 您 should now see the 功能tions runtime spin up and serve your 功能tion:

              SNAGHTML1d491eb
            5. 由于您的功能是在本地端点上提供的,因此您’在您开发代码时(按照先前的建议),最有可能要使用Postman或类似工具,因为它比--content标志要丰富得多。核心工具的输出将告诉您要命中的URL,但默认情况下为 http://localhost:7071/api/[function 名称]:

              SNAGHTML1dd8740

            出版 CLI和Visual Studio Code的(JavaScript)函数

              在开发了更多代码之后,我们可以使用其他命令直接部署到双色球推荐一注中的Function App。最有可能你’需要首先登录,这是通过以下命令完成的:

              功能 azure登录--username [用户名] --password [密码]

              如果你不这样做’提供用户名/密码,您’将会以交互方式提示:

              SNAGHTML1e4d89b

              您 may need to explicitly choose the 双色球推荐一注 subscription (once you’ve登录),例如,如果该帐户有权访问多个订阅:

              功能 azure帐户集[双色球推荐一注SubscriptionID]

              在这里,您可以使用以下内容来部署功能:

              功能 azure 功能tionapp发布<FunctionAppName>

              SNAGHTMLcb421e

              很好,但是缺少某些东西– 调试ging!

              除错ging CLI和Visual Studio Code的(JavaScript)函数

              起初我以为不是’可以使用CLI在本地调试功能,但这是 通过与VS Code结合使用。该过程是:

              • 在VS Code中的代码中放置断点
              • 从CLI运行功能并添加--debug标志– so 功能运行<Your 功能tion 名称> –debug
              • Hit F5 (or go to the 除错 tab and press Play)
              • 向您的职能提出要求’s local URL e.g. http://localhost:7071/api/[function 名称]:
              • 您r breakpoint will now be hit and you can make use of all of VS Code’调试功能:

                     SNAGHTMLd45210
              注意:-在VS Code中调试C#函数并不是那么简单。稍后请参阅我的部分。
              因此,CLI本身并没有用吗?
              此时,您可能想知道为什么如果需要使用Visual Studio Code进行调试,则为什么要使用CLI使用双色球推荐一注 Functions。我也是! VS Code的双色球推荐一注 Functions扩展实际上是为您在CLI上运行命令,并在命令面板中为您提供了一些菜单选项/命令供您使用,从而提供了更好的体验。对我来说,您只关注CLI来运行/发布功能的场景是:
              • 在DevOps场景中,您可以使用一些自动化脚本来运行/测试功能(在本地或通过将其部署到双色球推荐一注)
              • 您're trying to be ultra-hip
              对于其他所有内容,都有Visual Studio Code或Visual Studio。不同意?我想念什么吗?在评论中让我知道!

              选项2–使用Visual Studio Code

              要求前:

              处理:

              在VS Code中创建函数很容易:

              1. 首先,在计算机上创建一个文件夹来托管文件– I 名称d my folder “COB-JS-Functions” to reflect what we’re doing here.
              2. 打开“ VS Code”到该文件夹​​。
              3. 按下CTRL SHIFT + P进入VS Code命令栏,然后开始输入“双色球推荐一注 Functions”拉起那些命令。选择“Create New Project” command:
                SNAGHTMLfff7b5_thumb2
              4. 按照命令栏中的提示选择文件夹–如果您接受默认值’已经在您之前创建的文件夹中:
                SNAGHTML1568088c_thumb2
              5.     
              6. 在选择语言时,请选择您的偏好– I’我在这里使用JavaScript(您可能想考虑一下我的总体信息,即在成熟的Visual Studio中,C#函数通常更容易实现!):
                SNAGHTML1569e4bf_thumb2
              7. 您r folder will now be scaffolded with the starter files:

                SNAGHTML45dc105
              8. 现在让’s添加单个功能。再次按CTRL SHIFT + P,然后找到“Create Function” command under 双色球推荐一注功能:
                SNAGHTML156d23fb_thumb3
              9. 接受我们’ll使用当前文件夹:
                SNAGHTML462a5c4
              10.   Select the trigger:
                SNAGHTML463eb15
              11. Enter the 名称 for your 功能tion:
                SNAGHTML4654ae3
              12. 然后是身份验证类型:
                SNAGHTML469c32d 
              13. 现在,一堆新文件将添加到您的文件夹中,包括“index.js”您的函数实现的文件:
                SNAGHTML46ae3d0

              现在,您可以编写代码并开始构建功能。最有可能你’我想为JavaScript函数引入一些npm模块,并开始针对Graph,SharePoint或您需要的任何东西工作。我真的很喜欢在VS Code命令面板中进行整个过程的指导,我认为它确实很好。

              除错ging 双色球推荐一注功能 locally in Visual Studio Code

              VS Code可以用作JavaScript函数,PowerShell脚本等的调试器。下一节有一些关于特定于语言的详细信息的注释:

              对于JavaScript函数 

              JavaScript为主“just works”, although you’默认情况下,您需要点击托管您的函数的本地网址(例如,使用Postman或类似工具)。您可以更进一步,并修改launch.json文件,以便F5可以完成所有工作-我必须为‘launch’ as well as ‘attach’。该过程如下所示:

              1. 在代码中添加一个断点。
              2. Once your 发射.json is good, ensure you have a “launch”在调试配置选择器中选择的配置–这样可以确保启动node.js,而不是假设它已启动’s running already and you can 连接 to it:
                SNAGHTML17b668d7
              3. 您 should see VS Code spin up the 功能tions host for you by running 功能主机启动:

                SNAGHTML17bc75e9
              4. 您’实际上,您需要点击函数的URL才能开始执行并点击断点。 VS Code通过在终端输出中提供可点击的链接来简化此操作:
                SNAGHTML17bdf98c
              5. 这将打开一个新的浏览器选项卡,命中您的函数端点,并且命中您的断点
              对于PowerShell函数

              看我的“使用双色球推荐一注函数,PnP和图形在云中运行PowerShell脚本”文章,特别是“使用F5在本地调试我们的PowerShell脚本” section –我将在此处详细显示该过程。简而言之,它运作良好,但是请记住,PowerShell在Function V1中仅具有实验性的语言状态,而在V2中则没有。

              对于C#函数

              好吧,在Visual Studio Code中调试作为.cs文件(不是.csx)的C#函数有些不同。–需要OmniSharp扩展名(//marketplace.visualstudio.com/items?itemName=ms-vscode.csharp),并且其中涉及一些调试V1函数的技巧,因为它们是32位的。看到 //github.com/Microsoft/vscode-azurefunctions/blob/master/docs/func64bit.md. 总的来说,我觉得完整的Visual Studio是C#函数的一种更简单的方法。

              出版 VS Code将文件复制到双色球推荐一注函数:

              本着重用的精神,本节直接来自我的PowerShell函数文章:)无论您使用什么函数语言,这里的步骤都是相同的。

              您 can publish your 功能tion to 双色球推荐一注 in a variety of ways, but VS Code makes this easy:

              1. 切换到VS Code中的双色球推荐一注选项卡(底部图标):

                SNAGHTMLbf4881_thumb2
              2. 查找您之前创建的Function App。右键单击它,然后选择“部署到功能应用”:
                SNAGHTML1ea4112d_thumb2
              3. 在VS Code命令面板中逐步浏览提示–默认值通常是您需要的:

                SNAGHTMLc1f726_thumb2
              4. 接受提示:

                image_thumb4

              5. VS Code随后将开始发布操作:

                SNAGHTMLc9b489_thumb2
              6. 您’然后将发现您的文件已作为功能部署到所选的功能应用程序:

                SNAGHTMLe32952_thumb2

              选项3– using Visual Studio

              对于C#函数,Visual Studio是我的首选(至少目前是这样)。

              要求前:

              处理:

              有一个VS项目模板,因此创建新项目很容易:

              1. 使用创建一个新项目> New Project:
                SNAGHTML96f93a2
              2. 从项目的上下文菜单中添加新的功能:
                SNAGHTML5722ec4
                选择触发类型:
                SNAGHTML9712f70

              除错ging a 功能tion in Visual Studio:

              这就像添加一个断点并单击F5一样简单。就C#函数而言,这比其他选项要简单得多。您’将会看到Core Tools函数主机旋转,并且将提供函数的URL– you’尽管您可以配置“Debug”选项卡以启动浏览器或脚本以自动执行此操作(类似于使用Visual Studio Code来编辑launch.json文件的想法):

              SNAGHTML9755aa3

              您r breakpoint will then be hit:

              SNAGHTML97ba6a3

              请记住,如果以调试模式发布的功能也可以调试在双色球推荐一注中实时运行的功能。如果你’根据开发/测试Office 365租户和双色球推荐一注订阅进行重新开发可能会非常有帮助(但显然不建议用于生产环境)。使用Cloud Explorer查找您的函数,右键单击并选择“Debug”.

              出版 Visual Studio中的功能

              无论谁’使用VS中的函数可能对此很熟悉,但是随着’d expect it’光滑的体验:

              SNAGHTML9a1600c

              SNAGHTML9a23c14

              俗话说,朋友不 ’不要让朋友将双色球推荐一注函数直接发布到生产环境(可能还会发布到其他环境)。使用其他部署方法中的一种,如果合适,也许使用基于连续部署的方法。 

              概要

              那是很多细节。总之,如果您使用VS Code编写了大多数其他代码和/或正在使用JavaScript编写函数,那么VS Code可能是您的最佳选择–只要确保您安装了 双色球推荐一注功能 VS Code extension。如果你’主要使用完整的Visual Studio,然后坚持使用该功能进行开发–只要确保您安装了 双色球推荐一注功能 Visual Studio extension 如果您的VS实例没有’t have it already.

              直接从命令行使用Core Tools最适合CI / CD / DevOps自动化,或者是那些需要特别时髦的人。

              没意见: