Azurite 오픈 소스 에뮬레이터를 사용 하 여 Azure storage 개발 및 테스트 (미리 보기)Use the Azurite open-source emulator for Azure storage development and testing (preview)

Azurite 버전 3.2 오픈 소스 에뮬레이터 (미리 보기)는 Azure blob 및 queue storage 응용 프로그램을 테스트 하기 위한 무료 로컬 환경을 제공 합니다.The Azurite version 3.2 open-source emulator (preview) provides a free local environment for testing your Azure blob and queue storage applications. 응용 프로그램이 로컬에서 작동 하는 방식에 만족 하는 경우 클라우드에서 Azure Storage 계정을 사용 하도록 전환 합니다.When you're satisfied with how your application is working locally, switch to using an Azure Storage account in the cloud. 에뮬레이터는 Windows, Linux 및 MacOS에서 플랫폼 간 지원을 제공 합니다.The emulator provides cross-platform support on Windows, Linux, and MacOS. Azurite v3은 Azure Blob service에서 구현 하는 Api를 지원 합니다.Azurite v3 supports APIs implemented by the Azure Blob service.

Azurite는 향후 저장소 에뮬레이터 플랫폼입니다.Azurite is the future storage emulator platform. Azurite는 Azure Storage 에뮬레이터를 대체 합니다.Azurite supersedes the Azure Storage Emulator. Azurite는 최신 버전의 Azure Storage Api를 지원 하도록 계속 업데이트 됩니다.Azurite will continue to be updated to support the latest versions of Azure Storage APIs.

로컬 시스템에서 Azurite를 설치 하 고 실행 하는 여러 가지 방법이 있습니다.There are several different ways to install and run Azurite on your local system:

  1. Azurite Visual Studio Code 확장을 설치 하 고 실행 합니다.Install and run the Azurite Visual Studio Code extension
  2. NPM를 사용 하 여 Azurite 설치 및 실행Install and run Azurite by using NPM
  3. Azurite Docker 이미지를 설치 하 고 실행 합니다.Install and run the Azurite Docker image
  4. GitHub 리포지토리에서 Azurite 복제, 빌드 및 실행Clone, build, and run Azurite from the GitHub repository

Azurite Visual Studio Code 확장을 설치 하 고 실행 합니다.Install and run the Azurite Visual Studio Code extension

Visual Studio Code 내에서 확장 창을 선택 하 고 확장: MARKETPLACE에서 Azurite 를 검색 합니다.Within Visual Studio Code, select the EXTENSIONS pane and search for Azurite in the EXTENSIONS:MARKETPLACE.

Visual Studio Code 확장 마켓플레이스

또는 브라우저에서 VS Code 확장 시장 으로 이동 합니다.Alternatively, navigate to VS Code extension market in your browser. 설치 단추를 선택 하 Visual Studio Code를 열고 Azurite 확장 페이지로 직접 이동 합니다.Select the Install button to open Visual Studio Code and go directly to the Azurite extension page.

VS Code 상태 표시줄에서 [Azurite Blob service] 또는 [Azurite Queue service] 를 클릭 하거나 VS Code 명령 팔레트에서 다음 명령을 실행 하 여 Azurite를 신속 하 게 시작 하거나 닫을 수 있습니다.You can quickly start or close Azurite by clicking on [Azurite Blob Service] or [Azurite Queue Service] in the VS Code status bar or issuing the following commands in the VS Code command palette. 명령 팔레트를 열려면 VS Code에서 F1 키를 누릅니다.To open the command palette, press F1 in VS Code.

확장은 다음과 같은 Visual Studio Code 명령을 지원 합니다.The extension supports the following Visual Studio Code commands:

  • Azurite: 시작 -모든 Azurite services 시작Azurite: Start - Start all Azurite services
  • Azurite: 모든 Azurite 서비스 닫기Azurite: Close - Close all Azurite services
  • Azurite: Clean -모든 Azurite services 지 속성 데이터를 다시 설정 합니다.Azurite: Clean - Reset all Azurite services persistency data
  • Azurite: Blob 서비스 시작-blob service 시작Azurite: Start Blob Service - Start blob service
  • Azurite: Blob 서비스 닫기-blob service 닫기Azurite: Close Blob Service - Close blob service
  • Azurite: 클린 blob service -blob 서비스 정리Azurite: Clean Blob Service - Clean blob service
  • Azurite: 큐 서비스 시작-큐 서비스 시작Azurite: Start Queue Service - Start queue service
  • Azurite: 큐 서비스 닫기-큐 서비스 닫기Azurite: Close Queue Service - Close queue service
  • Azurite: 정리 큐 서비스 -큐 서비스 정리Azurite: Clean Queue Service - Clean queue service

