![](/img/trans.png)
[英]Application 'D:\home\site\wwwroot\' was recycled after detecting app_offline.htm - ASP.NET
[英]Container-based function app lost costom appsettings after being recycled by CORSSettingsChanged and AppSettingsChange
我們團隊搭建了一個ansible-playbook來部署Azure Function作為參考: Linux-container-from-ACR-with-private-endpoint 。 我們使用用戶分配的身份從 ACR 中提取 function 應用程序映像。 我們使用 Ansible 將任務自動化,如下所示:
- name: Force Login using identity
command: az login --identity
- name: Get function app identity's clientId
command: az identity show --resource-group "{{ functionapp_resource_group }}" --name "{{ functionapp_user_identity }}" --query clientId --output tsv
register: identity
- name: Config properties
command:
az resource update --resource-group "{{ functionapp_resource_group }}" --name "{{ functionapp_name }}/config/web"
--set "{{ item }}" --resource-type "Microsoft.Web/sites/config"
with_items:
- "properties.acrUserManagedIdentityID={{ identityId.stdout }}"
- "properties.acrUseManagedIdentityCreds=true"
- name: Config app settings
command:
az function app config appsettings set --name "{{ functionapp_name }}"
--resource-group "{{ functionapp_resource_group }}" --settings "{{ item }}"
with_items:
- "WEBSITES_ENABLE_APP_SERVICE_STORAGE=false"
- "SubscriptionExpiredSchedule=* 30 * * * *"
- "KEY=VALUE..."
- name: Deploy the function app
command:
az function app config container set --name "{{ functionapp_name }}"
--resource-group "{{ functionapp_resource_group }}"
--docker-custom-image-name "{{ docker_registry_host }}/{{ image_name }}:{{ image_tag }}"
--docker-registry-server-URL "{{ docker_registry_host }}"
剛部署時一切看起來都很好。 正確找到了 2 個定時器觸發函數。 從我的應用程序設置中成功檢測到 crontab 字符串"* 30 * * * *"
:
但過了一會兒,Application Insight 的日志不斷顯示1 functions found
和0 functions loaded
:
2023-01-13T10:15:47.434 [Information] 1 functions found
2023-01-13T10:15:47.434 [Information] 0 functions loaded
2023-01-13T10:15:48.352 [Information] Host Status: {
"id": "<<function app name>>",
"state": "Running",
"version": "4.14.0.0",
"versionDetails": "4.14.0+fc14864b4fc2a095f8cd92c7f0ca338dbeabd430",
"platformVersion": "99.0.10.762",
"instanceId": "b42e8886acdb8a5a6fd64d57ead538cc2765d75cbbc61a37cab2678ae174bea0",
"computerName": "lw1sdlwk000014",
"processUptime": 1677391,
"functionAppContentEditingState": "Unknown",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "3.17.0"
}
}
function 應用程序已關閉。 回到配置,我所有的自定義應用程序設置都丟失了:
雖然第一次用CI工具一直失敗,但是我第二次手動觸發CI工具后就正常了,沒有再失敗。 這太奇怪了。 我是否錯誤地設置了任何配置,導致 function 應用程序關閉並且首次部署時應用程序設置丟失?
- - 更新 - -
我發現 function 應用程序Recycling container because of CORSSettingsChanged and CORSSettingsChanged = Microsoft.Web.Hosting.CorsSettings
被重新部署。 部署之后,我所有的自定義配置都丟失了。 此外,我發現Recycling container because of AppSettingsChange and isMainSite = True
導致我的自定義配置丟失。 這是日志:
2023-01-17T02:29:27.044Z INFO - Pull Image successful, Time taken: 1 Minutes and 7 Seconds
2023-01-17T02:29:27.485Z INFO - Starting container for site
2023-01-17T02:29:27.485Z INFO - docker run -d --expose=80 --name <<functionapp name>>_0_4b241f6f -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITE_SITE_NAME=<<functionapp name>> -e WEBSITE_AUTH_ENABLED=False -e PORT=80 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=<<functionapp name>>.azurewebsites.net -e WEBSITE_INSTANCE_ID=5b6600aecfae7b5eb1290df18fcc42fb8bc88d7b721b9274087658bfa90a5d85 -e WEBSITE_USE_DIAGNOSTIC_SERVER=False <<my acr>>.azurecr.io/<<name>>:<<tag>>
2023-01-17T02:29:27.485Z INFO - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2023-01-17T02:29:29.726Z INFO - Initiating warmup request to container <<functionapp name>>_0_4b241f6f_msiProxy for site <<functionapp name>>
2023-01-17T02:29:29.874Z INFO - Container <<functionapp name>>_0_4b241f6f_msiProxy for site <<functionapp name>> initialized successfully and is ready to serve requests.
2023-01-17T02:29:29.874Z INFO - Initiating warmup request to container <<functionapp name>>_0_4b241f6f for site <<functionapp name>>
2023-01-17T02:29:39.659Z INFO - Container <<functionapp name>>_0_4b241f6f for site <<functionapp name>> initialized successfully and is ready to serve requests.
2023-01-17T02:37:22.159Z INFO - Recycling container because of CORSSettingsChanged and CORSSettingsChanged = Microsoft.Web.Hosting.CorsSettings
2023-01-17T02:37:28.816Z INFO - Pulling image: <<my acr>>.azurecr.io/<<name>>:<<tag>>
2023-01-17T02:37:29.124Z INFO - <<tag>> Pulling from <<name>>
2023-01-17T02:37:29.126Z INFO - Digest: sha256:49a690b289cd8a80d7104891a3ae5db38b8d6529f73b9b536c147d81a94a499e
2023-01-17T02:37:29.126Z INFO - Status: Image is up to date for <<my acr>>.azurecr.io/<<name>>:<<tag>>
2023-01-17T02:37:29.129Z INFO - Pull Image successful, Time taken: 0 Minutes and 0 Seconds
2023-01-17T02:37:29.188Z INFO - Starting container for site
2023-01-17T02:37:29.189Z INFO - docker run -d --expose=80 --name <<functionapp name>>_1_bf06fa66 -e WEBSITE_SITE_NAME=<<functionapp name>> -e WEBSITE_AUTH_ENABLED=False -e PORT=80 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=<<functionapp name>>.azurewebsites.net -e WEBSITE_INSTANCE_ID=5b6600aecfae7b5eb1290df18fcc42fb8bc88d7b721b9274087658bfa90a5d85 -e WEBSITE_USE_DIAGNOSTIC_SERVER=False <<my acr>>.azurecr.io/<<name>>:<<tag>>
2023-01-17T02:37:29.189Z INFO - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2023-01-17T02:37:31.739Z INFO - Initiating warmup request to container <<functionapp name>>_1_bf06fa66_msiProxy for site <<functionapp name>>
2023-01-17T02:37:31.819Z INFO - Container <<functionapp name>>_1_bf06fa66_msiProxy for site <<functionapp name>> initialized successfully and is ready to serve requests.
2023-01-17T02:37:31.820Z INFO - Initiating warmup request to container <<functionapp name>>_1_bf06fa66 for site <<functionapp name>>
2023-01-17T02:37:40.895Z INFO - Container <<functionapp name>>_1_bf06fa66 for site <<functionapp name>> initialized successfully and is ready to serve requests.
基於異常Recycling container because of AppSettingsChange and isMainSite = True
並且在 Docker Azure Function App 的上下文中,我發現一些現有的已解決問題與類似的異常和來自用戶@mpseidel和@Piotr的上下文可能有助於問題調查分析。
GitHub-Azure-Functions-Host 3500中具有類似異常的第一個案例是從基於 Docker Linux 的 Node JS Azure Function 應用程序開始的,但在本地成功運行並找到了選擇操作系統作為 Docker 的解決方案並使其工作
第二個案例在 Azure Linux 基於 Function-Docker 部署 SO # 61567697的上下文中具有類似的異常。
我可以看到您已經在 GitHub 功能問題的 GitHub 官方頁面提出了分流票,如果任何社區成員面臨類似問題,這里是標簽為錯誤並等待分流的票 - # 2327 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.