我正在使用主帐户中的 lambda 函数在 AWS 组织帐户中创建 ACM 公共证书,
创建 ACM 证书并附加侦听器的代码是:
resp_acm = client_acm.request_certificate(
DomainName='test.example.com',
ValidationMethod= 'DNS',
)
acm_arn = resp_acm['CertificateArn']
print(acm_arn)
resp_listener = client_elbv.create_listener(
Certificates=[
{
'CertificateArn': acm_arn,
},
],
DefaultActions=[
{
'Type': 'forward',
'TargetGroupArn': Target_group_arn,
},
],
LoadBalancerArn=alb_arn,
Port=443,
Protocol='HTTPS',
SslPolicy='ELBSecurityPolicy-2016-08',
)
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
"errorMessage": "An error occurred (UnsupportedCertificate) when calling the CreateListener operation: The certificate
'arn:aws:acm:eu-west-2:xxxxxxxxx:certificate/675071212-cdd1-4gg5-9d49-6a89a47eee88' must have a fully-qualified domain name,
a supported signature, and a supported key size.",
Run Code Online (Sandbox Code Playgroud)
请任何人帮忙。主域位于主帐户中,并为子域aws组织跨帐户创建证书。
amazon-web-services boto3 aws-certificate-manager aws-organizations
我正在 lambda 函数中运行以下脚本来使用标签描述 ec2 实例。但作为响应,我只需要实例 ID,而它会返回大量信息。请指导或以任何其他方式使用标签查找 ec2 insatnce id。谢谢
代码是:
import boto3
import json
from collections import defaultdict
region = 'us-east-1'
def lambda_handler(event, context):
client = boto3.client('ec2')
running_instances = client.describe_instances(
Filters=[
{
'Name': 'tag:orgid',
'Values': [
'demoxx',
]
},
],
)
return json.loads(json.dumps(running_instances, default=str))
Run Code Online (Sandbox Code Playgroud) 我正在创建 EC2 实例并希望传递用户数据以附加文件系统,但我不知道如何将文件系统 ID 作为变量传递。
文件系统 ID 将使用 API 网关传递。我尝试过以下操作,但用户数据$aa不包含aa值。
aa='fs-ce99bd38'
user_data = """#!bin/bash
sudo yum -y install nfs-utils
sudo mount -t efs -o tls $aa:/ efs
"""
client = boto3.client('ec2', region_name=REGION)
def lambda_handler(event, context):
instance = client.run_instances(
ImageId=AMI,
InstanceType=INSTANCE_TYPE,
KeyName=KEY_NAME,
UserData=user_data,
MaxCount=min_max_add,
MinCount=min_max_add
)
Run Code Online (Sandbox Code Playgroud)