Visual Studio Code 내에서 Azurite를 구성 하려면 확장 창을 선택 합니다.To configure Azurite within Visual Studio Code, select the extensions pane. Azurite에 대 한 관리 (기어) 아이콘을 선택 합니다.Select the Manage (gear) icon for Azurite. 확장 설정 구성을 선택 합니다.Select Configure Extension Settings.

Azurite 확장 설정 구성

다음 설정이 지원 됩니다.The following settings are supported:

  • Azurite: Blob 호스트 -Blob service 수신 대기 끝점입니다.Azurite: Blob Host - The Blob service listening endpoint. 기본 설정은 127.0.0.1입니다.The default setting is 127.0.0.1.
  • Azurite: Blob 포트 -Blob service 수신 포트입니다.Azurite: Blob Port - The Blob service listening port. 기본 포트는 1만입니다.The default port is 10000.
  • Azurite: 디버그 -Azurite 채널에 디버그 로그를 출력 합니다.Azurite: Debug - Output the debug log to the Azurite channel. 기본값은 false입니다.The default value is false.
  • Azurite: Location -작업 영역 위치 경로입니다.Azurite: Location - The workspace location path. 기본값은 Visual Studio Code 작업 폴더입니다.The default is the Visual Studio Code working folder.
  • Azurite: 큐 호스트 -큐 서비스 수신 대기 끝점입니다.Azurite: Queue Host - The Queue service listening endpoint. 기본 설정은 127.0.0.1입니다.The default setting is 127.0.0.1.
  • Azurite: Queue port -큐 서비스 수신 포트입니다.Azurite: Queue Port - The Queue service listening port. 기본 포트는 10001입니다.The default port is 10001.
  • Azurite: 자동 -자동 모드는 액세스 로그를 사용 하지 않도록 설정 합니다.Azurite: Silent - Silent mode disables the access log. 기본값은 false입니다.The default value is false.

NPM를 사용 하 여 Azurite 설치 및 실행Install and run Azurite by using NPM

이 설치 방법을 사용 하려면 node.js 버전 8.0 이상이 설치 되어 있어야 합니다.This installation method requires that you have Node.js version 8.0 or later installed. npm 는 모든 node.js 설치에 포함 된 패키지 관리 도구입니다.npm is the package management tool included with every Node.js installation. Node.js를 설치한 후 다음 npm 명령을 실행 하 여 Azurite를 설치 합니다.After installing Node.js, execute the following npm command to install Azurite.

npm install -g azurite

Azurite를 설치한 후 명령줄에서 Azurite 실행을 참조 하세요.After installing Azurite, see Run Azurite from a command-line.

Azurite Docker 이미지를 설치 하 고 실행 합니다.Install and run the Azurite Docker image

다음 명령을 사용 하 여 Dockerhub 를 사용 하 여 최신 Azurite 이미지 를 가져옵니다.Use DockerHub to pull the latest Azurite image by using the following command:

docker pull mcr.microsoft.com/azure-storage/azurite

Azurite Docker 이미지를 실행 합니다.Run the Azurite Docker image:

다음 명령은 Azurite Docker 이미지를 실행 합니다.The following command runs the Azurite Docker image. 매개 -p 10000:10000 변수는 호스트 컴퓨터의 포트 1만에서 Docker 인스턴스로 요청을 리디렉션합니다.The -p 10000:10000 parameter redirects requests from host machine's port 10000 to the Docker instance.

docker run -p 10000:10000 -p 10001:10001 mcr.microsoft.com/azure-storage/azurite

