嗨,我正在研究 aws cdk。我正在尝试获取现有的非默认 vpc。我尝试了以下选项。
vpc = ec2.Vpc.from_lookup(self, id = "VPC", vpc_id='vpcid', vpc_name='vpc-dev')
Run Code Online (Sandbox Code Playgroud)
这导致以下错误
[Error at /LocationCdkStack-cdkstack] Request has expired.
[Warning at /LocationCdkStack-cdkstack/TaskDef/mw-service] Proper policies need to be attached before pulling from ECR repository, or use 'fromEcrRepository'.
Found errors
Run Code Online (Sandbox Code Playgroud)
我试过的其他方法是
vpc = ec2.Vpc.from_vpc_attributes(self, 'VPC', vpc_id='vpc-839227e7', availability_zones=['ap-southeast-2a','ap-southeast-2b','ap-southeast-2c'])
Run Code Online (Sandbox Code Playgroud)
这导致
[Error at /LocationCdkStack-cdkstack] Request has expired.
[Warning at /LocationCdkStack-cdkstack/TaskDef/mw-service] Proper policies need to be attached before pulling from ECR repository, or use 'fromEcrRepository'.
Found errors
Run Code Online (Sandbox Code Playgroud)
我试过的其他方法是
vpc = ec2.Vpc.from_lookup(self, id = "VPC", is_default=True) // …
净核心项目。我已经成功构建了该项目。下面是我的 dockerfile。
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 4040
EXPOSE 5050
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["MWS.AspNetCoreApis/MWS.AspNetCoreApis.csproj", "MWS.AspNetCoreApis/"]
RUN dotnet restore "MWS.AspNetCoreApis/MWS.AspNetCoreApis.csproj"
COPY . .
WORKDIR "/src/MWS.AspNetCoreApis"
RUN dotnet build "MWS.AspNetCoreApis.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "MWS.AspNetCoreApis.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
CMD tail -f /dev/null
ENTRYPOINT ["dotnet", "MWS.AspNetCoreApis.dll"]
Run Code Online (Sandbox Code Playgroud)
我构建我的应用程序,如下docker build -t locationservices .所示,我构建我的图像。然后,当我使用它运行我的图像时,docker run -d locationservices它会给出一些长 ID。当我尝试点击 …
您好,我正在尝试创建带有 EBS 卷的 Amazon EC2 实例。我创建了一个 CloudFormation 模板:
AWSTemplateFormatVersion: "2010-09-09"
Description: "First EC2 instance"
Resources:
FirstLinuxEC2instance:
Type: AWS::EC2::Instance
Properties:
AvailabilityZone: 'ap-southeast-2a'
ImageId: 'ami-0c1d8842b9bfc767c'
InstanceInitiatedShutdownBehavior: 'terminate'
InstanceType: 't2.micro'
SecurityGroupIds:
- 'sg-79862305'
Volumes:
Device: "/dev/sdf"
VolumeId: !Ref NewVolume
NewVolume:
Type: AWS::EC2::Volume
Properties:
Size: 1
AvailabilityZone: 'ap-southeast-2a'
Tags:
- Key: MyTag
Value: TagValue
DeletionPolicy: Snapshot
Run Code Online (Sandbox Code Playgroud)
当我上传此模板时,出现以下错误。
Volumes 属性的值必须是 List 类型
有人可以帮我解决这个问题吗?
您好,我正在开发 AWS CDK。我正在尝试为我的任务定义创建日志记录。我有下面的代码。
logDetail = logs.LogGroup(
self,
"MerchWebServicesLogGroup",
log_group_name="/projects/merchwebserviceslog/apiservices",
retention=logs.RetentionDays.SIX_MONTHS,
removal_policy=core.RemovalPolicy.DESTROY,
)
task_definition = ecs.Ec2TaskDefinition(
self, "TaskDef", execution_role=MWSECSTaskExecutionRole
)
container = task_definition.add_container(
"mw-service",
image=ecs.ContainerImage.from_registry(
"187628286232.dkr.ecr.ap-southeast-2.amazonaws.com/location/location-service:latest"
),
memory_limit_mib=3072,
logging=ecs.LogDriver.aws_logs(stream_prefix="mwservice", log_group=logDetail),
)
Run Code Online (Sandbox Code Playgroud)
这会产生
logDetail = logs.LogGroup(
self,
"MerchWebServicesLogGroup",
log_group_name="/projects/merchwebserviceslog/apiservices",
retention=logs.RetentionDays.SIX_MONTHS,
removal_policy=core.RemovalPolicy.DESTROY,
)
task_definition = ecs.Ec2TaskDefinition(
self, "TaskDef", execution_role=MWSECSTaskExecutionRole
)
container = task_definition.add_container(
"mw-service",
image=ecs.ContainerImage.from_registry(
"187628286232.dkr.ecr.ap-southeast-2.amazonaws.com/location/location-service:latest"
),
memory_limit_mib=3072,
logging=ecs.LogDriver.aws_logs(stream_prefix="mwservice", log_group=logDetail),
)
Run Code Online (Sandbox Code Playgroud)
问题是我不想传递任何 ExecutionRoleArn。如果我传递执行角色 ARN,我开始收到错误“无法初始化日志记录驱动程序”,否则工作正常。有人可以帮我解决这个问题吗?任何帮助,将不胜感激。谢谢
净核心应用程序。我的要求是添加基于组的授权。我是 Azure AD 的用户。我属于一些名称以 BR 和 AR 开头的组。属于 AR 组的用户只能访问我的 API。目前我的客户端应用程序是 Swagger,我仅通过 swagger 访问 APIS。
例如,在启动时我可以使用以下代码。
services.AddAuthorization(options => {
options.AddPolicy("AR-BitBucket-User",
policyBuilder => policyBuilder.RequireClaim("groups",
"6be4f534-dcf5-489e-b57d-c7bb46be8d6b"));
});
Run Code Online (Sandbox Code Playgroud)
在控制器中,
[Authorize("AR-BitBucket-User")]
Run Code Online (Sandbox Code Playgroud)
在上面的方法中,我进行了硬编码,但我不想硬编码。首先,我没有在 JWT 令牌中获取组信息,但我得到了
hasGroups:true 在我的 JWT 令牌中。我想从 Graph API 获取它,而不是硬编码。有人可以帮我怎么做吗?我无法在互联网上获得任何相关示例。那么有人可以帮助我吗?
您好,我正在开发 AWS CDK。我正在创建ECS。我创建了自动缩放组,如下所示。
autoScallingGroup=asg.AutoScalingGroup(self, id = "auto scalling", vpc= vpc, machine_image=ecs.EcsOptimizedImage.amazon_linux(), desired_capacity=1, key_name="mws-location", max_capacity=1, min_capacity=1, instance_type=ec2.InstanceType("t2.xlarge"))
Run Code Online (Sandbox Code Playgroud)
这也将生成默认启动配置。我想为这个自动扩展组编写自己的启动配置。
有人可以帮我解决这个问题吗?任何帮助,将不胜感激。谢谢
我正在使用 AWS CDK 创建负载均衡器。我对CloudFormation很熟悉。在创建负载均衡器期间,我想给出如下子网。
LB:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
Properties:
Tags:
-
Key: "Name"
Value: !Ref "AWS::StackName"
Subnets:
-
Fn::ImportValue: "infra-vpc-base::SubnetIdPrivateAz1"
-
Fn::ImportValue: "infra-vpc-base::SubnetIdPrivateAz2"
Run Code Online (Sandbox Code Playgroud)
我尝试在 CDK 中创建 LB,如下所示。
lb = elbv2.ApplicationLoadBalancer(
self, "LB",
load_balancer_name="Load Balancer CDK",
vpc = vpc,
internet_facing= False,
security_group= mws_vpc_sg_alb,
vpc_subnets= ???
)
Run Code Online (Sandbox Code Playgroud)
在上面的代码中vpc_subnets我想给出两个子网。上面代码中的vpc_subnets类型是typing.optional[aws_cdk.aws_ec2.SubnetSelection]= none.
有人可以帮助我在 AWS CDK 中选择子网吗?
您好,我正在开发 Azure AD。我有一个 webapi 项目和与之一起配置的 swagger。我已经抵制了天蓝色广告中的两个应用程序。一种用于 swagger,一种用于 webapi 应用程序。现在我想实现基于组的授权。所以现在我想从 microsoft graph api 调用组。从这里开始我就很困惑了。要访问组,我需要授予在我的 azure Ad swagger 应用程序或 webapi 应用程序中读取图形的权限?
下面是我的代码。
c.AddSecurityDefinition("oauth2", new OAuth2Scheme
{
Type = "oauth2",
Flow = "implicit",
AuthorizationUrl = swaggerUIOptions.AuthorizationUrl,
TokenUrl = swaggerUIOptions.TokenUrl,
Scopes = new Dictionary<string, string>
{
{ "read_user_groups", "https://graph.microsoft.com/Group.Read.All" }
}
});
Run Code Online (Sandbox Code Playgroud)
现在,在天蓝色的广告中,我拥有 API 权限和公开 API。
在我的应用程序注册内的 swagger 应用程序中,我具有 API 权限,并且添加了 Microsoft Graph 并选择了 Groups.Read All。然后我有 Expose API,我们可以添加范围。这两件事让我很困惑。我的 swagger 应用程序必须在我的 Web api 上进行基于组的授权吗?有人可以帮我吗?
您好,我正在开发 AWS CDK。我正在尝试创建基于资源的政策。下面是我的云形成模板。
MWSECRRepository:
Type: AWS::ECR::Repository
Properties:
RepositoryName: "location/location-service"
RepositoryPolicyText:
Version: "2012-10-17"
Statement:
- Sid: CurrentAccountPush
Effect: Allow
Principal:
AWS:
- 'arn:aws:iam::1234:root' # dev
- 'arn:aws:iam::1234:root' # nonprod
- 'arn:aws:iam::1234:root' # prod
Action:
- 'ecr:GetDownloadUrlForLayer'
- 'ecr:PutImage'
- 'ecr:InitiateLayerUpload'
- 'ecr:UploadLayerPart'
- 'ecr:CompleteLayerUpload'
Run Code Online (Sandbox Code Playgroud)
下面我尝试使用 CDK 创建相同的内容。
ECRRepository = ecr.Repository(self, id = "ECR", repository_name = "location/location-service");
ECRRepository.add_to_resource_policy(iam.PolicyStatement(
effect=iam.Effect.ALLOW,
actions=["ecr:GetDownloadUrlForLayer","ecr:PutImage","ecr:InitiateLayerUpload","ecr:UploadLayerPart","ecr:CompleteLayerUpload"],
principals=["arn:aws:iam::123:root","arn:aws:iam::123:root","arn:aws:iam::123:root"]
));
ECRRepository.add_to_resource_policy(iam.PolicyStatement(
effect=iam.Effect.ALLOW,
#principals=["arn:aws:iam::123:root","arn:aws:iam::123:root","arn:aws:iam::123:root"]
actions=["ecr:GetDownloadUrlForLayer","ecr:BatchGetImage","ecr:BatchCheckLayerAvailability"]
));
ECRRepository.add_lifecycle_rule(description="Image retention", max_image_count=100, rule_priority=1);
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误
错误:预期对象引用,得到“arn:aws:iam::123:root”
有人可以帮助我使用 python 编写正确的语法吗?任何帮助,将不胜感激。谢谢
您好,我正在 .Net core 中开发 Web 应用程序。我已经实现了 V2 身份验证。现在我需要添加授权。该要求指出,首先,
收集用户的声明不应该是应用程序的工作,它们应该在用户 JWT 中可用。其次,将根据声明授予申请许可。
下面是我的验证码。
services
.AddAuthentication(o =>
{
o.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(o =>
{
o.Authority = azureActiveDirectoryOptions.Authority;
o.TokenValidationParameters = new TokenValidationParameters
{
ValidAudiences = new List<string>
{
azureActiveDirectoryOptions.AppIdUri,
azureActiveDirectoryOptions.ClientId
},
};
});
services.AddMvc(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我添加基于声明的授权吗?任何帮助将不胜感激。谢谢
authorization claims-based-identity jwt azure-active-directory asp.net-core
aws-cdk ×5
asp.net-core ×3
python ×3
amazon-vpc ×2
amazon-ec2 ×1
amazon-ecs ×1
amazon-iam ×1
autoscaling ×1
azure ×1
c# ×1
docker ×1
jwt ×1
swagger ×1