Uw lokale Python-dev-omgeving configureren voor Azure

Bij het maken van cloudtoepassingen testen ontwikkelaars doorgaans liever code op hun lokale werkstations voordat ze die code implementeren in een cloudomgeving zoals Azure. Lokale ontwikkeling biedt u het voordeel van snelheid en een breder scala aan hulpprogramma's voor debuggen.

Dit artikel bevat de een time-setup-instructies voor het maken en valideren van een lokale dev-omgeving die geschikt is voor Python in Azure:

Zodra u uw werkstation hebt geconfigureerd, hebt u slechts een minimale toegevoegde configuratie nodig om verschillende quickstarts en zelfstudies elders in dit ontwikkelaarscentrum en in de Azure-documentatie te voltooien.

Deze installatie voor lokale ontwikkeling staat los van het inrichten van resources die de cloudomgeving van uw toepassing in Azure uitmaken. In uw ontwikkelingsproces kunt u code uitvoeren in uw lokale ontwikkelomgeving die toegang heeft tot deze cloudbronnen, maar uw code is nog niet geïmplementeerd naar een geschikte hostingservice in de cloud. Deze implementatiestap komt later, zoals beschreven in het artikel Azure-ontwikkelingsstroom.

Onderdelen installeren

Vereiste onderdelen

Naam/installatieprogramma Description
Azure-account met een actief abonnement Accounts/abonnementen zijn gratis en bevatten veel gratis te gebruiken services.
Python 2.7+ of 3.6+ De Python-taalruntime, die zich in een Conda-omgeving kan vinden. We raden u aan de nieuwste versie van Python 3.x te gebruiken, tenzij u specifieke versievereisten hebt.
Azure-opdrachtregelinterface (CLI) Biedt een volledige reeks CLI-opdrachten voor het inrichten en beheren van Azure-resources. Python-ontwikkelaars gebruiken de Azure CLI doorgaans in combinatie met aangepaste Python-scripts die gebruikmaken van de Azure-beheerbibliotheken.

Opmerkingen:

  • U installeert afzonderlijke Azure-bibliotheekpakketten per project, afhankelijk van uw behoeften. Het is raadzaam om voor elk project virtuele Python-omgevingen te gebruiken. Er is geen zelfstandig SDK-installatieprogramma voor Python.
  • Hoewel Azure PowerShell over het algemeen gelijk is aan de Azure CLI, raden we de Azure CLI aan wanneer u met Python werkt.
Naam/installatieprogramma Description
Visual Studio Code Hoewel u met elke geschikte editor of IDE kunt werken, is de gratis, lichtgewicht IDE van Microsoft zeer populair onder Python-ontwikkelaars. Zie Python in VS Code voor een inleiding.
Python-extensie voor VS Code Voegt Python-ondersteuning toe aan VS Code.
Azure-extensie voor VS Code Voegt ondersteuning voor verschillende Azure-services toe aan VS Code. Ondersteuning voor specifieke services kan ook afzonderlijk worden geïnstalleerd.
git Opdrachtregelprogramma's voor broncodebeheer. U kunt verschillende hulpprogramma's voor broncodebeheer gebruiken als u dat liever hebt.

Optionele onderdelen

Naam/installatieprogramma Description
Docker-extensie voor VS Code Voegt Docker-ondersteuning toe aan VS Code, wat handig is als u regelmatig met containers werkt.

Onderdelen controleren

  1. Open een terminal of opdrachtprompt.
  2. Controleer uw Python-versie door de opdracht uit te python --version voeren.
  3. Controleer de Versie van Azure CLI door uit te gaan, az --version .
  4. Vs Code-installatie controleren:
    1. Voer code . uit om VS Code te openen in de huidige map.
    2. Selecteer in VS Code de opdracht Extensies weergeven om de extensieweergave te openen en controleer vervolgens of u 'Python' en 'Azure-account' in de lijst ziet (onder andere 'Azure'-extensies en 'Docker' als u die extensie ook hebt geïnstalleerd).

Aanmelden bij Azure via de CLI

Meld u in een terminal- of opdrachtprompt aan bij uw Azure-abonnement:

az login

De az opdracht is de hoofdopdracht van de Azure CLI. Hier volgen een az of meer specifieke opdrachten, zoals login . Zie de naslag voor de opdracht az login.

De Azure CLI onderhoudt normaal gesproken uw aanmelding tussen sessies, maar het is een goede gewoonte om uit te voeren wanneer u een nieuwe terminal of az login opdrachtprompt opent.

Verificatie configureren

Zoals beschreven in Apps verifiërenheeft elke ontwikkelaar een service-principal nodig om te gebruiken als de toepassings-id bij het lokaal testen van app-code.

In de volgende secties wordt beschreven hoe u een service-principal en de omgevingsvariabelen maakt die de eigenschappen van de service-principal aan de Azure-bibliotheken leveren wanneer dat nodig is.