작업 영역 위치 지정:Specify the workspace location:

다음 예제에서 매개 변수는 -v c:/azurite:/data azurite 지속형 데이터 위치로 c:/azurite 를 지정 합니다.In the following example, the -v c:/azurite:/data parameter specifies c:/azurite as the Azurite persisted data location. Docker 명령을 실행 하기 전에 디렉터리 c:/azurite를 만들어야 합니다.The directory, c:/azurite, must be created before running the Docker command.

docker run -p 10000:10000 -p 10001:10001 -v c:/azurite:/data mcr.microsoft.com/azure-storage/azurite

Blob service만 실행Run just the blob service

docker run -p 10000:10000 mcr.microsoft.com/azure-storage/azurite
    azurite-blob --blobHost 0.0.0.0 --blobPort 10000

모든 Azurite 매개 변수를 설정합니다.Set all Azurite parameters:

이 예제에서는 모든 명령줄 매개 변수를 설정 하는 방법을 보여 줍니다.This example shows how to set all of the command-line parameters. 아래 매개 변수는 모두 단일 명령줄에 배치 해야 합니다.All of the parameters below should be placed on a single command-line.

docker run -p 8888:8888
           -p 9999:9999
           -v c:/azurite:/workspace mcr.microsoft.com/azure-storage/azurite azurite
           -l /workspace
           -d /workspace/debug.log
           --blobPort 8888
           --blobHost 0.0.0.0
           --queuePort 9999
           --queueHost 0.0.0.0

시작 시 Azurite 구성에 대 한 자세한 내용은 명령줄 옵션 을 참조 하세요.See Command-line options for more information about configuring Azurite at start-up.

GitHub 리포지토리에서 Azurite 복제, 빌드 및 실행Clone, build, and run Azurite from the GitHub repository

이 설치 방법을 사용 하려면 Git 가 설치 되어 있어야 합니다.This installation method requires that you have Git installed. 다음 콘솔 명령을 사용 하 여 Azurite 프로젝트에 대 한 GitHub 리포지토리 를 복제 합니다.Clone the GitHub repository for the Azurite project by using the following console command.

git clone https://github.com/Azure/Azurite.git

소스 코드를 복제 한 후 복제 된 리포지토리의 루트에서 다음 명령을 실행 하 여 Azurite를 빌드하고 설치 합니다.After cloning the source code, execute following commands from the root of the cloned repo to build and install Azurite.

npm install
npm run build
npm install -g

Azurite를 설치 하 고 빌드한 후 명령줄에서 Azurite 실행을 참조 하세요.After installing and building Azurite, see Run Azurite from a command-line.

명령줄에서 Azurite 실행Run Azurite from a command-line

참고

Visual Studio Code 확장명만 설치한 경우 명령줄에서 Azurite를 실행할 수 없습니다.Azurite cannot be run from the command line if you only installed the Visual Studio Code extension. 대신 VS Code 명령 팔레트를 사용 합니다.Instead, use the VS Code command palette. 자세한 내용은 Azurite Visual Studio Code 확장 설치 및 실행을 참조 하세요.For more information, see Install and run the Azurite Visual Studio Code extension.

명령줄을 사용 하 여 즉시 시작 하려면 c:\azurite라는 디렉터리를 만든 후 다음 명령을 실행 하 여 azurite를 시작 합니다.To get started immediately with the command-line, create a directory called c:\azurite, then launch Azurite by issuing the following command:

azurite --silent --location c:\azurite --debug c:\azurite\debug.log

이 명령은 Azurite에 게 c:\azurite의 특정 디렉터리에 모든 데이터를 저장 하도록 지시 합니다.This command tells Azurite to store all data in a particular directory, c:\azurite. --Location 옵션을 생략 하면 현재 작업 디렉터리가 사용 됩니다.If the --location option is omitted, it will use the current working directory.

명령줄 옵션Command-line options

이 섹션에서는 Azurite를 시작할 때 사용할 수 있는 명령줄 스위치에 대해 자세히 설명 합니다.This section details the command-line switches available when launching Azurite. 모든 명령줄 스위치는 선택 사항입니다.All command-line switches are optional.

