Konfigurace místního prostředí pro vývoj v Pythonu pro Azure

Při vytváření cloudových aplikací vývojáři obvykle dávají přednost testování kódu na místních pracovních stanicích před nasazením tohoto kódu do cloudového prostředí, jako je Azure. Místní vývoj poskytuje výhody rychlosti a široké škály nástrojů pro ladění.

Tento článek popisuje jednorázové instalační pokyny k vytvoření a ověření místního vývojového prostředí, které je vhodné pro Python v Azure:

Po nakonfigurování pracovní stanice budete potřebovat jenom minimální přidanou konfiguraci, abyste mohli dokončit různé rychlé starty a kurzy jinde v tomto centru pro vývojáře a v dokumentaci k Azure.

Tato instalace pro místní vývoj je oddělená od zřizování prostředků , které tvoří cloudové prostředí vaší aplikace v Azure. V procesu vývoje spouštíte kód v místním vývojovém prostředí, které má přístup k těmto cloudovým prostředkům, ale váš kód ještě není nasazený do vhodné hostitelské služby v cloudu. Tento krok nasazení se bude nacházet později, jak je popsáno v článku vývojový tok Azure .

Nainstalovat komponenty

Požadované součásti

Název nebo instalační program Description
Účet Azure s aktivním předplatným Účty/předplatná jsou zdarma a zahrnují spoustu služeb, které využívají bezplatnou službu.
Python 2.7 + nebo 3.6 + Jazyk Python Language Runtime, který může být v prostředí conda. Pokud nemáte specifické požadavky na verzi, doporučujeme použít nejnovější verzi Pythonu 3. x.
Rozhraní příkazového řádku Azure (CLI) Poskytuje úplnou sadu příkazů rozhraní příkazového řádku pro zřizování a správu prostředků Azure. Vývojáři Pythonu běžně používají rozhraní příkazového řádku Azure ve spojení s vlastními skripty Pythonu, které používají knihovny pro správu Azure.

Poznámky:

  • Jednotlivé balíčky knihovny Azure můžete nainstalovat na základě jednotlivých projektů podle svých potřeb. Pro každý projekt doporučujeme používat virtuální prostředí Pythonu . Pro Python není k dispozici žádný samostatný instalační program sady SDK.
  • i když je Azure PowerShell obecně ekvivalentní s rozhraním příkazového řádku azure cli, doporučujeme při práci s pythonem používat rozhraní příkazového řádku azure.
Název nebo instalační program Description
Visual Studio Code I když můžete pracovat s vhodným editorem nebo rozhraním IDE, je bezplatné a zjednodušené integrované vývojové prostředí (IDE) Microsoftu mezi vývojáři v Pythonu. Úvod najdete v tématu věnovaném Pythonu v vs Code.
Rozšíření Pythonu pro VS Code Přidá podporu Pythonu pro VS Code.
Rozšíření Azure pro VS Code Přidá podporu pro celou řadu služeb Azure pro VS Code. Podporu pro konkrétní služby je také možné nainstalovat samostatně.
git Nástroje příkazového řádku pro správu zdrojového kódu. Pokud dáváte přednost, můžete použít jiné nástroje pro správu zdrojového kódu.

Volitelné komponenty

Název nebo instalační program Description
Rozšíření Docker pro VS Code přidá podporu docker do VS Code, což je užitečné, pokud pravidelně pracujete s kontejnery.

Ověřit součásti

  1. Otevřete terminál nebo příkazový řádek.
  2. Ověřte verzi Pythonu spuštěním příkazu, python --version .
  3. Ověřte verzi Azure CLI spuštěním, az --version .
  4. ověření instalace VS Code:
    1. spusťte code . pro otevření VS Code do aktuální složky.
    2. v VS Code výběrem příkazu zobrazitrozšíření otevřete zobrazení rozšíření a pak ověřte, že se v seznamu zobrazuje "Python" a "účet Azure" (mimo jiné "rozšíření Azure" a "docker").

Přihlášení k Azure z CLI

Do terminálu nebo příkazového řádku se přihlaste ke svému předplatnému Azure:

az login

azPříkaz je kořenovým příkazem rozhraní příkazového řádku Azure CLI. Níže az je jeden nebo více konkrétních příkazů, jako je například login . Přečtěte si referenční informace k příkazu AZ Login .

