2017-10-10 6 views
0

(푸른 RM 템플릿)의 기능 사용 :참조() 자원의 copy.count 나도 같은 템플릿에 정의 된 푸른 앱 서비스의 아웃 바운드 IP 주소를 SQL Server의 방화벽 예외를 추가 할 필요가 ARM 템플릿 배포에서

{ 
    "name": "[concat(variables('sqlServerName'),'/azureFireWallRule',copyIndex())]", 
    "type": "Microsoft.Sql/servers/firewallRules", 
    "apiVersion": "2014-04-01", 
    "properties": { 
    "startIpAddress": "[split(reference(variables('appServiceRef')).possibleOutboundIpAddresses,',')[copyIndex()]]", 
    "endIpAddress": "[split(reference(variables('appServiceRef')).possibleOutboundIpAddresses,',')[copyIndex()]]" 
    }, 
    "copy": { 
    "name": "[concat(variables('sqlServerName'),'azureFireWallRule')]", 
    "count": "[length(split(reference(variables('appServiceRef')).possibleOutboundIpAddresses,','))]" 
    }, 
    "dependsOn": [ 
    "[variables('sqlServerRef')]", 
    "[variables('appServiceRef')]" 
    ] 
} 

그러나 copy.count에서 reference() 함수 사용은 허용되지 않습니다.

내가이 (안 행운)를 해결하려고 : paramater으로 IP 수를 통과 중첩 배포 리소스를함으로써 조건 속성
  • 를 사용하여

    년 OFC를, 문제가 될 수 있습니다 2 개의 순차적 배포로 해결됩니다. 그러나 단일 ARM 템플릿의 관점에서이 작업을 수행 할 수있는 방법이 있습니까?

  • +0

    [Azure 웹 앱의 ** possibleOutboundIpAddresses ** 또는 ** outboundIpAddresses ** 확인] (http://ruslany.net/2015/06/how-to-find-out-outbound-ip-addresses -used-by-azure-web-app /)를 사용하면 일반적으로 4 개의 아웃 바운드 IP 주소가 있음을 알 수 있습니다. 따라서 "count"를 4로 직접 설정할 수 있습니다. –

    +0

    항상 그렇지는 않습니다. 나는 5-6 가지의 가능성을 가지고있다 .OutbounIpAddresses 때때로 –

    답변

    0

    나는 이것이 불가능하다는 것을 알고 있었기 때문에.

    이유는 배포가 발생하기 전에 루프가 확장되므로 여기에는 역학 관계가 허용되지 않습니다.

    0

    단일 배포는 아니지만 하나의 템플릿에서이 작업을 수행 할 수 있습니다. possibleOutboundIpAddresses 변수가 가변적이므로 웹 응용 프로그램을 배포 한 다음 중첩 된 배포를 시작하고 배열을 출력해야합니다. 이 중첩 배포는 인라인 템플릿 일 수 있으며 별도의 파일 일 필요는 없으며 값을 출력하기 때문에 템플릿을 매우 간단하게 만들 수 있습니다. (하나의 매개 변수 하나의 출력).

    도움이 되셨습니까?

    +0

    나의 배포 목적은 단일 배치 (그리고 단일 ARM 템플릿)의 관점이다. 죄송합니다. 명확하지 않았습니다. –

    +0

    클라이언트의 단일 템플릿 및 단일 PUT 요청으로이 작업을 수행 할 수 있습니다. 배포 횟수 제한에 대해 궁금하십니까? –

    +0

    처음에는 시도했지만 제대로 작동하지 않았습니다. 실천 사례가 있습니까? –