AZURE

Azure Functions 개발

Mara7 2022. 9. 7.
반응형
LIST

구성 요소

  • 코드 ( 다양한 언어로 작성 할 수 있는)
  • function.json 파일

1️⃣ 컴파일 언어 : 코드의 주석에서 자동 생성

2️⃣ 스크립팅 언어 : 구성 파일을 직접 제공해야함

function.json

  • 함수의 트리거, 바인딩 및 기타 구성 설정
  • 모든 함수에 하나의 트리거만 존재
  • 런타임 : 이 구성 파일을 사용하여 모니터링 할 이벤트, 함수 실행에 데이터 전달, 반환하는 방법 확인
{
    "disabled":false,
    "bindings":[
        // ... bindings here
        {
            "type": "bindingType",
            "direction": "in",
            "name": "myParamName",
            // ... more depending on binding
        }
    ]
}

bindings

바인딩 : 속성과 개체 사이 또는 연산과 기호 사이와 같은 연관,

이름에 속성을 연관 시키는 과정

  • 트리거, 바인딩을 모두 구성하는 곳에 위치
  • 몇 가지 공통적인 설정, 특정한 바인딩 형식에 해당하는 일부 설정 공유

type 바인딩의 이름

direction 함수 안으로 데이터를 수신? (in) 함수의 데이터를 전송할 것인지?(out)

name 함수에서 바인딩 데이터에 사용되는 이름

Function app

  • 함수가 실행되는 Azure의 실행 context 제공
  • 함수에 대한 배포 및 관리 단위
  • 함께 관리, 배포 및 크기 조정되는 하나 이상의 개별 함수로 구성됨
  • 동일한 가격 책정 계획, 배포 방법 및 런타임 버전을 공유

폴더 구조

<project_root>/
 | - .venv/
 | - .vscode/
 | - my_first_function/
 | | - __init__.py
 | | - function.json
 | | - example.py
 | - my_second_function/
 | | - __init__.py
 | | - function.json
 | - shared_code/
 | | - __init__.py
 | | - my_first_helper_function.py
 | | - my_second_helper_function.py
 | - tests/
 | | - test_my_second_function.py
 | - .funcignore
 | - host.json
 | - local.settings.json
 | - requirements.txt
 | - Dockerfile
  • local.settings.json: 함수가 로컬에서 실행될 때 앱 설정 및 연결 문자열을 저장하는 데 사용됩니다. 이 파일은 Azure에 게시되지 않습니다. 자세히 알아보려면 로컬 설정 파일을 참조하세요.
  • requirements.txt: Azure에 게시할 때 시스템이 설치하는 Python 패키지 목록이 포함되어 있습니다.
  • *host.json*: 함수 앱 인스턴스의 모든 함수에 영향을 미치는 구성 옵션이 포함되어 있습니다. 이 파일은 Azure에 게시됩니다. 함수가 로컬로 실행 중일 때 모든 옵션이 지원되는 것은 아닙니다. 자세한 내용은 host.json 참조를 참조하세요.
  • *.vscode/*:(선택 사항) 저장된 Visual Studio Code 구성을 포함합니다. 자세한 내용은 사용자 및 작업 영역 설정을 참조하세요.
  • .venv/:(선택 사항) 로컬 개발에 사용되는 Python 가상 환경을 포함합니다.
  • Dockerfile:(선택 사항) 사용자 지정 컨테이너에 프로젝트를 게시할 때 사용됩니다.
  • tests/ : (선택 사항) 함수 앱의 테스트 사례를 포함합니다.
  • .funcignore:(선택 사항) Azure에 게시하면 안 되는 파일을 선언합니다. 일반적으로 이 파일에는 편집기 설정을 무시하는 .vscode/, 로컬 Python 가상 환경을 무시하는 .venv/, 테스트 사례를 무시하는 tests/, 로컬 앱 설정이 게시되지 않도록 하는 local.settings.json이 포함됩니다.

트리거 및 바인딩 만들기

  • 트리거 : 함수가 실행되도록 하는 것
    • 함수가 호출되는 방식으로 정의함
    • 하나의 함수 : 하나의 트리거
    • 트리거에는 관련 데이터가 있고, 일반적으로 함수의 페이로드로 제공됨
  • 바인딩 : 함수에 다른 리소스를 선언적으로 연결하는 방법
  • 입력 바인딩, 출력 바인딩으로 연결하거나 믹스 매치 가능
  • 바인딩 : 선택
  • HTTP 요청 내용을 읽으려면 dataType을 binary 로 설정

바인딩 방향

  • Triggerin
  • 입력과 출력 in out
  • 일부 바인딩 : inout : 포털의 통합 탭을 통해 고급 편집기만 사용할 수 있음

Azure 서비스에 함수 연결

  • 구성 공급자의 이름 별로 연결 정보를 참조함
  • 연결 세부 정보를 직접 허용하지 않으므로 환경 간에 변경될 수 있음

연결 값

  • 연결 이름이 정확한 단일 값으로 확인 → 런타임은 일반적으로 비밀을 포함하는 연결 문자열로 값을 식별하며 연결 문자열의 세부 정보는 연결하려는 서비스에 의해 정의됨
  • 여러 구성 항목의 컬렉션을 참조할 수 있음
  • 이중 밑줄(__)로 끝나는 공유 접두사를 사용하여 환경 변수를 컬렉션으로 처리 → 연결 이름을 이 접두사로 설정하여 그룹 참조

ID 기반 연결 구성

  • secret 대신 ID를 사용하도록 구성됨
  • 지원은 연결을 사용하는 확장에 따라 다름
  • Durable Fuctions에서 지원되지 않음

ID 에 권한 부여

  • 권한이 있어야 함
  • Azure RBAC 에서 역할을 할당 or 액세스 정책에 ID를 지정하여 이루어짐
반응형
LIST

댓글