Docs Menu
Docs Home
/ /

튜토리얼: 예약된 트리거로 클러스터 자동화

이 튜토리얼에서는 Atlas 예정된 트리거를 사용하여 프로그래밍 방식으로 Atlas 관리 API 호출하여 클러스터 관리 작업을 자동화합니다.

이 튜토리얼에는 다음 절차가 포함되어 있습니다.

  • 초기 설정:기존 Atlas 프로젝트 에 대한 권한이 있는서비스 계정을 생성하고, 서비스 계정 자격 증명 값 및 비밀로 저장 다음, 이러한 자격 증명 사용하여 Update One Cluster in Project Owner One을 호출하는 재사용 가능한 함수를 만듭니다. 프로젝트 엔드포인트.

    참고

    서비스 계정 대신 API 키를 사용하여 권한으로 Project Owner Atlas Administration API 에 인증하려는 경우, API 공개 및 비공개 키를 값 및 비밀로 저장하여 이 튜토리얼의 함수에서 사용할 수 있습니다.

  • 일정에 따라 클러스터 일시중지 및 다시 시작: 예약된 트리거를 생성하여 매일 저녁 클러스터를 자동으로 일시 중지하고 매주 평일 오전에 다시 시작합니다.

  • 일정에 따라 클러스터 확장: 예약된 트리거를 생성하여 사용량이 많을 때 클러스터 자동으로 확장하다 하고 그 이후에는 축소할 수 있습니다.

이 튜토리얼을 완료하려면 Project Owner MongoDB Atlas 프로젝트 에 대한 액세스 있는 사용자가 필요합니다.

이 초기 설정하다 은 한 번만 완료하면 되며 이 페이지에서 예약된 트리거를 생성하여 클러스터 관리 작업을 자동화할 수 있습니다. 이 튜토리얼을 수행하기 전에 클러스터 하나 이상 있는 MongoDB Atlas 프로젝트 있는지 확인하세요. 이 절차에서는 다음 설정하다 작업을 수행합니다.

  • 트리거가 Project Owner 기존 Atlas 프로젝트 에 대한 권한으로 Atlas 관리 API 호출하는 데 사용할 Atlas 서비스 계정에 대한 자격 증명 생성하고 저장합니다.

  • 서비스 계정 자격 증명 사용하여 액세스 토큰을 생성하고 Atlas 관리 API 호출에 적합한 인증 헤더를 반환하는 재사용 가능한 함수 getAuthHeaders 을 만듭니다.

  • 업데이트 1 클러스터를 1 프로젝트 API 로 래핑하는 재사용 가능한 함수 을(를) 생성합니다.modifyCluster

1

트리거가 기존 Atlas 프로젝트 에 대해 Project Owner 권한으로 Atlas Administration API 호출하는 데 사용할 수 있는 서비스 계정을 만들려면 다음을 수행합니다.

  1. Atlas에서 Users 페이지로 이동합니다.

    1. 아직 표시되지 않은 경우 다음 목록에서 원하는 조직 을 선택하세요. 탐색 표시줄의 Organizations 메뉴.

    2. Identity & Access 섹션 아래의 사이드바에서 All Projects 을 클릭하고 원하는 프로젝트 선택합니다.

    3. Security 섹션 아래의 사이드바에서 Project Identity & Access 을 클릭합니다.

    사용자 페이지가 표시됩니다.

  2. Create Application Service Account를 클릭합니다.

  3. 서비스 계정 정보를 입력합니다.

    • 이름: 서비스 계정의 이름입니다. (예: TriggersServiceAccount)

    • 설명: (선택 사항) 서비스 계정에 대한 설명입니다. (예: Atlas 관리 API 호출하기 위한 Atlas Functions의 서비스 계정)

    • 서비스 계정 권한: Project Owner

  4. Create를 클릭합니다.

    이렇게 하면 서비스 계정이 생성되고 권한으로 프로젝트의 상위 조직 Organization Member 에 자동으로 추가됩니다.

  5. API Access List을(를) 구성합니다.

    이 서비스 계정으로 Atlas 관리 API 호출할 수 있는 IP 주소를 제한하려면 API Access List 에 IP 주소를 추가하세요.

    참고

    조직 에 대해 Require IP Access List for the Atlas Administration API 가 활성화되어 있거나 서비스 계정의 API Access List에 IP 주소를 추가한 경우 모든 Atlas 관리 API 요청 IP 액세스 목록 검사를 통과해야 합니다.

    Atlas Triggers and Functions는 특정 아웃바운드 IP 주소 설정하다 에서 발신 HTTP 요청을 전송합니다. 예약된 트리거가 Atlas 관리 API 및 기타 외부 서비스를 호출 활성화 하려면 이러한 IP 주소를 서비스 계정의 API Access List에 추가해야 합니다.

    Atlas Function에서 사용하는 아웃바운드 IP 주소의 전체 목록은 Function Security Outbound IP Access(함수 보안 아웃바운드 IP 액세스)를 참조하세요. 각 IP 주소 개별적으로 추가해야 합니다.

