Azure Functions PowerShell API的OpenAPI规范配置

时间:2018-08-06 19:25:52

标签: azure azure-functions swagger-2.0 azure-api-management

如何通过Visual Studio代码配置运行在Azure Functions中的PowerShell API,以便可以将其作为this URL之类的Azure API管理作为OpenAPI规范API使用,如{{3 }}?

当前,如果我尝试将以下PowerShell API添加为Azure API管理中的OpenAPI-Specification API,则会出现错误

Unable to parse specified file. Please ensure it is valid OpenAPI specification document.

Azure函数PowerShell API URL:  tutorial

2 个答案:

答案 0 :(得分:6)

更新

情况发生了变化,当我们在V2 Function应用程序中单击API定义时,请参见

  

当前V2运行时不支持功能API定义(Swagger)功能。

我们可以直接import Function app to API Management,而无需定义API。


您首先需要为Azure函数创建OpenAPI定义。

请参见Create OpenAPI Definition

步骤:

  1. 平台功能> API定义。

  2. 在API定义源下,选择Function(Preview)以将HTTP触发器用作API处理程序。

  3. 生成API定义模板>保存。

  4. 将以下招摇模板粘贴为httptrigger函数模板。

然后使用您的函数应用和触发器名称对其进行修改。如果您的功能授权级别为匿名,请删除security部分。

swagger: '2.0'
info:
  title: <myfunctionapp>.azurewebsites.net
  version: 1.0.0
host: <myfunctionapp>.azurewebsites.net
basePath: /
schemes:
  - https
  - http
paths:
  /api/<MyHttpTrigger>:
    get:
      operationId: /api/<MyHttpTrigger>/get
      description: Send a name to API to get Hello name back
      summary: Get Hello name
      parameters:
        - in: query
          name: name
          description: Name to send
          required: true
          type: string
      responses:
        '200':
          description: Return Hello name
      security:
        - apikeyQuery: []
    post:
      operationId: /api/<MyHttpTrigger>/post
      description: Send a name to API to get Hello name back
      summary: Get Hello name
      consumes:
        - application/json
      parameters:
        - name: requestbody
          in: body
          description: Name to send
          required: true
          schema:
            type: object
            properties:
              name:
                type: string
      responses:
        '200':
          description: Return Hello name
      security:
        - apikeyQuery: []
securityDefinitions:
  apikeyQuery:
    type: apiKey
    name: code
    in: query
  1. 在API管理中添加API时,可以选择OpenAPI specificationFunction App

    如果由于功能授权级别为Admin / Function而离开了安全性部分,则必须在功能下拉菜单的Manage刀片中找到功能键,并在Inbound Processing中更新后端URL。

    enter image description here

    当您选择Function App时,可能会提示您添加密钥。

      

    功能应用程序“ funcappname”已导入。请确保将以下“命名值”的值替换为函数的机密:funcappname_triggername_query_xxxxxx。

  2. 如果需要对标尺进行修改,请参见OpenAPI 2.0 docs

答案 1 :(得分:0)

APIM支持导入:

  • OpenAPI规范
  • WSDL
  • WADL

链接中的内容-https://vscpsapi.azurewebsites.net/api/VSCPSapi-都不是。我完全不确定它的格式。因此无法导入。