Udostępnij za pośrednictwem


Korzystanie z lintera Bicep

Linter Bicep sprawdza pliki Bicep pod kątem błędów składni i naruszeń najlepszych rozwiązań. Linter pomaga wymuszać standardy kodowania, zapewniając wskazówki podczas opracowywania. Najlepsze rozwiązania można dostosować do sprawdzania pliku.

Wymagania dotyczące lintera

Linter jest zintegrowany z interfejsem wiersza polecenia Bicep i rozszerzeniem Bicep dla programu Visual Studio Code. Aby go używać, musisz mieć interfejs wiersza polecenia Bicep w wersji 0.4 lub nowszej.

Reguły domyślne

Domyślny zestaw reguł linter jest minimalny i pobierany z przypadków testowych arm-ttk. Rozszerzenie i interfejs wiersza polecenia Bicep sprawdzają następujące reguły, które są ustawione na poziom ostrzeżenia.

Reguła lintera Poziom domyślny
adminusername-nie-powinien-być-dosłowny ostrzeżenie
parametry artefaktów ostrzeżenie
dekompiler-czyszczenie ostrzeżenie
jawne-wartości-dla-parametrów-lokalizacji wyłączone
max-asserts błąd
max-outputs błąd
maksymalne parametry błąd
max-resources błąd
max-variables błąd
określanie zakresu szablonu zagnieżdżonego wdrożenia błąd
brak konfliktów metadanych ostrzeżenie
brak-zasobów-wdrożeń ostrzeżenie
no-hardcoded-env-urls ostrzeżenie
brak zakodowanej lokalizacji wyłączone
no-loc-expr-outside-params wyłączone
brak-niepotrzebnych-zależności ostrzeżenie
brak nieużywanych zasobów istniejących ostrzeżenie
brak nieużywanych importów ostrzeżenie
brak nieużywanych parametrów ostrzeżenie
brak nieużywanych vars ostrzeżenie
wyniki-nie-powinny-zawierać-tajemnic ostrzeżenie
preferowanie interpolacji ostrzeżenie
prefer-nazwy-właściwości-bez-cytatów ostrzeżenie
protect-commandtoexecute-secrets ostrzeżenie
secure-parameter-default ostrzeżenie
secure-params-in-nested-deploy ostrzeżenie
secure-secrets-in-params ostrzeżenie
upraszczanie interpolacji ostrzeżenie
simplify-json-null ostrzeżenie
use-parent-property ostrzeżenie
użyj-najnowszych-wersji-api wyłączone
używaj-najnowszych-wersji-modułów wyłączone
use-resource-id-functions wyłączone
użyj-odniesienia-do-symbolu-zasobu ostrzeżenie
korzystanie z bezpiecznego dostępu ostrzeżenie
użyj-bezpiecznej-wartości-dla-bezpiecznych-wejść ostrzeżenie
użyj-stabilnych-identyfikatorów-zasobów ostrzeżenie
use-stable-vm-image ostrzeżenie
co-jeśli-krótkie-spięcie wyłączone

Możesz włączyć lub wyłączyć wszystkie reguły linter i kontrolować sposób ich stosowania przy użyciu pliku konfiguracji. Aby zastąpić zachowanie domyślne, utwórz plik bicepconfig.json przy użyciu ustawień niestandardowych. Aby uzyskać więcej informacji na temat stosowania tych ustawień, zobacz Dodawanie ustawień niestandardowych w pliku konfiguracji Bicep.

Używanie w programie Visual Studio Code

Poniższy zrzut ekranu przedstawia linter w programie Visual Studio Code:

Użycie lintera Bicep w programie Visual Studio Code.

W okienku PROBLEMY istnieją cztery błędy, jedno ostrzeżenie i jeden komunikat informacyjny wyświetlany na zrzucie ekranu. Komunikat informacyjny zawiera używany plik konfiguracji Bicep. Pokazuje tylko ten fragment informacji po ustawieniu pełnej wartościtrue w pliku konfiguracji.

Umieść kursor myszy na jednym z obszarów problemu. Linter udostępnia szczegółowe informacje o błędzie lub ostrzeżeniu. Wybierz obszar, w tym również jest wyświetlana niebieska żarówka:

Użycie lintera Bicep w programie Visual Studio Code — pokaż szybki poprawkę.

Wybierz żarówkę lub link Szybka poprawka , aby wyświetlić rozwiązanie:

Użycie lintera Bicep w programie Visual Studio Code — pokaż rozwiązanie quickfix.

Wybierz rozwiązanie, aby rozwiązać problem automatycznie.

Używanie w interfejsie wiersza polecenia aplikacji Bicep

Poniższy zrzut ekranu przedstawia linter w wierszu polecenia. Dane wyjściowe polecenia lint i polecenia kompilacji pokazują wszelkie naruszenia reguły.

Użycie lintera Bicep w wierszu polecenia.

Te testy można zintegrować w ramach potoków ciągłej integracji/ciągłego wdrażania. Możesz użyć akcji usługi GitHub, aby spróbować skompilować bicep. Błędy spowodują niepowodzenie potoków.

Wyciszanie wyników fałszywie dodatnich

Czasami reguła może mieć wyniki fałszywie dodatnie. Na przykład może być konieczne dołączenie linku do magazynu obiektów blob bezpośrednio bez użycia funkcji environment(). W takim przypadku można wyłączyć ostrzeżenie tylko dla jednego wiersza, a nie całego dokumentu, dodając #disable-next-line <rule name> przed wierszem z ostrzeżeniem.

#disable-next-line no-hardcoded-env-urls //Direct download link to my toolset
scriptDownloadUrl: 'https://mytools.blob.core.windows.net/...'

Dobrym rozwiązaniem jest dodanie komentarza wyjaśniającego, dlaczego reguła nie ma zastosowania do tego wiersza.

Jeśli chcesz pominąć regułę linter, możesz zmienić poziom reguły na Off w bicepconfig.json. Na przykład w poniższym przykładzie reguła no-deployments-resources jest pomijana:

{
  "analyzers": {
    "core": {
      "rules": {
        "no-deployments-resources": {
          "level": "off"
        }
      }
    }
  }
}

Następne kroki