C:\Azurite> azurite [--blobHost <IP address>] [--blobPort <port address>] 
    [-d | --debug <log file path>] [-l | --location <workspace path>]
    [--queueHost <IP address>] [--queuePort <port address>]
    [-s | --silent] [-h | --help]

- D 는-- debug의 바로 가기입니다.- l 스위치는-- location의 바로 가기입니다.- s 는-- silent의 바로 가기입니다.- h--help의 바로 가기입니다.The -d is a shortcut for --debug, -l switch is a shortcut for --location, -s is a shortcut for --silent, and -h is a shortcut for --help.

Blob 수신 대기 호스트Blob listening host

선택 사항 기본적으로 Azurite는 로컬 서버로 127.0.0.1을 수신 합니다.Optional By default, Azurite will listen to 127.0.0.1 as the local server. --Blobhost 스위치를 사용 하 여 주소를 요구 사항으로 설정 합니다.Use the --blobHost switch to set the address to your requirements.

로컬 컴퓨터 에서만 요청 수락:Accept requests on the local machine only:

azurite --blobHost 127.0.0.1

원격 요청 허용:Allow remote requests:

azurite --blobHost 0.0.0.0

주의

원격 요청을 허용 하면 시스템이 외부 공격에 취약 해질 수 있습니다.Allowing remote requests may make your system vulnerable to external attacks.

Blob 수신 대기 포트 구성Blob listening port configuration

선택 사항 기본적으로 Azurite는 포트 1만에서 Blob service를 수신 대기 합니다.Optional By default, Azurite will listen for the Blob service on port 10000. --Blobport 스위치를 사용 하 여 필요한 수신 대기 포트를 지정 합니다.Use the --blobPort switch to specify the listening port that you require.

참고

사용자 지정 된 포트를 사용한 후 Azure Storage 도구나 Sdk에서 연결 문자열 또는 해당 구성을 업데이트 해야 합니다.After using a customized port, you need to update the connection string or corresponding configuration in your Azure Storage tools or SDKs.

Blob service 수신 대기 포트를 사용자 지정 합니다.Customize the Blob service listening port:

azurite --blobPort 8888

시스템에서 사용 가능한 포트를 자동으로 선택 하도록 합니다.Let the system auto select an available port:

azurite --blobPort 0

Azurite을 시작 하는 동안 사용 중인 포트가 표시 됩니다.The port in use is displayed during Azurite startup.

큐 수신 대기 호스트Queue listening host

선택 사항 기본적으로 Azurite는 로컬 서버로 127.0.0.1을 수신 합니다.Optional By default, Azurite will listen to 127.0.0.1 as the local server. --Queuehost 스위치를 사용 하 여 주소를 요구 사항으로 설정 합니다.Use the --queueHost switch to set the address to your requirements.

로컬 컴퓨터 에서만 요청 수락:Accept requests on the local machine only:

azurite --queueHost 127.0.0.1

원격 요청 허용:Allow remote requests:

azurite --queueHost 0.0.0.0

주의

원격 요청을 허용 하면 시스템이 외부 공격에 취약 해질 수 있습니다.Allowing remote requests may make your system vulnerable to external attacks.

큐 수신 대기 포트 구성Queue listening port configuration

선택 사항 기본적으로 Azurite는 포트 10001에서 큐 서비스를 수신 대기 합니다.Optional By default, Azurite will listen for the Queue service on port 10001. --Queueport 스위치를 사용 하 여 필요한 수신 대기 포트를 지정 합니다.Use the --queuePort switch to specify the listening port that you require.

참고

사용자 지정 된 포트를 사용한 후 Azure Storage 도구나 Sdk에서 연결 문자열 또는 해당 구성을 업데이트 해야 합니다.After using a customized port, you need to update the connection string or corresponding configuration in your Azure Storage tools or SDKs.

큐 서비스 수신 대기 포트를 사용자 지정 합니다.Customize the Queue service listening port:

azurite --queuePort 8888

시스템에서 사용 가능한 포트를 자동으로 선택 하도록 합니다.Let the system auto select an available port:

azurite --queuePort 0

