Azure için yerel Python geliştirme ortamınızı yapılandırma

Bulut uygulamaları oluştururken, geliştiriciler genellikle kodu yerel iş istasyonlarında test eder ve bu kodu Azure gibi bir bulut ortamına dağıtacaktır. Yerel geliştirme, size hız ve çok çeşitli hata ayıklama araçlarının avantajlarından yararlanmanızı sağlar.

Bu makalede, Azure 'da Python için uygun olan yerel bir geliştirme ortamı oluşturmak ve doğrulamak için tek seferlik kurulum yönergeleri sunulmaktadır:

İş istasyonunuzu yapılandırdıktan sonra, bu Geliştirici merkezinde ve Azure belgelerinde başka bir yerde bulunan çeşitli hızlı başlangıçlara ve öğreticilere sahip olmak için yalnızca en az eklenen yapılandırmaya ihtiyacınız olacaktır.

Yerel geliştirme için bu kurulum, uygulamanızın Azure 'da bulut ortamını oluşturan kaynakları sağlamaktan ayrı bir uygulamadır. Geliştirme sürecinizdeki yerel geliştirme ortamınızda bu bulut kaynaklarına erişebilen kodu çalıştırırsınız, ancak kodunuz henüz bulutta uygun bir barındırma hizmetine dağıtılmadı. Bu dağıtım adımı daha sonra Azure geliştirme akışı makalesinde açıklandığı şekilde gelir.

Bileşenleri yükler

Gerekli bileşenler

Ad/yükleyici Description
Etkin aboneliği olan Azure hesabı Hesaplar/abonelikler ücretsizdir ve birçok ücretsiz kullanıma hizmet içerir.
Python 2.7 + veya 3.6 + Bir Conda ortamında olabilecek Python dil çalışma zamanı. Belirli sürüm gereksinimleriniz yoksa Python 3. x ' in en son sürümünü öneririz.
Azure Komut Satırı Arabirimi (CLI) Azure kaynaklarını sağlamak ve yönetmek için tam bir CLı komutları paketi sağlar. Python geliştiricileri, Azure CLı 'yi Azure Yönetim kitaplıklarını kullanan özel Python betikleri ile birlikte yaygın olarak kullanır.

Notlar:

  • Gereksinimlerinize bağlı olarak, tek tek Azure kitaplık paketlerini proje başına temelinde yüklersiniz. Her proje için Python sanal ortamlarını kullanmanızı öneririz. Python için tek başına "SDK" yükleyicisi yoktur.
  • Azure PowerShell genellikle azure clı ile eşdeğer olsa da, Python ile çalışırken azure clı önerilir.
Ad/yükleyici Description
Visual Studio Code Uygun bir düzenleyici veya IDE ile çalışabilseniz de Microsoft 'un ücretsiz ve basit IDE, Python geliştiricileri arasında çok popüler. Giriş için bkz. vs Code Python.
VS Code için Python uzantısı VS Code için Python desteği ekler.
VS Code için Azure uzantısı VS Code için çeşitli Azure Hizmetleri desteği ekler. Ayrıca, belirli hizmetler için destek ayrı ayrı yüklenebilir.
git Kaynak denetimi için komut satırı araçları. Tercih ediyorsanız farklı kaynak denetimi araçları kullanabilirsiniz.

İsteğe bağlı bileşenler

Ad/yükleyici Description
VS Code için Docker uzantısı VS Code için docker desteği ekler ve kapsayıcılarla düzenli olarak çalışmanız durumunda yararlı olur.

Bileşenleri doğrulama

  1. Bir Terminal veya komut istemi açın.
  2. Komutunu çalıştırarak Python sürümünüzü doğrulayın python --version .
  3. Çalıştıran Azure CLı sürümünü doğrulayın az --version .
  4. yüklemeyi VS Code doğrulama:
    1. code .geçerli klasöre VS Code açmak için çalıştırın.
    2. VS Code, > uzantılar görünümünü açmak için uzantıları görüntüle komutunu seçin, ardından listede "Python" ve "azure hesabı" ' nı (bu uzantıyı de yüklediyseniz diğer "azure" uzantıları ve "docker" arasında) gördiğinizi doğrulayın.

CLı 'dan Azure 'da oturum açın

Bir Terminal veya komut isteminde Azure aboneliğinizde oturum açın:

az login

azKomut, Azure CLI 'nın kök komuttur. Aşağıda az , gibi bir veya daha fazla belirli komut vardır login . Az Login komut başvurusuna bakın.

Azure CLı, oturum açma bilgilerinizi normalde oturumlarınızda tutar, ancak az login her yeni bir Terminal veya komut istemi açtığınızda çalıştırmak iyi bir uygulamadır.

Kimlik doğrulamasını yapılandırma

Uygulamalarda kimlik doğrulama konusundaaçıklandığı gibi, her geliştiricinin uygulama kodu yerel olarak test edilirken uygulama kimliği olarak kullanmak için bir hizmet sorumlusu olması gerekir.

Aşağıdaki bölümlerde, hizmet sorumlusu ve gerektiğinde hizmet sorumlusunun özelliklerini Azure kitaplıklarına sağlayan ortam değişkenlerinin nasıl oluşturulacağı açıklanır.

Kuruluşunuzdaki her geliştirici bu adımları ayrı olarak gerçekleştirmelidir.

Geliştirme için bir hizmet sorumlusu ve ortam değişkenleri oluşturma

  1. Azure CLı () içinde oturum açtığınız bir Terminal veya komut istemi açın az login .

  2. Hizmet sorumlusunu oluşturun:

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

    Komut ve bağımsız değişkenleri hakkında daha fazla bilgi için bkz. Create-for-RBAC komutu.

    Bir kurumunuzda, bu komutu çalıştırmak için abonelikte izin olmayabilir. Bu durumda, sizin için hizmet sorumlusu oluşturmak üzere abonelik sahiplerine başvurun.

  3. Azure kitaplıklarının gerektirdiği ortam değişkenlerini oluşturmak için aşağıdaki komutları kullanın. ( DefaultAzureCredential Azure kimlik kitaplığı 'nın nesnesi bu değişkenleri arar).

    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
    

    Bu komutlarda gösterilen değerleri, belirli hizmet sorumlusuyla değiştirin.

    Abonelik KIMLIĞINIZI almak için az account show komutunu çalıştırın ve id Çıkışta özelliği bulun.

    kolaylık olması için aynı komutları içeren bir komut satırı betik dosyası (Windows on macos/Linux veya setenv. cmd üzerinde setenv.sh ) oluşturun. Ardından, yerel test için bir Terminal veya komut istemi açtığınızda değişkenleri ayarlamak için betiği çalıştırabilirsiniz. Yine, komut dosyasını kaynak denetimine eklemeyin, bu nedenle yalnızca kullanıcı hesabınızda kalır.

  4. İstemci KIMLIĞINI ve istemci gizli anahtarını (ve bunları depolayan dosyaları), her zaman bir iş istasyonunda belirli bir kullanıcı hesabında kalacak şekilde koruyun. Bu özellikleri kaynak denetimine hiçbir şekilde kaydetmeyin veya diğer geliştiricilerle paylaşabilirsiniz. Gerekirse, hizmet sorumlusunu silebilir ve yeni bir tane oluşturabilirsiniz.

    Ek bir güvenlik katmanı için, hizmet sorumlularını düzenli bir zamanlamaya göre silip yeniden oluşturmak üzere bir ilke oluşturabilir ve böylece önceki kimlikleri ve gizli dizileri geçersiz hale getirebilirsiniz.

    Ayrıca, bir geliştirme hizmeti sorumlusu yalnızca üretim dışı kaynaklar için yetkilendirilir veya yalnızca geliştirme amacıyla kullanılan bir Azure aboneliğinde oluşturulur. Üretim uygulaması, ayrı bir abonelik kullanır ve yalnızca dağıtılan bulut uygulaması için yetkilendirilmiş üretim kaynaklarını ayrı ayrı kullanır.

  5. Daha sonra hizmet sorumlularını değiştirmek veya silmek için bkz. hizmet sorumlularını yönetme.

Önemli

Üretim kodu için (yerel geliştirme yerine), belirli bir hizmet sorumlusu yerine mümkün olduğunda Yönetilen kimlikler kullanın.

Create-for-RBAC komutu ne yapar?

az ad sp create-for-rbacKomut "rol tabanlı kimlik doğrulaması" (RBAC) için bir hizmet sorumlusu oluşturur. (Hizmet sorumluları hakkında daha fazla bilgi için bkz. Azure 'Da Python uygulamalarının kimliğini doğrulama ve yetkilendirme.)

  • adanlamına gelir Azure Active Directory; " sp hizmet sorumlusu" anlamına gelir ve " create-for-rbac rol tabanlı erişim denetimi için oluşturma", Azure 'ın birincil yetkilendirme formu "anlamına gelir. Bkz: az ad SP Create-for-RBAC komut başvurusu.

  • --nameBağımsız değişken, kuruluşunuz içinde benzersiz olmalıdır ve genellikle hizmet sorumlusunu kullanan geliştiricinin adını kullanır. Bu bağımsız değişkeni atlarsanız Azure CLı, formun genel adını kullanır azure-cli-<timestamp> . İsterseniz Azure portal hizmet sorumlusunu yeniden adlandırabilirsiniz.

  • --skip-assignmentBağımsız değişkeni, varsayılan izinleri olmayan bir hizmet sorumlusu oluşturur. Daha sonra, yerel olarak çalışan kodun herhangi bir kaynağa erişmesine izin vermek için hizmet sorumlusuna belirli izinler atamanız gerekir. Daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi (RBAC) ve rol ataması ekleme adımları. Farklı hızlı başlangıçlar ve öğreticiler, ilgili kaynaklar için bir hizmet sorumlusu yetkilendirmeyle ilgili ayrıntılar da sağlar.

    olmadan, --skip-assignment komutu abonelik kapsamında hizmet sorumlusuna Katkıda Bulunan rolünü atar. Bu geniş kapsamlı kapsam, güvenlik sorumlusu risk altında olursa risk teşkil ediyor. Bu nedenle, tam olarak hizmet sorumlusuna gereken kapsamda tam rollerin kullanılması ve --skip-assignment atanmalarını öneririz.

  • komutu aşağıdaki değerlere benzer bir JSON çıktısı oluşturur. appId, tenant ve password değerleriniz farklı olur:

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

    Bu çıkışta tenant kiracı kimliği, appId istemci kimliği ve istemci gizli password kimliğidir.

    Uyarı

    çıktısı içinde bulunan parola, gizli az ad sp create-for-rbac anahtar veya sertifika gibi kimlik bilgilerini koruyun. Kimlik bilgilerini kodda veya kaynak denetimine kaydedilmiş herhangi bir dosyada depolamayın.

    Önemli

    Bu komutun çıkışı, parolayı gördüğünüz tek yerdir. Parolayı daha sonra alasınız. Bununla birlikte, gerekirse hizmet sorumlularını veya mevcut parolaları geçersiz hale etmeden yeni bir parola abilirsiniz.

Python sanal ortamlarını kullanma

Her proje için aşağıdaki adımları kullanarak sanal ortamı her zaman oluşturmanızı ve etkinleştirmenizi öneririz:

  1. Bir terminal veya komut istemi açın.

  2. Projeniz için bir klasör oluşturun.

  3. Sanal ortamı oluşturun:

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

    Bu komut Python venv modülünü çalıştırır ve adlı klasörde bir sanal ortam .venv oluşturur.

  4. Sanal ortamı etkinleştirin:

    .venv\scripts\activate
    

Sanal ortam, proje içinde belirli bir Python yorumlayıcının kopyasını yalıtan bir klasördür. Bu ortamı etkinleştiren (otomatik olarak Visual Studio Code), çalıştıran pip install bir kitaplık yalnızca o ortama yüklenir. Ardından Python kodunuzu çalıştırarak ortamın tam bağlamında ve her kitaplığın belirli sürümleriyle çalışır. ve 'i pip freeze çalıştırarak bu kitaplıkların tam listesini elde ediyor oluruz. (Bu belgelerde yer alan örneklerin çoğunda, ihtiyacınızrequirements.txt kitaplıklar için bir dosya oluşturun ve ardından pip install -r requirements.txt kullanın. Azure'a kod dağıtırken genellikle bir gereksinimler dosyası gerekir.)

Sanal ortam kullanasanız Python, genel ortamında çalışır. Genel ortamı kullanmak hızlı ve kullanışlı olsa da, herhangi bir proje veya deneme için yüklemiş olduğunu tüm kitaplıklarla zaman içinde şişirme eğilimindedir. Ayrıca, bir proje için bir kitaplığı güncelleştirecek olursanız, bu kitaplığın farklı sürümlerine bağlı olan diğer projeleri bozabilirsiniz. Ortam herhangi bir sayıda proje tarafından paylaşılıyor olduğundan, herhangi bir projenin bağımlılıklarının pip freeze listesini almak için'i kullanasınız.

Genel ortam, birden çok projede kullanmak istediğiniz araç paketlerini yüklemek istediğiniz ortamdır. Örneğin, pip install gunicorn gunicorn web sunucusunu her yerde kullanılabilir yapmak için genel ortamda çalıştırabilirsiniz.

Kaynak denetimi kullanma

Bir projeyi her başlatan kaynak denetim deposu oluşturma alışkanlık haline getirmenizi öneririz. Git yüklüyse aşağıdaki komutu çalıştırın:

git init

Buradan ve gibi komutları çalıştırarak git add git commit değişiklikleri işebilirsiniz. Değişiklikleri düzenli olarak işerek, önceki durumlara geri dönerek bir işleme geçmişi oluşturabilirsiniz.

Projenizin çevrimiçi yedeğini yapmak için depoyu GitHub veya Azure DevOps. Önce bir yerel depoyu başlatdıysanız, yerel depoyu yerel depoya eklemek için git remote add GitHub veya Azure DevOps.

Git belgeleri İnternet'git-scm.com/docs her yerde bulunabilir.

Visual Studio Code bir dizi yerleşik git özelliği içerir. Daha fazla bilgi için, bkz. Using Version Control in VS Code.

Ayrıca, tercih etmek için başka bir kaynak denetim aracı da kullanabilirsiniz; Git yalnızca en yaygın kullanılan ve desteklenenlerden biri.

Sonraki adım

Yerel geliştirme ortamınız hazır oldu, Azure kitaplıkları için yaygın kullanım düzenlerine hızlı bir göz atabilirsiniz: