billowy-laptop-45963
11/15/2019, 5:29 PM!Sub "arn:aws:ssm:${AWS::Region}:${AWS::AccountId}:parameter${SsmParameterPrefix}*"
where ${AWS::*} are standard cloudformation values replaced at runtime by the current region/account id and ${SsmParameterPrefix} is a passed in value as a parameter.type AwsData = {
region: string,
accountId: string,
}
type FnSubCallback = (data: AwsData) => string
function fnSub(fn: FnSubCallback, provider?: aws.Provider) {
const
opts = {provider: provider},
callerId = aws.getCallerIdentity(opts),
region = aws.getRegion({}, opts)
return pulumi
.all([callerId, region])
.apply(
([callerId, region]) => {
const data: AwsData = {
region: region.name,
accountId: callerId.accountId,
}
return fn(data)
}
)
}
Used like:
const myarn = fnSub(AWS => `arn:aws:ssm:${AWS.region}:${AWS.accountId}:parameter${SsmParameterPrefix}*`
AWS_SDK_LOAD_CONFIG=true pulumi up