部署到无服务器Azure功能失败

时间:2020-05-22 15:03:17

标签: azure azure-functions serverless-framework serverless

我正在尝试在Azure门户中已创建的App Service中部署Azure Functions。

使用sls deploy CLI来部署我的Azure功能,但是在部署功能sls时试图创建我无权访问的新资源组。

以下是sls deploy命令的输出:

$ sls deploy
Serverless: Removing .serverless directory
Serverless: Parsing Azure Functions Bindings.json...
Serverless: Building binding for function: admin event: httpTrigger
Serverless: Parsing Azure Functions Bindings.json...
Serverless: Building binding for function: image event: httpTrigger
Serverless: Parsing Azure Functions Bindings.json...
Serverless: Building binding for function: report event: httpTrigger
Serverless: Parsing Azure Functions Bindings.json...
Serverless: Building binding for function: gaims event: httpTrigger
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Logging into Azure
Serverless: Using subscription ID: <SUBSCRIPTION_ID>
Serverless: Creating resource group: <ALREADY_CREATED_RESOURCE_GROUP_NAME>

  Error --------------------------------------------------

  Error: The client '<USER_NAME>' with object id '<OBJECT_ID>' does not have authorization to perform action 
     'Microsoft.Resources/subscriptions/resourcegroups/write' over scope 
    '/subscriptions/SUBSCRIPTION_ID/resourcegroups/ALREADY_CREATED_RESOURCE_GROUP_NAME' or the scope is invalid. 
    If access was recently granted, please refresh your credentials.
      at new RestError (C:\Users\analysis-node\node_modules\@azure\ms-rest-js\lib\restError.ts:18:5)
      at C:\Users\analysis-node\node_modules\@azure\ms-rest-js\lib\policies\deserializationPolicy.ts:117:27
      at process._tickCallback (internal/process/next_tick.js:68:7)

     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     Operating System:          win32
     Node Version:              10.20.1
     Framework Version:         1.71.1
     Plugin Version:            3.6.12
     SDK Version:               2.3.0
     Components Version:        2.30.11

serverless.yml中,我还指定了resourceGroup参数。这是serverless.yml

的要点
provider:
  stage: dev
  name: azure
  region: East US 2
  runtime: nodejs10.x
  resourceGroup: <ALREADY_CREATED_RESOURCE_GROUP_NAME>
  subscriptionId: <SUBSCRIPTION_ID>

是否有任何方法可以在serverless cli中设置资源组,以便在部署功能时使用?

1 个答案:

答案 0 :(得分:0)

我能够通过将部署分为两部分来部署Azure功能

  1. 使用serverless打包项目。

    sls package
    
  2. 使用Azure CLI部署打包的zip文件。

    az functionapp deployment source config-zip -g {RESOURCE_GROUP} -n {APP_SERVICE_NAME} --src .serverless/project-zip.zip
    

希望这可以帮助面临相同问题的人。

编辑:

看起来这个问题可能在以后的版本中得到解决。

链接:https://github.com/serverless/serverless-azure-functions/issues/469