Hvordan kan jeg generere dynamisk Traffic Manager endepunkter i en ARM mal?

stemmer
2

Jeg har en arm mal som skaper et vilkårlig antall Azure webapps ved hjelp av copykonstruksjonen, som så (ikke-relevante deler er fjernet):

{
  parameters: { 
    numWebsites: {
      type: int,
      defaultValue: 2
    }
  },
  resources: [
    name: [concat('webapp-', copyIndex()],
    type: Microsoft.Web/sites,
    copy: {
      name: websitescopy,
      count: [parameters('numWebsites')]
    }
  ]
}

Jeg vil også gjerne opprette en Traffic Manager profil med et endepunkt for hver av nettsteder opprettet. Men synes det ikke å være en måte å gjøre bruk av copyi Traffic Manager ressursen endpointsparameter. Alle eksemplene jeg har sett har endepunktene eksplisitt listet ut , men jeg vet ikke hvor mange webapps blir opprettet på forhånd, slik at ikke fungerer for meg.

Hvordan kan jeg generere endepunktene i malen min dynamisk? Jeg har prøvd å bruke en copyuttalelse i trafficManagerProfilesressurs, men som skaper flere profiler med ett endepunkt hver.

Publisert på 13/04/2016 klokken 21:30
kilden bruker
På andre språk...                            


4 svar

stemmer
1

Her er et eksempel på å skape en ekstern endepunkt som et "barn ressurs", blir profilen er opprettet separat uten endepunkter og denne ressursen legger endepunktet. Den bruker en ekstern endepunkt men skal fungere like godt for en webapp og er kompatibel med standard kopifunksjonen.

HTH, Gareth

    {
        "apiVersion": "2015-11-01",
        "type": "Microsoft.Network/trafficManagerProfiles/ExternalEndpoints",
        "name": "ExternalEndpointExample/endpoint1",
        "dependsOn": ["Microsoft.Network/trafficManagerProfiles/ExternalEndpointExample"],
        "location": "global",
        "properties": {
            "target": "ep1.microsoft.com",
            "endpointStatus": "Enabled",
            "endpointLocation": "northeurope"
        }
    }
Svarte 14/04/2016 kl. 09:59
kilden bruker

stemmer
1

Jeg har ikke testet dette ennå, men det ser ut til at kopi / copyIndex skal nå være et støttet scenario for Traffic Manager endepunkter:

https://feedback.azure.com/forums/217313-networking/suggestions/12907815-support-copy-copyindex-in-traffic-manager-depend

Her er et eksempel som jeg implementert en stund tilbake:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "solution-abbreviation": {
      "type": "string",
      "minLength": 1
    },
    "environment-abbreviation": {
      "type": "string",
      "allowedValues": [
        "dev",
        "test",
        "prod"
      ]
    },

    "userinterface-abbreviation": {
      "type": "string",
      "minLength": 1
    },
    "userinterface-locations": {
      "type": "array",
      "minLength": 1
    },
    "userinterface-appserviceplan-sku": {
      "type": "string",
      "allowedValues": [
        "Free",
        "Shared",
        "Basic",
        "Standard"
      ]
    },
    "userinterface-appserviceplan-workersize": {
      "type": "string",
      "allowedValues": [
        "0",
        "1",
        "2"
      ]
    },
    "userinterface-appserviceplan-numberofworkers": {
      "type": "int"
    }
  },
  "variables": {
    "userinterface-trafficmanager-name": "[concat(parameters('solution-abbreviation'), '-', parameters('environment-abbreviation'), '-', parameters('userinterface-abbreviation'))]"
  },
  "resources": [
    {
      "name": "[concat(variables('userinterface-trafficmanager-name'), '-', parameters('userinterface-locations')[copyIndex()])]",
      "type": "Microsoft.Web/serverfarms",
      "location": "[parameters('userinterface-locations')[copyIndex()]]",
      "apiVersion": "2014-06-01",
      "dependsOn": [ ],
      "tags": {
        "displayName": "[concat(variables('userinterface-trafficmanager-name'), '-', parameters('userinterface-locations')[copyIndex()])]"
      },
      "copy": {
        "name": "[concat('serverfarms', '-copy')]",
        "count": "[length(parameters('userinterface-locations'))]"
      },
      "properties": {
        "name": "[concat(variables('userinterface-trafficmanager-name'), '-', parameters('userinterface-locations')[copyIndex()])]",
        "sku": "[parameters('userinterface-appserviceplan-sku')]",
        "workerSize": "[parameters('userinterface-appserviceplan-workersize')]",
        "numberOfWorkers": "[parameters('userinterface-appserviceplan-numberofworkers')]"
      }
    }
  ],
  "outputs": {
  }
}
Svarte 22/04/2016 kl. 17:14
kilden bruker

