Obsługa wielu regionów
Centra danych monday.com i monday code znajdują się w czterech różnych regionach: US (Stany Zjednoczone), EU (Europa), AU (Australia) i IL (Izrael). Dzięki funkcji obsługi wielu regionów publiczne aplikacje monday code można wdrażać we wszystkich regionach!
Dzięki temu dane klientów pozostają w ich regionie, aplikacje łatwiej spełniają wymogi przepisów obowiązujących w poszczególnych regionach (np. RODO), a opóźnienia są mniejsze. Nie trzeba przy tym konfigurować złożonej infrastruktury w wielu jurysdykcjach.
Kto może korzystać z tej funkcji
Funkcja obsługi wielu regionów jest dostępna dla publicznych aplikacji monday code. Jeśli masz prywatną aplikację, nowe wdrożenia będą domyślnie trafiać do regionu przypisanego do Twojego konta. Aby sprawdzić, w którym regionie się znajdujesz, wykonaj te kroki:
- Otwórz konto monday i kliknij swoje zdjęcie profilowe w prawym górnym rogu.
- Wybierz Administracja (Administration).
- Region znajdziesz w sekcji Ogólne (General) > Profil (Profile).
Podstawowe informacje
Dla deweloperów
Regiony wdrożenia aplikacji zależą od tego, czy funkcja obsługi wielu regionów jest włączona. Poniższa tabela przedstawia sposób działania funkcji z perspektywy deweloperów aplikacji:
| Funkcja obsługi wielu regionów | Region |
|---|---|
| Wyłączona | Region konta dewelopera |
| Włączona | US, EU, AU, IL (po wdrożeniu w poszczególnych regionach) |
Jeśli wdrożenie aplikacji miało miejsce przed wprowadzeniem obsługi wielu regionów (sierpień 2024 r.), aplikacja będzie hostowana na serwerach w US. Włącz obsługę wielu regionów, jeśli chcesz udostępniać aplikację z innego regionu.
Dla użytkowników końcowych
Użytkownicy końcowi otrzymają wersję aplikacji odpowiednią dla ich regionu. Poniższa tabela przedstawia sposób działania funkcji z perspektywy użytkowników końcowych:
| Funkcja obsługi wielu regionów | Region |
|---|---|
| Wyłączona | Region, w którym wdraża deweloper |
| Włączona | Region konta klienta |
Wdrażanie
Aby skorzystać z funkcji obsługi wielu regionów, najpierw ją włącz, a następnie wdróż aplikację osobno w każdym regionie. Po włączeniu funkcja dotyczy tylko nowych wdrożeń aplikacji.
Jeśli masz więcej niż jedną aplikację, powtórz te czynności dla każdej z nich. Jeśli nie wdrożysz aplikacji osobno w każdym regionie, nie będzie można opublikować jej wersji.
Po włączeniu funkcji obsługi wielu regionów i opublikowaniu jej nie można jej wyłączyć.
Krok 1: Utwórz lub otwórz wersję roboczą
Funkcję można włączyć tylko w wersji roboczej, więc utwórz nową albo otwórz istniejącą.
Krok 2: Włącz obsługę wielu regionów
- Otwórz kartę Ogólne (General) monday code w Developer Center.
- Kliknij Włącz obsługę wielu regionów (Enable multi-region support).
- Zobaczysz teraz wszystkie cztery regiony.
Jeśli nie możesz włączyć funkcji obsługi wielu regionów, sprawdź, czy Twoja aplikacja:
- Jest publiczna (na karcie Udostępnianie (Share))
- Ma co najmniej jedno wdrożenie w monday code
Krok 3: Połącz aplikację z monday code w każdym regionie
- Na karcie General kliknij Połącz z monday code (Connect to monday code) przy regionie Europe lub Australia.
- Wdróż aplikację, używając flagi regionu:
| Długa flaga | Krótka flaga | Opis | Akceptowane wartości |
|---|---|---|---|
--region |
-z |
Region, w którym wdrożyć aplikację | eu, us, au, il |
- Powtórz te czynności dla każdego regionu.
mapps code:push -i 1234567 -z au
Krok 4: Skonfiguruj zmienne środowiskowe i sekrety
Zmienne środowiskowe i sekrety należy skonfigurować osobno dla każdego regionu. Pamiętaj, że zasady alertów konfiguruje się globalnie.
Istniejące zmienne środowiskowe i sekrety
- Kliknij Edytuj zmienną (Edit variable) lub Edytuj sekret (Edit secret).
- Wprowadź wartość dla wszystkich regionów.
- Kliknij Zapisz (Save).
Nowe zmienne środowiskowe i sekrety
- Kliknij Dodaj nową zmienną (Add new variable) lub Dodaj nowy sekret (Add new secret).
- Wprowadź wartość dla wszystkich regionów.
- Kliknij Zapisz (Save).
Krok 5: Opublikuj nową wersję
Tymczasowy wymóg dotyczący istniejących aplikacji obsługujących wiele regionów:
Jeśli obsługa wielu regionów jest już włączona w Twojej aplikacji, następna wersja, którą opublikujesz, musi być również wdrożona w nowym regionie IL.
To jednorazowy wymóg dla każdej aplikacji, związany z wprowadzeniem nowego regionu IL. Po pomyślnym opublikowaniu wersji wdrożonej w IL kolejne wersje można publikować jak zwykle.
Więcej informacji o nowym regionie znajdziesz tutaj.
Gdy aplikacja będzie gotowa, możesz opublikować wersję roboczą!
Uwaga: Po opublikowaniu aplikacji nie można wyłączyć funkcji obsługi wielu regionów.
Działanie po stronie klienta
Gdy aplikacja monday code działa na koncie użytkownika, otrzymuje obiekt kontekstu zawierający informację o regionie konta. Możesz użyć tej informacji, aby określić, z którym wdrożeniem monday code aplikacja powinna się komunikować.
Wybieranie właściwego regionalnego punktu końcowego
Adres URL dostępny w metadanych wersji aplikacji pozwala pobrać bazowy adres URL hostingu monday code właściwy dla danego regionu. Nie musisz ręcznie określać punktu końcowego na podstawie wartości context.region (np. use1, eu1, ap1).
const context = await monday.get("context");
const url = context.appVersion.mondayCodeHostingUrl;
Dzięki temu nie musisz utrzymywać logiki mapowania regionów. Aplikacja będzie działać również po wprowadzeniu nowych regionów, a żądania będą zawsze kierowane do właściwego wdrożenia zaplecza monday code.
Przykład
{
"method": "get",
"type": "context",
"data": {
"themeConfig": {}, // may be "undefined" if the default theme is used, defines the color scheme and styling configuration for the app
"theme": "light", // or "dark" or "black"
"account": {
"id": "5"
},
"user": {
"id": "28659824",
"isAdmin": false,
"isGuest": false,
"isViewOnly": false,
"countryCode": "US",
"currentLanguage": "en",
"timeFormat": "12H", // or 24H
"timeZoneOffset": 2 // timezone offset based on GMT
},
"region": "use1", // availability zone ID
"boardId": 4213911112, // unique board ID
"boardIds": [ // list of connected boards
4213911111
],
"boardViewId": 122234064, // unique board view ID
"viewMode": "mobile", // not available for item views
"instanceId": 122234064, // unique instance ID for the feature on the board
"instanceType": "board_view", // app feature type
"mode": "mobile",
"app": {
"id": 10089476,
"clientId": "78643ruyagduyg743tyr812uygd74"
},
"appVersion": {
"id": 10124592,
"name": "Monday SDK Mobile Dev Playground",
"status": "live",
"type": "minor",
"mondayCodeHostingUrl": "https://b325b-service-25854030-b5796b91.us.monday.app", // used only for monday code apps; specifies the region-based hosting URL for server-side code
"versionData": {
"major": 1,
"minor": 0,
"patch": 0,
"number": 31,
"type": "major",
"displayNumber": "v31"
}
},
"appFeature": {
"type": "AppFeatureBoardView",
"name": "Monday SDK - board view"
},
"permissions": {
"approvedScopes": [
"me:read",
"boards:read",
"boards:write",
"docs:read",
"docs:write",
"workspaces:read",
"workspaces:write",
"users:read",
"users:write",
"account:read",
"notifications:write",
"updates:read",
"updates:write",
"assets:read",
"tags:read",
"teams:read",
"teams:write",
"webhooks:write",
"webhooks:read"
],
"requiredScopes": [
"me:read",
"boards:read",
"boards:write",
"docs:read",
"docs:write",
"workspaces:read",
"workspaces:write",
"users:read",
"users:write",
"account:read",
"notifications:write",
"updates:read",
"updates:write",
"assets:read",
"tags:read",
"teams:read",
"teams:write",
"webhooks:write",
"webhooks:read"
]
}
},
"requestId": "ABCD"
}