Azure CLI standardně udržuje přihlašování napříč relacemi, ale je dobrým zvykem, abyste se spouštěli az login při každém otevření nového terminálu nebo příkazového řádku.

Konfigurace ověřování

Jak je popsáno v tématu Jak ověřit aplikace, každý vývojář potřebuje instanční objekt, který se má použít jako identita aplikace při místním testování kódu aplikace.

Následující části popisují, jak vytvořit instanční objekt a proměnné prostředí, které v případě potřeby poskytují vlastnosti instančního objektu do knihoven Azure.

Každý vývojář ve vaší organizaci by měl provádět tyto kroky zvlášť.

Vytvoření instančního objektu a proměnných prostředí pro vývoj

  1. Otevřete terminál nebo příkazový řádek, ke kterému jste se přihlásili do Azure CLI ( az login ).

  2. Vytvoření instančního objektu:

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

    Další podrobnosti o příkazu a jeho argumentech najdete v tématu co dělá příkaz Create-for-RBAC.

    Pokud jste v organizaci, možná nemáte v předplatném oprávnění ke spuštění tohoto příkazu. V takovém případě se obraťte na vlastníky předplatného, aby si vytvořili instanční objekt za vás.

  3. Pomocí následujících příkazů vytvořte proměnné prostředí, které knihovny Azure vyžadují. ( DefaultAzureCredential Objekt knihovny Azure-identity vyhledá tyto proměnné).

    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
    

    Hodnoty uvedené v těchto příkazech nahraďte konkrétní instančním objektem.

    Pokud chcete načíst ID předplatného, spusťte az account show příkaz a vyhledejte id vlastnost ve výstupu.

    pro usnadnění práce vytvořte soubor skriptu příkazového řádku (například setenv.sh na macOS/Linux nebo setenv –. cmd v Windows), který obsahuje tyto stejné příkazy. Potom můžete skript spustit, abyste nastavili proměnné vždy, když otevřete terminál nebo příkazový řádek pro místní testování. Znovu nepřidejte soubor skriptu do správy zdrojových kódů, takže zůstane pouze v rámci vašeho uživatelského účtu.

  4. Zabezpečte ID klienta a tajný klíč klienta (a všechny soubory, které je ukládají), aby vždy zůstaly v rámci konkrétního uživatelského účtu na pracovní stanici. Tyto vlastnosti nikdy neukládejte ve správě zdrojového kódu nebo je sdílejte s ostatními vývojáři. V případě potřeby můžete instanční objekt odstranit a vytvořit nový.

    V případě další úrovně zabezpečení můžete vytvořit zásadu pro odstranění a opětovné vytvoření instančních objektů podle pravidelného plánu, čímž dojde k neověřování předchozích ID a tajných kódů.

    Kromě toho je instanční objekt pro vývoj v ideálním smyslu autorizován pouze pro neprodukční prostředky nebo vytvořen v rámci předplatného Azure, které se používá pouze pro účely vývoje. Produkční aplikace by pak používala samostatné předplatné a samostatné produkční prostředky, které jsou autorizované jenom pro nasazenou cloudovou aplikaci.

  5. Chcete-li změnit nebo odstranit instanční objekty později, přečtěte si téma Správa instančních objektů.

Důležité

Pro produkční kód (spíše než místní vývoj) používejte spravované identity , pokud je to možné, nikoli konkrétní instanční objekt.

Co dělá příkaz Create-for-RBAC

