Composer-Airflow 저장소

저장소 정보

Composer-Airflow 저장소는 Cloud Composer에서 실행되는 패치된 Apache Airflow 코드를 포함하는 읽기 전용 저장소입니다. 참조용 및 로컬 테스트와 개발용으로 사용될 수 있습니다.

Cloud Composer에서 Airflow의 패치 버전이 사용되기 때문에 Cloud Composer의 특정 Apache Airflow 버전이 업스트림 Airflow의 해당 버전과 항상 정확하게 일치하지는 않습니다. 이 저장소에는 Cloud Composer에 사용되는 Airflow의 모든 패치 버전의 코드가 저장됩니다. Cloud Composer에서 찾을 수 있는 Airflow 버전에 대한 자세한 내용은 Cloud Composer 버전 목록을 참조하세요.

참여

이 코드는 Apache Airflow의 포크가 아닙니다. 이 저장소에서 찾을 수 있는 코드는 Apache Airflow 저장소에서 직접 오지만 일반 Apache Airflow 출시 버전과 타임라인이 다릅니다. 이 코드베이스에 참여하려면 여기에서 참여하지 마세요. 이 저장소에서는 Pull 요청이 수락되지 않으며 대신 Airflow에서 직접 참여해야 합니다.

문제 + 지원

이 저장소에서 발견된 코드에 문제가 있으면 Airflow 버그 보고 안내를 따르세요. Cloud Composer에 문제가 있으면 Cloud Composer 지원 채널을 활용하세요.

저장소에는 Cloud Composer에서 제공되는 각 Airflow 버전에 대해 하나의 분기가 있습니다. Airflow의 모든 버전이 Cloud Composer에서 지원되지는 않습니다. 버전 지원에 대한 자세한 내용은 Cloud Composer 버전 관리를 참조하세요.

사용 사례

이 커밋이 내 Cloud Composer 버전의 Airflow 저장소에서 제공되나요?

composer-airflow 저장소의 커밋 SHA1은 업스트림 Airflow 저장소의 커밋 SHA1에 해당하지 않습니다. 즉, 특정 커밋을 검색하는 가장 쉬운 방법은 해당 커밋 메시지를 검색하는 것입니다.

현재까지는 기본 분기 이외의 분기에서 GitHub UI를 사용하여 커밋 메시지를 검색할 수 없지만 git CLI를 사용하면 검색이 가능합니다. 이 저장소에서 특정 커밋을 검색하려면 git가 설치되어 있어야 합니다.

  1. 다음 명령어를 사용하여 저장소를 클론하고 저장소 디렉터리로 변경합니다.
    git clone git@github.com:GoogleCloudPlatform/composer-airflow.git && cd composer-airflow
  2. 커밋 메시지를 검색합니다.

    git log --source --grep="COMMIT_MESSAGE" --all

    각 항목의 의미는 다음과 같습니다.

    • --source는 커밋이 발견된 분기를 보여줍니다.
    • --grep는 로그를 검색할 메시지를 git에 알려줍니다.
    • --all은 모든 분기를 검색하도록 git에 지정합니다.
  3. 분기는 모든 결과의 첫 번째 줄에 있는 커밋 해시 옆에 있습니다. 명령어가 커밋을 반환하면 사용자의 Cloud Composer 버전에 있음을 의미합니다. 또한 해당 환경에서 Airflow 버전이 분기 버전보다 이후이면 커밋이 해당 환경의 Airflow 버전에 사용됩니다.

예를 들어 커밋 메시지 'Force explicit choice on GPL dependency'를 검색할 경우 명령어는 다음과 같습니다.

    git log --source --grep="Force explicit choice on GPL dependency" --all

그리고 일치하는 커밋이 있으면 결과가 다음과 같이 표시됩니다(결과가 2개 이상일 수 있음).

