在AWS CDK中创建EFS时,可以指定Access Point的名称来创建单个Access Point:
const accessPoint = efs.addAccessPoint('my-access-point');
如果需要创建多个Access Points,则可以通过在Access Point名称中添加随机后缀来创建:
import * as crypto from 'crypto';
const suffix = crypto.randomBytes(8).toString('hex');
const accessPointName = `my-access-point-${suffix}`;
const accessPoint = efs.addAccessPoint(accessPointName, {
path: '/path/',
createAcl: {
ownerGid: 'gid',
ownerUid: 'uid',
permissions: '755',
},
});
判断应该使用已经存在的Access Point还是创建新的Access Point可以通过检查Access Point名称是否已经存在来决定:
import { CfnOutput } from '@aws-cdk/core';
import { AccessPoint } from '@aws-cdk/aws-efs';
const accessPoints = efs.accessPoints;
if (accessPoints.some((accessPoint: AccessPoint) => accessPoint.accessPointId === 'my-access-point')) {
// Use existing Access Point
new CfnOutput(this, 'Access Point ID', { value: accessPoint.accessPointId });
} else {
// Create new Access Point
const accessPoint = efs.addAccessPoint('my-access-point');
new CfnOutput(this, 'Access Point ID', { value: accessPoint.accessPointId });
}