Aracılığıyla paylaş


Veri API'si oluşturucusunda ortam değişkeni değişimi için kullanın @env()

Veri API oluşturucu (DAB), yükleme sırasında değerleri değiştirerek gizli verileri (örneğin, veritabanı bağlantı dizeleri) dab-config.json dışında tutmanızı sağlar. Desteklenen ilk mekanizma, konak işlem ortamından @env() veya yerel .env bir dosyadan ortam değişkenlerini çözümleyen işlevdir.

Ayrıca bkz: the @akv() function.

@env() ne yapar?

Dize değerinin beklendiği herhangi bir yere bir ortam değişkenine referans yerleştirin.

{
  "data-source": {
    "connection-string": "@env('SQL_CONN_STRING')"
  }
}

Yapılandırma yükleme zamanında DAB, desen için @env('VAR_NAME') dize değerlerini tarar ve belirteci ortam değişkeninin VAR_NAMEdeğeriyle değiştirir.

Değerler için kaynaklar

Kaynak Description
İşletim sistemi /işlem ortamı DAB işlemi başladığında standart ortam değişkenleri bulunur.
.env dosyası Yapılandırma dizininde, yerel geliştirme kolaylığı için NAME=VALUE satır içeren bir düz metin dosyası.

Uyarı

Dosya, .env her ikisi de aynı adı tanımladığında mevcut işlem/sistem ortamı değişkenlerini geçersiz kılar. Geliştirme için yerel .env bir dosya sağlarsanız, girdileri yerel ortama çağrı yapmadan 'var-name') aramalarını karşılamak @env(için kullanılır.

Örnek .env dosya:

SQL_CONN_STRING=Server=localhost;Database=AppDb;User Id=app;Password=local-dev;
DB_TYPE=mssql
JOB_API_KEY=dev-job-key

Yönerge -leri:

  • .env'yi, dab-config.json'in bitişiğinde (veya başlangıç işleminizin beklediği her yerde) tutun.
  • .env'yi .gitignore'ye ekle.
  • Boş satırlar ve # ile başlayan satırlar genellikle yoksayılır; açıklama desteğini belgelemeye başlamadan önce doğrulayın.
  • Linux/macOS'ta adlar büyük/küçük harfe duyarlıdır. Windows'ta, büyük/küçük harfe duyarlı değildir.

Yapılandırmada @env() kullanımı

Temel değiştirme

{
  "data-source": {
    "database-type": "@env('DB_TYPE')",
    "connection-string": "@env('SQL_CONN_STRING')"
  }
}

@akv() ile birleştirildi

{
  "data-source": {
    "database-type": "@env('DB_TYPE')",
    "connection-string": "@akv('prod-sql-connection')"
  }
}

Saklı yordam parametreleri

{
  "entities": {
    "RunJob": {
      "source": {
        "object": "dbo.RunJob",
        "type": "stored-procedure",
        "parameters": {
          "intParam": "@env('SP_PARAM1_INT')",
          "boolParam": "@env('SP_PARAM2_BOOL')"
        }
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "execute" ] }
      ]
    }
  }
}

Ortam değerleri dize olarak değiştirilir. Sonraki ayrıştırma (örneğin, int veya bool) kullanan yapılandırma veya çalışma zamanı mantığı tarafından işlenir.

Sorun giderme

Scenario Outcome
Değişken bulundu Değiştirme başarılı olur.
Değişken yok Büyük olasılıkla yapılandırma yükü başarısız olur.
Değişken bulunamadı Boş dize olarak değiştirilir.
Birden çok @env() farklı özelliklerde Tümü bağımsız olarak çözüldü.
Sayısal veya bool'un beklendiği yerde kullanılır Dize olarak yerine konulan değer; ayrıştırma başarılı olabilir.
Geçersiz desen (örneğin @env(DB_VAR) eksik tırnak işaretleri) Harfi dizge olarak değerlendirilir.

Tam örnek

dab-config.json:

{
  "data-source": {
    "database-type": "@env('DB_TYPE')",
    "connection-string": "@env('SQL_CONN_STRING')"
  },
  "runtime": {
    "rest": { "enabled": true }
  },
  "entities": {
    "Books": {
      "source": "dbo.Books",
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

.env:

DB_TYPE=mssql
SQL_CONN_STRING=Server=localhost;Database=BooksDb;User Id=app;Password=StrongPassword!;

Önemli

Gizli bilgileri içeren dosyaları .env göndermeyin. |

Hızlı referans

Ürün Özet
Sözdizimi @env('variable-name')
Benzetimi dosyası .env ile name=value çizgili
ile karıştırma Supported.

İnceleme

Gizli dizileri ve ortama özgü değerleri yapılandırma dosyalarının dışında tutmak için kullanın @env() . Güvenli ve esnek bir dağıtım için ci/CD değişken depoları veya kapsayıcı tanımları gibi disiplinli gizli dizi yönetimiyle eşleştirin. Kurumsal kasa kullanımı için, gizli dizileri merkezileştirmek için işleviyle birleştirin@akv().