Testuj i wdrażaj z poziomu CI
Działająca pętla od pierwszej edycji do automatycznego wdrożenia, z ograniczeniami lokalnej emulacji określonymi z góry.
1. Uruchom go lokalnie
aura functions serve uruchamia twój plik za pomocą Deno i uruchamia go ponownie po zapisaniu.
Jest to zwykły serwer Deno. W porównaniu z platformą posiada:
- Brak nagłówków platformy.
x-aura-roleix-aura-user-idsą nieobecne: wyślij je samodzielnie zcurl -Hw celu przetestowania gałęzi autoryzacyjnych. - Żadnych tajemnic. Przekaż je w swojej powłoce:
STRIPE_SECRET_KEY=sk_test_… aura functions serve checkout. - Brak ograniczeń. Limity pamięci, limitu czasu, rozmiaru ciała i szybkości nie są stosowane.
- Zwykłe żądania. Wywołujesz tę funkcję bezpośrednio, więc
pathimethodsą opcjami twojegocurl, a nie opcjamiinvokepakietu SDK.
Zestaw SDK nie może kierować na ten serwer, ponieważ invoke wywołuje trasę platformy. Przetestuj ścieżkę SDK w stosunku do prawdziwego projektu, jak poniżej.
2. Przetestuj to naprawdę
Utwórz projekt do programowania (zobacz swoją pierwszą funkcję), wdróż tam funkcję i przetestuj za pomocą zestawu SDK. Obejmuje to nagłówki tożsamości platformy, limity i klasy błędów.
Porady:
- Korzystaj z dedykowanego projektu, nigdy produkcyjnego i przechowuj jego klucze w tajemnicach CI.
- Limit szybkości wywoływania wynosi 15 połączeń, a następnie 1 na sekundę na adres IP. Rozmieszczaj testy lub uruchamiaj je szeregowo.
3. Wdróż z CI
Interfejs CLI aura instaluje się z npm na macOS Apple Silicon i ze źródła gdzie indziej, więc zadanie CI w systemie Linux jest prostsze dzięki interfejsowi API HTTP. Wdrożenie obejmuje jeden POST na funkcję, uwierzytelniany kluczem service_role. Ta dokładna pętla została uruchomiona w odniesieniu do prawdziwego projektu, a funkcja odpowiedziała później.
Fakty, które sprawiają, że jest to bezpieczne przy każdym naciśnięciu:
POSTzastępuje kod istniejącej funkcji, a zachowuje swoje sekrety, ponieważ treść nie maenv_vars.- Funkcja jest jednoplikowa: import względny nie jest wysyłany. Najpierw pakuj, jeśli używasz modułów lokalnych.
- Na serwerze nie ma historii wersji. Twoja historia Git to wycofanie: aby wrócić, cofnij zatwierdzenie i pozwól CI na ponowne wdrożenie.
Następnie uruchom testy integracyjne w odniesieniu do właśnie wdrożonego projektu w następnym zadaniu.
4. Rozwój, inscenizacja i produkcja
Jeden projekt to jedno środowisko. Utwórz po jednym projekcie na środowisko, każdy z własnym adresem URL i kluczami, i pozwól CI wybrać cel:
| Środowisko | Projekt | Wdrożony, kiedy |
|---|---|---|
| Rozwój | po jednym na programistę lub udostępnione | na żądanie, w oddziale |
| Inscenizacja | my-app-staging | każde naciśnięcie do main |
| Produkcja | my-app | znacznik wydania po przejściu testów przejściowych |
Przechowuj AURA_PROJECT_URL i AURA_SERVICE_ROLE_KEY na środowisko GitHub i ustawiaj klucze tajne każdej funkcji osobno w każdym projekcie. Nic nie jest współdzielone pomiędzy projektami.