commit 64ff1089e30e80b08bf5155edd9e49f5293ebbe4 refs/heads/<strong>1.10.2</strong>
Author: example_airflow_committer <example_airflow_committer@users.noreply.github.com>
Date:   Wed Aug 1 11:25:31 2018 +0200

    [AIRFLOW-2817] Force explicit choice on GPL dependency (#3660)

    By default one of Apache Airflow's dependencies pulls in a GPL
    library. Airflow should not install (and upgrade) without an explicit choice.

    This is part of the Apache requirements as we cannot depend on Category X
    software.

    (cherry picked from commit c37fc0b6ba19e3fe5656ae37cef9b59cef3c29e8)
    Signed-off-by: Example Airflow Committer  <example_airflow_committer@users.noreply.github.com>
    (cherry picked from commit b39e4532d9d1086c60b31553d08972bcc68df641)
    Signed-off-by: Example Airflow Committer  <example_airflow_committer@users.noreply.github.com>
    GitOrigin-RevId: cefcf4c61f64be3792cbfed509b82a9eb4cc47be

내 Composer 버전에서 이 연산자는 어떻게 표시되나요?

providers 패키지를 사용하지 않는 경우

GoogleCloudStorageCreateBucketOperator와 같이 특정 연산자의 파일 경로를 알고 있으면 GitHub UI 또는 CLI를 사용하여 여기로 이동합니다.

파일 경로를 모르면 다음 명령어를 사용하여 이를 검색할 수 있습니다.

    git grep GoogleCloudStorageCreateBucketOperator

출력은 문자열(이 경우에는 연산자 이름)을 찾을 수 있는 파일 목록입니다. 이 목록에서 적합한 파일로 이동하고 내용을 더 조사합니다.

airflow/contrib/operators/gcs_operator.py:class GoogleCloudStorageCreateBucketOperator(BaseOperator):
airflow/contrib/operators/gcs_operator.py:            CreateBucket = GoogleCloudStorageCreateBucketOperator(
airflow/contrib/operators/gcs_operator.py:        super(GoogleCloudStorageCreateBucketOperator, self).__init__(*args, **kwargs)
docs/code.rst:.. autoclass:: airflow.contrib.operators.gcs_operator.GoogleCloudStorageCreateBucketOperator
docs/integration.rst:- :ref:`GoogleCloudStorageCreateBucketOperator` : Creates a new cloud storage bucket.
docs/integration.rst:.. _GoogleCloudStorageCreateBucketOperator:
docs/integration.rst:GoogleCloudStorageCreateBucketOperator
docs/integration.rst:.. autoclass:: airflow.contrib.operators.gcs_operator.GoogleCloudStorageCreateBucketOperator
tests/contrib/operators/test_gcs_operator.py:from airflow.contrib.operators.gcs_operator import GoogleCloudStorageCreateBucketOperator
tests/contrib/operators/test_gcs_operator.py:        operator = GoogleCloudStorageCreateBucketOperator(

providers 패키지를 사용하는 경우

Airflow 1.10.x의 특정 버전에서부터 특정 연산자 및 수반된 코드가 '백포트 공급자 패키지'(Airflow 1.10.x) 또는 '공급자 패키지(Airflow 2.0 이상)라고 부르는 PyPI 패키지의 코어 Airflow에서 개별적으로 패키징 및 릴리스됩니다. Cloud Composer의 백포트 공급자에 대한 자세한 내용은 Cloud Composer 백포트 공급자 문서를 참조하세요.

이러한 패키지의 특정 버전은 Cloud Composer에 기본적으로 설치됩니다. 해당 환경에 설치된 버전을 확인하려면 버전 목록에서 'PyPI packages for Python 3' 열을 확인합니다.

특정 출시 버전에서 연산자의 코드를 확인하려면 다음 안내를 따르세요.

GitHub UI

  1. 업스트림 Airflow 저장소로 이동합니다.
  2. 페이지 상단의 GitHub 검색창에서 검색할 특정 연산자의 이름을 입력합니다.
  3. 파일이 2개 이상 반환되면 경로가 airflow/providers로 시작하는 코드 파일을 클릭합니다. 예를 들어 GoogleCloudStorageCreateBucketOperator를 검색할 경우 airflow/providers/google/cloud/operators/gcs.py를 선택합니다.
  4. 분기 선택기를 클릭하면 '분기/태그 전환' 드롭다운 목록이 열립니다.
  5. '태그' 탭을 클릭합니다.
  6. providers 패키지에 대해 드롭다운 목록의 검색창에서 다음을 입력하여 공급자 이름 및 버전을 검색합니다.
    providers-PROVIDER_NAME/PROVIDER_VERSION
    여기서 PROVIDER_NAME은 공급자의 이름이고 PROVIDER_VERSION은 검색하려는 버전의 이름입니다. 예를 들어 apache-airflow-providers-google 패키지의 4.0.0 버전을 보려면 providers-google/4.0.0을 검색합니다.
  7. backport-providers 패키지의 경우 드롭다운 목록의 검색창에서
    backport-providers-PROVIDER_VERSION
    을 검색합니다. 예를 들어 apache-airflow-backport-providers-google 패키지의 2021.3.3 버전을 보려면 backport-providers-2021.3.3을 검색합니다.
  8. 쿼리와 일치하는 결과를 클릭합니다.
  9. 화면 코드는 해당 연산자 버전으로 실행되는 것과 정확하게 일치합니다. 또한 기록을 클릭하여 이 지점까지 커밋 기록을 확인할 수 있습니다.

git CLI

  1. 업스트림 Airflow 저장소를 클론합니다.
  2. providers 패키지의 경우 다음을 실행합니다.
    git checkout providers-PROVIDER_NAME/PROVIDER_VERSION
    여기서 PROVIDER_NAME은 공급자의 이름이고, PROVIDER_VERSION은 검색하려는 버전의 이름입니다. 예를 들어 apache-airflow-providers-google 패키지의 4.0.0 버전을 보려면 git checkout providers-google/4.0.0을 실행합니다.
  3. backport-providers 패키지의 경우 드롭다운 목록의 검색 창에서
    git checkout backport-providers-PROVIDER_VERSION
    을 검색합니다. 예를 들어 apache-airflow-backport-providers-google 패키지의 2021.3.3 버전을 보려면 git checkout backport-providers-2021.3.3을 실행합니다.

그런 후 providers 패키지를 사용하지 않는 경우의 안내를 따릅니다.