首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS CDK添加端口映射

AWS CDK添加端口映射
EN

Stack Overflow用户
提问于 2022-06-21 16:58:35
回答 1查看 261关注 0票数 1

我尝试了很多不同的事情,但我似乎不能让这件事对我起作用。

我试图在ecs.TaskDefinition结构中用aws为我的容器声明端口。

我一直收到一个错误,即数组类型是预期的,即使我使用的是ecs.PortMapping参数所需的五进制port_mappings构造。

代码语言:javascript
复制
File "/home/user/.local/share/virtualenvs/AWS_Automation--K5ZV1iW/lib/python3.9/site-packages/aws_cdk/aws_ecs/__init__.py", line 27675, in add_container
    return typing.cast(ContainerDefinition, jsii.invoke(self, "addContainer", [id, props]))
  File "/home/user/.local/share/virtualenvs/AWS_Automation--K5ZV1iW/lib/python3.9/site-packages/jsii/_kernel/__init__.py", line 143, in wrapped
    return _recursize_dereference(kernel, fn(kernel, *args, **kwargs))
  File "/home/user/.local/share/virtualenvs/AWS_Automation--K5ZV1iW/lib/python3.9/site-packages/jsii/_kernel/__init__.py", line 355, in invoke
    response = self.provider.invoke(
  File "/home/user/.local/share/virtualenvs/AWS_Automation--K5ZV1iW/lib/python3.9/site-packages/jsii/_kernel/providers/process.py", line 359, in invoke
    return self._process.send(request, InvokeResponse)
  File "/home/user/.local/share/virtualenvs/AWS_Automation--K5ZV1iW/lib/python3.9/site-packages/jsii/_kernel/providers/process.py", line 326, in send
    raise JSIIError(resp.error) from JavaScriptError(resp.stack)
jsii.errors.JSIIError: Expected array type, got {"$jsii.struct":{"fqn":"aws-cdk-lib.aws_ecs.PortMapping","data":{"containerPort":8501,"hostPort":null,"protocol":null}}}

任何帮助都将不胜感激。我的相关代码在下面。

代码语言:javascript
复制
from aws_cdk import (aws_ec2 as ec2, aws_ecs as ecs,
                     aws_ecs_patterns as ecs_patterns, 
                     aws_ecs as ecs,
                     aws_ecr as ecr, 
                     aws_route53 as route53,
                     aws_certificatemanager as certificatemanager,
                     aws_elasticloadbalancingv2 as elbv2)

container_port_mappings = ecs.PortMapping(container_port = 8501)

        task_def = ecs.TaskDefinition(self,
                                      'TD',
                                      compatibility = ecs.Compatibility.FARGATE,
                                      cpu = '512',
                                      memory_mib = '1024'
        )
        
        task_def.add_container("SL_container",
            image=ecs.ContainerImage.from_ecr_repository(_repo),
            port_mappings = container_port_mappings
        )       
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-21 18:49:14

port_mappings 接受一个列表 of PortMapping对象:

代码语言:javascript
复制
container_port_mappings = [ecs.PortMapping(container_port = 8501)]

顺便说一下,CDK支持Python,这有助于避免这些类型的错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72704560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档