2017-10-15 4 views
1

파이썬을 사용하여 내 풀을 만들고 싶습니다. 마켓 플레이스에서 이미지 (Ubuntu Server 16.04)를 사용할 때이 작업을 수행 할 수 있지만 원하는 라이브러리와 설정으로 준비한 사용자 정의 이미지 (우분투 서버 16.04)를 사용하고 싶습니다. 내 수영장 만드는 오전 방법Azure 배치 풀 : Python을 통해 사용자 정의 VM 이미지를 사용하려면 어떻게해야합니까?

이있다 : 내 이미지 참조를 만들 batch.models.ImageReference()를 사용할 필요가

new_pool = batch.models.PoolAddParameter(
     id=pool_id, 
     virtual_machine_configuration=batchmodels.VirtualMachineConfiguration(
      image_reference=image_ref_to_use, # ?? 
      node_agent_sku_id=sku_to_use), 
     vm_size=_POOL_VM_SIZE, 
     target_dedicated_nodes=_POOL_NODE_COUNT, 
     start_task=start_task, 
     max_tasks_per_node=_CORES_PER_NODE 
) 

나는 영상을 ...하지만 난 그것을 사용하는 방법을 모르겠어요.

푸른 가상 머신 마켓 플레이스의 이미지 또는 사용자 정의 푸른 가상 머신 이미지에 대한 참조 :

예, 나는 다음과 같은 말한다 documentation을 확인.

그것은으로 매개 변수를 나열

:

  • 출판사 (STR)
  • 제공 (STR)
  • SKU (STR)
  • 버전 (STR)
  • virtual_machine_image_id (STR)

그러나 t 그는 virtual_machine_image_id 매개 변수가 없습니다 ... 즉, batch.models.ImageReference(virtual_machine_image_id)은 허용되지 않습니다.

내 풀에 어떻게 맞춤 이미지를 사용할 수 있습니까? UPDATE

그래서 나는 사용자 정의 이미지를 사용하는 방법을 알아 냈 ... 그것이 내가 푸른 파이썬 라이브러리 및 제거 횟수에 상관없이 그들을 재 - 설치하는 것이 판명는 virtual_machine_image_id 사용할 결코 .

그럼 나는 here을 다운로드했습니다. 개봉하여 ImageReference 등급을 확인한 후 virtual_machine_image_id__init__ImageReference 클래스의 기능을 사용할 수있었습니다. 파이썬 휠을 다운로드하고 pip를 사용하여 설치했습니다. 붐이 작동했습니다.

또는 그렇게 생각했습니다.

나는 그 다음 node_agent_sku_id가 무엇인지에 관해 계산하려고 노력해야했다. 단지 수동으로 웅덩이를 만들고, Batch Node Agent SKU ID 필드를 보는 것만으로 그것을 발견 할 수 있었다. 서버가 요청을 인증하지 못했습니다

:

는 지금은

내가 점점 오전 오류는 ... 인증 고민하고있다. 인증 헤더의 값이 서명을 포함하여 올바르게 형성되었는지 확인하십시오.

AuthenticationErrorDetail : Compute 유형의 외부 리소스가 인 경우 지정된 유형의 인증 SharedKey가 허용되지 않습니다.

azure.batch.models.batch_error.BatchErrorException : { 'lang': 'en-US', 'value': '서버가 요청을 인증하지 못했습니다. 이 있는지 확인 인증 헤더의 값이 서명을 포함하여 올바르게 형성된다 \ nRequestId :. f8c1a3b3-65c4-4efd-9c4f-75c5c253f992의 \ n 시간 : 2017-10-15T20 : 36 : 06.7898187Z '}

오류에서, 나는 내가 SharedKeyCredentials를 사용하도록 허용하고 있지 않다 이해 :

credentials = batchauth.SharedKeyCredentials(_BATCH_ACCOUNT_NAME, 
              _BATCH_ACCOUNT_KEY) 

batch_client = batch.BatchServiceClient(
    credentials, 
    base_url=_BATCH_ACCOUNT_URL) 

나는 무엇을해야 하는가?

업데이트 2

확인을 클릭합니다.

from azure.batch import BatchServiceClient 
from azure.common.credentials import ServicePrincipalCredentials 

credentials = ServicePrincipalCredentials(
    client_id=CLIENT_ID, 
    secret=SECRET, 
    tenant=TENANT_ID, 
    resource="https://batch.core.windows.net/" 
) 
    batch_client = BatchServiceClient(
    credentials, 
    base_url=BATCH_ACCOUNT_URL 
) 

인증에 : 사용자 fpark 내가 사용할 필요가 저를 알렸다. 불행하게도, 위의 코드는 here으로 기술되어 있으며, CLIENT_ID 외에도 참조가 없습니다. 그렇습니다. https://azure-sdk-for-python.readthedocs.io/en/v2.0.0rc3/resourcemanagementauthentication.html

해당 페이지가 다른 웹 페이지로 저를 지적 : https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal

내가 그 튜토리얼을 따라 결국 내 응용 프로그램을 인증하기 위해 관리

나는 그 같은 일 것으로 보인다 문서의 다른 부분을 발견 할 수 ...

참고

응용 프로그램을 만드는 튜토리얼은 당신을 말할 것이다 :

응용 프로그램의 이름과 URL을 제공하십시오. 만들려는 애플리케이션 유형에 대해 웹 앱/ API 또는 Native를 선택합니다. 값을 설정 한 후 작성을 선택하십시오.

당신이 응용 프로그램 키를 얻을 수있는 옵션이 없습니다로 Native을 선택하지 마십시오 ...

+0

완성 된 코드를 게시 할 수 있습니까? – RedPanda

+0

이것은 매우 유용합니다 - 이미지 이름 앞에/구독/필요가 있음을 어떻게 알았습니까? – RedPanda

+0

Azure가 HTTP 로거에서 odata.metadata 아래에 리턴하는 상세한 오류 텍스트를 찾았습니다. 여기서 그들은 virtual_machine_image_id에 적합한 형식을 지정합니다. 이로 인해 VM 이미지 세부 정보를 볼 때 볼 수있는 Azure 포털의 이미지에 대한 "리소스 ID"필드를 복사해야한다는 것을 알게되었습니다. – RedPanda

답변

0

당신은 azure-batch 파이썬 SDK의 V4.0.0 이상을 설치해야합니다. 일반적으로 pip install --upgrade azure-batch을 사용하면 최신 버전을 가져와야합니다. 그래도 작동하지 않으면 --force-reinstall 옵션을 추가하여 강제로 적용 할 수 있습니다 (--upgrade 포함).

node_agent_sku_id의 적절한 값과 관련하여 운영 체제와 지원되는 노드 에이전트 skus 간의 매핑을 보려면 list_node_agent_skus 작업을 사용해야합니다.

인증 문제와 관련하여이 기능을 사용하려면 Azure Active Directory authentication을 사용해야합니다. 공유 키 인증에는 작동하지 않습니다. 불행하게도이 기능을 둘러싼 문서는 부족하고 현재 업데이트 중입니다.

+0

감사합니다. 'Azure Active Directory 인증'을 사용하는 방법에 대한 예가 있습니까? 어떻게해야합니까? 'batch.BatchServiceClient ( 자격증 명, base_url = _BATCH_ACCOUNT_URL) '에 무엇을 전달합니까? – pookie

+0

이 작업을 수행하는 방법을 보여주는 링크가 추가되었습니다. – fpark