2

서비스 계정 자격 증명 저장 하려면 다음 값과 비밀을 생성하세요.

  • AtlasClientId 서비스 계정 클라이언트 ID 포함된 값입니다.

  • AtlasClientSecret 서비스 계정 클라이언트 시크릿이 포함된 시크릿입니다.

  • AtlasClientSecret 시크릿에 연결되는 값입니다. 이를 통해 시크릿으로 안전하게 저장된 상태를 유지하면서 함수의 클라이언트 시크릿 값에 액세스 할 수 있습니다.

  1. Atlas에서 Triggers 페이지로 이동합니다.

    1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.

    2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

    3. 사이드바에서 Streaming Data 제목 아래의 Triggers를 클릭합니다.

    트리거 페이지가 표시됩니다.

  2. Values 페이지로 이동합니다.

    1. Linked App Service: Triggers 링크를 클릭합니다.

    2. 사이드바에서 Build 제목 아래의 Values를 클릭합니다.

  3. 클라이언트 ID 값에 저장합니다.

    1. 클릭 Create a Value

    2. Value Name(으)로 AtlasClientId 을(를) 입력합니다.

    3. Value 유형을 선택합니다.

    4. Custom Content 옵션을 선택하고 클라이언트 ID 입력합니다.

      참고

      클라이언트 ID 따옴표("<clientId>")가 포함된 문자열 값으로 입력해야 합니다.

    5. Save를 클릭합니다.

  4. 클라이언트 시크릿을 시크릿에 저장하고 이를 값에 연결합니다.

    참고

    시크릿 값에는 직접 액세스할 수 없으므로 시크릿에 연결되는 두 번째 값을 생성해야 합니다.

    1. Create a Value를 클릭합니다.

    2. Value Name(으)로 AtlasClientSecret 을(를) 입력합니다.

    3. Value 유형을 선택합니다.

    4. Link to Secret 옵션을 선택합니다.

    5. AtlasClientSecret 을 입력하고 Create "AtlasClientSecret" 을 클릭하여 Secret 값의 이름을 지정합니다.

      시크릿 이름 아래에 표시되는 Client Secret 필드 에 클라이언트 시크릿을 붙여넣습니다.

    6. Save 를 클릭하여 Secret과 Value를 모두 생성합니다.

3

서비스 계정 자격 증명 사용하여 액세스 토큰을 검색하고 Atlas 관리 API 호출하기 위한 적절한 인증 헤더를 반환하는 재사용 가능한 함수를 만듭니다.

  1. Functions 페이지로 이동합니다.

    1. 사이드바에서 Build 제목 아래의 Functions를 클릭합니다.

    2. Create a Function를 클릭합니다.

      Settings 탭 기본값 으로 표시됩니다.

  2. 함수의 Name (으)로 getAuthHeaders 을(를) 입력합니다.

  3. Private 을(를) true(으)로 설정합니다. 이 튜토리얼에서는 다른 함수에서만 이 함수를 호출합니다.

    Settings 탭 의 다른 구성 옵션은 기본값 으로 그대로 둡니다.

  4. 함수 코드를 정의합니다.

    Function Editor 탭 클릭하고 다음 코드를 붙여넣어 함수를 정의합니다.

    1/*
    2 * Generate API request headers with a new Service Account Access Token.
    3 */
    4exports = async function getAuthHeaders() {
    5
    6 // Get stored credentials
    7 clientId = context.values.get("AtlasClientId");
    8 clientSecret = context.values.get("AtlasClientSecret");
    9
    10 // Throw an error if credentials are missing
    11 if (!clientId || !clientSecret) {
    12 throw new Error("Authentication credentials not found. Set AtlasClientId/AtlasClientSecret (service account auth credentials).");
    13 }
    14
    15 // Define the argument for the HTTP request to get the access token
    16 const tokenUrl = "https://cloud.mongodb.com/api/oauth/token";
    17 const credentials = Buffer.from(`${clientId}:${clientSecret}`).toString("base64");
    18
    19 const arg = {
    20 url: tokenUrl,
    21 headers: {
    22 "Authorization": [ `Basic ${credentials}` ],
    23 "Content-Type": [ "application/x-www-form-urlencoded" ]
    24 },
    25 body: "grant_type=client_credentials"
    26 }
    27
    28 // The response body is a BSON.Binary object; parse it to extract the access token
    29 const response = await context.http.post(arg);
    30 const tokenData = JSON.parse(response.body.text());
    31 const accessToken = tokenData.access_token;
    32
    33 // Define the Accept header with the resource version from env var or default to latest stable
    34 const resourceVersion = context.environment.ATLAS_API_VERSION || "2025-03-12";
    35 const acceptHeader = `application/vnd.atlas.${resourceVersion}+json`;
    36
    37 // Return the access token as headers for future API calls
    38 return {
    39 headers: {
    40 "Authorization": [ `Bearer ${accessToken}` ],
    41 "Accept": [ acceptHeader ],
    42 "Accept-Encoding": [ "bzip, deflate" ],
    43 "Content-Type": [ "application/json" ]
    44 }
    45 };
    46}
4

1개의 프로젝트에서 1개의 클러스터 업데이트 엔드포인트를 래핑하는 재사용 가능한 함수를 생성하려면 다음을 수행합니다.

  1. Functions 페이지에서 Create a Function을 클릭합니다.

    Settings 탭 기본값 으로 표시됩니다.

  2. 함수의 Name (으)로 modifyCluster 을(를) 입력합니다.

  3. Private 을(를) true(으)로 설정합니다. 이 튜토리얼에서는 다른 함수에서만 이 함수를 호출합니다.

    Settings 탭 의 다른 구성 옵션은 기본값 으로 그대로 둡니다.

  4. 함수 코드를 정의합니다.

    Function Editor 탭 클릭하고 다음 코드를 붙여넣어 함수를 정의합니다.

    1/*
    2 * Modifies the cluster as defined by the `body` parameter.
    3 * See https://www.mongodb.com/ko-kr/docs/atlas/reference/api-resources-spec/v2/#tag/Clusters/operation/updateCluster
    4 */
    5exports = async function(projectID, clusterName, body) {
    6
    7 // Easy testing from the console
    8 if (projectID === "Hello world!") {
    9 projectID = "<projectId>";
    10 clusterName = "<clusterName>";
    11 body = { paused: false };
    12 }
    13
    14 // Retrieve headers to authenticate with a new access token, and define the request URL for the Atlas API endpoint
    15 const authHeaders = await context.functions.execute("getAuthHeaders");
    16 const requestUrl = `https://cloud.mongodb.com/api/atlas/v2/groups/${projectID}/clusters/${clusterName}`;
    17
    18 // Build the argument for the HTTP request to the Atlas API to modify the cluster
    19 const arg = {
    20 url: requestUrl,
    21 headers: authHeaders.headers,
    22 body: JSON.stringify(body)
    23 };
    24
    25 // The response body is a BSON.Binary object; parse it and return the modified cluster description
    26 const response = await context.http.patch(arg);
    27 if (response.body) {
    28 return EJSON.parse(response.body.text());
    29 } else {
    30 throw new Error(`No response body returned from Atlas API. Status code: ${response.status}`);
    31 }
    32};

    참고

    함수 편집기에서 코드를 테스트합니다.

    Function Editor 은(는) Testing Console에서 함수를 실행 때 첫 번째 인수로 "Hello world!" 를 자동으로 제공합니다. 이 코드는 해당 입력을 테스트하고 "Hello world!" 이 수신되면 매개 변수에 값을 제공합니다.

    자체 입력으로 함수를 테스트하려면 다음 자리 표시자 값을 자체 정보로 바꿉니다.

    • <projectId>

    • <clusterName>

    • body 매개변수에 클러스터 에 적용하려는 수정 사항이 포함된 페이로드를 제공합니다. 예시 코드에는 클러스터 를 일시 중지하는 페이로드가 포함되어 있습니다.

이 절차에서는 매일 저녁 클러스터를 자동으로 일시 중지했다가 매주 평일 오전에 다시 시작하도록 예약된 트리거를 생성합니다. 이는 업무 시간 외에 실행 필요가 없는 비프로덕션 클러스터나 예정 에 따라 자동으로 일시 중지했다가 다시 시작하려는 클러스터에 유용합니다.

1
  1. Atlas에서 Triggers 페이지로 이동합니다.

    1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.

    2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

    3. 사이드바에서 Streaming Data 제목 아래의 Triggers를 클릭합니다.

    트리거 페이지가 표시됩니다.

  2. Functions 페이지로 이동

    1. Linked App Service: Triggers 링크를 클릭합니다.

    2. 사이드바에서 Build 제목 아래의 Functions를 클릭합니다.

    3. Create a Function를 클릭합니다.

      Settings 탭 기본값 으로 표시됩니다.

  3. 함수의 Name (으)로 pauseClusters 을(를) 입력합니다.

  4. Private 을(를) true(으)로 설정합니다. 이 튜토리얼에서는 pauseClusters 트리거에 의해서만 이 함수를 호출합니다.

    Settings 탭 의 다른 구성 옵션은 기본값 으로 그대로 둡니다.

  5. 함수 코드를 정의합니다.

    Function Editor 탭 클릭하고 다음 코드를 붙여넣어 함수를 정의합니다.

    1/*
    2 * Iterates over the provided projects and clusters, pausing those clusters.
    3 */
    4exports = async function () {
    5
    6 // Supply project IDs and cluster names to pause
    7 const projectIDs = [
    8 {
    9 id: "<projectIdA>",
    10 names: [ "<clusterNameA>", "<clusterNameB>" ]
    11 },
    12 {
    13 id: "<projectIdB>",
    14 names: [ "<clusterNameC>" ]
    15 }
    16 ];
    17
    18 // Set desired state
    19 const body = { paused: true };
    20
    21 // Pause each cluster and log the response
    22 for (const project of projectIDs) {
    23 for (const cluster of project.names) {
    24 const result = await context.functions.execute(
    25 "modifyCluster",
    26 project.id,
    27 cluster,
    28 body,
    29 );
    30 console.log("Cluster " + cluster + ": " + EJSON.stringify(result));
    31 }
    32 }
    33
    34 return "Clusters Paused";
    35};

    projectIDs 배열 자체 프로젝트 및 클러스터 이름으로 바꿉니다.

    참고

    프로젝트 및 클러스터 이름을 하드코딩하지 않으려면 이 튜토리얼의 끝에 있는 헬퍼 함수를 사용하여 Atlas 관리 API 에서 프로젝트 및 클러스터 목록을 조회 하고 예정 에 따라 일시 중지했다가 다시 시작할 클러스터를 프로그래밍 방식으로 결정할 수 있습니다.

