我正在尝试在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中设置资源组,以便在部署功能时使用?
答案 0 :(得分:0)
我能够通过将部署分为两部分来部署Azure功能
使用serverless打包项目。
sls package
使用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