Elke ontwikkelaar in uw organisatie moet deze stappen afzonderlijk uitvoeren.

Een service-principal en omgevingsvariabelen maken voor ontwikkeling

  1. Open een terminal of opdrachtprompt waarin u zich hebt aangemeld bij de Azure CLI ( az login ).

  2. Maak de service-principal:

    az ad sp create-for-rbac --name localtest-sp-rbac
    

    Zie Wat de opdracht create-for-rbac doetvoor meer informatie over de opdracht en de argumenten.

    Als u zich in een organisatie hebt, hebt u mogelijk geen machtiging in het abonnement om deze opdracht uit te voeren. Neem in dat geval contact op met de eigenaren van het abonnement om de service-principal voor u te laten maken.

  3. Gebruik de volgende opdrachten om omgevingsvariabelen te maken die de Azure-bibliotheken nodig hebben. (Het DefaultAzureCredential object van de azure-identity-bibliotheek zoekt naar deze variabelen).

    set AZURE_SUBSCRIPTION_ID="aa11bb33-cc77-dd88-ee99-0918273645aa"
    set AZURE_TENANT_ID=00112233-7777-8888-9999-aabbccddeeff
    set AZURE_CLIENT_ID=12345678-1111-2222-3333-1234567890ab
    set AZURE_CLIENT_SECRET=oUBB11zz~JJJJ_~yyyyyyVVumumumumb_b
    

    Vervang de waarden in deze opdrachten door die van uw specifieke service-principal.

    Voer de opdracht uit en zoek de eigenschap in de uitvoer om uw abonnements-id az account showid op te halen.

    Maak voor het gemak een scriptbestand voor de opdrachtregel (zoals setenv.sh in macOS/Linux of setenv.cmd op Windows) dat dezelfde opdrachten bevat. Vervolgens kunt u het script uitvoeren om de variabelen in te stellen wanneer u een terminal of opdrachtprompt opent voor lokaal testen. Voeg nogmaals het scriptbestand niet toe aan broncodebeheer, zodat het alleen binnen uw gebruikersaccount blijft.

  4. Bewaar de client-id en het clientgeheim (en alle bestanden die ze opslaan), zodat ze altijd binnen een specifiek gebruikersaccount op een werkstation blijven. Sla deze eigenschappen nooit op in broncodebeheer of deel ze met andere ontwikkelaars. Indien nodig kunt u de service-principal verwijderen en een nieuwe maken.

    Voor een extra beveiligingslaag kunt u een beleid maken om service-principals volgens een vast schema te verwijderen en opnieuw te maken, waardoor eerdere ID's en geheimen ongeldig worden.

    Bovendien is een service-principal voor ontwikkeling idealiter alleen geautoriseerd voor niet-productie-resources of wordt deze gemaakt binnen een Azure-abonnement dat alleen wordt gebruikt voor ontwikkelingsdoeleinden. De productietoepassing gebruikt vervolgens een afzonderlijk abonnement en afzonderlijke productiebronnen die alleen zijn geautoriseerd voor de geïmplementeerde cloudtoepassing.

  5. Zie Service-principals beheren als u service-principals later wilt wijzigen of verwijderen.

Belangrijk

Gebruik voor productiecode (in plaats van lokale ontwikkeling) waar mogelijk beheerde identiteiten in plaats van een specifieke service-principal.

Wat de opdracht create-for-rbac doet

Met az ad sp create-for-rbac de opdracht maakt u een service-principal voor 'op rollen gebaseerde verificatie' (RBAC). (Zie Python-apps verifiëren en autoriseren in Azure voor meer informatie over service-principals.)

  • adbetekent Azure Active Directory; betekent 'service-principal' en betekent 'maken voor op rollen gebaseerd toegangsbeheer', de primaire vorm van spcreate-for-rbac autorisatie van Azure. Zie de opdrachtverwijzing az ad sp create-for-rbac.

  • Het argument moet uniek zijn binnen uw organisatie en gebruikt doorgaans de naam van de --name ontwikkelaar die gebruikmaakt van de service-principal. Als u dit argument weglaten, gebruikt de Azure CLI een algemene naam van het formulier azure-cli-<timestamp> . U kunt de naam van de service-principal op Azure Portal wijzigen, indien gewenst.

  • Met az ad sp create-for-rbac de opdracht worden geen rollen toegewezen aan de service-principal. Dit vormt een risico als de beveiligingsprincipaal is aangetast. Daarom raden we u aan om de exacte rollen toe te wijzen op het exacte bereik dat de service-principal vereist. Zie Wat is op rollen gebaseerd toegangsbeheer van Azure (RBAC) en Stappen om een roltoewijzing toe te voegen. Verschillende quickstarts en zelfstudies bieden ook details voor het autoriseren van een service-principal voor de specifieke resources die hierbij betrokken zijn.

  • Met de opdracht wordt JSON-uitvoer gegenereerd die vergelijkbaar is met de volgende waarden. De appId waarden , en zijn allemaal tenantpassword verschillend:

      { "appId": "12345678-1111-2222-3333-1234567890ab", "displayName": "localtest-sp-rbac", "name": " http://localtest-sp-rbac ", "password": "abcdef00-4444-5555-6666-1234567890ab", "tenant": "00112233-7777-8888-9999-aabbccddeeff" }

    In deze uitvoer tenant is de tenant-id, appId de client-id en password het clientgeheim.

    Waarschuwing

    Bebeveiligen alle referenties die zijn opgenomen in de uitvoer van az ad sp create-for-rbac , zoals het wachtwoord, het clientgeheim of het certificaat. Sla referenties niet op in code of een bestand dat is vastgelegd in broncodebeheer.

    Belangrijk

    De uitvoer van deze opdracht is de enige plaats waar u het wachtwoord ooit ziet. U kunt het wachtwoord later niet meer ophalen. U kunt indien nodig echter een nieuw wachtwoord toevoegen zonder de service-principal of bestaande wachtwoorden ongeldig te maken.

Virtuele Python-omgevingen gebruiken

Voor elk project wordt u aangeraden altijd een virtuele omgeving te maken en te activeren met behulp van de volgende stappen:

  1. Open een terminal of opdrachtprompt.

  2. Maak een map voor uw project.

  3. Maak de virtuele omgeving:

    # py -3 uses the global python interpreter. You can also use python -m venv .venv.
    py -3 -m venv .venv
    

    Met deze opdracht wordt de venv Python-module uitgevoerd en wordt een virtuele omgeving gemaakt in een map met de naam .venv .

  4. Activeer de virtuele omgeving:

    .venv\scripts\activate
    

Een virtuele omgeving is een map binnen een project die een kopie van een specifieke Python-interpreter isoleert. Zodra u die omgeving hebt geactiveerd (wat Visual Studio code automatisch doet), wordt met het uitvoeren alleen een pip install bibliotheek in die omgeving geïnstalleerd. Wanneer u vervolgens uw Python-code voert, wordt deze uitgevoerd in de exacte context van de omgeving met specifieke versies van elke bibliotheek. En wanneer u uit te pip freeze voeren, krijgt u de exacte lijst van deze bibliotheken. (In veel van de voorbeelden in deze documentatie maakt u een requirements.txt voor de bibliotheken die u nodig hebt en gebruikt u vervolgens . Een vereistenbestand is doorgaans nodig wanneer u code implementeert in Azure.)

Als u geen virtuele omgeving gebruikt, wordt Python uitgevoerd in de globale omgeving. Hoewel het snel en handig is om de globale omgeving te gebruiken, gaat het in de tijd vaak veel sneller met alle bibliotheken die u voor elk project of experiment installeert. Als u een bibliotheek voor één project bij werkt, kunt u bovendien andere projecten die afhankelijk zijn van verschillende versies van die bibliotheek, breken. En omdat de omgeving wordt gedeeld door een aantal projecten, kunt u niet gebruiken om een lijst met afhankelijkheden van een pip freeze project op te halen.

In de algemene omgeving wilt u wel hulpprogrammapakketten installeren die u in meerdere projecten wilt gebruiken. U kunt bijvoorbeeld uitvoeren pip install gunicorn in de globale omgeving om de gunicorn-webserver overal beschikbaar te maken.

Broncodebeheer gebruiken

U wordt aangeraden een opslagplaats voor broncodebeheer te maken wanneer u een project start. Als u Git hebt geïnstalleerd, kunt u gewoon de volgende opdracht uitvoeren:

git init

Van hier kunt u opdrachten zoals en git add uitvoeren om wijzigingen door te git commit voeren. Door regelmatig wijzigingen door te voeren, maakt u een commit-geschiedenis waarmee u een eerdere status kunt terugdraaien.

Als u een online back-up van uw project wilt maken, raden we u ook aan uw opslagplaats te uploaden naar GitHub of Azure DevOps. Als u eerst een lokale opslagplaats hebt initialiseerd, gebruikt u om de lokale opslagplaats te koppelen git remote add aan GitHub of Azure DevOps.

Documentatie voor Git vindt u op git-scm.com/docs en op internet.

Visual Studio Code bevat een aantal ingebouwde Git-functies. Zie Versiebeheer gebruiken in VS Code voor meer informatie.

U kunt ook elk ander broncodebeheerprogramma van uw keuze gebruiken; Git is gewoon een van de meest gebruikte en ondersteunde.

Volgende stap

Nu uw lokale dev-omgeving is uitgevoerd, kunt u de algemene gebruikspatronen voor de Azure-bibliotheken bekijken: