我有一个 Azure Web 应用程序,它通过 VPN/VNET 集成与 3rd 方系统进行通信。该通信的一部分依赖于解析 DNS 名称的能力。
当应用程序部署到虚拟机时,我们只需使用如下条目更新主机文件
123.45.67.89 RPGMDR500-0R
并且通讯正常。由于通信的设置方式,我不能只在代码中使用 IP 地址。在通信中,DNS 名称被发回给我们,我们必须将其解析为该 IP 地址。
有没有办法只用一个应用服务来做到这一点?实际上,我们希望应用程序将此自定义 dns 名称解析为 ip 地址。
更新 我更新了我们的 VNET DNS 服务器以使用虚拟机设置进行 DNS。
使用 nameresolver,我可以看到 DNS 正在访问应用程序服务,但前提是我指定了 DNS IP 地址。默认情况下,它仍在使用默认服务器(不确定如何)。(对于停电很抱歉,不确定这些数据有多敏感)。
我在Azure中有一个Web应用程序,每月大约有10万访问者,页面浏览量不到2个(纯粹是SEO访问者).
我刚刚研究了我们的Azure账单,并且震惊地发现在上个月我们3.41 TB的数据输出了.
太字节.
这绝对没有意义.我们的平均页面大小小于3mb(很多,但数学不会说30mb).实际的总数据应该是:
3431000(mb)/ 150000(会话)= 23mb pr会话,这绝对是假的.Pingdom等服务的结果是:
(似乎Stack.Imgur是临时链接:http://prntscr.com/gvzoaz )
我的图表看起来像这样,并不是刚刚出现的东西.我暂时没有分析我们的账单,所以这很容易就会持续一段时间:
(似乎Stack.Imgur是临时链接:http://prntscr.com/gvzohm )
我们访问次数最多的页面是一个自动生成的SEO页面,它从具有+ 3mio记录的数据库中读取,但它已经过优化,我们的数据库并不昂贵.主要的挑战是数据输出,这需要花费很多.
但是,我该如何进行任何测试呢?我从哪里开始?
我的架构:
老实说,我相信我所有的资源都在同一个区域.以下是我使用的主要杀手的截图 - 我的应用和数据库:
应用程序:
数据库:
我的所有资源:
我试图了解设置的影响ThreadPool.SetMinthreads.我在一个Azure应用服务中运行了多个虚拟应用程序.我的理解是,所有这些虚拟应用程序将共享App Pool,并且只有一个工作进程(假设App Pool的最大工作进程为1).
我有以下两个问题.
ThreadPool.SetMinThreads为100个工作线程和IO线程,我可以安全地假设每个应用程序域在加载时将有100个工作线程和100个IO线程吗?确切地说,ThreadPool.SetMinThreads适用于AppDomain或工作进程或应用程序池?ThreadPool的范围是什么?例如,进程和线程需要物理内存,虚拟内存和池内存,因此可以在给定Windows系统上创建的进程或线程数最终由这些资源之一决定,具体取决于进程的方式或者创建线程以及首先命中哪个约束. https://blogs.technet.microsoft.com/markrussinovich/2009/07/05/pushing-the-limits-of-windows-processes-and-threads/
c# asp.net azure azure-app-service-plans azure-web-app-service
我们正在将Web应用程序部署到Azure CDN,但每次我们都需要等待相当长的时间才能更新应用程序。所以我们发现有一个“清除”按钮,这似乎有效。清除后我们必须等待大约 5 分钟。
现在我们希望每次发布应用程序时都运行它,因此我们使用以下脚本向 vsts 添加了一个任务:
az cdn endpoint purge --resource-group $1 --profile-name $3 --name $4 --content-paths /*
带参数:$(ResourceGroup) $(StorageAccountName) $(ProfileName) $(EndpointName)
但这并不是每次都有效,似乎有时它可以工作,5 分钟后应用程序就会更新,但有时我们必须等待 30 分钟。
azure azure-cdn azure-web-app-service azure-devops azure-pipelines
我正在尝试将多容器 Web 应用程序部署到 Azure 应用服务。该应用程序从本地计算机上的图像运行良好,但是当我尝试在应用程序服务上运行它时,它不起作用,并且没有错误消息。在日志部分,它显示“检索日志时出错”。
下面是我的 docker compose 文件的 YAML,我尝试了各种不同的版本,但我永远无法从 Azure 获取任何错误消息。
我究竟做错了什么?如何从 Azure 应用服务获取 Docker 日志?
version: '3.7'
services:
  web:
    image: ptd_reports_app
    command: gunicorn TransitData.wsgi:application --bind 0.0.0.0:8000
    volumes:
      - static_volume:/home/PublicTransitDataReportingPortal/web/staticfiles
    expose:
      - 8000
    restart: always
    environment:
       DEBUG=1
       SECRET_KEY=<secret key>
       DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
       EMAIL_HOST_PASSWORD=<email password>
  nginx:
    image: ptd_reports_nginx
    restart: always
    volumes:
      - static_volume:/home/PublicTransitDataReportingPortal/web/staticfiles
    ports:
      - 1337:80
    depends_on:
      - web
volumes:
  static_volume:
我正在尝试在 Azure 的应用服务上部署一个 dockerized 应用程序。我正确输入了所有字段,我的图像被拉出,然后我不断收到此错误,直到出现超时。
Waiting for response to warmup request for container -<container name > Elapsed time = 154.673506 sec
我确实设置了 WEBSITE_PORT 8080(由我的应用程序使用)
这是 dockerfile
FROM google/dart
WORKDIR /app
ADD pubspec.* /app/
RUN pub get --no-precompile
ADD . /app/
RUN pub get --offline --no-precompile
WORKDIR /app
EXPOSE 8080
ENTRYPOINT ["pub", "run", "aqueduct:aqueduct", "serve", "--port", "8080"]
它工作正常。我昨晚让它工作了。我想刷新我的图像,所以我重新启动。没有任何效果。几个小时后,我删除了我的应用程序并重新开始......不走运。有任何想法吗?
编辑 1: 尝试将端口更改为 80,但不走运(这是我最初在正常工作时使用的端口)
已解决(部分)* 我将所有内容更改为 8000 端口。我意识到 Linux 和 Windows 不喜欢在 80 上进行非系统监听。因此,我更改了 8000 上的所有内容并在 Azure {WEBSITE_PORT, 8000} 上设置了系统属性。它现在似乎工作正常。我不知道这是否是官方修复...但它会在 30 秒后预热
我有以下 terraform 模块来在同一计划下设置应用程序服务:
provider "azurerm" {
}
variable "env" {
    type = string
    description = "The SDLC environment (qa, dev, prod, etc...)"
}
variable "appsvc_names" {
    type = list(string)
    description = "The names of the app services to create under the same app service plan"
}
locals {
    location = "eastus2"
    resource_group_name = "app505-dfpg-${var.env}-web-${local.location}"
    acr_name = "app505dfpgnedeploycr88836"
}
resource "azurerm_app_service_plan" "asp" {
    name                = "${local.resource_group_name}-asp"
    location            = local.location
    resource_group_name = local.resource_group_name
    kind                = "Linux"
    reserved            = true
    sku {
        tier …azure docker terraform azure-web-app-service azure-container-registry
我正在尝试使用 github 操作部署应用程序。我将我的 azure 帐户链接到我的 github 存储库,并创建了以下操作:
name: Build and deploy ASP.Net Core app to Azure Web App - my_app_name
on:
  push:
    branches:
      - master
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - name: Set up .NET Core
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: '3.1.102'
    - name: Build with dotnet
      run: dotnet build --configuration Release
    - name: dotnet publish
      run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp
    - name: Deploy to Azure Web App
      uses: azure/webapps-deploy@v1
      with:
        app-name: 'my_app_name'
        slot-name: 'production'
        publish-profile: …azure ×8
c# ×3
docker ×3
asp.net ×2
.net ×1
azure-cdn ×1
azure-devops ×1
containers ×1
dns ×1
performance ×1
terraform ×1