Konfigurera din lokala Python-utvecklingsmiljö för Azure
När utvecklare skapar molnprogram föredrar de vanligtvis att testa kod på sina lokala arbetsstationer innan de distribuerar koden till en molnmiljö som Azure. Lokal utveckling ger dig fördelen med hastighet och en bredare mängd olika felsökningsverktyg.
Den här artikeln innehåller installationsanvisningar för att skapa och validera en lokal utvecklingsmiljö som är lämplig för Python på Azure:
- Installera nödvändiga komponenter,nämligen ett Azure-konto, Python och Azure CLI.
- Konfigurera autentisering för när du använder Azure-bibliotek för att etablera, hantera och få åtkomst till Azure-resurser.
- Granska processen med att använda virtuella Python-miljöer för vart och ett av dina projekt.
När du har konfigurerat din arbetsstation behöver du bara minimalt med extra konfiguration för att slutföra olika snabbstarter och självstudier någon annanstans i det här utvecklingscentret och i Azure-dokumentationen.
Den här konfigurationen för lokal utveckling är en separat fråga från etablering av resurser som utgör programmets molnmiljö i Azure. I utvecklingsprocessen kör du kod i din lokala utvecklingsmiljö som kan komma åt dessa molnresurser, men koden har ännu inte distribuerats till en lämplig värdtjänst i molnet. Det distributionssteget kommer senare, enligt beskrivningen i artikeln Om Azure-utvecklingsflödet.
Installera komponenter
Nödvändiga komponenter
| Namn/installationsprogram | Description |
|---|---|
| Azure-konto med en aktiv prenumeration | Konton/prenumerationer är kostnadsfria och innehåller många tjänster som är kostnadsfria att använda. |
| Python 2.7+ eller 3.6+ | Python-språkkörningen, som kan finnas i en Conda-miljö. Vi rekommenderar den senaste versionen av Python 3.x om du inte har särskilda versionskrav. |
| Kommandoradsgränssnitt för Azure (CLI) | Innehåller en fullständig uppsättning CLI-kommandon för att etablera och hantera Azure-resurser. Python-utvecklare använder ofta Azure CLI tillsammans med anpassade Python-skript som använder Azure-hanteringsbiblioteken. |
Obs!
- Du installerar enskilda Azure-bibliotekspaket per projekt beroende på dina behov. Vi rekommenderar att du använder virtuella Python-miljöer för varje projekt. Det finns inget fristående installationsprogram för SDK för Python.
- Även Azure PowerShell vanligtvis motsvarar Azure CLI, rekommenderar vi Azure CLI när du arbetar med Python.
Rekommenderade komponenter
| Namn/installationsprogram | Description |
|---|---|
| Visual Studio Code | Även om du kan arbeta med alla lämpliga redigerare eller IDE är Microsofts kostnadsfria, lätta IDE mycket populärt bland Python-utvecklare. En introduktion finns i Python i VS Code. |
| Python-tillägg för VS Code | Lägger till Python-stöd i VS Code. |
| Azure-tillägg för VS Code | Lägger till stöd för en mängd olika Azure-tjänster i VS Code. Stöd för specifika tjänster kan också installeras individuellt. |
| git | Kommandoradsverktyg för källkontroll. Du kan använda olika verktyg för källkontroll om du vill. |
Tillvalskomponenter
| Namn/installationsprogram | Description |
|---|---|
| Docker-tillägg för VS Code | Lägger till Docker-stöd i VS Code, vilket är användbart om du regelbundet arbetar med containrar. |
Verifiera komponenter
- Öppna en terminal eller kommandotolk.
- Verifiera Python-versionen genom att köra kommandot
python --version. - Verifiera Azure CLI-versionen genom att köra
az --version. - Verifiera INSTALLATIONEN av VS Code:
- Kör
code .för att öppna VS Code till den aktuella mappen. - I VS Code väljer du kommandot Visa tillägg för att öppna tilläggsvyn. Kontrollera sedan att du ser "Python" och "Azure-konto" i listan (bland andra "Azure"-tillägg och "Docker" om du även har installerat tillägget).
- Kör
Logga in på Azure från CLI
Logga in på din Azure-prenumeration i en terminal eller kommandotolk:
az login
Kommandot az är rotkommandot för Azure CLI. Följande är az ett eller flera specifika kommandon, till exempel login . Se kommandoreferensen az login.
Azure CLI upprätthåller vanligtvis din inloggning mellan sessioner, men det är en bra idé att köra när du öppnar en az login ny terminal eller kommandotolk.
Konfigurera autentisering
Enligt beskrivningen i Så här autentiserar du apparbehöver varje utvecklare ett huvudnamn för tjänsten som ska användas som programidentitet vid testning av appkod lokalt.
I följande avsnitt beskrivs hur du skapar ett huvudnamn för tjänsten och miljövariablerna som tillhandahåller egenskaperna för tjänstens huvudnamn till Azure-biblioteken när det behövs.
Varje utvecklare i din organisation bör utföra dessa steg individuellt.
Skapa ett huvudnamn för tjänsten och miljövariabler för utveckling
Öppna en terminal eller kommandotolk där du har loggat in på Azure CLI (
az login).Skapa tjänstens huvudnamn:
az ad sp create-for-rbac --name localtest-sp-rbacMer information om kommandot och dess argument finns i Vad kommandot create-for-rbac gör.
Om du arbetar i en organisation kanske du inte har behörighet i prenumerationen för att köra det här kommandot. I så fall kontaktar du prenumerationsägarna för att be dem skapa tjänstens huvudnamn åt dig.
Använd följande kommandon för att skapa miljövariabler som azure-biblioteken kräver. (Objektet
DefaultAzureCredentiali biblioteket azure-identity söker efter dessa variabler).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_bErsätt värdena som visas i de här kommandona med värdena för ditt specifika huvudnamn för tjänsten.
Om du vill hämta ditt prenumerations-ID
az account showkör du kommandot och letar efter egenskapen iidutdata.För enkelhetens skull skapar du en kommandoradsskriptfil (till exempel setenv.sh på macOS/Linux eller setenv.cmd på Windows) som innehåller samma kommandon. Du kan sedan köra skriptet för att ange variablerna när du öppnar en terminal eller kommandotolk för lokal testning. Lägg inte till skriptfilen i källkontrollen så att den bara finns kvar i ditt användarkonto.
Skydda klient-ID och klienthemlighet (och filer som lagrar dem) så att de alltid finns kvar i ett visst användarkonto på en arbetsstation. Spara aldrig dessa egenskaper i källkontrollen eller dela dem med andra utvecklare. Om det behövs kan du ta bort tjänstens huvudnamn och skapa ett nytt.
För ytterligare ett säkerhetslager kan du skapa en princip för att ta bort och återskapa tjänstens huvudnamn enligt ett regelbundet schema, vilket ogiltigförklarar tidigare-ID:er och hemligheter.
Dessutom bör ett huvudnamn för utvecklingstjänsten helst endast godkännas för icke-produktionsresurser, eller skapas i en Azure-prenumeration som endast används i utvecklingssyfte. Produktionsprogrammet använder sedan en separat prenumeration och separata produktionsresurser som endast är auktoriserade för det distribuerade molnprogrammet.
Om du vill ändra eller ta bort tjänstens huvudnamn senare kan du se Hantera tjänstens huvudnamn.
Viktigt
För produktionskod (i stället för lokal utveckling) ska du använda hanterade identiteter när det är möjligt i stället för ett specifikt huvudnamn för tjänsten.
Vad kommandot create-for-rbac gör
Kommandot az ad sp create-for-rbac skapar ett huvudnamn för tjänsten för rollbaserad autentisering (RBAC). (Mer information om tjänstens huvudnamn finns i Så här autentiserar och auktoriserar du Python-appar på Azure.)
adinnebär Azure Active Directory, betyder "tjänstens huvudnamn" och betyder "skapa för rollbaseradspcreate-for-rbacåtkomstkontroll", Azures primära form av auktorisering. Se kommandoreferensen az ad sp create-for-rbac.Argumentet
--nameska vara unikt inom din organisation och använder vanligtvis namnet på utvecklaren som använder tjänstens huvudnamn. Om du utelämnar det här argumentet använder Azure CLI ett allmänt namn på formuläretazure-cli-<timestamp>. Du kan byta namn på tjänstens huvudnamn på Azure Portal om du vill.Kommandot
az ad sp create-for-rbactilldelar inte några roller till tjänstens huvudnamn. Detta innebär en risk om säkerhetsobjekt komprometteras, vilket är anledningen till att vi rekommenderar att du tilldelar de exakta rollerna i det exakta omfång som tjänstens huvudnamn kräver. Se Vad är rollbaserad åtkomstkontroll i Azure (RBAC) och Steg för att lägga till en rolltilldelning. Olika snabbstarter och självstudier innehåller också information om hur du auktoriserar ett huvudnamn för tjänsten för de specifika resurser som ingår.Kommandot genererar JSON-utdata som liknar följande värden. Värdena
appIdtenant, och kommer attpasswordvara olika:{ "appId": "12345678-1111-2222-3333-1234567890ab", "displayName": "localtest-sp-rbac", "name": " http://localtest-sp-rbac ", "password": "abcdef00-4444-5555-6666-1234567890ab", "tenant": "001122233-7777-8888-9999-aabbccddeeff" }I dessa utdata
tenantär klientorganisations-ID,appIdklient-ID ochpasswordär klienthemligheten.Varning
Skydda alla autentiseringsuppgifter som ingår i
az ad sp create-for-rbacutdata från , till exempel lösenord, klienthemlighet eller certifikat. Lagra inte autentiseringsuppgifter i kod eller filer som är indeade i källkontrollen.Viktigt
Utdata från det här kommandot är den enda plats där du ser lösenordet. Du kan inte hämta lösenordet senare. Du kan dock lägga till ett nytt lösenord om det behövs utan att ogiltigförklara tjänstens huvudnamn eller befintliga lösenord.
Använda virtuella Python-miljöer
För varje projekt rekommenderar vi att du alltid skapar och aktiverar en virtuell miljö med följande steg:
Öppna en terminal eller kommandotolk.
Skapa en mapp för projektet.
Skapa den virtuella miljön:
# py -3 uses the global python interpreter. You can also use python -m venv .venv. py -3 -m venv .venvDet här kommandot kör
venvPython-modulen och skapar en virtuell miljö i en mapp med namnet.venv.Aktivera den virtuella miljön:
En virtuell miljö är en mapp i ett projekt som isolerar en kopia av en specifik Python-tolk. När du aktiverar den miljön (vilket Visual Studio Code gör automatiskt) installeras ett bibliotek endast i den miljön när pip install du kör . När du sedan kör Din Python-kod körs den i miljöns exakta kontext med specifika versioner av varje bibliotek. Och när du kör pip freeze får du den exakta listan över dessa bibliotek. (I många av exemplen i den här dokumentationen skapar du enrequirements.txt för de bibliotek du behöver och använder sedan . En kravfil behövs vanligtvis när du distribuerar kod till Azure.)
Om du inte använder en virtuell miljö körs Python i den globala miljön. Även om det är snabbt och praktiskt att använda den globala miljön, tenderar det att bli fler och fler med alla bibliotek som du installerar för alla projekt eller experiment. Om du uppdaterar ett bibliotek för ett projekt kan du dessutom bryta andra projekt som är beroende av olika versioner av biblioteket. Och eftersom miljön delas av val annat antal projekt kan du inte använda för att hämta en lista över ett pip freeze projekts beroenden.
I den globala miljön vill du installera verktygspaket som du vill använda i flera projekt. Du kan till exempel köra pip install gunicorn i den globala miljön för att göra gunicorn-webbservern tillgänglig överallt.
Använda källkontroll
Vi rekommenderar att du börjar skapa en lagringsplats för källkontroll varje gång du startar ett projekt. Om du har Installerat Git kör du bara följande kommando:
git init
Därifrån kan du köra kommandon som git add och för att genomföra git commit ändringar. Genom att regelbundet genomföra ändringar skapar du en historik för genomförande som du kan använda för att återgå till ett tidigare tillstånd.
Om du vill göra en säkerhetskopiering av projektet online rekommenderar vi också att du laddar upp lagringsplatsen till GitHub eller Azure DevOps. Om du först har initierat en lokal lagringsplats använder du för att koppla den lokala git remote add lagringsplatsen till GitHub eller Azure DevOps.
Dokumentation för git finns på git-scm.com/docs och på internet.
Visual Studio Code innehåller ett antal inbyggda git-funktioner. Mer information finns i Använda versionskontroll i VS Code.
Du kan också använda val annat verktyg för källkontroll. Git är helt enkelt en av de mest använda och stöds.
Nästa steg
Ta en snabb titt på de vanliga användningsmönstren för Azure-biblioteken med din lokala utvecklingsmiljö: