Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, yerel bilgisayarınızdaki bir Linux kapsayıcısında ilk işlevinizi oluşturmak, işlevi yerel olarak doğrulamak ve ardından kapsayıcılı işlevi bir kapsayıcı kayıt defterinde yayımlamak için Azure İşlevleri Core araçlarının nasıl kullanılacağı gösterilmektedir. Kapsayıcı kayıt defterinden kapsayıcılı işlevlerinizi Azure'a kolayca dağıtabilirsiniz.
Bu makaledeki adımları içeren kapsayıcılı işlevleri Azure'a dağıtmaya ilişkin eksiksiz bir örnek için aşağıdaki makalelerden birine bakın:
- Azure Container Apps'te ilk kapsayıcılı Azure İşlevleri oluşturma
- İlk kapsayıcılı Azure İşlevleri oluşturma
Ayrıca, bir kapsayıcı kayıt defterinden mevcut kapsayıcılı işlev uygulamasını kullanarak Azure portalında bir işlev uygulaması oluşturabilirsiniz. Daha fazla bilgi için bkz . Kapsayıcıları kullanarak Azure portalı oluşturma.
Geliştirme dilinizi seçin
İlk olarak, docker kapsayıcısında dile özgü bir Linux temel görüntüsü kullanarak proje kodunuzu işlev uygulaması olarak oluşturmak için Azure İşlevleri araçlarını kullanırsınız. Makalenin üst kısmında istediğiniz dili seçtiğinizden emin olun.
Çekirdek Araçlar, projeniz için otomatik olarak işlev diliniz için doğru temel görüntünün en güncel sürümünü kullanan bir Dockerfile oluşturur. Kapsayıcınızı en son temel görüntüden düzenli olarak güncelleştirmeli ve kapsayıcınızın güncelleştirilmiş sürümünden yeniden dağıtmalısınız. Daha fazla bilgi için bkz. Kapsayıcılı işlev uygulamaları oluşturma.
Önkoşullar
Başlamadan önce aşağıdaki gereksinimleri karşılamanız gerekir:
.NET SDK'sını yükleyin.
Azure functions core tools sürüm 4.0.5198 veya üzerini yükleyin.
- Azure İşlevleri Core Tools sürüm 4.x'i yükleyin.
- Azure İşlevleri tarafından desteklenen birNode.js sürümü yükleyin.
- Azure İşlevleri tarafından desteklenen bir Python sürümü yükleyin.
- .NET SDK'sını yükleyin.
Java Geliştirici Seti'ninAzure İşlevleri tarafından desteklenen bir sürümünü yükleyin.
Apache Maven sürüm 3.0 veya üzerini yükleyin.
- Azure CLI sürüm 2.4 veya üzerini yükleyin.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Oluşturduğunuz kapsayıcılı işlev uygulaması görüntüsünü bir kapsayıcı kayıt defterinde yayımlamak için yerel bilgisayarınızda çalışan bir Docker Kimliği ve Docker Desktop gerekir. Docker kimliğiniz yoksa bir Docker hesabı oluşturabilirsiniz.
Ayrıca Kapsayıcı Kayıt Defteri hızlı başlangıç bölümünün Kapsayıcı kayıt defteri oluşturma kısmını da tamamlamanız gerekir. Tam nitelikli oturum açma sunucusu adınızı not edin.
Sanal ortam oluşturma ve etkinleştirme
Uygun bir klasörde aşağıdaki komutları çalıştırarak adlı .venvbir sanal ortam oluşturun ve etkinleştirin. Azure İşlevleri tarafından desteklenen Python sürümlerinden birini kullandığınızdan emin olun.
python -m venv .venv
source .venv/bin/activate
Python venv paketini Linux dağıtımınıza yüklemediyse aşağıdaki komutu çalıştırın:
sudo apt-get install python3-venv
Bu etkinleştirilmiş sanal ortamda sonraki tüm komutları çalıştırırsınız.
Yerel işlevler projesini oluşturma ve test etme
Terminalde veya komut isteminde, geçerli klasörde bir işlev uygulaması projesi oluşturmak için seçtiğiniz dil için aşağıdaki komutu çalıştırın:
func init --worker-runtime dotnet-isolated --docker
func init --worker-runtime node --language javascript --docker
func init --worker-runtime powershell --docker
func init --worker-runtime python --docker
func init --worker-runtime node --language typescript --docker
Boş bir klasörde aşağıdaki komutu çalıştırarak İşlevler projesini bir Maven arketipinden oluşturun:
mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=8 -Ddocker
parametresi İşlevler -DjavaVersion çalışma zamanına hangi Java sürümünün kullanılacağını bildirir. İşlevlerinizin Java 11 üzerinde çalışmasını istiyorsanız -DjavaVersion=11 ifadesini kullanın. belirtmediğinizde Maven varsayılan olarak Java 8'i kullanır -DjavaVersion. Daha fazla bilgi için bkz . Java sürümleri.
Önemli
Bu JAVA_HOME makaleyi tamamlamak için ortam değişkeni, JDK'nin doğru sürümünün yükleme konumuna ayarlanmalıdır.
Maven, projeyi dağıtımda oluşturma işlemini tamamlamak için gereken değerleri ister. istemleri izleyin ve aşağıdaki bilgileri sağlayın:
| İstem | Değer | Açıklama |
|---|---|---|
| groupId | com.fabrikam |
Java için paket adlandırma kurallarını izleyerek projenizi tüm projelerde benzersiz olarak tanımlayan bir değer. |
| artifactId | fabrikam-functions |
Sürüm numarası olmadan jar'ın adını içeren bir değer. |
| versiyon | 1.0-SNAPSHOT |
Varsayılan değeri seçin. |
| paket | com.fabrikam.functions |
Oluşturulan işlev kodu için Java paketi olan bir değer. Varsayılan değeri kullanın. |
Yazın Y veya onaylamak için Enter'a basın.
Maven, proje dosyalarını artifactId adlı yeni bir klasörde oluşturur. Bu örnekte şöyledirfabrikam-functions: .
seçeneği--docker, proje için Azure İşlevleri ve seçilen çalışma zamanıyla kullanmak için uygun bir kapsayıcı tanımlayan bir Dockerfile oluşturur.
Proje klasörüne gidin:
cd fabrikam-functions
Aşağıdaki komutu kullanarak projenize işlev ekleyin. Burada --name bağımsız değişken işlevinizin benzersiz adıdır ve --template bağımsız değişken işlevin tetikleyicisini belirtir.
func new projenizde bir C# kod dosyası oluşturur.
func new --name HttpExample --template "HTTP trigger"
Aşağıdaki komutu kullanarak projenize işlev ekleyin. Burada --name bağımsız değişken işlevinizin benzersiz adıdır ve --template bağımsız değişken işlevin tetikleyicisini belirtir.
func new, function.json adlı bir yapılandırma dosyası içeren işlev adıyla eşleşen bir alt klasör oluşturur.
func new --name HttpExample --template "HTTP trigger"
İşlevi yerel olarak test etmek için projenin kök dizininde yerel Azure Functions çalışma zamanı ortamını başlatın.
İşlevin daha sonra Docker'da barındırıldığında çağrılabilmesini sağlamak için yetkilendirme düzeyinin olarak ayarlandığından AuthorizationLevel.Anonymousemin olun veya henüz yapılandırılmadıysa ayarlayın.
func start
func start
npm install
npm start
mvn clean package
mvn azure-functions:run
Çıkışa HttpExample yazılan uç noktayı gördükten sonra bu uç noktaya gidin. Yanıt çıkışında bir karşılama iletisi görmeniz gerekir.
Çıkışa HttpExample yazılan uç noktayı gördükten sonra http://localhost:7071/api/HttpExample?name=Functions adresine gidin. Tarayıcının, Functions sorgu parametresine sağlanan değeri geri döndüren name bir "hello" iletisi görüntülemesi gerekir.
Konağı durdurmak için Ctrl+C (Command+C macOS'ta) tuşlarına basın.
Kapsayıcı görüntüsünü oluşturma ve yerel olarak doğrulama
(İsteğe bağlı) Proje klasörünün kökündeki Dockerfile dosyasını inceleyin. Dockerfile, linux üzerinde işlev uygulamasını çalıştırmak için gerekli ortamı açıklar. Azure İşlevleri için desteklenen temel görüntülerin tam listesi Azure İşlevleri temel görüntü sayfasında bulunabilir.
Kök proje klasöründe docker build komutunu çalıştırın, bir adı azurefunctionsimage ve bir etiketi v1.0.0 olarak belirtin.
<DOCKER-ID> değerini Docker Hub hesabınızın kimliğiyle değiştirin. Bu komut, kapsayıcı için Docker görüntüsünü oluşturur.
docker build --tag <DOCKER-ID>/azurefunctionsimage:v1.0.0 .
Komut tamamlandığında, yeni kapsayıcıyı yerel olarak çalıştırabilirsiniz.
Derlemeyi doğrulamak için docker run komutunu kullanarak görüntüyü yerel bir kapsayıcıda çalıştırın, <DOCKER-ID> yerine Docker Hub hesap kimliğinizi yazın ve bağlantı noktaları -p 8080:80 bağımsız değişkenini ekleyin:
docker run -p 8080:80 -it <DOCKER-ID>/azurefunctionsimage:v1.0.0
Görüntü yerel kapsayıcıda başladıktan sonra, öncekiyle aynı karşılama iletisini görüntülemesi gereken http://localhost:8080/api/HttpExample adresine gidin. Oluşturduğunuz HTTP ile tetiklenen işlev anonim yetkilendirme kullandığından, erişim anahtarı almak zorunda kalmadan kapsayıcıda çalışan işlevi çağırabilirsiniz. Daha fazla bilgi için bkz . Yetkilendirme anahtarları.
Görüntü yerel kapsayıcıda başladıktan sonra, öncekiyle aynı "merhaba" iletisini görüntülemesi gereken http://localhost:8080/api/HttpExample?name=Functions adresine gidin. Oluşturduğunuz HTTP ile tetiklenen işlev anonim yetkilendirme kullandığından, erişim anahtarı almak zorunda kalmadan kapsayıcıda çalışan işlevi çağırabilirsiniz. Daha fazla bilgi için bkz . Yetkilendirme anahtarları.
Kapsayıcıdaki işlev uygulamasını doğruladıktan sonra yürütmeyi durdurmak için Ctrl+C'ye (Command+ macOS'ta) basın.
Kapsayıcı görüntüsünü kayıt defterinde yayımlama
Kapsayıcı görüntünüzü bir barındırma ortamına dağıtım için kullanılabilir hale getirmek için kapsayıcı kayıt defterine göndermeniz gerekir. En iyi güvenlik uygulaması olarak bir Azure Container Registry örneği kullanmanız ve yönetilen kimlik tabanlı bağlantıları zorunlu kılmanız gerekir. Docker Hub, paylaşılan gizli dizileri kullanarak kimlik doğrulaması yapmanızı gerektirir ve bu da dağıtımlarınızı daha savunmasız hale getirir.
Azure Container Registry, kapsayıcı görüntülerini ve ilgili yapıtları oluşturmaya, depolamaya ve yönetmeye yönelik özel bir kayıt defteri hizmetidir. Kapsayıcılarınızı Azure hizmetlerinde yayımlamak için özel bir kayıt defteri hizmeti kullanmalısınız.
Geçerli Azure kimlik bilgilerinizi kullanarak kayıt defteri örneğinizde oturum açmak için bu komutu kullanın.
<REGISTRY-NAME>değerini Container Registry örneğinizin adıyla değiştirin.az acr login --name <REGISTRY-NAME>Görüntünüzü kayıt defteri oturum açma sunucunuzun tam adıyla etiketlemek için bu komutu kullanın.
<LOGIN-SERVER>etiketini kayıt defteri oturum açma sunucunuzun tam adıyla ve<DOCKER-ID>etiketini Docker kimliğinizle değiştirin.docker tag <DOCKER-ID>/azurefunctionsimage:v1.0.0 <LOGIN-SERVER>/azurefunctionsimage:v1.0.0Kapsayıcıyı kayıt defteri örneğine göndermek için şu komutu kullanın:
docker push <LOGIN-SERVER>/azurefunctionsimage:v1.0.0