SQL Agent Jobs using ArcGIS Pro Single Use for Geoprocessing?

931
4
08-02-2018 09:33 AM
NickHarvey
Occasional Contributor II

Hi All - I'm trying to set up a SQL Agent job step (pics below, SQL 2016) that runs a .py geoprocessing script built using Pro (3.6.5) on our test server.  So far, the job step only works IF I specify my Windows AD account as the SQL Agent Service Logon.  However, our group needs to run these using a common AD account OR by using the combination of a Local System Account (as Logon) and SQL Agent Proxies...I have tried running this scenario with Pro set as Single Use, Named User, Authorized for Offline Use, Signing In Automatically, etc.  ArcGIS Pro (2.2.1) was admin-installed for all users on the server and the script (.py) runs successfully when called in Task Scheduler, IDLE, other environments etc.  My guess is that the job step fails on "import arcpy" because I'm getting successful print messages from the script before that line occurs. 

 

Any assistance or suggestions appreciated! 

 

-Nick

 

Job History Error:

"...import arcpy File "C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\__init__.py", line 72, in <module> from arcpy.geoprocessing import gp File "C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\geoprocessing\__init__.py", line 14, in <module> from ._base import * File "C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\geoprocessing\_base.py", line 14, in <module> import arcgisscripting RuntimeError: Not signed into Portal. Process Exit Code 1. The step failed...."

     

4 Replies
ShaneBuscher1
New Contributor III

Out of curiosity did you figure this out? I'm in a similar situation where I'm trying to run a python script when not logged into the server. Instead, the script is invoked by By a Windows Service run by the 'Local Sytem' account. The script fails when importing arcpy with an error of 'Not signed into Portal'. 

0 Kudos
NickHarvey
Occasional Contributor II

Hi Shane - I haven't worked this out yet, but I had to move on to some other projects.  Using Task Scheduler & Python based job failure notification (email) has been the present workaround....  

0 Kudos
ShaneBuscher1
New Contributor III

I figured out how to use an AD service account without having to use the Task Scheduler. I had to

  1. Log into the machine with the service account credentials
  2. Open ArcGIS Pro
  3. Sign in to ArcGIS Portal (or ArcGIS Online) using a named user account having a valid license for ArcGIS Pro
  4. Check the box to sign in automatically
  5. Finish launching ArcGIS Pro

While I do not know the exact mechanism used to validate a license when importing arcpy (neither does anyone I've talked with at ESRI either), it seems 'C:\Users\SomeUser\AppData\Local\ESRI\ArcGIS Pro' must have already been created. The steps above create the directory and files necessary to gain a license of Pro. 

If you then use the service account to run your SQL Agent job it should successfully import ArcPy, eliminating the 'Not signed into Portal' error. I'm able to kick off ArcPy scripts using a Windows service running under an AD service account using these steps. 

NickHarvey
Occasional Contributor II

Hi Shane - That helped to corroborate the use of my own AD account and named user.  Thanks so much for replying.  Apologies for returning to this months later....Right now we have opted (for our team's situation) to use one of our Single Use ArcGIS Pro licenses (no sign in).   We had IT set up a single AD user to run our nightly SQL jobs using this Single Use license.  The user is specified as the SQL Agent logon (see this article) + other limited SQL objects for running jobs, etc.  Our beta Pro-based python jobs are running w/out being logged in, off-hours, etc...So far, so good.  Anyway, hope this helps others.

thanks!

-Nick