如何查找服务矩阵网状服务的公共IP地址 [英] How to find the public IP address of a service fabric mesh service

查看:119
本文介绍了如何查找服务矩阵网状服务的公共IP地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在部署Service Fabric Mesh Service之后,如何找到面向外部的IP地址.到目前为止,事情已经尝试了:

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

  1. 在Azure门户中查看服务的属性和设置

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

运行命令az mesh app list-这显示有效的响应,但IP地址丢失

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

运行命令az mesh app show-这显示有效的响应,但IP地址丢失

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

运行命令az mesh service list-这显示有效的响应,但IP地址丢失

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

运行命令az mesh service show-这显示有效的响应,但IP地址丢失

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

推荐答案

更新2018-12-10

新的ApiVersion已发布(2018-09-01-preview),公开服务的新方法是使用网关资源.可以在 github线程和一个样本已经添加到原始答案中

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

原始答案

您正在寻找的是网络公用IP地址:

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

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

公共网络

部署应用程序时,将其放置在网络资源中,该网络将提供对应用程序的访问.

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

定义网络的示例:

{
  "$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')]"
                }
              ]
            }
          }
        ]
      }
    }
  ]
}

网关(预览)

已计划提供一个网关,该网关将桥接外部访问内部网络,将像kubernetes中的入口一样工作,仍处于预览状态,解决方案将如下所示:

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"
    }
  }
}

这篇关于如何查找服务矩阵网状服务的公共IP地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