Azurite을 시작 하는 동안 사용 중인 포트가 표시 됩니다.The port in use is displayed during Azurite startup.

작업 영역 경로Workspace path

선택 사항 Azurite는 실행 중에 데이터를 로컬 디스크에 저장 합니다.Optional Azurite stores data to the local disk during execution. --Location 스위치를 사용 하 여 경로를 작업 영역 위치로 지정 합니다.Use the --location switch to specify a path as the workspace location. 기본적으로 현재 프로세스 작업 디렉터리가 사용 됩니다.By default, the current process working directory will be used.

azurite --location c:\azurite
azurite -l c:\azurite

액세스 로그Access log

선택 사항 기본적으로 액세스 로그는 콘솔 창에 표시 됩니다.Optional By default, the access log is displayed in the console window. --자동 스위치를 사용 하 여 액세스 로그 표시를 사용 하지 않도록 설정 합니다.Disable the display of the access log by using the --silent switch.

azurite --silent
azurite -s

디버그 로그Debug log

선택 사항 디버그 로그에는 모든 요청 및 예외 스택 추적에 대 한 자세한 정보가 포함 되어 있습니다.Optional The debug log includes detailed information on every request and exception stack trace. --Debug 스위치에 올바른 로컬 파일 경로를 제공 하 여 디버그 로그를 사용 하도록 설정 합니다.Enable the debug log by providing a valid local file path to the --debug switch.

azurite --debug path/debug.log
azurite -d path/debug.log

도구 및 Sdk에 대 한 권한 부여Authorization for tools and SDKs

인증 전략을 사용 하 여 Azure Storage 탐색기와 같은 Azure Storage sdk 또는 도구에서 Azurite에 연결 합니다.Connect to Azurite from Azure Storage SDKs or tools, like Azure Storage Explorer, by using any authentication strategy. 인증이 필요 합니다.Authentication is required. Azurite는 공유 키 및 SAS (공유 액세스 서명)를 사용한 권한 부여를 지원 합니다.Azurite supports authorization with Shared Key and shared access signatures (SAS). Azurite는 공용 컨테이너에 대 한 익명 액세스도 지원 합니다.Azurite also supports anonymous access to public containers.

잘 알려진 저장소 계정 및 키Well-known storage account and key

Azurite에서 다음 계정 이름 및 키를 사용할 수 있습니다.You can use the following account name and key with Azurite. 레거시 Azure 저장소 에뮬레이터에서 사용 하는 것과 동일한 잘 알려진 계정 및 키입니다.This is the same well-known account and key used by the legacy Azure storage emulator.

  • 계정 이름:devstoreaccount1Account name: devstoreaccount1
  • 계정 키:Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

참고

Azurite는 SharedKey 인증 외에도 계정 및 서비스 SAS 인증을 지원 합니다.In addition to SharedKey authentication, Azurite supports account and service SAS authentication. 공용 액세스를 허용 하도록 컨테이너를 설정 하는 경우에도 익명 액세스를 사용할 수 있습니다.Anonymous access is also available when a container is set to allow public access.

연결 문자열Connection string

응용 프로그램에서 Azurite에 연결 하는 가장 쉬운 방법은 UseDevelopmentStorage = true바로 가기를 참조 하는 응용 프로그램의 구성 파일에서 연결 문자열을 구성 하는 것입니다.The easiest way to connect to Azurite from your application is to configure a connection string in your application's configuration file that references the shortcut UseDevelopmentStorage=true. 다음은 app.config 파일에 있는 연결 문자열의 예입니다.Here's an example of a connection string in an app.config file:

<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>

자세한 내용은 Azure Storage 연결 문자열 구성을 참조하세요.For more information, see Configure Azure Storage connection strings.

Storage 탐색기Storage Explorer

Azure Storage 탐색기에서 계정 추가 아이콘을 클릭 하 여 Azurite에 연결한 다음 로컬 에뮬레이터에 연결을 선택 하 고 연결을 클릭 합니다.In Azure Storage Explorer, connect to Azurite by clicking the Add Account icon, then select Attach to a local emulator and click Connect.

Azurite와 Azure Storage 간의 차이점Differences between Azurite and Azure Storage

