2014-11-26 1 views
14

Ho una WebApp ASP.NET abilitata per Git con un WebJob di Azure associato. Quando lo distribuisco tramite Visual Studio va tutto bene, ma questo è un po 'difficile in un ambiente di distribuzione continua, quindi vorrei pubblicare l'app Web e il WebJob tramite Git.Azure WebJob pianificato distribuito tramite Git risultati nel processo su richiesta

Via Azure Tooling ho associato il mio progetto WebJob e ho avuto un file "webjobs-list.json" all'interno del Progetto WebApp:

{ 
"$schema": "http://schemastore.org/schemas/json/webjobs-list.json", 
"WebJobs": [{ 
    "filePath": "../CodeInside.Hub.Job/CodeInside.Hub.Job.csproj" 
    }] 
} 


webjobs-list.json Source

all'interno della app Progetto Console ho un file "webjob-pubblicare-settings.json" con questo contenuto:

{ 
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json", 
"webJobName": "Hub-Crawler", 
"startTime": "2014-11-25T02:00:00+01:00", 
"endTime": null, 
"jobRecurrenceFrequency": "Day", 
"interval": 1, 
"runMode": "Scheduled" 
} 

Come si può vedere, "runMode" è impostato su "Pianificato" e tutto va bene quando lo distribuisco tramite Visual Studio.

Ma senza di Visual Studio ho ottenuto questo WebJob "on demand": enter image description here

È questo il momento non è supportato o quello che potrebbe essere il problema?

Il .sln completo può essere trovato su GitHub

risposta

5

Esiste finalmente una soluzione per la distribuzione di webjob programmati con git deployment.

This blog ha dettagli.

La soluzione utilizza lo scheduler di kudu in contrapposizione allo scheduler di Azure, quindi il portale di Azure mostra ancora il lavoro come "su richiesta" ma esegue per programma e il portale mostra la cronologia con precisione.

+0

Usato da una settimana - ho dimenticato di menzionarlo qui. Non ero sicuro di quale sia la connessione tra i diversi file settings.json/web-publish settings e ho creato un problema qui: https://github.com/projectkudu/kudu/issues/1601 La risposta mi ha aiutato, ma lì rimangono ancora alcune domande;) –

6

In effetti, il problema è che lo scenario non è ancora ben supportato. Nello specifico, quando si pubblica tramite git (o GitHub/Bitbucket), il file webjob-publish-settings.json viene ignorato.

Una soluzione alternativa è pubblicare una volta utilizzando VS solo per ottenere lo scheduler creato, quindi utilizzare git in seguito.

Alla fine, questo scenario verrà risolto utilizzando i modelli di Azure Resource Manager che definiscono sia il sito Web che lo schedulatore. Tecnicamente, questo può essere fatto oggi, ma non c'è ancora molta documentazione.

+0

Ok: ora non riesco nemmeno a pubblicarlo tramite l'aggiornamento di Visual Studio 2013 4. Ricevo questo errore descritto qui ma ho potuto capire cosa non va: http://stackoverflow.com/questions/26277009/azure- webjob-deploy-error-managementcertificatepath Idee? –

+0

Questo è un problema non correlato, quindi sarebbe meglio discuterlo separatamente. –

+0

Ok: dopo l'aggiornamento di VS/Azure Tools (ed eliminazione dello scheduler e del lavoro esistenti sul portale), la distribuzione manuel ha funzionato di nuovo. –