2
  1. Functions 페이지에서 Build 제목 아래의 사이드바에서 Triggers 를 클릭하여 Triggers 페이지로 이동합니다.

  2. Create a Trigger을 클릭하여 트리거 구성 페이지를 엽니다.

    기존 트리거가 있는 경우 다음을 클릭합니다. Add a Trigger

  3. 트리거 설정을 구성합니다.

    Trigger Details에서 다음 구성을 설정하다 .

    설정

    트리거 유형

    예정

    예정 유형

    고급. 이를 통해 예정 에 대한 CRON 표현식 지정할 수 있습니다.

    이를 매주 평일 저녁 6 미국 동부 표준시(22:00 UTC)에 실행 하려면 다음 CRON 표현식 사용합니다.

    0 22 * * 1-5

    재활성화 시 이벤트 건너뛰기

    켜기. 이렇게 하면 트리거가 비활성화된 동안 대기 중인 일정에서 트리거가 실행되지 않습니다.

    eventType

    함수. 드롭다운에서 pauseClusters 함수를 선택합니다.

    트리거 이름

    pauseClusters

  4. 트리거를 만들려면 Save 을 클릭합니다.

    이제 테스트 클러스터가 매일 저녁 미국 동부 오후 6 에 자동으로 일시 중지됩니다.

3
  1. pauseClusters 함수를 resumeClusters이라는 새 함수에 복제합니다.

  2. Function Editor 탭 에서 함수 코드의 paused 상태 false 로 업데이트 .

    1/*
    2 * Iterates over the provided projects and clusters, resuming those clusters.
    3 */
    4exports = async function () {
    5
    6 // Supply project IDs and cluster names to resume
    7 const projectIDs = [
    8 {
    9 id: "<projectIdA>",
    10 names: [ "<clusterNameA>", "<clusterNameB>" ]
    11 },
    12 {
    13 id: "<projectIdB>",
    14 names: [ "<clusterNameC>" ]
    15 }
    16 ];
    17
    18 // Set desired state
    19 const body = { paused: false };
    20
    21 // Resume each cluster and log the response
    22 for (const project of projectIDs) {
    23 for (const cluster of project.names) {
    24 const result = await context.functions.execute(
    25 "modifyCluster",
    26 project.id,
    27 cluster,
    28 body,
    29 );
    30 console.log("Cluster " + cluster + ": " + EJSON.stringify(result));
    31 }
    32 }
    33
    34 return "Clusters Resumed";
    35};
4
  1. Functions 페이지에서 Build 제목 아래의 사이드바에서 Triggers 를 클릭하여 Triggers 페이지로 이동합니다.

  2. 트리거 설정을 구성합니다.

    Trigger Details에서 다음 구성을 설정하다 .

    설정

    트리거 유형

    예정

    예정 유형

    고급. 이를 통해 예정 에 대한 CRON 표현식 지정할 수 있습니다.

    매주 평일 오전 8 미국 동부 표준시(12:00 UTC)에 실행 하려면 다음 CRON 표현식 사용합니다.

    0 12 * * 1-5

    재활성화 시 이벤트 건너뛰기

    켜기. 이렇게 하면 트리거가 비활성화된 동안 대기 중인 일정에서 트리거가 실행되지 않습니다.

    eventType

    함수. 드롭다운에서 resumeClusters 함수를 선택합니다.

    트리거 이름

    resumeClusters

  3. 트리거를 만들려면 Save 을 클릭합니다.

이제 테스트 클러스터가 매일 저녁에 일시 중지되었다가 매주 평일 오전에 자동으로 다시 시작됩니다.

이 절차에서는 예약된 트리거를 생성하여 사용량이 많을 때 클러스터 를 자동으로 확장하다 그 이후에는 축소합니다. 이는 워크로드 증가하기 전에 사전에 확장하다 확장하다 예측 가능한 사용 패턴이 있는 클러스터에 유용합니다.

참고

Atlas 클러스터 자동 확장을 지원하여 사용량 또는 예상 사용량에 따라 클러스터 계층 또는 저장 용량 자동으로 늘릴 수 있습니다. 그러나 피크 사용 기간을 예측할 수 있는 경우 예약된 트리거를 사용하여 워크로드 증가하기 전에 클러스터 를 사전에 확장하다 수 있습니다.

1
  1. Atlas에서 Triggers 페이지로 이동합니다.

    1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.

    2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

    3. 사이드바에서 Streaming Data 제목 아래의 Triggers를 클릭합니다.

    트리거 페이지가 표시됩니다.

  2. Functions 페이지로 이동

    1. Linked App Service: Triggers 링크를 클릭합니다.

    2. 사이드바에서 Build 제목 아래의 Functions를 클릭합니다.

    3. Create a Function를 클릭합니다.

      Settings 탭 기본값 으로 표시됩니다.

  3. 함수의 Name (으)로 scaleClusterUp 을(를) 입력합니다.

  4. Private 을(를) true(으)로 설정합니다. 이 튜토리얼에서는 scaleClusterUp 트리거에 의해서만 이 함수를 호출합니다.

    Settings 탭 의 다른 구성 옵션은 기본값 으로 그대로 둡니다.

  5. 함수 코드를 정의합니다.

    Create Function 페이지에서 Function Editor 탭 클릭하고 다음 코드를 붙여넣어 함수를 정의합니다.

    1/*
    2 * Scales a single cluster up to a larger instance size.
    3 * This example scales an AWS cluster up to M30 in region US_EAST_1.
    4 */
    5exports = async function() {
    6 // Supply project ID and cluster name...
    7 const projectID = "<projectId>";
    8 const clusterName = "<clusterName>";
    9
    10 // Set the desired instance size and topology...
    11 const body = {
    12 replicationSpecs: [
    13 {
    14 regionConfigs: [
    15 {
    16 electableSpecs: {
    17 instanceSize: "M30", // for example, larger tier
    18 nodeCount: 3
    19 },
    20 priority: 7,
    21 providerName: "AWS",
    22 regionName: "US_EAST_1"
    23 }
    24 ]
    25 }
    26 ]
    27 };
    28
    29 // Scale up the cluster and log the response
    30 const result = await context.functions.execute(
    31 "modifyCluster",
    32 projectID,
    33 clusterName,
    34 body
    35 );
    36 console.log(EJSON.stringify(result));
    37
    38 return clusterName + " scaled up";
    39};

    <projectId><clusterName> 자리 표시자를 자체 프로젝트 ID 및 클러스터 이름으로 바꾸고 자체 토폴로지 에 맞게 regionConfigs 배열 조정합니다.

    클러스터 구성을 수정하기 위해 요청 본문에 포함할 수 있는 사용 가능한 필드에 대한 자세한 내용은 1개의 프로젝트 엔드포인트에서 1개의 클러스터 업데이트 문서를 참조하세요.

2
  1. Functions 페이지에서 Build 제목 아래의 사이드바에서 Triggers 를 클릭하여 Triggers 페이지로 이동합니다.

  2. Create a Trigger을 클릭하여 트리거 구성 페이지를 엽니다.

    기존 트리거가 있는 경우 다음을 클릭합니다. Add a Trigger

  3. 트리거 설정을 구성합니다.

    Trigger Details에서 다음 구성을 설정하다 .

    설정

    트리거 유형

    예정

    예정 유형

    고급. 이를 통해 예정 에 대한 CRON 표현식 지정할 수 있습니다.

    매일 아침 8 미국 동부 13 00 표준시(UTC)인 오전에 실행 하려면 다음 CRON 표현식 사용합니다.

    0 13 * * *

    재활성화 시 이벤트 건너뛰기

    켜기. 이렇게 하면 트리거가 비활성화된 동안 대기 중인 일정에서 트리거가 실행되지 않습니다.

    eventType

    함수. 드롭다운에서 pauseClusters 함수를 선택합니다.

    트리거 이름

    scaleClusterUp

  4. 트리거를 만들려면 Save 을 클릭합니다.

    이제 테스트 클러스터가 매일 아침 미국 동부 8 오전에 자동으로 확장하다 됩니다.