Azurite의 로컬 인스턴스와 클라우드의 Azure Storage 계정 사이에는 기능적인 차이점이 있습니다.There are functional differences between a local instance of Azurite and an Azure Storage account in the cloud.

끝점 및 연결 URLEndpoint and connection URL

Azurite에 대 한 서비스 끝점은 Azure Storage 계정의 끝점과 다릅니다.The service endpoints for Azurite are different from the endpoints of an Azure Storage account. 로컬 컴퓨터는 도메인 이름 확인을 수행 하지 않습니다. Azurite 끝점은 로컬 주소 여야 합니다.The local computer doesn't do domain name resolution, requiring Azurite endpoints to be local addresses.

Azure Storage 계정에서 리소스에 주소를 표시 하는 경우 계정 이름은 URI 호스트 이름의 일부입니다.When you address a resource in an Azure Storage account, the account name is part of the URI host name. 주소를 지정 하는 리소스는 URI 경로의 일부입니다.The resource being addressed is part of the URI path:

<http|https>://<account-name>.<service-name>.core.windows.net/<resource-path>

다음 URI는 Azure Storage 계정의 blob에 대 한 올바른 주소입니다.The following URI is a valid address for a blob in an Azure Storage account:

https://myaccount.blob.core.windows.net/mycontainer/myblob.txt

로컬 컴퓨터가 도메인 이름 확인을 수행 하지 않기 때문에 계정 이름은 호스트 이름이 아닌 URI 경로의 일부입니다.Since the local computer doesn't do domain name resolution, the account name is part of the URI path instead of the host name. Azurite의 리소스에 대해 다음 URI 형식을 사용 합니다.Use the following URI format for a resource in Azurite:

http://<local-machine-address>:<port>/<account-name>/<resource-path>

Azurite에서 blob에 액세스 하는 데 사용할 수 있는 주소는 다음과 같습니다.The following address might be used for accessing a blob in Azurite:

http://127.0.0.1:10000/myaccount/mycontainer/myblob.txt

크기 조정 및 성능Scaling and performance

Azurite는 확장 가능한 저장소 서비스가 아니므로 많은 수의 동시 클라이언트를 지원 하지 않습니다.Azurite is not a scalable storage service and does not support a large number of concurrent clients. 성능 보장은 없습니다.There's no performance guarantee. Azurite은 개발 및 테스트 목적으로 작성 되었습니다.Azurite is intended for development and testing purposes.

오류 처리Error handling

Azurite는 Azure Storage 오류 처리 논리와 맞춰져 있지만 차이가 있습니다.Azurite is aligned with Azure Storage error handling logic, but there are differences. 예를 들어 오류 메시지는 서로 다를 수 있으며, 오류 상태 코드는 정렬 됩니다.For example, error messages may be different, while error status codes align.

RA-GRSRA-GRS

Azurite는 읽기 액세스 지역 중복 복제 (RA-GRS)를 지원 합니다.Azurite supports read-access geo-redundant replication (RA-GRS). 저장소 리소스의 경우 계정 이름에 -secondary 를 추가 하 여 보조 위치에 액세스 합니다.For storage resources, access the secondary location by appending -secondary to the account name. 예를 들어 Azurite의 읽기 전용 보조 데이터베이스를 사용 하 여 blob에 액세스 하기 위해 다음 주소를 사용할 수 있습니다.For example, the following address might be used for accessing a blob using the read-only secondary in Azurite:

http://127.0.0.1:10000/devstoreaccount1-secondary/mycontainer/myblob.txt

Azurite는 오픈 소스입니다.Azurite is open-source

Azurite에 대 한 기여 및 제안은 환영 합니다.Contributions and suggestions for Azurite are welcome. 예정 된 기능 및 버그 수정에 대해 추적 중인 마일스 톤 및 작업 항목에 대해서는 Azurite github 프로젝트 페이지 또는 github 문제 를 참조 하세요.Go to the Azurite GitHub project page or GitHub issues for milestones and work items we're tracking for upcoming features and bug fixes. 자세한 작업 항목은 GitHub 에서도 추적 됩니다.Detailed work items are also tracked in GitHub.

다음 단계Next steps