【发布时间】:2022-01-08 08:34:00
【问题描述】:
我正在尝试在 Azure 上复制我在 AWS 上的部署。我在 aws 上有一个完全基于无服务器的架构,它由带有 s3 触发器的 aws lambda、aws sagemaker 处理作业和 aws ecr 组成。只有存在 FILE A 和 FILE B 时,lambda 才会触发 sagemaker 处理作业(使用 python BOTO3 库)。 从某种意义上说,我在我的 lambda 函数中提到了一个 if 条件,它表示只有在这两个文件存在时才会触发作业。当我上传这两个文件时会触发 lambda。 aws 对此有非常广泛的文档,它有一个我可以提到的特定路径,然后将这些文件复制到 sagemaker 处理作业容器 (opt/ml/processing) 中。它还有一个参数来指定算法或 docker 图像,它可以指示作业如何处理这两个文件。 现在我想在天蓝色上实现同样的目标,但在这里很难找到类似的东西。 然而,我确实发现了一些非常相似的东西,那就是我可以在具有 blob 触发器的 azure 函数中提供的 azure 容器实例。 现在我遇到的困难是如何将这些 FILE A 和 FILE B 推入容器中? 同样,一旦容器完成了它应该做的任何事情,它就会生成一堆需要存储在某个地方的输出文件。如果可能,我需要将它们存储在 blob 存储中。
我想要的是在触发函数应用程序时触发创建天蓝色容器实例。当上传文件 A 和文件 B 时,将触发函数应用程序(blob 触发器)。然后这些文件应该进入容器。我找到了一个脚本:
def create_container_group(aci_client, resource_group,
container_group_name, container_image_name):
"""Creates a container group with a single container.
Arguments:
aci_client {azure.mgmt.containerinstance.ContainerInstanceManagementClient}
-- An authenticated container instance management client.
resource_group {azure.mgmt.resource.resources.models.ResourceGroup}
-- The resource group in which to create the container group.
container_group_name {str}
-- The name of the container group to create.
container_image_name {str}
-- The container image name and tag, for example:
microsoft\aci-helloworld:latest
"""
print("Creating container group '{0}'...".format(container_group_name))
# Configure the container
container_resource_requests = ResourceRequests(memory_in_gb=1, cpu=1.0)
container_resource_requirements = ResourceRequirements(
requests=container_resource_requests)
container = Container(name=container_group_name,
image=container_image_name,
resources=container_resource_requirements,
ports=[ContainerPort(port=80)])
# Configure the container group
ports = [Port(protocol=ContainerGroupNetworkProtocol.tcp, port=80)]
group_ip_address = IpAddress(ports=ports,
dns_name_label=container_group_name,
type="Public")
group = ContainerGroup(location=resource_group.location,
containers=[container],
os_type=OperatingSystemTypes.linux,
ip_address=group_ip_address)
但我不知道如何在容器内传输这些文件。
【问题讨论】:
标签: python azure docker azure-functions azure-container-instances