3
  1. scaleClusterUp 함수를 scaleClusterDown이라는 새 함수에 복제합니다.

  2. Function Editor 탭 에 다음 코드를 붙여넣고 조정하여 클러스터 지정된 구성으로 확장하다 .

    1/*
    2 * Scales a single cluster down to a smaller instance size.
    3 * This example scales an AWS cluster down to M10 in region US_EAST_1.
    4 */
    5exports = async function() {
    6 const projectID = "<projectId>";
    7 const clusterName = "<clusterName>";
    8
    9 const body = {
    10 replicationSpecs: [
    11 {
    12 regionConfigs: [
    13 {
    14 electableSpecs: {
    15 instanceSize: "M10", // for example, smaller tier
    16 nodeCount: 3
    17 },
    18 priority: 7,
    19 providerName: "AWS",
    20 regionName: "US_EAST_1"
    21 }
    22 ]
    23 }
    24 ]
    25 };
    26
    27 // Scale down the cluster and log the response
    28 const result = await context.functions.execute(
    29 "modifyCluster",
    30 projectID,
    31 clusterName,
    32 body
    33 );
    34 console.log(EJSON.stringify(result));
    35
    36 return clusterName + " scaled down";
    37};

    <projectId><clusterName> 자리 표시자를 자체 프로젝트 ID 및 클러스터 이름으로 바꾸고 자체 토폴로지 에 맞게 regionConfigs 배열 조정합니다.

    클러스터 구성을 수정하기 위해 요청 본문에 포함할 수 있는 사용 가능한 필드에 대한 자세한 내용은 1개의 프로젝트 엔드포인트에서 1개의 클러스터 업데이트 문서를 참조하세요.

4
  1. Functions 페이지에서 Build 제목 아래의 사이드바에서 Triggers 를 클릭하여 Triggers 페이지로 이동합니다.

  2. 트리거 설정을 구성합니다.

    Trigger Details에서 다음 구성을 설정하다 .

    설정

    트리거 유형

    예정

    예정 유형

    고급. 이를 통해 예정 에 대한 CRON 표현식 지정할 수 있습니다.

    매일 저녁 6 미국 동부 표준시(22:00 UTC)에 이 작업을 실행 하려면 다음 CRON 표현식 사용합니다.

    0 22 * * *

    재활성화 시 이벤트 건너뛰기

    켜기. 이렇게 하면 트리거가 비활성화된 동안 대기 중인 일정에서 트리거가 실행되지 않습니다.

    eventType

    함수. 드롭다운에서 scaleClusterDown 함수를 선택합니다.

    트리거 이름

    scaleClusterDown

  3. 트리거를 만들려면 Save 을 클릭합니다.

이 두 트리거를 함께 사용하면 클러스터 이 많은 시간에는 더 높은 용량 으로 실행되고 그 후에는 축소됩니다.

이 튜토리얼의 함수에서 타겟팅할 클러스터를 지정하기 위해 Triggers 함수 편집기에서 다음 헬퍼 함수를 테스트 실행 조직 의 프로젝트 및 클러스터를 나열할 수 있습니다. 다른 함수에서 이러한 함수를 호출하여 프로그래밍 방식으로 이 정보를 조회 수도 있습니다.

돌아가기

예약된 트리거

이 페이지의 내용