az ad sp create-for-rbacPříkaz vytvoří instanční objekt pro ověřování na základě role (RBAC). (Další informace o instančních objektech najdete v tématu jak ověřovat a autorizovat aplikace v Pythonu v Azure.)

  • adznamená Azure Active Directory; sp znamená "instanční objekt" a create-for-rbac znamená "vytvoření pro řízení přístupu na základě role" primární forma autorizace Azure. Informace najdete v referenčních informacích k příkazu AZ AD SP Create-for-RBAC .

  • --nameArgument by měl být jedinečný v rámci vaší organizace a obvykle používá název vývojáře, který používá instanční objekt. Pokud tento argument vynecháte, Azure CLI použije obecný název formuláře azure-cli-<timestamp> . Instanční objekt můžete v Azure Portal přejmenovat, pokud je to potřeba.

  • az ad sp create-for-rbacPříkaz nepřiřazuje žádné role k instančnímu objektu. To představuje riziko, pokud dojde k ohrožení zabezpečení objektu zabezpečení. to je důvod, proč doporučujeme přiřadit přesné role v přesném rozsahu, který instanční objekt vyžaduje. Viz Co je řízení přístupu na základě role v Azure (RBAC)a Postup přidání přiřazení role. V různých rychlých startech a kurzech najdete také podrobnosti o autorizaci objektu služby pro konkrétní příslušné prostředky.

  • Příkaz vygeneruje výstup JSON podobný následujícím hodnotám. Hodnoty appId , a se budou tenantpassword lišit:

      { "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" }

    V tomto výstupu tenant je ID tenanta, appId je ID klienta a je tajný kód password klienta.

    Upozornění

    Chraňte všechny přihlašovací údaje zahrnuté ve výstupu z , například az ad sp create-for-rbac heslo, tajný klíč klienta nebo certifikát. Neukládejte přihlašovací údaje do kódu ani do žádného souboru, který je potvrzen do správy zdrojového kódu.

    Důležité

    Výstup tohoto příkazu je jediným místem, kde heslo uvidíte. Heslo později nelze načíst. V případě potřeby ale můžete přidat nové heslo bez zneplatnění objektu služby nebo existujících hesel.

Použití virtuálních prostředí Pythonu

Pro každý projekt doporučujeme vždy vytvořit a aktivovat virtuální prostředí pomocí následujícího postupu:

  1. Otevřete terminál nebo příkazový řádek.

  2. Vytvořte složku pro váš projekt.

  3. Vytvořte virtuální prostředí:

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

    Tento příkaz spustí modul venv Pythonu a vytvoří virtuální prostředí ve složce s názvem .venv .

  4. Aktivace virtuálního prostředí:

    .venv\scripts\activate
    

Virtuální prostředí je složka v rámci projektu, která izoluje kopii konkrétního interpreta Pythonu. Po aktivaci tohoto prostředí (které Visual Studio Code automaticky) se při spuštění nainstaluje pip install pouze knihovna do tohoto prostředí. Když pak spustíte kód Pythonu, spustí se v přesném kontextu prostředí s konkrétními verzemi každé knihovny. A když pip freeze spustíte , získáte přesný seznam těchto knihoven. (V mnoha příkladech v této dokumentaci vytvoříte soubor requirements.txt pro knihovny, které potřebujete, a pak použijete . Soubor s požadavky je obecně potřeba při nasazování kódu do Azure.)

Pokud virtuální prostředí nepotřebujete, python běží ve svém globálním prostředí. I když je používání globálního prostředí rychlé a pohodlné, má tendenci se v průběhu času naučovat se všemi knihovnami, které nainstalujete pro libovolný projekt nebo experiment. Pokud navíc aktualizujete knihovnu pro jeden projekt, můžete přerušit jiné projekty, které závisí na různých verzích této knihovny. A vzhledem k tomu, že prostředí je sdílené libovolným počtem projektů, nemůžete použít k načtení seznamu závislostí jednoho pip freeze projektu.

Globální prostředí je místo, kde chcete instalovat balíčky nástrojů, které chcete použít ve více projektech. Můžete například spustit v globálním prostředí, aby byl webový pip install gunicorn server gunicorn dostupný všude.

Použití správy zdrojového kódu

Doporučujeme, abyste si zvykli vytvořit úložiště správy zdrojového kódu při každém spuštění projektu. Pokud máte nainstalovaný Git, jednoduše spusťte následující příkaz:

git init

Odtud můžete spouštět příkazy, jako jsou a , git addgit commit a potvrdit změny. Pravidelným potvrzováním změn vytvoříte historii potvrzení, se kterou se můžete vrátit do jakéhokoli předchozího stavu.

Pokud chcete vytvořit online zálohu projektu, doporučujeme také nahrát úložiště do GitHub neboAzure DevOps. Pokud jste nejprve inicializovali místní úložiště, použijte k připojení místního úložiště git remote add GitHub nebo Azure DevOps.

Dokumentaci ke Gitu najdete na git-scm.com/docs a po celém internetu.

Visual Studio Code obsahuje řadu integrovaných funkcí Gitu. Další informace najdete v tématu Použití řízení verzí v VS Code.

Můžete také použít jakýkoli jiný nástroj pro správu zdrojového kódu podle vašeho výběru. Git je prostě jedním z nejčastěji používaných a podporovaných.

Další krok

Po nastavení místního vývojového prostředí se rychle podívejte na běžné vzory použití knihoven Azure: