Score:0

AWS CDK เพิ่มเส้นทาง 53 นามแฝงบันทึกวิธีที่ง่ายที่สุด

ธง us

ฉันได้สร้าง API Gateway สำหรับ websockets ด้วย CDK เพื่อให้จำ URL ได้ง่ายขึ้น ฉันต้องการให้ ALIAS แก่ sadjl342r.execute-api.amazonaws ใน Route53

บางอย่างเช่น "my-ws-api.mydomain.tld"

นี่คือวิธีที่ฉันสร้างเกตเวย์ API

const websocketEventsLambda: IFunction = this.createWebsocketsLambda(props.stage);

this.apiGatewayWebSockets = CfnApi ใหม่ (สิ่งนี้, apiGatewayId, {
    ชื่อ: apiGatewayId
    ประเภทโปรโตคอล: "เว็บซ็อกเก็ต",
    routeSelectionExpression: "$request.body.topic",
    apiKeySelectionExpression: "$request.header.x-api-key"
});

const connectIntegration = ใหม่ CfnIntegration (
    นี้,
    "websockets-connect-lambda-integration-" + props.stage
    {
        apiId: this.apiGatewayWebSockets.ref
        ประเภทการเชื่อมต่อ: "อินเทอร์เน็ต",
        ประเภทการรวม: "AWS_PROXY",
        วิธีการรวม: "POST",
        การรวมUri:
            "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda" +
            ":<REGION>:<ACCOUNT_ID>:function:" + websocketEventsLambda.functionName +
            "/ คำขอ",
        passthroughBehavior: "WHEN_NO_MATCH",
        payloadFormatVersion: "1.0",
    }
);

const connectRoute = CfnRoute ใหม่ (
    นี้,
    "apigateway-websockets-เชื่อมต่อเส้นทาง-" + props.stage
    {
        apiId: this.apiGatewayWebSockets.ref
        เส้นทางคีย์: "$connect",
        authorizationType: "ไม่มี",
        เป้าหมาย: "การรวมระบบ/" + connectIntegration.ref
    }
);

การปรับใช้ const = CfnDeployment ใหม่ (
    นี้,
    `apigatewayv2-websockets-deployment-` + props.stage,
    {
        apiId: this.apiGatewayWebSockets.ref
    }
);

ใหม่ CfnStage(นี่ `apigateway-stage-${props.stage}`, {
    apiId: this.apiGatewayWebSockets.ref
    autoDeploy: จริง
    DeploymentId: การปรับใช้.ref
    ชื่อเวที: props.stage
});

การปรับใช้.addDependsOn (connectRoute);
การปรับใช้.addDependsOn (disconnectRoute);
deployment.addDependsOn(subscribeRoute);
การปรับใช้.addDependsOn (defaultRoute);

this.webSocketsApiURL =
    การปรับใช้ apiId +
    ".execute-api" +
    this.region +
    ".amazonaws.com/" + props.stage;

ตอนนี้ฉันพยายามสร้าง ARecord ภายในขอบเขตเดียวกัน (ฉันใช้คำตอบนี้เป็นจุดเริ่มต้น: https://stackoverflow.com/a/56599567/15013406)

const domainName: string = "ws-api-" + props.stage + "." + โดเมน;

ใหม่ route53.ARecord (นี่ "AliasRecord", {
    ชื่อระเบียน: ชื่อโดเมน,
    เป้าหมาย: route53.RecordTarget.fromAlias({
        ผูก () {
            กลับ {
                ชื่อ DNS: webSocketsApiURL
                hostedZoneId: idontknowwhattoenterhere
            };
        }
    }),
    โซน: hostedZone
});

ฉันไม่รู้ว่าต้องป้อนอะไรสำหรับ hostedZoneId ในข้อมูลโค้ดสุดท้าย โปรดทราบว่าคำตอบนี้ระบุว่าต้องเป็นโซนอื่นที่ไม่ใช่โซนของโดเมนของฉันเองที่ควรชี้ไปที่ API Gateway

ดู https://stackoverflow.com/a/56599567/15013406:

หมายเหตุ: hostedZoneId สำหรับบันทึกนามแฝงของคุณไม่เหมือนกับรหัสโซนที่โฮสต์ของโซนของคุณเอง

)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา