How to find the public IP address of a service fabric mesh service












0















After a Service Fabric Mesh Service has been deployed, how does one find the external facing IP Address. Things tried so far:




  1. Looking at the properties and settings of the service in the Azure portal


  2. Running the command az mesh app list - this shows a valid response but the IP Address is missing


  3. Running the command az mesh app show - this shows a valid response but the IP Address is missing


  4. Running the command az mesh service list - this shows a valid response but the IP Address is missing


  5. Running the command az mesh service show - this shows a valid response but the IP Address is missing











share|improve this question



























    0















    After a Service Fabric Mesh Service has been deployed, how does one find the external facing IP Address. Things tried so far:




    1. Looking at the properties and settings of the service in the Azure portal


    2. Running the command az mesh app list - this shows a valid response but the IP Address is missing


    3. Running the command az mesh app show - this shows a valid response but the IP Address is missing


    4. Running the command az mesh service list - this shows a valid response but the IP Address is missing


    5. Running the command az mesh service show - this shows a valid response but the IP Address is missing











    share|improve this question

























      0












      0








      0








      After a Service Fabric Mesh Service has been deployed, how does one find the external facing IP Address. Things tried so far:




      1. Looking at the properties and settings of the service in the Azure portal


      2. Running the command az mesh app list - this shows a valid response but the IP Address is missing


      3. Running the command az mesh app show - this shows a valid response but the IP Address is missing


      4. Running the command az mesh service list - this shows a valid response but the IP Address is missing


      5. Running the command az mesh service show - this shows a valid response but the IP Address is missing











      share|improve this question














      After a Service Fabric Mesh Service has been deployed, how does one find the external facing IP Address. Things tried so far:




      1. Looking at the properties and settings of the service in the Azure portal


      2. Running the command az mesh app list - this shows a valid response but the IP Address is missing


      3. Running the command az mesh app show - this shows a valid response but the IP Address is missing


      4. Running the command az mesh service list - this shows a valid response but the IP Address is missing


      5. Running the command az mesh service show - this shows a valid response but the IP Address is missing








      azure-service-fabric azure-service-fabric-mesh






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 16 '18 at 3:31









      Phillip NganPhillip Ngan

      8,09244861




      8,09244861
























          1 Answer
          1






          active

          oldest

          votes


















          3














          Update 2018-12-10



          The new ApiVersion has been released(2018-09-01-preview) and the new way of exposing Services is by using the Gateway resource. More information can be found on this github thread, and a sample was already added to the original answer





          Original Answer



          What you are looking for is the network public IP address:



          az mesh network show --resource-group myResourceGroup --name myAppNetwork



          Public Network



          When you deploy an application, you place it in a network resource, this network will provide the access to your application.



          Example of a define network in the :



          {
          "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
          "contentVersion": "1.0.0.0",
          "parameters": {
          "location": {
          "type": "string",
          "metadata": {
          "description": "Location of the resources."
          }
          }
          },
          "resources": [
          {
          "apiVersion": "2018-07-01-preview",
          "name": "helloWorldNetwork",
          "type": "Microsoft.ServiceFabricMesh/networks",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "addressPrefix": "10.0.0.4/22",
          "ingressConfig": {
          "layer4": [
          {
          "name": "helloWorldIngress",
          "publicPort": "80",
          "applicationName": "helloWorldApp",
          "serviceName": "helloWorldService",
          "endpointName": "helloWorldListener"
          }
          ]
          }
          }
          },
          {
          "apiVersion": "2018-07-01-preview",
          "name": "helloWorldApp",
          "type": "Microsoft.ServiceFabricMesh/applications",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/helloWorldNetwork"
          ],
          "properties": {
          "description": "Service Fabric Mesh HelloWorld Application!",
          "services": [
          {
          "type": "Microsoft.ServiceFabricMesh/services",
          "location": "[parameters('location')]",
          "name": "helloWorldService",
          "properties": {
          "description": "Service Fabric Mesh Hello World Service.",
          "osType": "linux",
          "codePackages": [
          {
          "name": "helloWorldCode",
          "image": "seabreeze/azure-mesh-helloworld:1.1-alpine",
          "endpoints": [
          {
          "name": "helloWorldListener",
          "port": "80"
          }
          ],
          "resources": {
          "requests": {
          "cpu": "1",
          "memoryInGB": "1"
          }
          }
          },
          {
          "name": "helloWorldSideCar",
          "image": "seabreeze/azure-mesh-helloworld-sidecar:1.0-alpine",
          "resources": {
          "requests": {
          "cpu": "1",
          "memoryInGB": "1"
          }
          }
          }
          ],
          "replicaCount": "1",
          "networkRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'helloWorldNetwork')]"
          }
          ]
          }
          }
          ]
          }
          }
          ]
          }


          source



          Gateway (preview)



          There are plans to provide a gateway that will bridge the external access to an internal network, would work like an ingress in kubernetes, it is still in preview, the solution would be something like this:



          {
          "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
          "contentVersion": "1.0.0.0",
          "parameters": {
          "location": {
          "type": "string",
          "defaultValue": "[resourceGroup().location]",
          "metadata": {
          "description": "Location of the resources (e.g. westus, eastus, westeurope)."
          }
          },
          "fileShareName": {
          "type": "string",
          "metadata": {
          "description": "Name of the Azure Files file share that provides the volume for the container."
          }
          },
          "storageAccountName": {
          "type": "string",
          "metadata": {
          "description": "Name of the Azure storage account that contains the file share."
          }
          },
          "storageAccountKey": {
          "type": "securestring",
          "metadata": {
          "description": "Access key for the Azure storage account that contains the file share."
          }
          },
          "stateFolderName": {
          "type": "string",
          "defaultValue": "CounterService",
          "metadata": {
          "description": "Folder in which to store the state. Provide a empty value to create a unique folder for each container to store the state. A non-empty value will retain the state across deployments, however if more than one applications are using the same folder, the counter may update more frequently."
          }
          }
          },
          "resources": [
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterAzureFileShareAccountKey",
          "type": "Microsoft.ServiceFabricMesh/secrets",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "kind": "inlinedValue",
          "contentType": "text/plain",
          "description": "Access key for the Azure storage account that contains the file share."
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterAzureFileShareAccountKey/v1",
          "type": "Microsoft.ServiceFabricMesh/secrets/values",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/secrets/counterAzureFileShareAccountKey"
          ],
          "properties": {
          "value": "[parameters('storageAccountKey')]"
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterVolume",
          "type": "Microsoft.ServiceFabricMesh/volumes",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/secrets/counterAzureFileShareAccountKey/values/v1"
          ],
          "properties": {
          "description": "Azure Files storage volume for counter App.",
          "provider": "SFAzureFile",
          "azureFileParameters": {
          "shareName": "[parameters('fileShareName')]",
          "accountName": "[parameters('storageAccountName')]",
          "accountKey": "[resourceId('Microsoft.ServiceFabricMesh/secrets/values','counterAzureFileShareAccountKey','v1')]"
          }
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterNetwork",
          "type": "Microsoft.ServiceFabricMesh/networks",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "kind": "Local",
          "description": "Azure Service Fabric Mesh Counter Application network.",
          "networkAddressPrefix": "10.0.0.0/24"
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterApp",
          "type": "Microsoft.ServiceFabricMesh/applications",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/counterNetwork",
          "Microsoft.ServiceFabricMesh/volumes/counterVolume"
          ],
          "properties": {
          "description": "Azure Service Fabric Mesh Counter Application.",
          "services": [
          {
          "name": "counterService",
          "properties": {
          "description": "A web service that serves the counter value stored in the Azure Files volume.",
          "osType": "linux",
          "codePackages": [
          {
          "name": "counterCode",
          "image": "seabreeze/azure-mesh-counter:0.1-alpine",
          "volumeRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/volumes', 'counterVolume')]",
          "destinationPath": "/app/data"
          }
          ],
          "endpoints": [
          {
          "name": "counterServiceListener",
          "port": 80
          }
          ],
          "environmentVariables": [
          {
          "name": "STATE_FOLDER_NAME",
          "value": "[parameters('stateFolderName')]"
          }
          ],
          "resources": {
          "requests": {
          "cpu": 0.5,
          "memoryInGB": 0.5
          }
          }
          }
          ],
          "replicaCount": 1,
          "networkRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'counterNetwork')]",
          "endpointRefs": [
          {
          "name": "counterServiceListener"
          }
          ]
          }
          ]
          }
          }
          ]
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterGateway",
          "type": "Microsoft.ServiceFabricMesh/gateways",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/counterNetwork"
          ],
          "properties": {
          "description": "Service Fabric Mesh Gateway for counter sample.",
          "sourceNetwork": {
          "name": "Open"
          },
          "destinationNetwork": {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'counterNetwork')]"
          },
          "tcp": [
          {
          "name": "web",
          "port": 80,
          "destination": {
          "applicationName": "counterApp",
          "serviceName": "counterService",
          "endpointName": "counterServiceListener"
          }
          }
          ]
          }
          }
          ],
          "outputs": {
          "publicIPAddress": {
          "value": "[reference('counterGateway').ipAddress]",
          "type": "string"
          }
          }
          }


          source






          share|improve this answer


























          • In @Diego's deployment json file, the network name is 'helloWorldNetwork' so the command to find the ip address would be: az mesh network show --resource-group <replace with rg name> --name helloWorldNetwork

            – Phillip Ngan
            Nov 16 '18 at 18:28













          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53331014%2fhow-to-find-the-public-ip-address-of-a-service-fabric-mesh-service%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          3














          Update 2018-12-10



          The new ApiVersion has been released(2018-09-01-preview) and the new way of exposing Services is by using the Gateway resource. More information can be found on this github thread, and a sample was already added to the original answer





          Original Answer



          What you are looking for is the network public IP address:



          az mesh network show --resource-group myResourceGroup --name myAppNetwork



          Public Network



          When you deploy an application, you place it in a network resource, this network will provide the access to your application.



          Example of a define network in the :



          {
          "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
          "contentVersion": "1.0.0.0",
          "parameters": {
          "location": {
          "type": "string",
          "metadata": {
          "description": "Location of the resources."
          }
          }
          },
          "resources": [
          {
          "apiVersion": "2018-07-01-preview",
          "name": "helloWorldNetwork",
          "type": "Microsoft.ServiceFabricMesh/networks",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "addressPrefix": "10.0.0.4/22",
          "ingressConfig": {
          "layer4": [
          {
          "name": "helloWorldIngress",
          "publicPort": "80",
          "applicationName": "helloWorldApp",
          "serviceName": "helloWorldService",
          "endpointName": "helloWorldListener"
          }
          ]
          }
          }
          },
          {
          "apiVersion": "2018-07-01-preview",
          "name": "helloWorldApp",
          "type": "Microsoft.ServiceFabricMesh/applications",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/helloWorldNetwork"
          ],
          "properties": {
          "description": "Service Fabric Mesh HelloWorld Application!",
          "services": [
          {
          "type": "Microsoft.ServiceFabricMesh/services",
          "location": "[parameters('location')]",
          "name": "helloWorldService",
          "properties": {
          "description": "Service Fabric Mesh Hello World Service.",
          "osType": "linux",
          "codePackages": [
          {
          "name": "helloWorldCode",
          "image": "seabreeze/azure-mesh-helloworld:1.1-alpine",
          "endpoints": [
          {
          "name": "helloWorldListener",
          "port": "80"
          }
          ],
          "resources": {
          "requests": {
          "cpu": "1",
          "memoryInGB": "1"
          }
          }
          },
          {
          "name": "helloWorldSideCar",
          "image": "seabreeze/azure-mesh-helloworld-sidecar:1.0-alpine",
          "resources": {
          "requests": {
          "cpu": "1",
          "memoryInGB": "1"
          }
          }
          }
          ],
          "replicaCount": "1",
          "networkRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'helloWorldNetwork')]"
          }
          ]
          }
          }
          ]
          }
          }
          ]
          }


          source



          Gateway (preview)



          There are plans to provide a gateway that will bridge the external access to an internal network, would work like an ingress in kubernetes, it is still in preview, the solution would be something like this:



          {
          "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
          "contentVersion": "1.0.0.0",
          "parameters": {
          "location": {
          "type": "string",
          "defaultValue": "[resourceGroup().location]",
          "metadata": {
          "description": "Location of the resources (e.g. westus, eastus, westeurope)."
          }
          },
          "fileShareName": {
          "type": "string",
          "metadata": {
          "description": "Name of the Azure Files file share that provides the volume for the container."
          }
          },
          "storageAccountName": {
          "type": "string",
          "metadata": {
          "description": "Name of the Azure storage account that contains the file share."
          }
          },
          "storageAccountKey": {
          "type": "securestring",
          "metadata": {
          "description": "Access key for the Azure storage account that contains the file share."
          }
          },
          "stateFolderName": {
          "type": "string",
          "defaultValue": "CounterService",
          "metadata": {
          "description": "Folder in which to store the state. Provide a empty value to create a unique folder for each container to store the state. A non-empty value will retain the state across deployments, however if more than one applications are using the same folder, the counter may update more frequently."
          }
          }
          },
          "resources": [
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterAzureFileShareAccountKey",
          "type": "Microsoft.ServiceFabricMesh/secrets",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "kind": "inlinedValue",
          "contentType": "text/plain",
          "description": "Access key for the Azure storage account that contains the file share."
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterAzureFileShareAccountKey/v1",
          "type": "Microsoft.ServiceFabricMesh/secrets/values",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/secrets/counterAzureFileShareAccountKey"
          ],
          "properties": {
          "value": "[parameters('storageAccountKey')]"
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterVolume",
          "type": "Microsoft.ServiceFabricMesh/volumes",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/secrets/counterAzureFileShareAccountKey/values/v1"
          ],
          "properties": {
          "description": "Azure Files storage volume for counter App.",
          "provider": "SFAzureFile",
          "azureFileParameters": {
          "shareName": "[parameters('fileShareName')]",
          "accountName": "[parameters('storageAccountName')]",
          "accountKey": "[resourceId('Microsoft.ServiceFabricMesh/secrets/values','counterAzureFileShareAccountKey','v1')]"
          }
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterNetwork",
          "type": "Microsoft.ServiceFabricMesh/networks",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "kind": "Local",
          "description": "Azure Service Fabric Mesh Counter Application network.",
          "networkAddressPrefix": "10.0.0.0/24"
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterApp",
          "type": "Microsoft.ServiceFabricMesh/applications",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/counterNetwork",
          "Microsoft.ServiceFabricMesh/volumes/counterVolume"
          ],
          "properties": {
          "description": "Azure Service Fabric Mesh Counter Application.",
          "services": [
          {
          "name": "counterService",
          "properties": {
          "description": "A web service that serves the counter value stored in the Azure Files volume.",
          "osType": "linux",
          "codePackages": [
          {
          "name": "counterCode",
          "image": "seabreeze/azure-mesh-counter:0.1-alpine",
          "volumeRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/volumes', 'counterVolume')]",
          "destinationPath": "/app/data"
          }
          ],
          "endpoints": [
          {
          "name": "counterServiceListener",
          "port": 80
          }
          ],
          "environmentVariables": [
          {
          "name": "STATE_FOLDER_NAME",
          "value": "[parameters('stateFolderName')]"
          }
          ],
          "resources": {
          "requests": {
          "cpu": 0.5,
          "memoryInGB": 0.5
          }
          }
          }
          ],
          "replicaCount": 1,
          "networkRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'counterNetwork')]",
          "endpointRefs": [
          {
          "name": "counterServiceListener"
          }
          ]
          }
          ]
          }
          }
          ]
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterGateway",
          "type": "Microsoft.ServiceFabricMesh/gateways",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/counterNetwork"
          ],
          "properties": {
          "description": "Service Fabric Mesh Gateway for counter sample.",
          "sourceNetwork": {
          "name": "Open"
          },
          "destinationNetwork": {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'counterNetwork')]"
          },
          "tcp": [
          {
          "name": "web",
          "port": 80,
          "destination": {
          "applicationName": "counterApp",
          "serviceName": "counterService",
          "endpointName": "counterServiceListener"
          }
          }
          ]
          }
          }
          ],
          "outputs": {
          "publicIPAddress": {
          "value": "[reference('counterGateway').ipAddress]",
          "type": "string"
          }
          }
          }


          source






          share|improve this answer


























          • In @Diego's deployment json file, the network name is 'helloWorldNetwork' so the command to find the ip address would be: az mesh network show --resource-group <replace with rg name> --name helloWorldNetwork

            – Phillip Ngan
            Nov 16 '18 at 18:28


















          3














          Update 2018-12-10



          The new ApiVersion has been released(2018-09-01-preview) and the new way of exposing Services is by using the Gateway resource. More information can be found on this github thread, and a sample was already added to the original answer





          Original Answer



          What you are looking for is the network public IP address:



          az mesh network show --resource-group myResourceGroup --name myAppNetwork



          Public Network



          When you deploy an application, you place it in a network resource, this network will provide the access to your application.



          Example of a define network in the :



          {
          "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
          "contentVersion": "1.0.0.0",
          "parameters": {
          "location": {
          "type": "string",
          "metadata": {
          "description": "Location of the resources."
          }
          }
          },
          "resources": [
          {
          "apiVersion": "2018-07-01-preview",
          "name": "helloWorldNetwork",
          "type": "Microsoft.ServiceFabricMesh/networks",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "addressPrefix": "10.0.0.4/22",
          "ingressConfig": {
          "layer4": [
          {
          "name": "helloWorldIngress",
          "publicPort": "80",
          "applicationName": "helloWorldApp",
          "serviceName": "helloWorldService",
          "endpointName": "helloWorldListener"
          }
          ]
          }
          }
          },
          {
          "apiVersion": "2018-07-01-preview",
          "name": "helloWorldApp",
          "type": "Microsoft.ServiceFabricMesh/applications",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/helloWorldNetwork"
          ],
          "properties": {
          "description": "Service Fabric Mesh HelloWorld Application!",
          "services": [
          {
          "type": "Microsoft.ServiceFabricMesh/services",
          "location": "[parameters('location')]",
          "name": "helloWorldService",
          "properties": {
          "description": "Service Fabric Mesh Hello World Service.",
          "osType": "linux",
          "codePackages": [
          {
          "name": "helloWorldCode",
          "image": "seabreeze/azure-mesh-helloworld:1.1-alpine",
          "endpoints": [
          {
          "name": "helloWorldListener",
          "port": "80"
          }
          ],
          "resources": {
          "requests": {
          "cpu": "1",
          "memoryInGB": "1"
          }
          }
          },
          {
          "name": "helloWorldSideCar",
          "image": "seabreeze/azure-mesh-helloworld-sidecar:1.0-alpine",
          "resources": {
          "requests": {
          "cpu": "1",
          "memoryInGB": "1"
          }
          }
          }
          ],
          "replicaCount": "1",
          "networkRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'helloWorldNetwork')]"
          }
          ]
          }
          }
          ]
          }
          }
          ]
          }


          source



          Gateway (preview)



          There are plans to provide a gateway that will bridge the external access to an internal network, would work like an ingress in kubernetes, it is still in preview, the solution would be something like this:



          {
          "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
          "contentVersion": "1.0.0.0",
          "parameters": {
          "location": {
          "type": "string",
          "defaultValue": "[resourceGroup().location]",
          "metadata": {
          "description": "Location of the resources (e.g. westus, eastus, westeurope)."
          }
          },
          "fileShareName": {
          "type": "string",
          "metadata": {
          "description": "Name of the Azure Files file share that provides the volume for the container."
          }
          },
          "storageAccountName": {
          "type": "string",
          "metadata": {
          "description": "Name of the Azure storage account that contains the file share."
          }
          },
          "storageAccountKey": {
          "type": "securestring",
          "metadata": {
          "description": "Access key for the Azure storage account that contains the file share."
          }
          },
          "stateFolderName": {
          "type": "string",
          "defaultValue": "CounterService",
          "metadata": {
          "description": "Folder in which to store the state. Provide a empty value to create a unique folder for each container to store the state. A non-empty value will retain the state across deployments, however if more than one applications are using the same folder, the counter may update more frequently."
          }
          }
          },
          "resources": [
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterAzureFileShareAccountKey",
          "type": "Microsoft.ServiceFabricMesh/secrets",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "kind": "inlinedValue",
          "contentType": "text/plain",
          "description": "Access key for the Azure storage account that contains the file share."
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterAzureFileShareAccountKey/v1",
          "type": "Microsoft.ServiceFabricMesh/secrets/values",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/secrets/counterAzureFileShareAccountKey"
          ],
          "properties": {
          "value": "[parameters('storageAccountKey')]"
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterVolume",
          "type": "Microsoft.ServiceFabricMesh/volumes",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/secrets/counterAzureFileShareAccountKey/values/v1"
          ],
          "properties": {
          "description": "Azure Files storage volume for counter App.",
          "provider": "SFAzureFile",
          "azureFileParameters": {
          "shareName": "[parameters('fileShareName')]",
          "accountName": "[parameters('storageAccountName')]",
          "accountKey": "[resourceId('Microsoft.ServiceFabricMesh/secrets/values','counterAzureFileShareAccountKey','v1')]"
          }
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterNetwork",
          "type": "Microsoft.ServiceFabricMesh/networks",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "kind": "Local",
          "description": "Azure Service Fabric Mesh Counter Application network.",
          "networkAddressPrefix": "10.0.0.0/24"
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterApp",
          "type": "Microsoft.ServiceFabricMesh/applications",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/counterNetwork",
          "Microsoft.ServiceFabricMesh/volumes/counterVolume"
          ],
          "properties": {
          "description": "Azure Service Fabric Mesh Counter Application.",
          "services": [
          {
          "name": "counterService",
          "properties": {
          "description": "A web service that serves the counter value stored in the Azure Files volume.",
          "osType": "linux",
          "codePackages": [
          {
          "name": "counterCode",
          "image": "seabreeze/azure-mesh-counter:0.1-alpine",
          "volumeRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/volumes', 'counterVolume')]",
          "destinationPath": "/app/data"
          }
          ],
          "endpoints": [
          {
          "name": "counterServiceListener",
          "port": 80
          }
          ],
          "environmentVariables": [
          {
          "name": "STATE_FOLDER_NAME",
          "value": "[parameters('stateFolderName')]"
          }
          ],
          "resources": {
          "requests": {
          "cpu": 0.5,
          "memoryInGB": 0.5
          }
          }
          }
          ],
          "replicaCount": 1,
          "networkRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'counterNetwork')]",
          "endpointRefs": [
          {
          "name": "counterServiceListener"
          }
          ]
          }
          ]
          }
          }
          ]
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterGateway",
          "type": "Microsoft.ServiceFabricMesh/gateways",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/counterNetwork"
          ],
          "properties": {
          "description": "Service Fabric Mesh Gateway for counter sample.",
          "sourceNetwork": {
          "name": "Open"
          },
          "destinationNetwork": {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'counterNetwork')]"
          },
          "tcp": [
          {
          "name": "web",
          "port": 80,
          "destination": {
          "applicationName": "counterApp",
          "serviceName": "counterService",
          "endpointName": "counterServiceListener"
          }
          }
          ]
          }
          }
          ],
          "outputs": {
          "publicIPAddress": {
          "value": "[reference('counterGateway').ipAddress]",
          "type": "string"
          }
          }
          }


          source






          share|improve this answer


























          • In @Diego's deployment json file, the network name is 'helloWorldNetwork' so the command to find the ip address would be: az mesh network show --resource-group <replace with rg name> --name helloWorldNetwork

            – Phillip Ngan
            Nov 16 '18 at 18:28
















          3












          3








          3







          Update 2018-12-10



          The new ApiVersion has been released(2018-09-01-preview) and the new way of exposing Services is by using the Gateway resource. More information can be found on this github thread, and a sample was already added to the original answer





          Original Answer



          What you are looking for is the network public IP address:



          az mesh network show --resource-group myResourceGroup --name myAppNetwork



          Public Network



          When you deploy an application, you place it in a network resource, this network will provide the access to your application.



          Example of a define network in the :



          {
          "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
          "contentVersion": "1.0.0.0",
          "parameters": {
          "location": {
          "type": "string",
          "metadata": {
          "description": "Location of the resources."
          }
          }
          },
          "resources": [
          {
          "apiVersion": "2018-07-01-preview",
          "name": "helloWorldNetwork",
          "type": "Microsoft.ServiceFabricMesh/networks",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "addressPrefix": "10.0.0.4/22",
          "ingressConfig": {
          "layer4": [
          {
          "name": "helloWorldIngress",
          "publicPort": "80",
          "applicationName": "helloWorldApp",
          "serviceName": "helloWorldService",
          "endpointName": "helloWorldListener"
          }
          ]
          }
          }
          },
          {
          "apiVersion": "2018-07-01-preview",
          "name": "helloWorldApp",
          "type": "Microsoft.ServiceFabricMesh/applications",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/helloWorldNetwork"
          ],
          "properties": {
          "description": "Service Fabric Mesh HelloWorld Application!",
          "services": [
          {
          "type": "Microsoft.ServiceFabricMesh/services",
          "location": "[parameters('location')]",
          "name": "helloWorldService",
          "properties": {
          "description": "Service Fabric Mesh Hello World Service.",
          "osType": "linux",
          "codePackages": [
          {
          "name": "helloWorldCode",
          "image": "seabreeze/azure-mesh-helloworld:1.1-alpine",
          "endpoints": [
          {
          "name": "helloWorldListener",
          "port": "80"
          }
          ],
          "resources": {
          "requests": {
          "cpu": "1",
          "memoryInGB": "1"
          }
          }
          },
          {
          "name": "helloWorldSideCar",
          "image": "seabreeze/azure-mesh-helloworld-sidecar:1.0-alpine",
          "resources": {
          "requests": {
          "cpu": "1",
          "memoryInGB": "1"
          }
          }
          }
          ],
          "replicaCount": "1",
          "networkRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'helloWorldNetwork')]"
          }
          ]
          }
          }
          ]
          }
          }
          ]
          }


          source



          Gateway (preview)



          There are plans to provide a gateway that will bridge the external access to an internal network, would work like an ingress in kubernetes, it is still in preview, the solution would be something like this:



          {
          "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
          "contentVersion": "1.0.0.0",
          "parameters": {
          "location": {
          "type": "string",
          "defaultValue": "[resourceGroup().location]",
          "metadata": {
          "description": "Location of the resources (e.g. westus, eastus, westeurope)."
          }
          },
          "fileShareName": {
          "type": "string",
          "metadata": {
          "description": "Name of the Azure Files file share that provides the volume for the container."
          }
          },
          "storageAccountName": {
          "type": "string",
          "metadata": {
          "description": "Name of the Azure storage account that contains the file share."
          }
          },
          "storageAccountKey": {
          "type": "securestring",
          "metadata": {
          "description": "Access key for the Azure storage account that contains the file share."
          }
          },
          "stateFolderName": {
          "type": "string",
          "defaultValue": "CounterService",
          "metadata": {
          "description": "Folder in which to store the state. Provide a empty value to create a unique folder for each container to store the state. A non-empty value will retain the state across deployments, however if more than one applications are using the same folder, the counter may update more frequently."
          }
          }
          },
          "resources": [
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterAzureFileShareAccountKey",
          "type": "Microsoft.ServiceFabricMesh/secrets",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "kind": "inlinedValue",
          "contentType": "text/plain",
          "description": "Access key for the Azure storage account that contains the file share."
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterAzureFileShareAccountKey/v1",
          "type": "Microsoft.ServiceFabricMesh/secrets/values",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/secrets/counterAzureFileShareAccountKey"
          ],
          "properties": {
          "value": "[parameters('storageAccountKey')]"
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterVolume",
          "type": "Microsoft.ServiceFabricMesh/volumes",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/secrets/counterAzureFileShareAccountKey/values/v1"
          ],
          "properties": {
          "description": "Azure Files storage volume for counter App.",
          "provider": "SFAzureFile",
          "azureFileParameters": {
          "shareName": "[parameters('fileShareName')]",
          "accountName": "[parameters('storageAccountName')]",
          "accountKey": "[resourceId('Microsoft.ServiceFabricMesh/secrets/values','counterAzureFileShareAccountKey','v1')]"
          }
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterNetwork",
          "type": "Microsoft.ServiceFabricMesh/networks",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "kind": "Local",
          "description": "Azure Service Fabric Mesh Counter Application network.",
          "networkAddressPrefix": "10.0.0.0/24"
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterApp",
          "type": "Microsoft.ServiceFabricMesh/applications",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/counterNetwork",
          "Microsoft.ServiceFabricMesh/volumes/counterVolume"
          ],
          "properties": {
          "description": "Azure Service Fabric Mesh Counter Application.",
          "services": [
          {
          "name": "counterService",
          "properties": {
          "description": "A web service that serves the counter value stored in the Azure Files volume.",
          "osType": "linux",
          "codePackages": [
          {
          "name": "counterCode",
          "image": "seabreeze/azure-mesh-counter:0.1-alpine",
          "volumeRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/volumes', 'counterVolume')]",
          "destinationPath": "/app/data"
          }
          ],
          "endpoints": [
          {
          "name": "counterServiceListener",
          "port": 80
          }
          ],
          "environmentVariables": [
          {
          "name": "STATE_FOLDER_NAME",
          "value": "[parameters('stateFolderName')]"
          }
          ],
          "resources": {
          "requests": {
          "cpu": 0.5,
          "memoryInGB": 0.5
          }
          }
          }
          ],
          "replicaCount": 1,
          "networkRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'counterNetwork')]",
          "endpointRefs": [
          {
          "name": "counterServiceListener"
          }
          ]
          }
          ]
          }
          }
          ]
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterGateway",
          "type": "Microsoft.ServiceFabricMesh/gateways",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/counterNetwork"
          ],
          "properties": {
          "description": "Service Fabric Mesh Gateway for counter sample.",
          "sourceNetwork": {
          "name": "Open"
          },
          "destinationNetwork": {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'counterNetwork')]"
          },
          "tcp": [
          {
          "name": "web",
          "port": 80,
          "destination": {
          "applicationName": "counterApp",
          "serviceName": "counterService",
          "endpointName": "counterServiceListener"
          }
          }
          ]
          }
          }
          ],
          "outputs": {
          "publicIPAddress": {
          "value": "[reference('counterGateway').ipAddress]",
          "type": "string"
          }
          }
          }


          source






          share|improve this answer















          Update 2018-12-10



          The new ApiVersion has been released(2018-09-01-preview) and the new way of exposing Services is by using the Gateway resource. More information can be found on this github thread, and a sample was already added to the original answer





          Original Answer



          What you are looking for is the network public IP address:



          az mesh network show --resource-group myResourceGroup --name myAppNetwork



          Public Network



          When you deploy an application, you place it in a network resource, this network will provide the access to your application.



          Example of a define network in the :



          {
          "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
          "contentVersion": "1.0.0.0",
          "parameters": {
          "location": {
          "type": "string",
          "metadata": {
          "description": "Location of the resources."
          }
          }
          },
          "resources": [
          {
          "apiVersion": "2018-07-01-preview",
          "name": "helloWorldNetwork",
          "type": "Microsoft.ServiceFabricMesh/networks",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "addressPrefix": "10.0.0.4/22",
          "ingressConfig": {
          "layer4": [
          {
          "name": "helloWorldIngress",
          "publicPort": "80",
          "applicationName": "helloWorldApp",
          "serviceName": "helloWorldService",
          "endpointName": "helloWorldListener"
          }
          ]
          }
          }
          },
          {
          "apiVersion": "2018-07-01-preview",
          "name": "helloWorldApp",
          "type": "Microsoft.ServiceFabricMesh/applications",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/helloWorldNetwork"
          ],
          "properties": {
          "description": "Service Fabric Mesh HelloWorld Application!",
          "services": [
          {
          "type": "Microsoft.ServiceFabricMesh/services",
          "location": "[parameters('location')]",
          "name": "helloWorldService",
          "properties": {
          "description": "Service Fabric Mesh Hello World Service.",
          "osType": "linux",
          "codePackages": [
          {
          "name": "helloWorldCode",
          "image": "seabreeze/azure-mesh-helloworld:1.1-alpine",
          "endpoints": [
          {
          "name": "helloWorldListener",
          "port": "80"
          }
          ],
          "resources": {
          "requests": {
          "cpu": "1",
          "memoryInGB": "1"
          }
          }
          },
          {
          "name": "helloWorldSideCar",
          "image": "seabreeze/azure-mesh-helloworld-sidecar:1.0-alpine",
          "resources": {
          "requests": {
          "cpu": "1",
          "memoryInGB": "1"
          }
          }
          }
          ],
          "replicaCount": "1",
          "networkRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'helloWorldNetwork')]"
          }
          ]
          }
          }
          ]
          }
          }
          ]
          }


          source



          Gateway (preview)



          There are plans to provide a gateway that will bridge the external access to an internal network, would work like an ingress in kubernetes, it is still in preview, the solution would be something like this:



          {
          "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json",
          "contentVersion": "1.0.0.0",
          "parameters": {
          "location": {
          "type": "string",
          "defaultValue": "[resourceGroup().location]",
          "metadata": {
          "description": "Location of the resources (e.g. westus, eastus, westeurope)."
          }
          },
          "fileShareName": {
          "type": "string",
          "metadata": {
          "description": "Name of the Azure Files file share that provides the volume for the container."
          }
          },
          "storageAccountName": {
          "type": "string",
          "metadata": {
          "description": "Name of the Azure storage account that contains the file share."
          }
          },
          "storageAccountKey": {
          "type": "securestring",
          "metadata": {
          "description": "Access key for the Azure storage account that contains the file share."
          }
          },
          "stateFolderName": {
          "type": "string",
          "defaultValue": "CounterService",
          "metadata": {
          "description": "Folder in which to store the state. Provide a empty value to create a unique folder for each container to store the state. A non-empty value will retain the state across deployments, however if more than one applications are using the same folder, the counter may update more frequently."
          }
          }
          },
          "resources": [
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterAzureFileShareAccountKey",
          "type": "Microsoft.ServiceFabricMesh/secrets",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "kind": "inlinedValue",
          "contentType": "text/plain",
          "description": "Access key for the Azure storage account that contains the file share."
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterAzureFileShareAccountKey/v1",
          "type": "Microsoft.ServiceFabricMesh/secrets/values",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/secrets/counterAzureFileShareAccountKey"
          ],
          "properties": {
          "value": "[parameters('storageAccountKey')]"
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterVolume",
          "type": "Microsoft.ServiceFabricMesh/volumes",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/secrets/counterAzureFileShareAccountKey/values/v1"
          ],
          "properties": {
          "description": "Azure Files storage volume for counter App.",
          "provider": "SFAzureFile",
          "azureFileParameters": {
          "shareName": "[parameters('fileShareName')]",
          "accountName": "[parameters('storageAccountName')]",
          "accountKey": "[resourceId('Microsoft.ServiceFabricMesh/secrets/values','counterAzureFileShareAccountKey','v1')]"
          }
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterNetwork",
          "type": "Microsoft.ServiceFabricMesh/networks",
          "location": "[parameters('location')]",
          "dependsOn": ,
          "properties": {
          "kind": "Local",
          "description": "Azure Service Fabric Mesh Counter Application network.",
          "networkAddressPrefix": "10.0.0.0/24"
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterApp",
          "type": "Microsoft.ServiceFabricMesh/applications",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/counterNetwork",
          "Microsoft.ServiceFabricMesh/volumes/counterVolume"
          ],
          "properties": {
          "description": "Azure Service Fabric Mesh Counter Application.",
          "services": [
          {
          "name": "counterService",
          "properties": {
          "description": "A web service that serves the counter value stored in the Azure Files volume.",
          "osType": "linux",
          "codePackages": [
          {
          "name": "counterCode",
          "image": "seabreeze/azure-mesh-counter:0.1-alpine",
          "volumeRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/volumes', 'counterVolume')]",
          "destinationPath": "/app/data"
          }
          ],
          "endpoints": [
          {
          "name": "counterServiceListener",
          "port": 80
          }
          ],
          "environmentVariables": [
          {
          "name": "STATE_FOLDER_NAME",
          "value": "[parameters('stateFolderName')]"
          }
          ],
          "resources": {
          "requests": {
          "cpu": 0.5,
          "memoryInGB": 0.5
          }
          }
          }
          ],
          "replicaCount": 1,
          "networkRefs": [
          {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'counterNetwork')]",
          "endpointRefs": [
          {
          "name": "counterServiceListener"
          }
          ]
          }
          ]
          }
          }
          ]
          }
          },
          {
          "apiVersion": "2018-09-01-preview",
          "name": "counterGateway",
          "type": "Microsoft.ServiceFabricMesh/gateways",
          "location": "[parameters('location')]",
          "dependsOn": [
          "Microsoft.ServiceFabricMesh/networks/counterNetwork"
          ],
          "properties": {
          "description": "Service Fabric Mesh Gateway for counter sample.",
          "sourceNetwork": {
          "name": "Open"
          },
          "destinationNetwork": {
          "name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'counterNetwork')]"
          },
          "tcp": [
          {
          "name": "web",
          "port": 80,
          "destination": {
          "applicationName": "counterApp",
          "serviceName": "counterService",
          "endpointName": "counterServiceListener"
          }
          }
          ]
          }
          }
          ],
          "outputs": {
          "publicIPAddress": {
          "value": "[reference('counterGateway').ipAddress]",
          "type": "string"
          }
          }
          }


          source







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Dec 10 '18 at 13:07

























          answered Nov 16 '18 at 12:57









          Diego MendesDiego Mendes

          5,28011827




          5,28011827













          • In @Diego's deployment json file, the network name is 'helloWorldNetwork' so the command to find the ip address would be: az mesh network show --resource-group <replace with rg name> --name helloWorldNetwork

            – Phillip Ngan
            Nov 16 '18 at 18:28





















          • In @Diego's deployment json file, the network name is 'helloWorldNetwork' so the command to find the ip address would be: az mesh network show --resource-group <replace with rg name> --name helloWorldNetwork

            – Phillip Ngan
            Nov 16 '18 at 18:28



















          In @Diego's deployment json file, the network name is 'helloWorldNetwork' so the command to find the ip address would be: az mesh network show --resource-group <replace with rg name> --name helloWorldNetwork

          – Phillip Ngan
          Nov 16 '18 at 18:28







          In @Diego's deployment json file, the network name is 'helloWorldNetwork' so the command to find the ip address would be: az mesh network show --resource-group <replace with rg name> --name helloWorldNetwork

          – Phillip Ngan
          Nov 16 '18 at 18:28






















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53331014%2fhow-to-find-the-public-ip-address-of-a-service-fabric-mesh-service%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Xamarin.iOS Cant Deploy on Iphone

          Glorious Revolution

          Dulmage-Mendelsohn matrix decomposition in Python