Skip to main content

Oppsett av offline Beredskapsløsning

Oversikt​

Offline beredskapsløsning er en løsning for å sikre tilgang til offline data og GIS verktøy i en beredskapssituasjon uten internett. Den består av følgende komponenter:

  • ArcGIS Pro
    • Desktop programvare for å jobbe med geografiske data
  • AWS S3 bøtte
    • Skybasert lagring hvor Geodata vedlikeholder oppdaterte data som kan synces til en beredskapsmaskin med ønsket frekvens, f.eks. nattlig.

I S3 bøtten ligger både datasett som filgeodatabaser og et ferdig ArcGIS Pro prosjekt med disse datasettene konfigurert opp.

offline

Programvare​

Maskinen som skal ha offline løsning trenger følgende programvare installert:

Sette opp datasync​

Man trenger følgende før man kan sette opp sync av offline data

  • AccessKeyId og SecretAccessKey til Geodatas S3 bøtte
  • Powershellscript "beredskap_offline_sync.ps1"

For å konfigurere AWS CLI på maskinen med riktig bruker, kjører man følgende kommando i f.eks. CMD eller Powershell og følger instruksjonene:

aws configure

I powershellskriptet må man bytte ut < filsti > med den stien data skal synces til. Hele scriptet består av 2 linjer, og finnes i sin helhet her:


$lokal_path = '< filsti >'

$s3_path = 's3://geodata-origo-drammen-prod-origo-beredskap-offline/data'

$timestamp_file = [System.Net.Dns]::GetHostName() + '-timestamp.json'

aws configure set retry_mode standard
aws configure set max_attempts 6

aws s3 sync $s3_path $lokal_path

Get-ChildItem $lokal_path -Filter *.zip | Expand-Archive -DestinationPath $lokal_path -Force

$lokal_timestamp_path = [IO.Path]::Combine($lokal_path, $timestamp_file)
$s3_timestamp_path = [IO.Path]::Combine($s3_path, 'validation', $timestamp_file).replace('\','/')
$timestamp_string = [System.Math]::Truncate([double]::Parse((Get-Date -Date (Get-Date).ToUniversalTime() -UFormat %s)))

if (Test-Path -Path $lokal_timestamp_path -PathType Leaf) {
$json = Get-Content $lokal_timestamp_path -raw | ConvertFrom-Json
$json.timestamp += $timestamp_string
$json | ConvertTo-Json | Out-File -FilePath $lokal_timestamp_path
}
else {
$json = "{timestamp: [" + $timestamp_string + "]}" | ConvertFrom-Json
$json | ConvertTo-Json | Out-File -FilePath $lokal_timestamp_path
}

aws s3 cp $lokal_timestamp_path $s3_timestamp_path

Linje 1 i scriptet syncer data med AWS CLI, mens linje 2 er en innebygd powershell-kommando for å unzippe alle filene man syncer ned.

Deretter setter man opp en rutine i Oppgaveplanlegging (engelsk: Task Scheduler).

  • Åpne Oppgaveplanlegging på maskinen
  • Om ønskelig lag en ny mappe i menyen til høyre. Man kan også gjerne en eksisterende mappe
  • Høyreklikk på ønsket mappe og trykke på "Opprett oppgave"
  • Under Utløsere / Triggers kan man legge inn tidspunkt og frekvens man ønsker rutinen skal kjøre.
  • Under Handlinger / Actions kan man legge inn kommandoen som skal kjøres
    • Under Program / skript, legg inn følgende kommando:
powershell
  • under "Legg til argumenter" putter man -File + filstien til ps1.filen
-File C:\Users\scriptuser\beredskap_offline_sync.ps1
  • Tasken er satt opp og man kan trykke ok

NB! Dedikert rutinebruker​

I task scheduler kan man spesifisere bruker som skal kjøre tasken. Det anbefales sterkt at man har en dedikert systembruker som kjører tasken. Rent teknisk kan rutinen også settes opp med personlige AD-brukere men det kan være sårbart ved jevnlig passordbytte og andre endringer på en slik bruker som gjør at tasken kan stoppe opp.

Starte ArcGIS Pro​

På filområde hvor man syncet ned data ligger det en fil "Beredskap.aprx". Åpne denne filen med ArcGIS Pro for å åpne et prosjekt hvor data er koblet opp. Under "Maps" i ArcGIS Pro kan man se ferdige kart med ferdig symboliserte data. Under "Folders" og beredskap_offline (mappen med et lite hus på) kan man se på rådata i filgeodatabaser (.gdb). Se bilde under.

NB! Jobbe videre med data i ArcGIS Pro​

Det anbefales å ta en kopi av filen "Beredskap.aprx" som man jobber videre med dersom man vil ta vare på arbeidet man gjør i ArcGIS Pro. Dette fordi rutinen vil overskrive orginalfilen hver gang den kjører. Selv om man tar en kopi av prosjektfilen vil kartene og kartlagene fortsatt peke på de samme filgeodatabasene med seneste oppdaterte data.

offline_pro