Skip to content

Dataplattform: Quick start

FredStrin edited this page Apr 19, 2023 · 18 revisions

På denne siden finner du det minste du trenger for å starte å utvikle på dataplattformen

Programvare

Det første du må gjøre er å sørge for at du har korrekt programvare lastet ned og installert. (De stedene versjonsnummer er beskrevet er det viktig at du velger denne beskrevne versjonen - erfaringsmessig har andre og nye/eldre versjoner gitt problemer.)

  • En fungerende terminal.

    • Bruker du Windows må du installere WSL.
    • Husk at alle verktøyene som du installerer under må installeres i din valgte WSL-distro.
    • Under Windows, så er det mulig at du må installere lzma manuelt før du prøver å bruke pyenv. Det gjøres fra et WSL shell med: sudo apt-get install liblzma-dev og sudo apt-get install lzma før du begynner å installere pyenv.
  • Verktøy for å bygge enkelte Python-komponenter.

    • Bruker du Mac OS må du installere Xcode (fra App Store).
  • pyenv

    • pyenv lar deg håndtere flere Python-versjoner på samme system på en svært enkel måte.
    • Når pyenv er installert riktig skal kommandoen pyenv --version gi en output som pyenv 2.2.0-5-g54889eb8 eller lignende.
    • Installer Python 3.9.12 ved å kjøre kommandoen pyenv install 3.9.12.
  • nvm

    • Du kommer til å trenge node og npm. Den enkleste måten å håndtere node- og npm-installasjoner er gjennom nvm.
    • Når du har installert nvm kan du installere en vilkårlig node-versjon X ved å kjøre nvm install X, og du kan bruke versjonen med kommandoen nvm use X.
    • Du skal installere versjon 16. Kjør kommandoen nvm install 16 && nvm use 16.
  • serverless

  • aws-cli

    • AWS sitt CLI må være installert for at Serverless skal kunne deploye til AWS.
  • AWS CDK

    • Installeres ved å kjøre kommandoen npm install -g aws-cdk

Konfigurer utviklingsmiljø

For å få en best mulig opplevelse som utvikler på dataplattform, er det viktig at utviklingsmiljøet er satt opp korrekt. Disse stegene vil sørge for at du følger best practices og at du har alt du trenger for å teste koden din.

  1. Klon repoet ved å kjøre kommandoen git clone [email protected]:knowit/Dataplattform.git. Om det ikke fungerer kan det hende at du mangler en SSH-nøkkel for GitHub-brukeren din. Her må du passe på å bruke main-branchen fremover, ettersom develop er utdatert.

  2. I rotmappa kjører du kommandoen pyenv local 3.9.12 for å be pyenv bruke Python 3.9.12 i prosjektet.

  3. Opprett et virtuelt miljø i rotmappa i prosjektet med venv: python -m venv env. (På Mac kan det være nødvendig å kjøre $(pyenv which python) -m venv env i stedet, for å få riktig python-versjon.)

  4. Aktiver det virtuelle miljøet: source env/bin/activate. Når det virtuelle miljøet er aktivt vil du se (env) til venstre i terminalen din. Du kan også konfigurere IDEen eller editoren din til å bruke dette virtuelle miljøet for å få kodefullføring og lignende.

  5. Oppgrader pip: pip install --upgrade pip.

  6. (a) Installer de felles pakkene som Dataplattform benytter seg av ved å kjøre

pip install -e packages/api packages/cli packages/common packages/query packages/testing
  1. (b) Dersom denne installasjonen feiler må du sannsynligvis installere cargo ved å kjøre
curl https://sh.rustup.rs -sSf | sh

Når denne er ferdig kan du gjøre steg 6a på nytt.

  1. Installer tox som er et testrammeverk vi benytter: pip install tox==3.28.0.

  2. Konfigurer aws cli om du ikke har gjort det, se nedenfor.

  3. Kjør kommandoen dataplattform test i rotmappa til prosjektet for å verifisere at alt har blitt satt opp riktig. Ta deg en kopp kaffe eller te (eller noe annet du har lyst på!) og kom tilbake om 15 minutter. Dersom testene kjørte fint er alt satt opp riktig. Om du ønsker å teste enkelttjenester kan du kjøre tox inni en mappe der det ligger en tox.ini-fil. Dersom du under utvikling har lagt til flere pakker i requirement.txt så må du kjøre tox -r for å gjenskape det virtuelle testmiljøet med de nye pakkene. Om du får en "botocore.exceptions.NoRegionError: You must specify a region." type feil, så gjør "Konfigurer AWS CLI" steget under først.

  4. (Optional) Når en pull request åpnes, lintes koden som er endret. Dersom du bruker VSCode kan du konfigurere editoren din til å bruke den samme lintingen. For å gjøre dette må du ha følgende innstillinger satt, enten på bruker- eller workspace-nivå:

{
    "python.linting.enabled": true,
    "python.linting.flake8Enabled": true,
    "python.linting.flake8Args": [
        "--max-line-length=120"
    ],
}

Konfigurer AWS CLI

Når du har fått tilgang til AWS-miljøene våre gjennom SSO (spør teamet eller drift om hjelp dersom tilgangen ikke er på plass ennå) kan du få programatisk tilgang ved å hente temporere nøkler til DataplattformDeveloper, på https://kion.awsapps.com/start (Disse varer i 12 timer, så kan ha det som en vane å hente nye hver dag du trenger det. Når dette er gjort kan du konfigurere CLIet til å bruke nøklene til brukeren din:

aws configure

der du velger eu-central-1 som region og json som output.

Deploy din første lambda

(Dette kan du ikke gjøre før du har satt opp sandbox-en, ser det ut som; neste avsnitt)

  1. Fra rotmappa til prosjektet navigerer du deg til templates/lambda i terminalen.
  2. Kjør kommandoen npm install. Denne kommandoen installerer bl.a. plugins til Serverless.
  3. Kjør kommandoen sls deploy.
  4. Kjør kommandoen sls invoke -f FUNCTION. Navnet FUNCTION finner du i outputen fra forrige steg.
  5. Kjør kommandoen sls remove for å fjerne det du har deployet. Dette kan feile om flere prøver å følge guiden samtidig.

Har du fortsatt problemer med å deploye dataplattform?

  1. Sjekk ut Dataplattform: Deploy til sandbox

Clone this wiki locally