2015-11-11 114 views
0

我在Visual Studio中使用Azure資源組項目模板部署兩個API應用程序和一個邏輯應用程序。我希望這些API應用程序之一成爲市場上的Blob連接器。我需要的是.zip包用於連接器的URI,如下所示:從Azure資源組模板部署市場連接器

{ 
     "apiVersion": "2014-06-01", 
     "name": "MSDeploy", 
     "type": "Extensions", 
     "dependsOn": [ 
      //........ 
     ], 
     "properties": { 
     "packageUri": "https://auxmktplceprod.blob.core.windows.net/packages/UmbracoCms.WebPI.7.2.5.zip", 
     "dbType": "SQL", 

source
我試過this解決方案,但該cmdlet現在已經過時。有什麼方法可以獲得這些URI嗎?

- 謝謝!

回答

1

我找到了一種使用Marketplace應用程序部署自定義api應用程序的方法。

下面是一個示例腳本只是引導你

{ 
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": { 
     "blobConnectorName": { 
      "type": "string", 
      "minLength": 1, 
      "defaultValue" : "mytestblobconnector" 
     }, 
     "blobStorageAccount": { 
      "type": "string", 
      "minLength": 1, 
      "defaultValue" : "mystorage.blob.core.windows.net" 
     }, 
     "blobStorageKey": { 
      "type": "securestring", 
      "minLength": 1, 
      "defaultValue" : "storgekey" 
     }, 
     "blobContainerName": { 
      "type": "string", 
      "minLength": 1, 
      "defaultValue" : "mycontainer" 
     }, 
     "gatewayName": { 
      "type": "string", 
      "minLength": 1, 
      "defaultValue" : "myblobconnectorgateway" 
     }, 
     "logicAppName": { 
      "type": "string", 
      "minLength": 1, 
      "defaultValue" : "testinglogicapp" 
     }, 
     "svcPlanName": { 
      "type": "string", 
      "minLength": 1, 
      "defaultValue" : "myresourcegrpserviceplan" 
     }, 
     "sku": { 
      "type": "string", 
      "defaultValue": "Basic", 
      "allowedValues": [ 
       "Free", 
       "Basic", 
       "Standard", 
       "Premium" 
      ] 
     }, 
     "svcPlanSize": { 
      "defaultValue": "0", 
      "type": "string", 
      "allowedValues": [ 
       "0", 
       "1", 
       "2" 
      ] 
     }, 
     "gatewayToApiAppSecret": { 
      "defaultValue": "0000000000000000000000000000000000000000000000000000000000000000", 
      "type": "securestring" 
     } 
    }, 
    "variables": { 
     "$packageId": "Microsoft.ApiApp", 
     "$nugetFeed": "http://apiapps-preview.nuget.org/api/v2/" 
    }, 
    "resources": [ 
     { 
      "type": "Microsoft.Web/serverfarms", 
      "apiVersion": "2015-04-01", 
      "name": "[parameters('svcPlanName')]", 
      "location": "[resourceGroup().location]", 
      "tags": { 
       "displayName": "AppServicePlan" 
      }, 
      "properties": { 
       "name": "[parameters('svcPlanName')]", 
       "sku": "[parameters('sku')]", 
       "workerSize": "[parameters('svcPlanSize')]", 
       "numberOfWorkers": 1 
      } 
     }, 
     { 
      "type": "Microsoft.Web/sites", 
      "apiVersion": "2015-04-01", 
      "name": "[parameters('gatewayName')]", 
      "location": "[resourceGroup().location]", 
      "kind": "gateway", 
      "tags": { 
       "displayName": "GatewayHost" 
      }, 
      "resources": [ 
       { 
        "type": "providers/links", 
        "apiVersion": "2015-01-01", 
        "name": "Microsoft.Resources/gateway", 
        "dependsOn": [ 
         "[resourceId('Microsoft.Web/sites', parameters('gatewayName'))]" 
        ], 
        "properties": { 
         "targetId": "[resourceId('Microsoft.AppService/gateways', parameters('gatewayName'))]" 
        } 
       } 
      ], 
      "dependsOn": [ 
       "[concat(resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('svcPlanName'))]" 
      ], 
      "properties": { 
       "name": "[parameters('gatewayName')]", 
       "gatewaySiteName": "[parameters('gatewayName')]", 
       "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('svcPlanName'))]", 
       "siteConfig": { 
        "appSettings": [ 
         { 
          "name": "ApiAppsGateway_EXTENSION_VERSION", 
          "value": "latest" 
         }, 
         { 
          "name": "EmaStorage", 
          "value": "D:\\home\\data\\apiapps" 
         }, 
         { 
          "name": "WEBSITE_START_SCM_ON_SITE_CREATION", 
          "value": "1" 
         } 
        ] 
       } 
      } 
     }, 
     { 
      "type": "Microsoft.AppService/gateways", 
      "apiVersion": "2015-03-01-preview", 
      "name": "[parameters('gatewayName')]", 
      "location": "[resourceGroup().location]", 
      "tags": { 
       "displayName": "Gateway" 
      }, 
      "resources": [ 
       { 
        "type": "providers/links", 
        "apiVersion": "2015-01-01", 
        "name": "Microsoft.Resources/gatewaySite", 
        "dependsOn": [ 
         "[resourceId('Microsoft.AppService/gateways', parameters('gatewayName'))]" 
        ], 
        "properties": { 
         "targetId": "[resourceId('Microsoft.Web/sites', parameters('gatewayName'))]" 
        } 
       }, 
       { 
        "type": "tokens", 
        "apiVersion": "2015-03-01-preview", 
        "location": "[resourceGroup().location]", 
        "name": "[parameters('logicAppName')]", 
        "tags": { 
         "displayName": "AuthenticationToken" 
        }, 
        "dependsOn": [ 
         "[resourceId('Microsoft.AppService/gateways', parameters('gatewayName'))]" 
        ] 
       } 
      ], 
      "dependsOn": [ 
       "[resourceId('Microsoft.Web/sites', parameters('gatewayName'))]" 
      ], 
      "properties": { 
       "host": { 
        "resourceName": "[parameters('gatewayName')]" 
       } 
      } 
     }, 
     { 
      "type": "Microsoft.Web/sites", 
      "apiVersion": "2015-04-01", 
      "name": "[parameters('blobConnectorName')]", 
      "location": "[resourceGroup().location]", 
      "kind": "apiApp", 
      "tags": { 
       "displayName": "APIAppHost", 
       "packageId": "AzureStorageBlobConnector" 
      }, 
      "dependsOn": [ 
       "[resourceId('Microsoft.Web/serverfarms', parameters('svcPlanName'))]", 
       "[resourceId('Microsoft.AppService/gateways', parameters('gatewayName'))]" 
      ], 
      "resources": [ 
       { 
        "type": "siteextensions", 
        "tags": { 
         "displayName": "APIAppExtension" 
        }, 
        "apiVersion": "2015-02-01", 
        "name": "AzureStorageBlobConnector", 
        "dependsOn": [ 
         "[resourceId('Microsoft.Web/sites', parameters('blobConnectorName'))]" 
        ], 
        "properties": { 
         "type": "WebRoot", 
         "feed_url": "[variables('$nugetFeed')]" 
        } 
       }, 
       { 
        "type": "providers/links", 
        "apiVersion": "2015-01-01", 
        "name": "Microsoft.Resources/apiApp", 
        "dependsOn": [ 
         "[resourceId('Microsoft.Web/sites', parameters('blobConnectorName'))]" 
        ], 
        "properties": { 
         "targetId": "[resourceId('Microsoft.AppService/apiapps', parameters('blobConnectorName'))]" 
        } 
       } 
      ], 
      "properties": { 
       "gatewaySiteName": "[parameters('gatewayName')]", 
       "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('svcPlanName'))]", 
       "siteConfig": { 
        "appSettings": [ 
         { 
          "name": "EMA_MicroserviceId", 
          "value": "[parameters('blobConnectorName')]" 
         }, 
         { 
          "name": "EMA_Secret", 
          "value": "[parameters('gatewayToAPIappSecret')]" 
         }, 
         { 
          "name": "EMA_RuntimeUrl", 
          "value": "[concat('https://', reference(resourceId('Microsoft.Web/sites', parameters('gatewayName'))).hostNames[0])]" 
         }, 
         { 
          "name": "WEBSITE_START_SCM_ON_SITE_CREATION", 
          "value": "1" 
         }, 
         { 
          "name": "BlobConnector_ContainerUrl", 
          "value": "[concat('https://', parameters('blobStorageAccount'),'/',parameters('blobContainerName'))]" 
         }, 
         { 
          "name": "BlobConnector_AccessKey", 
          "value": "[parameters('blobStorageKey')]" 
         } 
        ], 
        "applicationLogs": { 
         "filesystem": { 
          "level": "Verbose" 
         }, 
         "azureTableStorage": { 
          "level": "Off", 
          "sasUrl": null 
         }, 
         "azureBlobStorage": { 
          "level": "Off", 
          "sasUrl": null, 
          "retentionInDays": null 
         } 
        } 
       } 
      } 
     }, 
     { 
      "type": "Microsoft.AppService/apiapps", 
      "apiVersion": "2015-03-01-preview", 
      "name": "[parameters('blobConnectorName')]", 
      "location": "[resourceGroup().location]", 
      "tags": { 
       "displayName": "BlobConnector" 
      }, 
      "resources": [ 
       { 
        "type": "providers/links", 
        "apiVersion": "2015-01-01", 
        "name": "Microsoft.Resources/apiAppSite", 
        "dependsOn": [ 
         "[resourceId('Microsoft.AppService/apiapps', parameters('blobConnectorName'))]" 
        ], 
        "properties": { 
         "targetId": "[resourceId('Microsoft.Web/sites', parameters('blobConnectorName'))]" 
        } 
       } 
      ], 
      "dependsOn": [ 
       "[resourceId('Microsoft.Web/sites/siteextensions', parameters('blobConnectorName'), 'AzureStorageBlobConnector')]" 
      ], 
      "properties": { 
       "package": { 
        "id": "AzureStorageBlobConnector" 
       }, 
       "host": { 
        "resourceName": "[parameters('blobConnectorName')]" 
       }, 
       "gateway": { 
        "resourceName": "[parameters('gatewayName')]" 
       }, 
       "dependencies": [ ] 
      } 
     }, 
     { 
      "type": "Microsoft.Logic/workflows", 
      "apiVersion": "2015-02-01-preview", 
      "name": "[parameters('logicAppName')]", 
      "location": "[resourceGroup().location]", 
      "tags": { 
       "displayName": "LogicApp" 
      }, 
      "dependsOn": [ 
       "[resourceId('Microsoft.AppService/apiApps', parameters('blobConnectorName'))]" 
      ], 
      "properties": { 
       "sku": { 
        "name": "[parameters('sku')]", 
        "plan": { 
         "id": "[concat(resourceGroup().id, '/providers/Microsoft.Web/serverfarms/',parameters('svcPlanName'))]" 
        } 
       }, 
       "definition": { 
        "$schema": "http://schema.management.azure.com/providers/Microsoft.Logic/schemas/2014-12-01-preview/workflowdefinition.json#", 
        "contentVersion": "1.0.0.0", 
        "parameters": { 
         "token": { 
          "defaultValue": "[reference(resourceId('Microsoft.AppService/gateways/tokens', parameters('gatewayName'), parameters('logicAppName'))).token]", 
          "type": "String", 
          "metadata": { 
           "token": { 
            "name": "token" 
           } 
          } 
         }, 
         "runworkflowmanually": { 
          "defaultValue": true, 
          "type": "Bool" 
         } 
        }, 
        "triggers": { }, 
        "actions": { 
         "azurestorageblobconnector": { 
          "type": "ApiApp", 
          "inputs": { 
           "apiVersion": "2015-01-14", 
           "host": { 
            "id": "[concat(resourceGroup().id, '/providers/Microsoft.AppService/apiApps/',parameters('blobConnectorName'))]", 
            "gateway": "[concat('https://', reference(resourceId('Microsoft.Web/sites', parameters('gatewayName'))).hostNames[0])]" 
           }, 
           "operation": "UploadBlob", 
           "parameters": { 
            "BlobPath": "myfolder/test.txt", 
            "BlobContent": { 
             "Content": "TestMessage", 
             "ContentTransferEncoding": "None" 
            }, 
            "Overwrite": true 
           }, 
           "authentication": { 
            "type": "Raw", 
            "scheme": "Zumo", 
            "parameter": "@parameters('token')" 
           } 
          }, 
          "conditions": [ ] 
         } 
        }, 
        "outputs": { 
        } 
       }, 
       "parameters": { } 
      } 
     } 
    ] 
} 

只要搜索「AzureStorageBlobConnector」在上面的JSON觀察這與市場上的斑點連接器的包ID的使用。我通過手動部署一個然後檢查其設置,找到了來自Azure門戶的Blob連接器的軟件包ID。如果您遇到任何困難,請隨時發佈其他市場應用程序的包ID註釋。

相關問題