작업 기능은 Deployment Manager가 호출할 수 있는 API 메서드의 범위를 확장하는 알파 기능입니다. 이 기능은 지원되지 않으므로 지원되는 대안으로 작업의 기존 사용을 마이그레이션하는 것이 좋습니다. 일반적으로 사용되는 작업 storage.buckets.setIamPolicy
는 기존 Deployment Manager 리소스 유형인 virtual.buckets.iamMemberBinding
에 해당하며 이 리소스 유형을 사용하여 작업을 대체할 수 있습니다.
storage.buckets.setIamPolicy
에서 virtual.buckets.iamMemberBinding
으로 배포 마이그레이션
virtual.buckets.iamMemberBinding
리소스는 Identity and Access Management(IAM) 정책 binding을 나타내는 가상 리소스입니다. 전체 유형은 gcp-types/storage-v1:virtual.buckets.iamMemberBinding
입니다.
virtual.buckets.iamMemberBinding
에는 Deployment Manager 백엔드에서 생성, 읽기, 업데이트, 삭제(CRUD) 작업의 커스텀 구현이 있습니다. 이는 작업 storage.buckets.setIamPolicy
에서 호출한 메서드와 유사한 메서드를 호출하지만 작업 대신 일반 리소스로 모델링되며 일반 리소스 유형과 동일한 수명 주기를 따릅니다.
배포를 마이그레이션하려면 모든 배포 구성 파일에서 storage.buckets.setIamPolicy
작업의 사용을 virtual.buckets.iamMemberBinding
리소스로 대체합니다. binding이 여러 개 있는 경우 binding마다 동일한 로직을 구현하기 위해 여러 리소스가 필요할 수 있습니다. 가상 유형은 리소스의 기존 binding을 대체하지 않지만 새 binding을 패치합니다.
수동 마이그레이션 사용 예시
수동으로 마이그레이션을 완료하려면 다음 사용 예시를 참조하세요. 여러 IAM binding 적용과 같은 특정 상황에서는 경합 상태와 같은 상황을 방지하기 위해 metadata.dependsOn
또는 다른 리소스에 대한 참조를 iamMemberBinding
리소스에 추가해야 할 수 있습니다.
YAML + Jinja
다음은 YAML 구성 파일에서 setIamPolicy
작업이 사용되는 방법의 예시입니다. 이 방법은 지원되지 않으므로 iamMemberBinding
가상 리소스의 사용으로 대체해야 합니다.
- name: patch-iam-policy
action: gcp-types/storage-v1:storage.buckets.setIamPolicy
properties:
bucket:
policy: # existing policy, e.g. from a getIamPolicyAction
gcpIamPolicyPatch:
add:
다음 샘플은 YAML 및 Jinja 템플릿에서 iamMemberBinding
가상 리소스의 권장 용도를 보여줍니다.
{% set BUCKETNAME = "bucket-" + env["deployment"] %}
resources:
- type: gcp-types/storage-v1:buckets
name: {{ BUCKETNAME }}
properties:
location: US
storageClass: STANDARD
- type: gcp-types/storage-v1:virtual.buckets.iamMemberBinding
name: test-bucket-iam
properties:
bucket: $(ref.{{ BUCKETNAME }}.name)
member: projectEditor:{{ env["project"] }}
role: roles/storage.admin
Python
다음은 Python 템플릿에서 setIamPolicy
작업이 사용되는 방법의 예시입니다. 이 방법은 지원되지 않으므로 iamMemberBinding
가상 리소스의 사용으로 대체해야 합니다.
다음 샘플에서는 Python 템플릿에서 iamMemberBinding
가상 리소스의 권장 용도를 보여줍니다.
GitHub의 cloud-foundation-toolkit
저장소에서 gcs-bucket.py
템플릿과 관련된 추가 샘플을 찾을 수 있습니다. setIamPolicy
작업 사용에서 iamMemberBinding
가상 리소스 사용으로 gcs-bucket.py
템플릿을 변환하는 과정에 대한 자세한 내용은 변환 예시를 참조하세요.
변환된 템플릿의 사용 예시도 찾을 수 있습니다.