stemmer
0

Den aksepterte svaret var uklart for meg og Paul svar så langt gir bare en del av eksempel. Under feilsøking Jeg møtte en annen feil knyttet til navnene segmentlengdene som ikke var lett å forstå, så her er min arbeidsløsning (ikke-relevante deler fjernet også):

    {
  "type": "Microsoft.Network/trafficManagerProfiles",
  "apiVersion": "2017-05-01",
  "location": "global",
  "name": "[variables('trafManagerProfileName')]",
  "properties": { ...}
},
{
  "apiVersion": "2015-11-01",
  "type": "Microsoft.Network/trafficManagerProfiles/ExternalEndpoints",
  "name": "[concat(variables('trafManagerProfileName'), '/Endpoint', copyIndex())]",
  "dependsOn": [
    "[concat('Microsoft.Network/trafficManagerProfiles/', variables('trafManagerProfileName'))]",
    "[concat(parameters('app_name')[copyIndex()])]"
  ],
  "location": "global",
  "properties": {
    "target": "[concat(parameters('app_name')[copyIndex()])]"        
  },
  "copy": {
    "count": "[variables('app_count')]",
    "name": "app_copy"
  }
},
{
  "type": "Microsoft.Web/sites",
  "name": "[concat(parameters('app_name')[copyIndex()])]",
  "copy": {
    "count": "[variables('app_count')]",
    "name": "app_copy"
  }
}
Svarte 11/04/2018 kl. 10:18
kilden bruker

stemmer
0

Du kan se nedenfor mal for å legge Traffic Manager endepunkter med kopi aktivert.

Azure gir ikke funksjonalitet for å legge til endepunkter i kopi, så du trenger for å lage en egen ressurs og koble den til den opprinnelige ressurs for å legge til endepunktene. På denne måten kopi funksjonaliteten støttes inne i malen.

"resources": [ { "apiVersion": "2017-05-01", "type": "Microsoft.Network/trafficManagerProfiles", "name": "[parameters('resourceName')]", "location": "global", "properties": { "profileStatus": "Enabled", "trafficRoutingMethod": "Performance", "dnsConfig": { "relativeName": "[parameters('uniqueDnsName')]", "ttl": "[parameters('timeToLive')]" }, "monitorConfig": { "protocol": "[parameters('protocol')]", "port": "[parameters('portName')]", "path": "[parameters('pathName')]", "intervalInSeconds": "[parameters('monitorIntervalInSeconds')]", "timeoutInSeconds": "[parameters('monitorTimeoutInSeconds')]", "toleratedNumberOfFailures": "[parameters('toleratedNumberOfFailures')]" } } }, { "apiVersion": "2017-05-01", "type": "Microsoft.Network/trafficManagerProfiles/azureEndpoints", "dependsOn": [ "Microsoft.Network/trafficManagerProfiles/ExampleTMProfile" ], "location": "global", "name": "[concat('ExampleTMProfile/Endpoint', copyIndex())]", "copy": { "name": "azureEndpointsCopy", "count": "[length(parameters('azureEndpointNameArray'))]" }, "properties": { "targetResourceId": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('azureEndpointNameArray')[copyIndex()])]", "endpointStatus": "Enabled" } } ]

Svarte 14/08/2018 kl. 11:33
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more