airflow.providers.microsoft.azure.operators.container_instances

屬性

DEFAULT_ENVIRONMENT_VARIABLES

DEFAULT_SECURED_VARIABLES

DEFAULT_VOLUMES

DEFAULT_MEMORY_IN_GB

DEFAULT_CPU

Volume

AzureContainerInstancesOperator

在 Azure Container Instances 上啟動容器。

模組內容

class airflow.providers.microsoft.azure.operators.container_instances.Volume[source]

基類: tuple

conn_id[source]
account_name[source]
share_name[source]
mount_path[source]
read_only[source]
airflow.providers.microsoft.azure.operators.container_instances.DEFAULT_ENVIRONMENT_VARIABLES: dict[str, str][source]
airflow.providers.microsoft.azure.operators.container_instances.DEFAULT_SECURED_VARIABLES: collections.abc.Sequence[str] = [][source]
airflow.providers.microsoft.azure.operators.container_instances.DEFAULT_VOLUMES: collections.abc.Sequence[Volume] = [][source]
airflow.providers.microsoft.azure.operators.container_instances.DEFAULT_MEMORY_IN_GB = 2.0[source]
airflow.providers.microsoft.azure.operators.container_instances.DEFAULT_CPU = 1.0[source]
class airflow.providers.microsoft.azure.operators.container_instances.AzureContainerInstancesOperator(*, ci_conn_id, resource_group, name, image, region, registry_conn_id=None, environment_variables=None, secured_variables=None, volumes=None, memory_in_gb=None, cpu=None, gpu=None, command=None, remove_on_error=True, fail_if_exists=True, tags=None, xcom_all=None, os_type='Linux', restart_policy='Never', ip_address=None, ports=None, subnet_ids=None, dns_config=None, diagnostics=None, priority='Regular', **kwargs)[source]

基類: airflow.models.BaseOperator

在 Azure Container Instances 上啟動容器。

引數:
  • ci_conn_id (str) – 用於啟動容器例項的服務主體連線 ID

  • registry_conn_id (str | None) – 可登入到私有 Docker 登錄檔的使用者連線 ID。對於 Azure,使用 Azure 連線 ID

  • resource_group (str) – 應在其上啟動此容器例項的資源組名稱

  • name (str) – 此容器例項的名稱。請注意,此名稱必須唯一才能並行執行容器。

  • image (str) – 要使用的 Docker 映象

  • region (str) – 應在其上啟動此容器例項的區域

  • environment_variables (dict | None) – 包含將傳遞給正在執行的容器的環境變數的鍵值對

  • secured_variables (str | None) – 不應在容器外部公開的環境變數名稱(通常是密碼)。

  • volumes (list | None) – 要掛載到容器的 Volume 元組列表。目前僅支援 Azure 檔案共享。

  • memory_in_gb (Any | None) – 為此容器分配的記憶體量

  • cpu (Any | None) – 為此容器分配的 CPU 數量

  • gpu (Any | None) – 容器的 GPU 資源。

  • command (list[str] | None) – 要在容器內部執行的命令

  • container_timeout – 允許容器例項執行的最大時間。

  • tags (dict[str, str] | None) – Azure 標籤,格式為 str:str 的字典

  • xcom_all (bool | None) – 控制日誌是否像 DockerOperator 那樣推送到 XCOM。可能的值包括:‘None’、‘True’、‘False’。預設為 ‘None’,表示不將日誌推送到 XCOM,這是歷史行為。‘True’ 表示將所有日誌推送到 XCOM,這可能會有達到 XCOM 大小限制的風險。‘False’ 表示僅將日誌的最後一行推送到 XCOM。但是,日誌會被推送到 XCOM 的“logs”下,而不是 return_value,以避免破壞現有行為。

  • os_type (str) – 容器組中容器所需的作業系統型別。可能的值包括:‘Windows’、‘Linux’

  • restart_policy (str) – 容器組中所有容器的重啟策略。可能的值包括:‘Always’、‘OnFailure’、‘Never’

  • ip_address (azure.mgmt.containerinstance.models.IpAddress | None) – 容器組的 IP 地址型別。

  • subnet_ids (list[azure.mgmt.containerinstance.models.ContainerGroupSubnetId] | None) – 容器組的子網資源 ID

  • dns_config (azure.mgmt.containerinstance.models.DnsConfiguration | None) – 容器組的 DNS 配置。

  • diagnostics (azure.mgmt.containerinstance.models.ContainerGroupDiagnostics | None) – 容器組診斷資訊(Log Analytics)。

  • priority (str | None) – 容器組優先順序。可能的值包括:‘Regular’、‘Spot’

示例:

AzureContainerInstancesOperator(
    ci_conn_id="azure_service_principal",
    registry_conn_id="azure_registry_user",
    resource_group="my-resource-group",
    name="my-container-name-{{ ds }}",
    image="myprivateregistry.azurecr.io/my_container:latest",
    region="westeurope",
    environment_variables={
        "MODEL_PATH": "my_value",
        "POSTGRES_LOGIN": "{{ macros.connection('postgres_default').login }}",
        "POSTGRES_PASSWORD": "{{ macros.connection('postgres_default').password }}",
        "JOB_GUID": "{{ ti.xcom_pull(task_ids='task1', key='guid') }}",
    },
    secured_variables=["POSTGRES_PASSWORD"],
    volumes=[
        (
            "azure_container_instance_conn_id",
            "my_storage_container",
            "my_fileshare",
            "/input-data",
            True,
        ),
    ],
    memory_in_gb=14.0,
    cpu=4.0,
    gpu=GpuResource(count=1, sku="K80"),
    subnet_ids=[
        {
            "id": "/subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/my_rg/providers/Microsoft.Network/virtualNetworks/my_vnet/subnets/my_subnet"
        }
    ],
    dns_config={"name_servers": ["10.0.0.10", "10.0.0.11"]},
    diagnostics={
        "log_analytics": {
            "workspaceId": "workspaceid",
            "workspaceKey": "workspaceKey",
        }
    },
    priority="Regular",
    command=["/bin/echo", "world"],
    task_id="start_container",
)
template_fields: collections.abc.Sequence[str] = ('name', 'image', 'command', 'environment_variables', 'volumes')[source]
template_fields_renderers[source]
ci_conn_id[source]
resource_group[source]
name[source]
image[source]
region[source]
registry_conn_id = None[source]
environment_variables[source]
secured_variables = [][source]
volumes = [][source]
memory_in_gb = 2.0[source]
cpu = 1.0[source]
gpu = None[source]
command = None[source]
remove_on_error = True[source]
fail_if_exists = True[source]
tags = None[source]
xcom_all = None[source]
os_type ='Linux'[source]
restart_policy ='Never'[source]
ip_address =None[source]
ports =None[source]
subnet_ids =None[source]
dns_config =None[source]
diagnostics =None[source]
priority ='Regular'[source]
execute(context)[source]

建立運算子時派生。

上下文是渲染 Jinja 模板時使用的相同字典。

有關更多上下文,請參閱 get_template_context。

on_kill()[source]

重寫此方法以在任務例項被終止時清理子程序。

在運算子中使用的任何 threading、subprocess 或 multiprocessing 模組都需要清理,否則會留下幽靈程序。

此條目有幫助嗎?